diff options
author | Vivia Nikolaidou <vivia@ahiru.eu> | 2020-07-01 20:27:14 +0300 |
---|---|---|
committer | GStreamer Merge Bot <gitlab-merge-bot@gstreamer-foundation.org> | 2020-07-03 08:25:54 +0000 |
commit | 31d5d04bb1f5e3f6acdef8460193019237ecf5df (patch) | |
tree | dbea5062a21f3bfdecbb724f4387f939577e756b /gst/videoparsers | |
parent | c94675f1d4a9b5f8520cf4162c2c6964a760fcca (diff) | |
download | gstreamer-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.c | 11 |
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; |