[FFmpeg-devel] [PATCH] avpacket: RFC for ABI bump additions
Marton Balint
cus at passwd.hu
Sat Jan 23 22:04:49 EET 2021
On Sat, 23 Jan 2021, Lynne wrote:
> This is an RFC about the upcoming additions to the AVPacket structure
> (whose size is still part of the ABI, so we need to plan for any changes).
>
> The current RFC patch adds 3 fields:
> - "void *opaque;" for the user to use as they wish, same as AVFrame.opaque
> - "void *opaque_ref;" for more permanent and propagating user data, same as AVFrame.opaque_ref
These seem legit.
> - "AVRational time_base;" which will be set to indicate the time base of the packet's timestamps
Why? It seems redundant and it will not be clear when to use to use
stream/bsf/etc time base and when embedded AVPacket timebase. So I don't
think this is a good idea.
>
> Some devs (JEEB) wanted reception timestamps and original, overflowed timestamps for MPEG-TS.
MPEG-TS with timestamps has many issues and I am afraid the introduction
of original/overflowed timestamps won't solve them:
- discontinuity - the discontinuity should be hidden from the output
timestamps, but the discontinuity should be detected based on the PCR of
the streams
- parsers - the parsers merge/split packets as they want, who knows what
will happen to the timestamps...
- overflows - ffmpeg's "infrastructure" for packet timestamp overflows
only handles a single wraparound, not multiple, so it is useless for
anything serious.
> I'd be willing to add a reception timestamp as long as we add an additional time_base field
> and make it independent of the packet's pts field, since those timestamps are usually on
> highly precise system clock time bases, and reducing their precision would be undesirable.
I don't know, I'd really like to see some actual benefit of these extra
timestamps before we agree to add specific fields for it. Until then, maye
just use side data?
>
> I'm not sure about overflowed original timestamps or how they would help.
> Perhaps we should introduce an AVBufferRef *internal_ref like with AVFrame to
> store such single library-only data?
I guess you mean private_ref. This can be added, if for nothing else, then
for consistency. :)
Regards,
Marton
More information about the ffmpeg-devel
mailing list