Devede 3.16.6

Una nueva revisión con leves cambios. No corrige fallos graves, sino pequeños bug publicados en el bugzilla de Ubuntu, en concreto los bugs 371229 (la descripción del menú del lanzador no sigue las normas de Gnome), 371369 (la entrada de menú del lanzador no está traducida a italiano), 484420 (los botones de debajo de las listas de ficheros y de títulos no mantienen la misma apariencia que el resto de botones) y 496740 (al pulsar ENTER en las propiedades de un título, debería actuar igual que al pulsar el botón Aceptar; lo he extendido al diálogo de comenzar la conversión).

FBZX para 32 y 64 bits

Lo prometido es deuda, por eso acabo de subir la versión 2.4.1 de FBZX que corrige un pequeño detalle que podría hacer que en arquitecturas de 64 bits Big-Endian no funcione correctamente. Además, he subido paquetes .DEB tanto para arquitecturas de 32 como de 64 bits, con lo que confío en que en breve esté disponible en Ubuntu64 (a día de hoy no lo está).

Vuelve DVDAuthor

La herramienta DVDAuthor, que Devede utiliza para generar los DVDs, lleva casi tres años sin mantenimiento. Sin embargo, hoy me llegó un mail de Lawrence D’Oliveiro en la que me comenta que ha iniciado un fork de DVDAuthor, en el que ya ha aplicado varios parches. Aprovechando la coyuntura le he comentado los dos problemas que encontré hasta ahora: Spumux no soporta textos en UTF-16, y no se puede cambiar el color de los subtítulos. Con suerte en la próxima versión de DVDAuthor estos dos detalles están corregidos y Devede puede sacar provecho de ellos.

Transmission 1.91

Acabo de actualizar el cliente de BitTorrent Transmission para mi disco duro multimedia MemUp LX a la versión 1.91.

AVISO: a partir de aquí empiezo a tocar en el sistema operativo del disco duro multimedia, lo que significa que estas acciones sólo las deben realizar aquellos que sepan muy bien lo que hacen. Si alguien se carga su disco, será el único responsable.

Avisados estáis.

Al igual que en versiones anteriores, basta con bajarse el fichero ftp_bt4lxmedia_4.0.tar.bz2 y actualizar los ficheros indicados.

Un detalle importante es que en el fichero de configuración de Transmission he modificado la configuración para que se pueda conectar a la web de configuración desde cualquier equipo con direcciones del rango 192.168.*.*. En versiones anteriores sólo se podía hacer desde direcciones 192.168.1.*, lo que es posible que de problemas a alguna gente.

Si ya habías instalado una versión anterior de ftp_bt4lxmedia, debes borrar el fichero /tmp/hdd/volumes/HDD1/BT/transmission_tmp/settings.json o editarlo para modificar el parámetro rpc-whitelist.

Como ya avisé en un mensaje anterior, aquellos que se decidan a probarlo deben limitar el cliente BitTorrent (sea el que sea) a no más de 300 o 400 KBytes/seg de bajada, porque si se recibe a más velocidad, el disco multimedia se satura y acaba colgándose.

Entradas anteriores:

Migrando a 64 bits

Hace unos días decidí cambiar el sistema operativo a Ubuntu de 64 bits. A fin de cuentas es el futuro, y cualquier día lo necesitaré por cuestiones de memoria, así que mejor ir comenzando ahora. Al principio pensaba que iba a tener problemas con algún programa en concreto, pero la verdad es que hasta ahora todo está funcionando como la seda:

  • MPlayer y Mencoder funcionan perfectamente y reproducen todos los formatos que necesito (entre ellos H.264, DivX, WMV y RealMedia); y ni siquiera he necesitado instalar los plugins privativos para que me funcionen incluso los vídeos en formato WMV9 (que utiliza VC-1).
  • Eclipse funciona perfectamente con la máquina virtual de Java de 64 bits, aunque tuve que borrar la carpeta .eclipse de mi directorio personal y reinstalar los plugins para lenguaje C y Python.
  • Y tampoco tengo problema alguno con Flash de 64 bits, aunque sea aún una prerelease y no una versión estable.

