Opened 8 years ago

Closed 8 years ago

#5600 closed enhancement (fixed)

Please merge patches output bytestream labels from libav

Reported by: Sesse Owned by:
Priority: normal Component: avformat
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

Hi,

libav recently acquired a feature that's very useful for streaming; it allows a client to register avio callbacks that get the type of data (header, keyframe, nothing special) each block begins, which means it can begin clients' streams from other places than the beginning of the stream without producing an invalid stream.

It is possible to infer the same information with the current API, but it is rather indirect, is based on assuming internal details of muxers, and requires frequent flushing (which messes up e.g. movenc's duration calculation, causing pts < dts in rare cases).

I've tested an earlier version of the patch set (on top of ffmpeg, not libav) for literally weeks in Nageru (my streaming application) with no problems, and I believe it would also be useful for e.g. VLC's streaming.

The patch series from libav (all directly after each other) is:

db7968bff4851c2be79b15b2cb2ae747424d2fca avio: Allow custom IO users to get labels for the output bytestream
371df9ba71393a1c5429d5f40c76348b30e556c7 flvenc: Provide output bytestream markers
dbbaad32e36b9046cd19d6e3329e2ca7ab49b401 movenc: Provide output bytestream markers for fragmented content
71852a1ba89abc8749e309d9d662c49d47e19531 matroskaenc: Provide output bytestream markers
fd4957d9c67996e7d218fd36b4168c9cb85f9ea7 movenc-test: Test write_data_type
e1eb0fc960163402bbb4e630185790488f7d28ed movenc: Use packets in interleaving queues for the duration at the end of fragments
a79aafd0b4d37eda6f15dc68e6509d4e815290c9 movenc: Add a test for VFR with b-frames, with a duration change at a fragment end
72d621069fc301b431fac36b5281699a362562f2 movenc: Add a missed const

There are some conflicts, but they seem simple to reconcile (possibly with the exception of test syntax differences, which I don't know anything about).

Change History (4)

comment:1 by Hendrik, 8 years ago

Changes will generally be merged in due time, no need to open tickets about that.

comment:2 by mateo, 8 years ago

The mentioned patches have been merged into master.

comment:3 by Sesse, 8 years ago

Resolution: fixed
Status: newclosed

Thank you!

comment:4 by Hendrik, 8 years ago

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.