[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