В пакете avformat заголовки устарели
На моей машине установлены libavformat56 и libavformat-dev. Я сейчас создаю некоторый исходный код, который использует заголовок libavformat.h. Источник (например, библиотека Панголина Стивена Лавгроува) правильно препроцессор-заборы между
avformat_alloc_context
а также
avformat_alloc_output_context2
основанный на LIBAVFORMAT_VERSION_MAJOR (по сравнению с 54).
Это разрешает до 56, таким образом, последний используется. Я проверил здесь официальный файл заголовка для версии 56, и, как и ожидалось, там был avformat_alloc_output_context2.
Однако тот же самый заголовок в /usr/include/libavformat/avformat.h в моей системе (в настоящее время в Utopic) определяет только avformat_alloc_context.
Это какая-то ошибка в пакете, или я что-то здесь не так делаю?
PS Если вы считаете, что об этом нужно спросить на другом форуме Stack Exchange, пожалуйста, дайте мне знать.
PPS может кто-нибудь с установленным libavformat-dev убедиться, что в его заголовке нет avformat_alloc_output_context2?
1 ответ
Проблема не в ошибке пакета.
Просто я тупо предполагал, что libav будет иметь те же функции для libavformat v.56, что и ffmpeg.
Та же проблема для функции "avcodec_get_name", как уже было задано здесь: https://stackoverflow.com/questions/23560748/avcodec-get-name-is-not-available-in-ubuntu-libavcodec-what-should-i-use
Пакет ffmpeg, похоже, подходит к Ubuntu Velvet, я надеюсь, что они также предоставят файлы dev для этого, по крайней мере, с некоторым флагом препроцессора, чтобы различать ffmpeg и libav.
[Пропустив здесь мои намеки на то, насколько эгоистичными по отношению к сообществу были сторонники libav & ffmpeg после раскола. По крайней мере, теперь они (вроде как) немного работают вместе.]