Un detalle que me preocupaba mucho es ¿cuan problemático es portar código C a 64 bits? En general debería funcionar, salvo si el tamaño de algún tipo fundamental cambia a 64 bits y en el código asumimos que es de 32 bits. Y de hecho había algunas posibilidades de que ocurriese, pues hay tres posibles modelos para C en 64 bits: LP64, ILP64 y LLP64. En el primero, que es el que utiliza Linux/GCC o MacOS X, int es de 32 bits, mientras que long int es de 64 bits. En el segundo, en cambio, los dos tipos miden 64 bits. En el último caso, el más compatible (y además utilizado por el compilador VirtualC++ de Microsoft), miden todos 32 bits, siendo long long int la única manera de conseguir un tipo de 64 bits. ¿Cual es mejor? Bajo mi punto de vista, LP64, porque permite fácilmente mantener total compatibilidad hacia atrás si se escribe el código con una pizca de cuidado, además de permitir, con el mismo código, acceder a toda la memoria disponible mediante aritmética de punteros, tanto en 32 como en 64 bits. Para conseguir todo esto, en concreto, hay que asegurarse de utilizar long int para aquellas variables que se utilicen en aritmética de punteros (porque, de esa forma, siempre tendrán el mismo tamaño que un puntero y se podrá direccionar toda la memoria sin problemas), así como para aquellas que no importe si son de 32 o 64 bits, utilizar int para aquellas que tengan que ser forzosamente de 32 bits, o cuando se quiera ahorrar en tamaño, y long long int para aquellas que tengan que ser necesariamente de 64 bits.

Mi miedo venía por FBZX. Sin embargo, tras probarlo, funcionó correctamente… aunque hay que decir que de milagro, porque hay un punto en que sí utilicé un long int en lugar de int a secas: justo en la función que pinta cada pixel, cuando estamos en un modo de 24 o 32 bits por pixel. Pese a todo, gracias a que la arquitectura Intel es little endian, el código funciona (cosa que no haría si fuese big endian). Es un detalle que corregiré en la siguiente versión, para la que sacaré paquete .deb tanto en 32 como en 64 bits.

Devede 3.16.4

Tras ver que alguna gente seguía con problemas por culpa del sonido en Devede, decidí echar un vistazo en serio a Mencoder para ver qué tasas de audio soporta realmente. El resultado es: 32, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320 y 384 Kbps para MP2; para AC3 se añaden 448, 512, 576 y 640Kbps. Armado con estos valores modifiqué Devede para que, al final, sólo pase a Mencoder el valor legal más cercano al especificado por el usuario. Para no complicar el código, y dado que un DVD no admite tasas de audio en AC3 superiores a 448 Kbps, opté por limitar en todos los casos la tasa de audio a 384 Kbps (que es un valor más que razonable).

También había lanzado hace un par de días la versión 3.16.3, que corrige un bug que no permitía añadir subtítulos cuyo nombre de fichero contuviese espacios (es increíble que a estas alturas todavía se me siga escapando ese detalle).

Con estos cambios deberían desaparecer buena parte de los problemas que sufrían los usuarios.

Nuevas versiones de Devede y FBZX

Acabo de subir la versión 3.16.2 de Devede y la 2.4.0 de FBZX. No tienen grandes cambios, sino pequeñas correcciones de cosas:

En el caso de Devede, tan solo añadí la traducción de gallego con las nuevas frases de la serie 3.16, y corregí dos fallos: uno al empaquetar ficheros MPEG en lugar de recodificarlos, y otro en la tasa de audio, que permitía valores incorrectos al activar el sonido 5.1.

En el caso de FBZX corregí, para empezar, un fallo en el cargador de ficheros SNA: el contenido de los registros IX e IY estaba intercambiado, razón por la que no podía funcionar ningún fichero con un programa en BASIC. También añadí un filtro de continua para el sonido, de manera que al utilizar el emulador a la vez que otra fuente de sonido cualquiera con PulseAudio, no se producen problemas. Por último, por consejo de un viejo amigo, he añadido un pequeño mensaje durante el inicio que avisa que la ayuda está disponible con la tecla F1.

Que lo disfrutéis con salud.

Devede 3.16.0

Acabo de lanzar la nueva versión de Devede, la 3.16.0. Entre los cambios más interesantes están:

  • Soporte de codificación en dos pasadas, con lo que la calidad final será mayor, aunque también es probable que la diferencia entre el tamaño final estimado y el real sea aún mayor 🙂
  • Soporte de windows de 64 bits. Dado que sólo comprobaba si estaba ejecutando sobre «win32», pero no «win64».
  • Permite modificar el volumen final: varios usuarios se quejaban de que algunos vídeos salían con el volumen muy bajo, y pedían una forma de solucionarlo.
  • Soporte de UTF-16 en subtítulos: por un lado, no lo había añadido en la lista de formatos soportados, pero es que encima SPUMUX no lo soporta, así que utilizo ICONV para pasar siempre a UTF-8. Era necesario porque varios usuarios se encontraron con que no podían generar discos con dichos subtítulos. Además, autodetecta si está en dicho formato.
  • Por fin permite de nuevo generar DVDs sin un menú. Era una petición a gritos, pero no tuve tiempo hasta ahora de implementarlo.

Y otros pequeños cambios interesantes.