Проблема компиляции ffmpeg: avcodec_find_decoder всегда возвращает null

Недавно я попытался обновить библиотеки ffmpeg, которые я использую в своем приложении Mac OS X, загрузив и скомпилировав ffmpeg из исходного кода.

Мой код правильно работает с предварительно скомпилированные библиотеки той же версии для Windows. В Mac OS X кажется, что библиотека работает (она может открыть файл и найти используемые потоки и кодеки), но когда доходит до avcodec_find_decoder, эта функция всегда возвращает null.

Код работал со старой версией библиотека (скомпилирована год назад в Mac OS X 10.5)

Я настроил fmpeg, используя

./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

Я проверил config.mak, и, похоже, в нем включены декодеры для типов файлов, которые я пробовал (ogg, vorbis, avi, мкв, ...) Я также проверил, используются ли правильные файлы заголовков и используется ли недавно скомпилированная библиотека.

Я нашел только несколько более старых сообщений, касающихся этой проблемы, но без какого-либо решения:

http: //lists.mplayerhq .hu / pipermail / ffmpeg-devel / 2007-январь / 021399.html

http://libav-users.943685.n4.nabble.com/avcodec-find-decoder-problem-td944800.html

Править : проверяя дальше, оказывается, что av_codec_next (NULL) также возвращает null, что означает, что нет ни одного доступного кодека, или что first_avcodec в utils.c не установлен (я вообще не нашел, где эта переменная установлена , Я бы предположил av_register_all, но я не могу найти его там)

6
задан Adion 3 November 2010 в 21:33
поделиться