decoder/ffmpeg: use avcodec_descriptor_get() to determine codec name

In version 11, both ffmpeg and libav deprecate
AVCodecContext::codec_name.  The function avcodec_descriptor_get() has
been introduced long ago.
This commit is contained in:
Max Kellermann 2014-08-13 18:40:39 +02:00
parent c3f111a56c
commit fe9299ceff
2 changed files with 11 additions and 0 deletions

2
NEWS
View File

@ -1,4 +1,6 @@
ver 0.18.13 (not yet released) ver 0.18.13 (not yet released)
* decoder
- ffmpeg: support ffmpeg/libav version 11
ver 0.18.12 (2014/07/30) ver 0.18.12 (2014/07/30)
* database * database

View File

@ -433,9 +433,18 @@ ffmpeg_decode(Decoder &decoder, InputStream &input)
AVStream *av_stream = format_context->streams[audio_stream]; AVStream *av_stream = format_context->streams[audio_stream];
AVCodecContext *codec_context = av_stream->codec; AVCodecContext *codec_context = av_stream->codec;
#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(54, 25, 0)
const AVCodecDescriptor *codec_descriptor =
avcodec_descriptor_get(codec_context->codec_id);
if (codec_descriptor != nullptr)
FormatDebug(ffmpeg_domain, "codec '%s'",
codec_descriptor->name);
#else
if (codec_context->codec_name[0] != 0) if (codec_context->codec_name[0] != 0)
FormatDebug(ffmpeg_domain, "codec '%s'", FormatDebug(ffmpeg_domain, "codec '%s'",
codec_context->codec_name); codec_context->codec_name);
#endif
AVCodec *codec = avcodec_find_decoder(codec_context->codec_id); AVCodec *codec = avcodec_find_decoder(codec_context->codec_id);