From 7ba9493ff12478a8e8116dd860e5b16adc29e571 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Mon, 5 Nov 2018 17:07:32 +0200 Subject: [PATCH] ccextractor: Handle multiple caption metas per buffer --- ext/closedcaption/gstccextractor.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/ext/closedcaption/gstccextractor.c b/ext/closedcaption/gstccextractor.c index 72eeecc786..b6bd22bff7 100644 --- a/ext/closedcaption/gstccextractor.c +++ b/ext/closedcaption/gstccextractor.c @@ -349,12 +349,13 @@ gst_cc_extractor_chain (GstPad * pad, GstObject * parent, GstBuffer * buf) GstCCExtractor *filter = (GstCCExtractor *) parent; GstFlowReturn flow = GST_FLOW_OK; GstVideoCaptionMeta *cc_meta; + gpointer iter = NULL; - cc_meta = gst_buffer_get_video_caption_meta (buf); - if (cc_meta) + while ((cc_meta = + (GstVideoCaptionMeta *) gst_buffer_iterate_meta_filtered (buf, &iter, + GST_VIDEO_CAPTION_META_API_TYPE)) && flow == GST_FLOW_OK) { flow = gst_cc_extractor_handle_meta (filter, buf, cc_meta); - else - GST_DEBUG_OBJECT (filter, "No CC meta on buffer"); + } /* If there's an issue handling the CC, return immediately */ if (flow != GST_FLOW_OK) {