diff options
author | wm4 <wm4@nowhere> | 2016-03-31 22:00:45 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-03-31 22:00:45 +0200 |
commit | c971220cdd360b56efc0e67536bdf19501477aa4 (patch) | |
tree | 74ffd570b80306725898d81e705e09b3a4dfdb8d /common/av_common.c | |
parent | 38c813c919a2c7d59d6113f16252aa3be96f3fca (diff) | |
download | mpv-c971220cdd360b56efc0e67536bdf19501477aa4.tar.bz2 mpv-c971220cdd360b56efc0e67536bdf19501477aa4.tar.xz |
demux_lavf, ad_lavc, ad_spdif, vd_lavc: handle FFmpeg codecpar API change
AVFormatContext.codec is deprecated now, and you're supposed to use
AVFormatContext.codecpar instead.
Handle this for all of the normal playback code.
Encoding mode isn't touched.
Diffstat (limited to 'common/av_common.c')
-rw-r--r-- | common/av_common.c | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/common/av_common.c b/common/av_common.c index 6efa1803fd..e40c751e9f 100644 --- a/common/av_common.c +++ b/common/av_common.c @@ -25,9 +25,12 @@ #include <libavutil/cpu.h> #include <libavcodec/avcodec.h> +#include "config.h" + #include "common/common.h" #include "common/msg.h" #include "demux/packet.h" +#include "demux/stheader.h" #include "av_common.h" #include "codecs.h" @@ -68,6 +71,19 @@ void mp_copy_lav_codec_headers(AVCodecContext *avctx, AVCodecContext *st) avctx->has_b_frames = st->has_b_frames; } +// This only copies ffmpeg-native codec parameters. Parameters produced by +// other demuxers must be handled manually. +void mp_set_lav_codec_headers(AVCodecContext *avctx, struct mp_codec_params *c) +{ +#if HAVE_AVCODEC_HAS_CODECPAR + if (c->lav_codecpar) + avcodec_parameters_to_context(avctx, c->lav_codecpar); +#else + if (c->lav_headers) + mp_copy_lav_codec_headers(avctx, c->lav_headers); +#endif +} + // We merely pass-through our PTS/DTS as an int64_t; libavcodec won't use it. union pts { int64_t i; double d; }; |