[FFmpeg-devel] [PATCH] avformat: make AVStream.pts_wrap_bits public

Michael Niedermayer michael at niedermayer.cc
Fri Jun 11 15:03:43 EEST 2021


On Thu, Jun 10, 2021 at 03:27:37PM -0300, James Almer wrote:
> On 6/10/2021 3:18 PM, Michael Niedermayer wrote:
> > On Wed, Jun 09, 2021 at 03:07:41PM -0300, James Almer wrote:
> > > It can be useful to library users, and is currently being used by ffmpeg.c
> > > 
> > > Suggested-by: Hendrik Leppkes <h.leppkes at gmail.com>
> > > Signed-off-by: James Almer <jamrial at gmail.com>
> > > ---
> > >   doc/APIchanges         |  3 +++
> > >   libavformat/avformat.h | 17 +++++++----------
> > >   libavformat/version.h  |  4 ++--
> > >   3 files changed, 12 insertions(+), 12 deletions(-)
> > > 
> > > diff --git a/doc/APIchanges b/doc/APIchanges
> > > index c46f4d5304..1b25bddd43 100644
> > > --- a/doc/APIchanges
> > > +++ b/doc/APIchanges
> > > @@ -14,6 +14,9 @@ libavutil:     2021-04-27
> > >   API changes, most recent first:
> > > +2021-06-09 - xxxxxxxxxx - lavf 59.3.100 - avformat.h
> > > +  Add pts_wrap_bits to AVStream
> > > +
> > >   2021-04-27 - cb3ac722f4 - lavc 59.0.100 - avcodec.h
> > >     Constified AVCodecParserContext.parser.
> > > diff --git a/libavformat/avformat.h b/libavformat/avformat.h
> > > index 094683f12a..0d12d5b0d2 100644
> > > --- a/libavformat/avformat.h
> > > +++ b/libavformat/avformat.h
> > > @@ -980,17 +980,14 @@ typedef struct AVStream {
> > >        */
> > >       AVCodecParameters *codecpar;
> > > -    /*****************************************************************
> > > -     * All fields below this line are not part of the public API. They
> > > -     * may not be used outside of libavformat and can be changed and
> > > -     * removed at will.
> > > -     * Internal note: be aware that physically removing these fields
> > > -     * will break ABI. Replace removed fields with dummy fields, and
> > > -     * add new fields to AVStreamInternal.
> > > -     *****************************************************************
> > > +    /**
> > > +     * Number of bits in pts. Used for wrapping control.
> > > +     *
> > > +     * - demuxing: set by libavformat
> > > +     * - muxing: set by libavformat
> > > +     *
> > >        */
> > > -
> > > -    int pts_wrap_bits; /**< number of bits in pts (used for wrapping control) */
> > > +    int pts_wrap_bits;
> > >       /**
> > >        * An opaque field for libavformat internal usage.
> > 
> > The "All fields below this line..." thing should be moved down instead of
> > removed as i realize that this was not the last field
> 
> No, the remaining field is the AVStreamInternal opaque one. Like in other
> structs, it's public in the sense its offset is fixed, but should not be
> accessed by the user.
> 
> One of purposes of this patch is precisely get rid of that ugly notice, so
> new fields are added directly at the end, and existing offsets can remain
> fixed within a given soname.

If you apply this patch there are 3 fields not 1 afterwards, the other 2 are
int64_t first_dts;
int64_t cur_dts;

cur_dts is certainly not supposed to be a public field

now i see, where my mistake probably was, this is supposed to be applied
with other patches removing these fields first. Though this patch does
apply on its own here.

thx

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

The real ebay dictionary, page 2
"100% positive feedback" - "All either got their money back or didnt complain"
"Best seller ever, very honest" - "Seller refunded buyer after failed scam"
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 195 bytes
Desc: not available
URL: <https://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20210611/07ee3a10/attachment.sig>


More information about the ffmpeg-devel mailing list