cccombiner: fix emission of selected-samples in one case
authorMathieu Duponchelle <mathieu@centricular.com>
Tue, 26 Oct 2021 13:58:26 +0000 (15:58 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Tue, 26 Oct 2021 14:48:13 +0000 (14:48 +0000)
Detected while reading the code, cccombiner must set
self->current_video_buffer to NULL *after* emitting selected-samples
in order for the application to get a useful return when peeking
the next video sample.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1252>

subprojects/gst-plugins-bad/ext/closedcaption/gstcccombiner.c

index e7f230d..f72d8a2 100644 (file)
@@ -720,10 +720,10 @@ gst_cc_combiner_collect_captions (GstCCCombiner * self, gboolean timeout)
   if (!caption_pad) {
     GST_LOG_OBJECT (self, "No caption pad, passing through video");
     video_buf = self->current_video_buffer;
-    self->current_video_buffer = NULL;
     gst_aggregator_selected_samples (GST_AGGREGATOR_CAST (self),
         GST_BUFFER_PTS (video_buf), GST_BUFFER_DTS (video_buf),
         GST_BUFFER_DURATION (video_buf), NULL);
+    self->current_video_buffer = NULL;
     goto done;
   }