[FFmpeg-devel] [PATCH 1/5] avformat: Adding accessors for externally used AVStream fields which are after the public field list

Michael Niedermayer michael at niedermayer.cc
Wed Jun 29 22:18:38 CEST 2016


On Wed, Jun 29, 2016 at 09:41:50PM +0200, Clément Bœsch wrote:
> On Wed, Jun 29, 2016 at 09:36:39PM +0200, Michael Niedermayer wrote:
> > Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> > ---
> >  libavformat/avformat.h |    4 ++++
> >  libavformat/utils.c    |   21 +++++++++++++++++++++
> >  2 files changed, 25 insertions(+)
> > 
> > diff --git a/libavformat/avformat.h b/libavformat/avformat.h
> > index 876f1e3..89f014b 100644
> > --- a/libavformat/avformat.h
> > +++ b/libavformat/avformat.h
> > @@ -1224,6 +1224,10 @@ void       av_stream_set_r_frame_rate(AVStream *s, AVRational r);
> >  struct AVCodecParserContext *av_stream_get_parser(const AVStream *s);
> >  char* av_stream_get_recommended_encoder_configuration(const AVStream *s);
> >  void  av_stream_set_recommended_encoder_configuration(AVStream *s, char *configuration);
> > +int64_t av_stream_get_cur_dts(AVStream *s);
> > +int64_t av_stream_get_first_dts(AVStream *s);
> > +int av_stream_get_pts_wrap_bits(AVStream *s);
> > +int64_t av_stream_get_codec_info_nb_frames(AVStream *s);
> >  
> >  /**
> >   * Returns the pts of the last muxed packet + its duration
> > diff --git a/libavformat/utils.c b/libavformat/utils.c
> > index 6f343f2..5168816 100644
> > --- a/libavformat/utils.c
> > +++ b/libavformat/utils.c
> > @@ -132,6 +132,27 @@ struct AVCodecParserContext *av_stream_get_parser(const AVStream *st)
> >      return st->parser;
> >  }
> >  
> > +int64_t av_stream_get_cur_dts(AVStream *s)
> > +{
> > +    return s->cur_dts;
> > +}
> > +
> > +int64_t av_stream_get_first_dts(AVStream *s)
> > +{
> > +    return s->first_dts;
> > +}
> > +
> > +int av_stream_get_pts_wrap_bits(AVStream *s)
> > +{
> > +    return s->pts_wrap_bits;
> > +}
> > +
> > +int64_t av_stream_get_codec_info_nb_frames(AVStream *s)
> > +{
> > +    return s->codec_info_nb_frames;
> > +}
> > +
> > +
> 
> erm. how about we move them in the public fields instead?

The 3.0 release has these fields in one location, the 3.1 release
has them in a different location because codecpar was added in the
middle. The fields are marked as private 

To fix this we can either as in this patchset add accessors and
use
them in all applications (probably not just ours)

OR

we could move codecpar to the end of AVStream

OR

we could bump major abi version

what do people prefer ?

moving them into the pblic fields will not make them match where
they where in 3.0, which is the problem  we have


[...]

-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Republics decline into democracies and democracies degenerate into
despotisms. -- Aristotle
-------------- 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/20160629/8aadc27f/attachment.sig>


More information about the ffmpeg-devel mailing list