gstreamer/ext
Mathieu Duponchelle 08442cc792 cccombiner: implement scheduling
Prior to that, cccombiner's behaviour was essentially that of
a funnel: it strictly looked at input timestamps to associate
together video and caption buffers.

This patch instead exposes a "schedule" property, with a default
of TRUE, to control whether caption buffers should be smoothly
scheduled, in order to have exactly one per output video buffer.

This can involve rewriting input captions, for example when the
input is CDP sequence counters are rewritten, time codes are dropped
and potentially re-injected if the input video frame had a time code
meta.

Caption buffers may also get split up in order to assign captions to
the correct field when the input is interlaced.

This can also imply that the input will drift from synchronization,
when there isn't enough padding in the input stream to catch up. In
that case the element will start dropping old caption buffers once
the number of buffers in its internal queue reaches a certain limit
(configurable).

The property is exposed so that existing users of cccombiner can
revert back to the original behaviour, but should eventually be
removed, as that behaviour was simply inadequate.

This commit also disallows changing the input caption type, as
this would needlessly complicate implementation, and removes
the corresponding test.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2076>
2021-03-17 22:00:25 +00:00
..
aom plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
assrender assrender: Don't try unlocking unlocked mutex 2020-12-29 11:19:53 +00:00
avtp tests/avtp: Fix coverity issues 2020-09-28 18:40:43 +00:00
bs2b Remove autotools build system 2019-10-14 13:54:27 +01:00
bz2 Remove autotools build system 2019-10-14 13:54:27 +01:00
chromaprint Remove autotools build system 2019-10-14 13:54:27 +01:00
closedcaption cccombiner: implement scheduling 2021-03-17 22:00:25 +00:00
colormanagement plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
curl curl: Remove incorrect GST_DEBUG_OBJECT() calls 2020-12-03 13:31:38 +00:00
dash dashsink: add h265 codec support 2021-01-26 17:47:53 +00:00
dc1394 plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
directfb directfb: suppress compiler warning from directfb headers 2020-07-25 19:47:43 +01:00
dtls dtls: use GST_WARNING instead of g_warning 2021-02-17 23:10:55 +00:00
dts Remove autotools build system 2019-10-14 13:54:27 +01:00
faac docs: Add some more plugin API types 2020-06-09 12:28:13 -04:00
faad Remove autotools build system 2019-10-14 13:54:27 +01:00
fdkaac fdkaacenc: Implement flush function 2020-08-17 23:39:39 +03:00
flite Remove autotools build system 2019-10-14 13:54:27 +01:00
fluidsynth fluiddec: Move logging init into plugin_init 2020-02-11 12:10:50 +00:00
gme Remove autotools build system 2019-10-14 13:54:27 +01:00
gsm Remove autotools build system 2019-10-14 13:54:27 +01:00
hls hlsdemux: Use actual object for logging 2020-12-03 14:31:17 +00:00
iqa iqa: Add a 'mode' property 2020-07-23 17:14:08 +00:00
isac isac: add iSAC plugin 2020-10-29 16:59:18 +01:00
kate remove various useless linefeed in logs 2019-12-11 10:51:29 +01:00
ladspa gstladspautils.c: avoid implicit float to int conversion 2020-08-04 11:37:52 +00:00
ldac ldac: Use pkg-config instead of raw lib/header search 2021-01-27 17:16:57 -05:00
libde265 Remove autotools build system 2019-10-14 13:54:27 +01:00
libmms documentation: fixed a heap o' typos 2019-11-05 09:11:25 -05:00
lv2 gstlv2utils.c: avoid implicit float to int conversion 2020-08-04 11:37:52 +00:00
mdns ext: add libmicrodns-based mdns device provider 2019-10-08 12:28:01 +00:00
modplug modplug: avoid division by zero 2020-08-28 08:10:04 +10:00
mpeg2enc mpeg2enc: add disable-encode-retries property 2020-08-06 17:13:03 +00:00
mplex plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
musepack musepackdec: Don't fail all queries if no sample rate is known yet 2020-05-06 08:51:38 +00:00
neon meson: build with neon 0.31 2020-04-03 18:50:16 -04:00
ofa Remove autotools build system 2019-10-14 13:54:27 +01:00
openal Remove autotools build system 2019-10-14 13:54:27 +01:00
openaptx openaptx: Drop lib prefix from option name for consistency 2020-12-11 22:08:01 -05:00
opencv opencv: Expose retinex parameters 2020-12-03 17:04:07 +01:00
openexr openexr: Fix check for when to pass -std=c++98 2019-12-02 08:53:59 +00:00
openh264 openh264enc: Add support for main and high profiles 2021-02-11 14:58:35 +00:00
openjpeg openjpegenc: store stripe offset when encoding image 2020-11-12 13:53:47 +00:00
openmpt Remove autotools build system 2019-10-14 13:54:27 +01:00
openni2 Mark more plugin GTypes as plugin API 2020-06-19 13:05:38 +01:00
opus Remove autotools build system 2019-10-14 13:54:27 +01:00
qroverlay qroverlay: Reuse the same OverlayComposition object when possible 2020-11-26 14:34:34 +00:00
resindvd remove various useless linefeed in logs 2019-12-11 10:51:29 +01:00
rsvg Remove autotools build system 2019-10-14 13:54:27 +01:00
rtmp rtmp, transcodebin: fix i18n header includes 2020-07-07 19:55:00 +01:00
sbc Remove autotools build system 2019-10-14 13:54:27 +01:00
sctp sctp: Do downward state change logic after chaining up. 2020-10-31 01:47:06 +00:00
smoothstreaming smoothstreaming: clear live adapter on seek 2020-09-30 11:48:02 +00:00
sndfile Remove autotools build system 2019-10-14 13:54:27 +01:00
soundtouch pitch: Remove useless restriction on number of channel 2020-05-22 18:18:28 -04:00
spandsp spanplc: Don't segfault when retrieving the stats property without a spanplc context 2020-05-10 08:44:09 +00:00
srt srt: preserve ABI compatibility 2021-02-03 23:39:00 +01:00
srtp plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
svthevcenc svthevcenc: Add new SVT-HEVC encoder element 2019-12-20 15:43:55 +00:00
teletextdec remove various useless linefeed in logs 2019-12-11 10:51:29 +01:00
ttml ttmlparse: Handle whitespace before XML declaration 2020-10-30 07:01:52 +00:00
voaacenc Remove autotools build system 2019-10-14 13:54:27 +01:00
voamrwbenc plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
vulkan vulkan: Fix elements long name. 2021-02-24 20:15:52 +01:00
wayland wlvideoformat: fix DMA format convertor 2020-11-02 12:39:38 +00:00
webp plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
webrtc webrtc: don't generate duplicate rtx payloads when bundle-policy is set 2021-03-09 02:22:35 +00:00
webrtcdsp plugins: uddate gst_type_mark_as_plugin_api() calls 2020-06-06 00:40:42 +02:00
wildmidi documentation: fixed a heap o' typos 2019-11-05 09:11:25 -05:00
wpe wpe: Ignore 'error-cancelled' 'failures' 2021-03-16 13:06:22 +00:00
x265 x265enc: fix deadlock on reconfig 2020-10-09 06:39:36 +00:00
zbar zbar: remove useless conditional on passthrough 2020-01-07 17:24:50 +00:00
zxing zxing: update to support version 1.1.1 2021-03-12 01:03:49 +00:00
meson.build openaptx: add aptX and aptX-HD codecs using libopenaptx 2020-12-11 11:55:54 +03:00