summaryrefslogtreecommitdiff
path: root/gst/videoparsers
diff options
context:
space:
mode:
authorVivia Nikolaidou <vivia@ahiru.eu>2020-07-01 20:27:14 +0300
committerGStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org>2020-07-03 08:25:54 +0000
commit31d5d04bb1f5e3f6acdef8460193019237ecf5df (patch)
treedbea5062a21f3bfdecbb724f4387f939577e756b /gst/videoparsers
parentc94675f1d4a9b5f8520cf4162c2c6964a760fcca (diff)
downloadgstreamer-plugins-bad-31d5d04bb1f5e3f6acdef8460193019237ecf5df.tar.gz
videoparseutils: Only add a single closed caption meta
Otherwise, having a stream go through a parser multiple times would result in duplicate closed caption meta. Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1396>
Diffstat (limited to 'gst/videoparsers')
-rw-r--r--gst/videoparsers/gstvideoparseutils.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/gst/videoparsers/gstvideoparseutils.c b/gst/videoparsers/gstvideoparseutils.c
index 20dae767c..cec724ac2 100644
--- a/gst/videoparsers/gstvideoparseutils.c
+++ b/gst/videoparsers/gstvideoparseutils.c
@@ -252,9 +252,14 @@ gst_video_push_user_data (GstElement * elt, GstVideoParseUserData * user_data,
/* 1. handle closed captions */
if (user_data->closedcaptions_size > 0) {
- gst_buffer_add_video_caption_meta (buf,
- user_data->closedcaptions_type, user_data->closedcaptions,
- user_data->closedcaptions_size);
+ if (!gst_buffer_get_meta (buf, GST_VIDEO_CAPTION_META_API_TYPE)) {
+ gst_buffer_add_video_caption_meta (buf,
+ user_data->closedcaptions_type, user_data->closedcaptions,
+ user_data->closedcaptions_size);
+ } else {
+ GST_DEBUG_OBJECT (elt, "Closed caption data already found on buffer, "
+ "discarding to avoid duplication");
+ }
user_data->closedcaptions_type = GST_VIDEO_CAPTION_TYPE_UNKNOWN;
user_data->closedcaptions_size = 0;