[FFmpeg-devel] [PATCH] avcodec: add properties for lossless to AVCodecParameters

wm4 nfxjfg at googlemail.com
Mon May 9 09:36:22 CEST 2016


On Sun, 8 May 2016 17:33:32 +0200
Michael Niedermayer <michael at niedermayer.cc> wrote:

> On Sun, May 08, 2016 at 04:10:01PM +0200, wm4 wrote:
> > On Sun,  8 May 2016 12:10:07 +0200
> > Michael Niedermayer <michael at niedermayer.cc> wrote:
> >   
> > > Fixes Ticket5467
> > > 
> > > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > > ---
> > >  libavcodec/avcodec.h |    4 ++++
> > >  libavcodec/utils.c   |    2 ++
> > >  2 files changed, 6 insertions(+)
> > > 
> > > diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
> > > index 3813a0a..1db2e0f 100644
> > > --- a/libavcodec/avcodec.h
> > > +++ b/libavcodec/avcodec.h
> > > @@ -4050,6 +4050,10 @@ typedef struct AVCodecParameters {
> > >       * Audio only. Number of samples to skip after a discontinuity.
> > >       */
> > >      int seek_preroll;
> > > +
> > > +    /** Properties, like FF_CODEC_PROPERTY_LOSSLESS.
> > > +     */
> > > +    int properties;
> > >  } AVCodecParameters;
> > >  
> > >  /**
> > > diff --git a/libavcodec/utils.c b/libavcodec/utils.c
> > > index e6609ef..8638bc2 100644
> > > --- a/libavcodec/utils.c
> > > +++ b/libavcodec/utils.c
> > > @@ -4076,6 +4076,7 @@ int avcodec_parameters_from_context(AVCodecParameters *par,
> > >      par->bits_per_raw_sample   = codec->bits_per_raw_sample;
> > >      par->profile               = codec->profile;
> > >      par->level                 = codec->level;
> > > +    par->properties            = codec->properties;
> > >  
> > >      switch (par->codec_type) {
> > >      case AVMEDIA_TYPE_VIDEO:
> > > @@ -4130,6 +4131,7 @@ int avcodec_parameters_to_context(AVCodecContext *codec,
> > >      codec->bits_per_raw_sample   = par->bits_per_raw_sample;
> > >      codec->profile               = par->profile;
> > >      codec->level                 = par->level;
> > > +    codec->properties            = par->properties;
> > >  
> > >      switch (par->codec_type) {
> > >      case AVMEDIA_TYPE_VIDEO:  
> > 
> > Can you explain what exactly this is needed for?  
> 
> User apps can with this identify which streams are lossless without
> them needing to open decoders for each stream and explicitly decode
> some frames for each stream.

I'd argue that AVCodecParameters should contain only container
properties, or we'd end up with duplicating most of AVCodecContext in
it.

> it fixes a regression where this information is incorrectly printed
> by av_dump_format()
> 
> it fixes a regression where the existing lossless flag as documented by
> the current documentation is set incorrectly
> 
> [...]
> 



More information about the ffmpeg-devel mailing list