decodebin3: only force streams-selected seqnum after a select-streams
authorFrançois Laignel <fengalin@free.fr>
Sat, 10 Oct 2020 15:26:42 +0000 (17:26 +0200)
committerFrançois Laignel <fengalin@free.fr>
Sat, 10 Oct 2020 16:00:04 +0000 (18:00 +0200)
The initial streams-selected message might not match any select-streams,
in which case it is currently overriden with GST_SEQNUM_INVALID.

Related to:

- https://gitlab.freedesktop.org/gstreamer/gstreamer-rs/-/merge_requests/601

Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-base/-/merge_requests/860>

gst/playback/gstdecodebin3.c

index 1a84220..1ab9544 100644 (file)
@@ -1625,7 +1625,9 @@ is_selection_done (GstDecodebin3 * dbin)
 
   /* We are completely active */
   msg = gst_message_new_streams_selected ((GstObject *) dbin, dbin->collection);
-  GST_MESSAGE_SEQNUM (msg) = dbin->select_streams_seqnum;
+  if (dbin->select_streams_seqnum != GST_SEQNUM_INVALID) {
+    gst_message_set_seqnum (msg, dbin->select_streams_seqnum);
+  }
   for (tmp = dbin->output_streams; tmp; tmp = tmp->next) {
     DecodebinOutputStream *output = (DecodebinOutputStream *) tmp->data;
     if (output->slot) {