[FFmpeg-devel] [crop support for matroska demuxer 1/3] libavcodec: Add crop related fields to structure AVCodecContext and AVCodecParameters.

Anton Khirnov anton at khirnov.net
Tue Oct 4 14:34:35 EEST 2022


Quoting Timo Rothenpieler (2022-10-01 13:24:26)
> On 01.10.2022 08:13, OvchinnikovDmitrii wrote:
> > ---
> >   libavcodec/avcodec.h   | 8 ++++++++
> >   libavcodec/codec_par.h | 8 ++++++++
> >   2 files changed, 16 insertions(+)
> > 
> > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> > index 7365eb5cc0..66df571afc 100644
> > --- a/libavcodec/avcodec.h
> > +++ b/libavcodec/avcodec.h
> > @@ -585,6 +585,14 @@ typedef struct AVCodecContext {
> >        */
> >       int coded_width, coded_height;
> >   
> > +    /**
> > +     * The dimensions of the crop, usually from container.
> > +     */
> > +    int crop_top;
> > +    int crop_left;
> > +    int crop_bottom;
> > +    int crop_right;
> > +
> 
> Shouldn't these be added at the very end, to not break ABI?
> 

yes they should

> I'm also not very convinced this kind of information really belongs into 
> AVCodecContext and codecpar.
> Can't it just be frame-sidedata?

AVFrame already has fields for this, which are typically filled from
codec-level headers.

The idea here is to support container-level information, so some new
fields for lavf are certainly needed, but I'm not convinced just adding
them to AVCodecContext is the best solution. The semantics of these new
fields definitely need to be defined more precisely (like who sets them
and what does lavc do with the values).

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list