В пакете 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 после раскола. По крайней мере, теперь они (вроде как) немного работают вместе.]

Другие вопросы по тегам