[FFmpeg-devel] [RFC] Exporting virtual timelines as stream side data

wm4 nfxjfg at googlemail.com
Wed Mar 28 13:21:03 EEST 2018

On Tue, 27 Mar 2018 20:44:00 +0100
Derek Buitenhuis <derek.buitenhuis at gmail.com> wrote:

> So, I know we have edit list "support" in mov.c, but I am steadfast in my
> belief that it is incorrect to implement it at the demuxing layer. By the
> ISOBMFF spec, it is supposed to be applied at the presenattion layer. I'm
> aware we probably cannot remove the current implementation very easily
> (or at all?) because many will argue it is "removing a feature". Thus, for
> ISOBMFF and mov support, this will likely have to live under a movflag,
> I assume?
> Anyway, this is my proposal for generic stream side data for virtual timelines.
> This is also meant to cover Matroska ordered chapters and editions, though I
> am not entirely sure how segment linking would work into this, if I am honest.
> If/once I have the side data structs and API (in the following RFC patch) agreed
> upon, I am willing to write:
>     * Support for exporting MOV/ISOBMFF edit lists via side data
>     * Support for exporting Matroska edit lists via side data
>     * Porting the fftools to use it (if wanted)
> As a side note, I would appreciate input from someone who unerstands Matroska
> better than I do on this. I haven't included e.g. the Hidden/Enabled flags in
> AVtimelineEntry since they don't seem to actually be useful to the actual
> timeline (they seem to be mostly related to displaying chapter names or not).
> The side data structs and API are based off of the recently pushed encryption
> side data changes. The media rate is a rational, because exporting a float
> would change on different platforms, and would make adding regression tests
> problematic.
> So, everyone, rev up your diesel powered bikesheds and drive them full steam
> into this thread's back yard, over my daffodils.
> Derek Buitenhuis (1):
>   avcodec/avutil: Add timeline side data
>  libavcodec/avcodec.h |   8 +++
>  libavutil/timeline.h | 160 +++++++++++++++++++++++++++++++++++++++++++++++++++
>  2 files changed, 168 insertions(+)
>  create mode 100644 libavutil/timeline.h

Concept LGTM.

More information about the ffmpeg-devel mailing list