v4l2transform: copy metdata
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Sat, 15 Mar 2014 16:53:54 +0000 (16:53 +0000)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 8 May 2014 19:56:35 +0000 (15:56 -0400)
sys/v4l2/gstv4l2transform.c

index cf0c84e7ad9166d00224d5deb4813ef4d02be9ff..58b45b0e5b1ab57646e2cccfe8c09cde318971ea 100644 (file)
@@ -407,6 +407,7 @@ gst_v4l2_transform_prepare_output_buffer (GstBaseTransform * trans,
   GstV4l2Transform *self = GST_V4L2_TRANSFORM (trans);
   GstBufferPool *pool = GST_BUFFER_POOL (self->v4l2output->pool);
   GstFlowReturn ret = GST_FLOW_OK;
+  GstBaseTransformClass *bclass = GST_BASE_TRANSFORM_CLASS (parent_class);
 
   if (gst_base_transform_is_passthrough (trans)) {
     GST_DEBUG_OBJECT (self, "Passthrough, no need to do anything");
@@ -441,6 +442,13 @@ gst_v4l2_transform_prepare_output_buffer (GstBaseTransform * trans,
     *outbuf = NULL;
   }
 
+  if (bclass->copy_metadata)
+    if (!bclass->copy_metadata (trans, inbuf, *outbuf)) {
+      /* something failed, post a warning */
+      GST_ELEMENT_WARNING (self, STREAM, NOT_IMPLEMENTED,
+          ("could not copy metadata"), (NULL));
+    }
+
 beach:
   return ret;