MPV 0.38 llega con mejoras de compatibilidad, de escalado y mas

reproductor mpv

MPV

Se dio a conocer la nueva versión de MPV 0.38 la cual llega con una serie de cambios y mejoras significativas, entre las cuales se destacan su nuevo renderizador «vo_gpu_next», mejoras con Vulkan, mejoras en la escala de DPI, una serie de nuevas opciones de línea de comandos, entre otras cosas más.

Para quienes desconocen de MPV, deben saber que este es un reproductor multimedia de código abierto que está diseñado para ser ligero, rápido y altamente personalizable, lo que lo hace popular entre los usuarios que prefieren un reproductor de video simple pero potente. MPV es compatible con una amplia variedad de formatos de archivo multimedia y ofrece características como reproducción de video de alta calidad, controles de reproducción avanzados, soporte para subtítulos y capacidades de filtrado de video.

¿Qué hay de nuevo en MPV 0.38?

En esta nueva versión que se presenta de MPV, la 0.38.0 una de las características más notables es el desarrollo continuo del nuevo módulo del renderizador «vo_gpu_next», construido sobre la biblioteca libplacebo y utilizando sombreadores y API de gráficos Vulkan, OpenGL, Metal o Direct3D para el procesamiento y renderizado de video.

Otro de los aspectos destacados de esta nueva versión son las mejoras implementadas en las funciones relacionadas con Wayland, incluyendo compatibilidad multi-seat, soporte mejorado para desplazamiento de alta resolución, escalado mejorado en pantallas de alta densidad de píxeles (HiDPI), manejo mejorado del cambio de cursor, variable de entorno de requisitos de uso habilitada WAYLAND_DISPLAY para la inicialización y protección contra tamaños de configuración negativos.

Además de ello, MPV 0.38 introduce varias capacidades de secuencias de comandos nuevas, como «mp.input()», para una interacción de scripts, permitiendo la solicitud de entrada de datos de texto por parte del usuario y la adición de la opción «–deinterlace-field-parity» al reproductor para habilitar automáticamente el desentrelazado.

También incluye actualizaciones prácticas como la opción de desentrelazado automático e información ampliada en reproducción en Mac, que mejoran el control del usuario y la visibilidad de la información de reproducción.

Además, MPV 0.38 ha agregado soporte para MoltenVK en las compilaciones de Mac OS para brindar soporte para la API de Vulkan, mejorando el rendimiento gráfico aprovechando las funciones modernas de GPU y también hay numerosos ajustes en funcionalidades y las interacciones de la interfaz de usuario, como una mejor compatibilidad con el cambio de tamaño de ventanas y las funciones de arrastrar y soltar en macOS.

De los demás cambios que se destacan:

  • El reproductor elimina el código de soporte heredado no estándar específico de Raspberry Pi
  • Introduce una variedad de nuevos comandos y opciones que mejoran la personalización y el control de la reproducción.
  • Capacidad de cargar archivos de configuración dinámicamente
  • Ajustar el retraso de los subtítulos para subtítulos secundarios y controlar el volumen del audio en decibeles.
  • Continúa solucionando errores y mejorando funciones menores en diferentes sistemas para garantizar un rendimiento más fluido y una compatibilidad mejorada
  • Correcciones para controladores de audio específicos
  • Informes de modificadores de clave mejorados en macOS
  • Ahora se requiere como mínimo el uso de FFmpeg 4.4 o posterior
  • El Zoom de video ahora se puede controlar mediante «Ctrl+WHEEL_UP/DOWN»
  • Ahora el caché se guarda en archivos separados.

Si estás interesado en poder conocer más al respecto, puedes consultar la lista completa de cambios en el siguiente enlace.

¿Como instalar el reproductor MPV en Linux?

Si estás interesado en poder instalar este reproductor en tu sistema, puedes hacerlo siguiendo las instrucciones que compartimos a continuación.

Compilación desde el código fuente

El primer método y es general para cualquier distribucion, es realizando la compilación del código fuente. Para ello debes de abrir una terminal y ejecutar los siguientes comandos:

git clone https://github.com/mpv-player/mpv-build.git
cd mpv-build/
sudo apt install libfribidi-dev libfribidi-bin yasm
./rebuild -j4
sudo ./install

Esto descargará el código fuente de MPV, instalará las dependencias necesarias y compilará e instalará el reproductor en tu sistema.

Usando un repositorio externo (para Ubuntu y derivados)

Si eres usuario de Ubuntu o algún derivado de este y no quieres realizar la compilacion. Puedes optar por agregar un repositorio mantenido por un tercero y luego instalar MPV desde allí. Para ello debes de ejecutar estos comandos en la terminal:

sudo add-apt-repository ppa:mc3man/mpv-tests
sudo apt update
sudo apt install mpv

Esto agregará el repositorio, actualizará tus fuentes de paquetes y luego instalará MPV desde el repositorio añadido.

Para Arch Linux

En Arch Linux, puedes instalar MPV directamente desde los repositorios oficiales con este comando

sudo pacman -S mpv

Para openSUSE

