[FFmpeg-devel] [PATCH] avcodec: Add avpriv_codec_get_cap_skip_frame_fill_param()

wm4 nfxjfg at googlemail.com
Wed Apr 20 20:18:54 CEST 2016


On Wed, 20 Apr 2016 15:05:40 -0300
James Almer <jamrial at gmail.com> wrote:

> On 4/20/2016 2:49 PM, Michael Niedermayer wrote:
> > With this the use of the caps_internal from libavormat can be avoided
> > 
> > TODO: bump version
> > 
> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > ---
> >  libavcodec/internal.h |    2 ++
> >  libavcodec/utils.c    |    4 ++++
> >  2 files changed, 6 insertions(+)
> > 
> > diff --git a/libavcodec/internal.h b/libavcodec/internal.h
> > index 24d320c..6c0efec 100644
> > --- a/libavcodec/internal.h
> > +++ b/libavcodec/internal.h
> > @@ -293,6 +293,8 @@ const uint8_t *avpriv_find_start_code(const uint8_t *p,
> >                                        const uint8_t *end,
> >                                        uint32_t *state);
> >  
> > +int avpriv_codec_get_cap_skip_frame_fill_param(const AVCodec *codec);
> > +
> >  /**
> >   * Check that the provided frame dimensions are valid and set them on the codec
> >   * context.
> > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > index 44843a4..9766bb0 100644
> > --- a/libavcodec/utils.c
> > +++ b/libavcodec/utils.c
> > @@ -1160,6 +1160,10 @@ int av_codec_get_max_lowres(const AVCodec *codec)
> >      return codec->max_lowres;
> >  }
> >  
> > +int avpriv_codec_get_cap_skip_frame_fill_param(const AVCodec *codec){
> > +    return !!(codec->caps_internal & FF_CODEC_CAP_SKIP_FRAME_FILL_PARAM);
> > +}  
> 
> Might as well do a generic accessor function like "int avpriv_codec_get_caps(const AVCodec *codec)"
> or "int avpriv_codec_check_cap(const AVCodec *codec, int cap)" if this field is going to be used
> outside lavc.
> If for whatever reason any of the other flags need to be checked in lavf, you'll not need to
> introduce another avpriv function.

IMHO the idea should be that another of such a case shouldn't happen.
The case which this patch tries to fix was introduced accidentally
(and also, it really should have been implemented as a parser).

I still wonder if this could be fixed in a better way.


More information about the ffmpeg-devel mailing list