mxfdemux: Handle non-frame wrapping
authorEdward Hervey <edward@centricular.com>
Thu, 15 Jul 2021 08:59:39 +0000 (10:59 +0200)
committerEdward Hervey <bilboed@bilboed.com>
Wed, 21 Jul 2021 14:33:19 +0000 (14:33 +0000)
commit726ea62d25a55d0e964157358fcfefa8d84a94a6
tree1aa87feefeab5f6f8d44746a475a80a93c2c3a6d
parent38ec61c58647e5185bcc01c888e711b05326a1a0
mxfdemux: Handle non-frame wrapping

* If we have an index table for non-framed essence, we can handle it

* The demuxer has a state which indicates whether it will next fetch a KLV or
data contained *within* a KLV.

* The position on Essence Tracks always correspond to the next entry to fetch,
demuxer offset will be skipped accordingly whenever we switch between
partitions (in case of resyncs). A copy of the main clip/custom KLV for that
partition is kept to track the position within the essence of that partition.

* For clip/custom-wrapped raw audio, if the edit rate is too small (and would
cause plenty of tiny buffers to be outputted), specify a minimum number of edit
units per buffer.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2371>
gst/mxf/mxfdemux.c
gst/mxf/mxfdemux.h