I have libavformat56 and libavformat-dev installed on my machine. I'm building some source right now which uses the libavformat.h header. The source (nameply the Pangolin library by Steven Lovegrove) correctly preprocessor-fences between




based on LIBAVFORMAT_VERSION_MAJOR (compared to 54).

This resolves to 56, thus the latter is used. I've checked the official header file over here for version 56, and, as expected avformat_alloc_output_context2 was there.

However, the very same header at /usr/include/libavformat/avformat.h on my system (currently at Utopic) only defines avformat_alloc_context.

Is this some kind of package bug, or is there something wrong I'm doing here?

P.S. if you feel like this should be asked on some different Stack Exchange forum, please let me know.

P.P.S. could anyone with libavformat-dev installed verify they don't have avformat_alloc_output_context2 in their header?


The problem is not a package bug.

It's just that I stupidly assumed libav would have the same functions for libavformat v.56 as ffmpeg.

The same issue is for the "avcodec_get_name" function as already asked here: https://stackoverflow.com/questions/23560748/avcodec-get-name-is-not-available-in-ubuntu-libavcodec-what-should-i-use

ffmpeg package seems to be coming to ubuntu velvet, I hope they provide the dev files for that as well, at least with some preprocessor flag to distinguish between ffmpeg and libav.

[Omitting here my groping about how selfish with respect to the community the libav & ffmpeg maintainers were after the split. At least now they're (kind-a) working together a bit.]

  • It was a lot of work to get FFmpeg back in Debian. – llogan Jan 29 '15 at 19:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.