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

Michael Niedermayer michael at niedermayer.cc
Fri Jun 11 17:13:14 EEST 2021


On Fri, Jun 11, 2021 at 09:34:10AM -0300, James Almer wrote:
> On 6/11/2021 9:03 AM, Michael Niedermayer wrote:
> > 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.
> 
> I sent this patch after i had pushed the one removing the two fields you
> mention above.
> Were you maybe looking at a tree without the latest commits? I guess this
> patch could still apply just fine without the other changes if they were not
> already in your tree.

yes

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

Never trust a computer, one day, it may think you are the virus. -- Compn
-------------- 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/3039af8c/attachment.sig>


More information about the ffmpeg-devel mailing list