Saltar al contenido

Categoría: Gnu/Linux

Compilar un Mplayer optimizado para el PS3

Revisando en los foros de ps2dev.org (la misma gente que hacia software maravilloso para el PS2) encontré que han programado un driver de ví­deo para el PS3 en linux usando el procesador CELL BE y una librerí­a llamada spu-medialib para acceder al driver. Gracias a esto, se ha creado un parche que modifica el Mplayer para que corra mejor en el ps3 y permita obtener mejor reproducción de ví­deo (recuerden que Sony bloquea el acceso a la tarjeta de video desde linux), con este mplayer se pueden obtener resoluciones de hasta 1080p, se puede ejecutar en consola sin entorno gráfico cargado (así­ obtienes casi toda la RAM y CPU para la reproducción de la pelí­cula), reproducción a pantalla completa, entre otros.

A continuación les muestro los pasos para Yellow Dog 6, que es la distro que uso y que no se instala siguiendo los pasos oficiales mostrados en https://forums.ps2dev.org/viewtopic.php?t=9187:

  • Tienes que tener el PS3 con Yellow Dog y configurado con internet (inalámbrico o ethernet), ademas tener instalado los compiladores GCC, el CELL SDK (librerí­as libspe, todos los paquetes para los SPE y PPU).
  • Iniciar como root y crear los siguientes enlaces simbólicos para que la librerí­a spu-medialib consiga las dependencias y el compilador:
    #ln /usr/bin/spu-gcc /usr/bin/spu-elf-gcc
    #ln /usr/bin/ppu-embedspu /usr/bin/embedspu
    • Crear el archivo /usr/lib/pkgconfig/libspe2.pc con el siguiente contenido:
    prefix=/usr
    exec_prefix=/usr
    libdir=/usr/lib
    includedir=/usr/include
    Name: libspe2
    Description: A wrapper library to adapt the JSRE SPU usage model to SPUFS
    Version: 2.2.80
    Requires:
    Conflicts:
    Libs: -L${libdir} -lspe2 -lrt -lpthread
    Cflags: -I${includedir}
    • Instalar los rpm autoconf y m4 de fedora 8. (los de yellow dog no sirven) e instalar libps3b mediante la guí­a: https://forums.ps2dev.org/viewtopic.php?p=59150
    • Instalar spu-medialib usando el tutorial: https://wiki.ps2dev.org/ps3:spu-medialib:install
    • A este paso ya tenemos instalado el driver y la librerí­a del PS3, ahora descargaremos mplayer con subversion (recuerda moverte a un directorio para trabajar en el):
    svn co svn://svn.mplayerhq.hu/mplayer/trunk mplayer
    • Descargar el parche:
    svn co svn://svn.ps2dev.org/ps3ware/trunk/mplayer-vo mplayer-vo
    • Aplicar el parche:
    cd mplayer
    patch -p0 < ../mplayer-vo/latest.patch

    Si el parche falla (porque no se ha actualizado el parche con respecto al svn de mplayer) habrá que editarlo manualmente, si tienes conocimientos de parches puedes leerlos y ver que le hace falta, si te falla en el archivo libvo/video_out.c como a mí­, entonces abre el archivo libvo/video_out.c dentro de las fuentes de mplayer y busca las lí­neas que se parezcan a:

    extern vo_functions_t video_out_dxr2;
    extern vo_functions_t video_out_dxr3;
    extern vo_functions_t video_out_ivtv;

    Y cambiarlo a:

    extern vo_functions_t video_out_dxr2;
    #ifdef HAVE_PS3
    extern vo_functions_t video_out_ps3;
    #endif
    extern vo_functions_t video_out_dxr3;
    extern vo_functions_t video_out_ivtv;

    Luego de modificar las fuentes deberías poder compilarlo normal con un simple:

    ./configure --prefix /usr
    make &amp;&amp; make install

    Nota: «Debido a que no creamos un paquete (puede usarse checkinstall o rpmbuild para hacerlo), debes guardar la carpeta con las fuentes de mplayer para hacer un make uninstall en el directorio si quieres desinstalarlo».

    Luego puedes ejecutar mplayer de manera normal para la reproducción de ví­deos, si quieres usar el driver del ps3 entonces ejecútalo con:

    mplayer -vo ps3 -fs video.extension

    Donde -vo=video out es la salida de video y -fs=fullscreen es pantalla completa. Espero que les haya servido esta guí­a y disfruten de sus videos en el PS3 con mplayer.

    7 comentarios

    Se abre el nuevo portal de ArchLinux para latinohispanos

    Después de tanto trabajo por Sud_Crow se ha abierto el portal https://www.archlinux-es.org que ahora será el sitio oficial para la comunidad que habla español, el sitio anterior (el que era .com.ar) será redirigido a este por lo que les recomiendo que se acostumbren al nuevo dominio, la nota de lanzamiento anunciada por la comunidad ha sido la siguiente:

    El equipo de Arch Hispano tiene algunas novedades para comentar:

    1) Hemos migrado de servidor, con lo cual esperamos no tener mas los inconvenientes de ancho de banda ni limitaciones de espacio previas.
    2) No solo migramos de servidor, sino que migramos de dominio, a partir de este momento, nos comenzaremos a encontrar en https://www.archlinux-es.org . La misma, pero renovada Comunidad Hispana de Arch 🙂
    3) Por que creemos que con eso nos quedamos chicos, también aprovechamos y:
    a) migramos de WordPress a Drupal, algo q nos va a permitir proveer mas y mejores servicios para todos los usuarios que quieran participar mas activamente en el sitio.
    b) otro cambio, aunque menos drástico, es el Foro… despedimos a nuestro querido phpBB 2, quien básicamente ha sido el creador de esta comunidad y donde todos compartimos nuestras penas y glorias con la distribución y le damos la bienvenida a phpBB 3. Veremos si esta a la altura de las circunstancias.
    c) también se ha rediseñado el sistema de la Wiki, haciéndola mas simple para la búsqueda y colaboración de artí­culos. Un aplauso para CarmaZone y Skatox que se han llevado la parte mas fea del trabajo, migrando los artí­culos y organizando las categorí­as, todito a mano!

    En fin, espero que disfruten del nuevo sitio, y nos estaremos viendo en los foros… 😉

    El sitio principal, si bien viene livianito de contenido y con un tema no muy trabajado, pronto vera algunos cambios, pero ya es funcional.
    Pasen y vean: https://www.archlinux-es.org

    pd. Durante unos dí­as este sitio permanecerá en linea, luego esta dirección sera espejada en el otro dominio.
    Desde este momento, todos los enlaces, artí­culos, y noticias deberí­an funcionar correctamente en ambos sitios y bajo la misma URL (salvo por el dominio).


    P.D: Se anda buscando gente que ayude a crear, actualizar y traducir artí­culos para la Wiki

    7 comentarios

    Como crear y aplicar un parche a un código fuente

    A veces cuando se descarga el código fuente de un programa puede ser necesario cambiar algunas cosas para hacerlo funcionar: el código está obsoleto y necesita cambios, algunas librerí­as se encuentran en otro lado, errores en el código. O también puede ser necesario agregarle/remover código para funcione mas rápido, tenga nuevas funciones, mayores optimizaciones, etc.

    Para ello se usa un parche, que es un archivo que contiene información de lo que se debe cambiar al archivo original para que quede a como se modificó previamente por otra persona (o uno mismo). Así­ que en vez de que cada persona que desea modificar de la misma manera el código deba abrir cada archivo, buscar las lí­neas donde se mete el código nuevo, borrar lo necesario y guardar; se les da el parche que realiza esta tarea de manera automatizada. Esto es usado por ejemplo por algunos empaquetadores que deben modificar el código fuente de un programa para que cumpla el estándar ó funcione como lo pide su distribución, para enviar cambios código fuente a un proyecto de software, entre otras cosas.

    Por ejemplo, existen modificaciones no oficiales que se la hacen al kernel linux para agregarle nuevas funcionalidades, nuevas optimizaciones de velocidad, soporte para algunos dispositivos (ejem: el hardware del PS3), entre muchas cosas. Pero para ello, no es necesario hacer copias de todo el código fuente para cada modificación hecha: por ejemplo, el sitio kernel.org no tiene que colocar el todo código fuente de linux modificado para funcionar mejor en escritorio, todo el código fuente del kernel para el ps3, el código fuente para correr en una plataforma no soportado, sino sólo ofrecer el código fuente original y los «programadores/empaquetadores/geeks» se encargarán de aplicar un parche para modificar el archivo original agregando los cambios necesario para su propósito.

    Los pasos a seguir para crear un parche se hace con solo 1 comando, primero modificamos el programa de acuerdo a nuestras necesidades en una carpeta/archivo aparte (para no perder el original), y utilizamos el programa diff para ver la diferencia entre el archivo original y el nuevo (modificado). Usamos el siguiente comando para guardar la información de cambios en un archivo/directorio en un archivo patch:

    # se pueden usar directorios para modificaciones múltiples de archivos
    diff -Naur dir_archivo_original archivo_nuevo > parche.patch

    Con esto ya se tiene guardado en el archivo parche.patch la información acerca de los cambios realizados y donde se encuentran los mismos. Ahora la persona que recibe o quiere usar el parche para cambiar el código fuente original por lo que necesita sólo debe hacer:

    # se puede usar un directorio en vez de archivo a modificar
    patch -Np1 -i ruta_archivo_parche ruta_archivo_a_modificar

    ¡Y listo! De esta manera es como se recomienda enviar cambios de un código, ya que la persona no tiene que leer todo el código para encontrar los cambios (el mismo parche te dice donde se han realizado) y puede aplicar los cambios si lo desea y sin perder el original.

    Nota: Disculpen, creo que lo escribí­ un poco confuso.

    7 comentarios