From 610fa167843e9350c9222393a80ee689ec5ed074 Mon Sep 17 00:00:00 2001 From: Philippe Normand Date: Sun, 28 Oct 2018 14:45:26 +0000 Subject: [PATCH] playbin3: New text-offset property This new property controls the synchronisation offset between the text and video streams. Positive values make the text ahead of the video and negative values make the text go behind the video. https://bugzilla.gnome.org/show_bug.cgi?id=797134 --- gst/playback/gstplaybin3.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/gst/playback/gstplaybin3.c b/gst/playback/gstplaybin3.c index 027766bb32..d35a806d03 100644 --- a/gst/playback/gstplaybin3.c +++ b/gst/playback/gstplaybin3.c @@ -564,6 +564,7 @@ enum PROP_BUFFER_SIZE, PROP_BUFFER_DURATION, PROP_AV_OFFSET, + PROP_TEXT_OFFSET, PROP_RING_BUFFER_MAX_SIZE, PROP_FORCE_ASPECT_RATIO, PROP_AUDIO_FILTER, @@ -901,6 +902,18 @@ gst_play_bin3_class_init (GstPlayBin3Class * klass) "The synchronisation offset between audio and video in nanoseconds", G_MININT64, G_MAXINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /** + * GstPlayBin3:text-offset: + * + * Control the synchronisation offset between the text and video streams. + * Positive values make the text ahead of the video and negative values make + * the text go behind the video. + */ + g_object_class_install_property (gobject_klass, PROP_TEXT_OFFSET, + g_param_spec_int64 ("text-offset", "Text Offset", + "The synchronisation offset between text and video in nanoseconds", + G_MININT64, G_MAXINT64, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); /** * GstPlayBin3:ring-buffer-max-size @@ -1822,6 +1835,10 @@ gst_play_bin3_set_property (GObject * object, guint prop_id, gst_play_sink_set_av_offset (playbin->playsink, g_value_get_int64 (value)); break; + case PROP_TEXT_OFFSET: + gst_play_sink_set_text_offset (playbin->playsink, + g_value_get_int64 (value)); + break; case PROP_RING_BUFFER_MAX_SIZE: playbin->ring_buffer_max_size = g_value_get_uint64 (value); if (playbin->curr_group) { @@ -2025,6 +2042,10 @@ gst_play_bin3_get_property (GObject * object, guint prop_id, GValue * value, g_value_set_int64 (value, gst_play_sink_get_av_offset (playbin->playsink)); break; + case PROP_TEXT_OFFSET: + g_value_set_int64 (value, + gst_play_sink_get_text_offset (playbin->playsink)); + break; case PROP_RING_BUFFER_MAX_SIZE: g_value_set_uint64 (value, playbin->ring_buffer_max_size); break;