playbin3: New text-offset property
authorPhilippe Normand <philn@igalia.com>
Sun, 28 Oct 2018 14:45:26 +0000 (14:45 +0000)
committerPhilippe Normand <philn@igalia.com>
Thu, 1 Nov 2018 09:52:34 +0000 (09:52 +0000)
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

index 027766bb320fc80760950111a98e150a1ddde614..d35a806d0394b45269273b4b8886f25445fed0f6 100644 (file)
@@ -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;