[FFmpeg-devel] [PATCH] ffmpeg: switch to codecpar
Michael Niedermayer
michael at niedermayer.cc
Wed Sep 21 13:26:48 EEST 2016
On Tue, Sep 20, 2016 at 11:20:48PM +0200, Clément Bœsch wrote:
> From: Clément Bœsch <clement at stupeflix.com>
>
> This commit is largely based on commit 15e84ed3 from Anton Khirnov
> <anton at khirnov.net> which was previously skipped in bbf5ef9d.
>
> There are still a bunch of things raising codecpar related warnings that
> need fixing, such as:
> - the use of codec->debug in the interactive debug mode
> - read_ffserver_streams(): it's probably broken now but there is no test
> - lowres stuff
> - codec copy apparently required by bitstream filters
>
> The matroska references are updated because they now properly forward
> the field_order (previously unknown, now progressive).
>
> Thanks to James Almer for fixing a bunch of FATE issues in this commit.
>
> Signed-off-by: Clément Bœsch <clement at stupeflix.com>
> Signed-off-by: James Almer <jamrial at gmail.com>
> ---
> Changes since previous patch:
> - restore the usage of avctx instead of ost->enc_ctx in the extradata stuff
> (which is going away in later commits)
> - unconditionnally set pkt_timebase (as suggested by nevcairiel) with a new
> simpler comment
> - restored the frame_size copy which i discarded by mistake
> ---
> cmdutils.c | 4 +-
> ffmpeg.c | 234 +++++++++++++++++++++++++----------------------
> ffmpeg.h | 1 +
> ffmpeg_filter.c | 24 ++---
> ffmpeg_opt.c | 140 ++++++++++++++++------------
> libavformat/utils.c | 2 +-
This should go in a seperate patch possibly with a version bump
so ffmpeg.c can properly "depend" on that avformat version
[...]
> @@ -708,22 +709,30 @@ static void add_input_streams(OptionsContext *o, AVFormatContext *ic)
> exit_program(1);
> }
>
> - ret = avcodec_copy_context(ist->dec_ctx, dec);
> + ret = avcodec_parameters_to_context(ist->dec_ctx, par);
> if (ret < 0) {
> av_log(NULL, AV_LOG_ERROR, "Error initializing the decoder context.\n");
> exit_program(1);
> }
>
> - switch (dec->codec_type) {
> + switch (par->codec_type) {
> case AVMEDIA_TYPE_VIDEO:
> if(!ist->dec)
> - ist->dec = avcodec_find_decoder(dec->codec_id);
> + ist->dec = avcodec_find_decoder(par->codec_id);
> #if FF_API_EMU_EDGE
> - if (av_codec_get_lowres(dec)) {
> - dec->flags |= CODEC_FLAG_EMU_EDGE;
> + if (av_codec_get_lowres(st->codec)) {
> + ist->dec_ctx->lowres = av_codec_get_lowres(st->codec);
av_codec_set_lowres()
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
I am the wisest man alive, for I know one thing, and that is that I know
nothing. -- Socrates
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20160921/82ed88b7/attachment.sig>
More information about the ffmpeg-devel
mailing list