En openSUSE también se cuenta con la aplicacion en los repositorios, por lo que solo debes de verificar que la nueva versión esté disponible en los repositorios y luego ejecutar en una terminal:

sudo zypper in mpv

Una vez instalado, puedes usar MPV desde la terminal. Puedes consultar su manual de uso con el comando help o visitar el siguiente enlace para obtener más información sobre su uso y opciones disponibles.

mpv --help

from Linux Adictos https://ift.tt/15a4Qle
via IFTTT

zlib-rs, una alternativa a zlib-rs en Rust que tiene como finalidad abordar los problemas causados ​​por errores de memoria

zlib-rs una alternativa de la biblioteca de compresión de datos zlib

zlib-rs

La biblioteca zlib, desarrollada por Jean-Loup Gailly y Mark Adler, es un componente esencial ya que es utilizada en una amplia gama de aplicaciones que están enfocadas en la compresión de archivos en formatos como ZIP, gzip y PNG debido a su eficiencia y versatilidad. Esta biblioteca ha estado presente desde 1995 y como resultado de su amplio uso, también ha sido blanco de múltiples vulnerabilidades de seguridad de la memoria.

El núcleo de zlib es el algoritmo de compresión DEFLATE, que combina las técnicas de compresión sin pérdida de datos del algoritmo LZ77 con una estructura de árbol Huffman para lograr tasas de compresión notables. Esta combinación de técnicas hace que zlib sea extremadamente eficiente en la compresión y descompresión de datos, siendo especialmente útil en aplicaciones donde el espacio de almacenamiento o el ancho de banda son limitados.

Además de la compresión de archivos, zlib también se utiliza en la transferencia de datos comprimidos en redes para reducir la carga de ancho de banda, en aplicaciones de almacenamiento y procesamiento de archivos, así como en aplicaciones multimedia para la compresión de datos de audio y video.

A lo largo del tiempo, zlib ha enfrentado algunas vulnerabilidades que han sido abordadas en versiones posteriores de zlib, como las mencionadas CVE-2005-1849, CVE-2016-9840, CVE-2016-9841 y CVE-2016-9842 (solo por mencionar algunas de las conocidas de zlib), que podían ser explotadas por atacantes para provocar una denegación de servicio (DoS) o incluso ejecutar código arbitrario y que debido a las fallas de seguridad de memoria común para las bibliotecas de compresión escritas en C/C++, zlib sigue siendo un blanco importante.

Con la finalidad de abordar estos problemas, sin dejar de lado la naturaleza y bondades de zlib, la ISRG (la organización detrás del proyecto Let’s Encrypt y dedicada a mejorar la seguridad en internet) dio a conocer recientemente el lanzamiento de un nuevo proyecto que tiene como finalidad el crear un análogo de zlib en el lenguaje de programación Rust.

Contratamos a Tweede Golf en diciembre de 2023 para una implementación inicial basada en zlib-ng , con un enfoque en mantener un rendimiento excelente al tiempo que introducimos la seguridad de la memoria.

Que sigue

Actualmente estamos buscando financiación para completar el trabajo necesario para que la implementación inicial esté lista para la producción.

La nueva alternativa tiene como nombre «zlib-rs» y esta se presenta como una solución de zlib escrita en Rust con el objetivo principal de abordar los problemas de seguridad asociados con errores de memoria y vulnerabilidades que suelen estar presentes en las bibliotecas de compresión escritas en C/C++.

El desarrollo de zlib-rs surge en respuesta a estadísticas de Microsoft y Google que señalan que aproximadamente el 70% de las vulnerabilidades se deben a un manejo inseguro de la memoria. Al utilizar Rust como lenguaje de programación, se espera reducir significativamente el riesgo de estas vulnerabilidades, como el acceso a áreas de memoria liberadas o el desbordamiento de búferes.

El proyecto zlib-rs contiene una implementación Rust del formato de archivo zlib que es compatible con la API zlib y el repositorio actualmente se están trabajando en dos implementaciones:

  • zlib-rs, una implementación de Rust basada en zlib con una API de Rust segura (actualmente se considera como inestable, pero se espera llegar a estabilizar la implementación en poco tiempo).
  • libz-rs-sys, una API C una API C para zlib-rs . La API es, en términos generales, equivalente a zlib-sysy zlib-ng-sys, pero actualmente no proporciona la familia de funciones gz*. Desde la perspectiva de rust, esta API no es muy ergonómica por lo que de momento se recomienda el trabajo con flate2.

Sobre el trabajo en el desarrollo actual, se menciona que el ofrecer un análogo en Rust pueda atraer la atención de otros y puedan sumarse al trabajo, ya que el ofrecer una alternativa enfocada en la seguridad y la prevención de errores comunes, pueda en cuestión de algunos años de trabajo y desarrollo ofrecer un sustituto transparente a zlib.

Finalmente cabe mencionar que actualmente el trabajo de zlib-rs se publica en GitHub en el siguiente repositorio y el código se distribuye bajo la licencia Zlib. Puedes consultar más al respecto en el siguiente enlace.

from Linux Adictos https://ift.tt/fuUB3IX
via IFTTT