closedcaption: Add various elements to work with ST-2038 ancillary streams
New elements
-
st2038ancdemux: splits SMPTE ST-2038 ancillary metadata (as received from
tsdemux
) into separate streams per DID/SDID and line/horizontal_offset. Will add a sometimes pad with details for each ancillary stream. Also has an always source pad that just outputs all ancillary streams for easy forwarding/remuxing, in case none of the ancillary streams need to be modified or dropped. -
st2038ancmux: muxes SMPTE ST-2038 ancillary metadata streams into a single stream for muxing into MPEG-TS with
mpegtsmux
. Combines ancillary data on the same line if needed, as is required for MPEG-TS muxing. Can accept individual ancillary metadata streams as inputs and/or the combined stream fromst2038ancdemux
. If the video framerate is known, it can be signalled to the ancillary data muxer via the output caps by adding a capsfilter behind it, with e.g.meta/x-st-2038,framerate=30/1
. This allows the muxer to bundle all packets belonging to the same frame (with the same timestamp), but that is not required. In case there are multiple streams with the same DID/SDID that have an ST-2038 packet for the same frame, it will prioritise the one from more recently created request pads over those from earlier created request pads (which might contain a combined stream for example if that's fed first). -
st2038anctocc: extracts closed captions (CEA-608 and/or CEA-708) from SMPTE ST-2038 ancillary metadata streams and outputs them on the respective sometimes source pad (
src_cea608
orsrc_cea708
). The data is output as a closed caption stream with capsclosedcaption/x-cea-608,format=s334-1a
orclosedcaption/x-cea-708,format=cdp
for further processing by other GStreamer closed caption processing elements. -
cctost2038anc: takes closed captions (CEA-608 and/or CEA-708) as produced by other GStreamer closed caption processing elements and converts them into SMPTE ST-2038 ancillary data that can be fed to
st2038ancmux
and then totsmux
for splicing/muxing into an MPEG-TS container. Theline-number
andhorizontal-offset
properties should be set to the desired line number and horizontal offset.
Prerequisites
- MPEG-TS demuxer/muxer support: gstreamer!7461 (merged)