metadata propagation in gsttransform plugins

Philippe De Muyter phdm at macq.eu
Fri Jan 20 08:30:48 UTC 2017


On Thu, Jan 19, 2017 at 04:08:51PM +0100, Philippe De Muyter wrote:
> Hi Dimitrios,
> 
> On Thu, Jan 19, 2017 at 12:47:43PM +0100, Dimitrios Katsaros wrote:
> > If you have no tags in the gst_meta_api_type_register then the metadata
> > should pass all the element checks. So adding the video tag and removing
> > memory would only change something if you were already defining you own
> > tags, like e.g. GPS.
> 
> Well, I have now removed our own tag and the newly added "video" tag,
> calling thus gst_meta_api_type_register with an empty tag array,
> and now our meta_transform function (always copy) is called, and our
> metadata are propagated auto-magically to the encoded buffers :)

I also have rechecked with only the "video" tag, and that works also,
because of the following lines in gst_video_decoder_transform_meta_default :

  if (!tags || (g_strv_length ((gchar **) tags) == 1
          && gst_meta_api_type_has_tag (info->api,
              g_quark_from_string (GST_META_TAG_VIDEO_STR))))
    return TRUE;

where g_strv_length gives the number of entries in the tags array.

So having no tag or only the GST_META_TAG_VIDEO_STR (= "video") is
equivalent for gst_video_decoder_transform_meta_default

Philippe


More information about the gstreamer-devel mailing list