Hace poco intenté actualizar las bibliotecas ffmpeg que uso en mi aplicación Mac OS X descargando y compilando ffmpeg desde el código fuente.Problema de compilación ffmpeg: avcodec_find_decoder siempre devuelve nulo
Mi código funciona correctamente con bibliotecas precompiladas de la misma versión en Windows. En Mac OS X, la biblioteca parece funcionar (puede abrir el archivo y encontrar las secuencias y los códecs utilizados), pero cuando llega a avcodec_find_decoder, esta función siempre devuelve nulo.
El código ha trabajado con una versión anterior de la biblioteca (compilado hace un año en Mac OS X 10.5)
he configurado fmpeg usando
./configure --extra-cflags="-arch i386" --extra-ldflags='-arch i386' --arch=x86_32 --target-os=darwin --enable-cross-compile --disable-indev=jack --enable-shared --disable-static
yo nos registramos config.mak, y parece tener los decodificadores para los tipos de archivos que intenté habilitar (ogg, vorbis, avi, mkv, ...) También verifiqué que se habían utilizado los archivos de encabezado correctos y que se usaba la biblioteca recién compilada.
he encontrado solamente algunas entradas más antiguas relacionadas con este tema, pero sin ningún tipo de solución:
http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-January/021399.html
http://libav-users.943685.n4.nabble.com/avcodec-find-decoder-problem-td944800.html
Editar: comprobación Además, parece av_codec_next (NULL) devuelve un valor nulo, así , lo que significa que no hay un solo códec disponible, o que first_avcodec en utils.c no está configurado (en realidad no he encontrado en absoluto donde se establece esta variable, habría supuesto av_register_all, pero no puedo encontrarlo) allí)
Eso sí parece un error. No creo que el estándar c garantice que la inicialización será 0? Entonces estática int inicializada = 0; sería la forma correcta de hacerlo. – Adion
@Adion Sí, el estándar C inicializa las variables estáticas int en ceros si no se inicializan explícitamente. Sin embargo, [aquí] (http://stackoverflow.com/questions/1294772/does-gcc-automatically-initialize-static-variables-to-zero) dice más ... – Daniel
Ok, ya no llamo a avcodec_register_all(), entonces todo lo que estaba mal parece haberse arreglado en los 5 años desde que hice la pregunta. – Adion