Bennu Game Development

Foros en Español => Extensiones => Topic started by: josebita on April 05, 2013, 11:55:15 PM

Title: mod_theora
Post by: josebita on April 05, 2013, 11:55:15 PM
Hola:

Estoy acabando una librería para la reproducción de vídeos en formato OGG/Theora. Ya funciona en Mac pero aún da alguna clase de problema en Linux.
La librería está basada en TheoraPlay de Ryan Gordon (Icculus) que está licenciada como Zlib y ésta a su vez está basada en libogg+libtheora+libvorbis. Éstas están bajo licencia tipo BSD. Básicamente eso obliga a poner en el README que se está usando ese software y que está bajo esa licencia, nada más. Más info aquí:
https://icculus.org/projects/theoraplay/ (http://forum.bennugd.org/index.php?action=post;board=8.0)

La librería es capaz de reproducir vídeos en modo de 16bpp y 32bpp. No he añadido soporte para 8bpp porque me parece un poco tonto, pero no me debería llevar más de 10 minutos añadirlo.

La reproducción se hace completamente por software y por tanto es más lenta de lo que debería pero la librería (cuando arregle los problemas con Linux) debería ser extremadamente portable.
Os dejo un enlace al código:
https://www.dropbox.com/s/rs7hx4w9twz9oa6/bennugd-module-theora_preview.tar.bz2 (https://www.dropbox.com/s/rs7hx4w9twz9oa6/bennugd-module-theora_preview.tar.bz2)

Y un pequeño vídeo de cómo funciona en mi ordenador:
https://vimeo.com/63441778 (https://vimeo.com/63441778)

Evidentemente, la librería soporta audio. El que no soporta la grabación del audio del escritorio es QuickTime. Al que se me queje de cutre le quito un mini-punto.

Pros:
* Permite reproducir vídeos en un formato relativamente popular de forma extremadamente sencilla ( graph = video_play(filename) )
* Los vídeos se pueden manipular de la misma forma que cualquier gráfico cargado de un PNG o MAP

Contras:
* De momento es extremadamente simple: sólo incluye video_play() y video_stop(). Y sólo admite la reproducción de un único vídeo cada vez. Ni siquiera tiene pausa, pero añadirla es cuestión de jugar con los temporizadores. Tampoco soporta seeking pero, de nuevo, debería ser cosa de jugar con los temporizadores.
* Bloquea el audio. Por limitación de SDL_mixer (he tratado de buscar alternativas, pero no he encontrado ninguna viable) no es posible reproducir ningún otro sonido/música a través de SDL_mixer cuando se está reproduciendo un vídeo.
  Es una pequeña putada, pero no creo que haya mucho que pueda hacer con la librería de sonido actual.

En fin, que la presento en sociedad a pesar de que todavía tengo que darle un par de vueltas más. ¿Ideas, comentarios o sugerencias?.

PD: El vídeo que he grabado va a trompicones. Es cosa de tener el QuickTime grabando, en general la reproducción es fluída en el ordenador.
Title: Re:mod_theora
Post by: master on April 06, 2013, 03:00:49 AM
me dice que el video no existe o fue borrado
se ve bastante bien :D
Title: Re:mod_theora
Post by: FreeYourMind on April 06, 2013, 05:26:43 AM
si no tiene dependencias se podrian hacer ports a otras plataformas. gracias crack
Title: Re:mod_theora
Post by: Yawin on April 06, 2013, 11:24:47 AM
O.O ¿Te han dicho alguna vez que eres grande? ¡Pues eres enorme! Yo hasta ahora usaba mod_vlc, pero la tuya es sublime. Ligera, manipulable,... karma++!
Title: Re:mod_theora
Post by: josebita on April 06, 2013, 02:05:19 PM
Quote from: master on April 06, 2013, 03:00:49 AM
me dice que el video no existe o fue borrado
Imagino que intentaste entrar mientras el vídeo aún se estaba codificando. Ahora debería ir.
Quote from: FreeYourMind on April 06, 2013, 05:26:43 AM
si no tiene dependencias se podrian hacer ports a otras plataformas. gracias crack
Quote from: Yawin on April 06, 2013, 11:24:47 AM
O.O ¿Te han dicho alguna vez que eres grande? ¡Pues eres enorme! Yo hasta ahora usaba mod_vlc, pero la tuya es sublime. Ligera, manipulable,... karma++!
Claro, la mod_vlc es MUY superior técnicamente (porque libVLC lo es, quiero decir) pero ésta librería tiene un par de ventajas que, creo, la hacen muy interesante:
* Ésta es muchísimo más portable y simple. No son más que dos ficheros .c y un par de cabeceras, más las dependencias.
* La licencia de ésta librería es mucho más permisiva.
Title: Re:mod_theora
Post by: Outlaw on April 06, 2013, 09:31:37 PM
¡Mil gracias por este gran aporte Josebita!  :D
Title: Re:mod_theora
Post by: osk on April 07, 2013, 09:26:29 AM
Muchísimas, muchísimas, muchísimas gracias!!!