ccconverter: split temporary storage into 3
authorMatthew Waters <matthew@centricular.com>
Thu, 19 Mar 2020 06:42:13 +0000 (17:42 +1100)
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Mon, 11 May 2020 12:30:31 +0000 (12:30 +0000)
commit7ed0bc539f473b66e3dad4f137f89e2cb0cdf808
tree79767e1fe2b1ebaefe203ddb57634d76fbeb950c
parent3417a1709c764a43fcd3966b2fb0e2f3c19efcb4
ccconverter: split temporary storage into 3

Instead of storing the raw cc_data, store the 2 cea608 fields individually
as well as the ccp data.

Simply copying the input cc_data to the output cc_data violates a number of
requirements in the cea708 specification.  The most prominent being, that
cea608 triples must be placed at the beginning of each cdp.

We also need to comply with the framerate-dpendent limits for both the
cea608 and the ccp data which may involve splitting or merging some
cea608 data but not ccp data or vice versa.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1116>
ext/closedcaption/gstccconverter.c
ext/closedcaption/gstccconverter.h
tests/check/elements/ccconverter.c