[gst-cvs] gst-plugins-bad: mxf: Properly handle the new interlaced support from libgstvideo for (de)muxing

Sebastian Dröge slomo at kemper.freedesktop.org
Thu Apr 16 13:14:45 PDT 2009


Module: gst-plugins-bad
Branch: master
Commit: 7a30947913c215baabaa0ae1b93b9582f82d3cd5
URL:    http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/commit/?id=7a30947913c215baabaa0ae1b93b9582f82d3cd5

Author: Sebastian Dröge <sebastian.droege at collabora.co.uk>
Date:   Thu Apr 16 22:14:15 2009 +0200

mxf: Properly handle the new interlaced support from libgstvideo for (de)muxing

---

 gst/mxf/mxfmetadata.c |   10 +++++++++-
 1 files changed, 9 insertions(+), 1 deletions(-)

diff --git a/gst/mxf/mxfmetadata.c b/gst/mxf/mxfmetadata.c
index 057a99d..2237bc6 100644
--- a/gst/mxf/mxfmetadata.c
+++ b/gst/mxf/mxfmetadata.c
@@ -4929,8 +4929,10 @@ void mxf_metadata_generic_picture_essence_descriptor_set_caps
    * See SMPTE 377M E2.2 and E1.2
    */
   if (self->frame_layout == 1 || self->frame_layout == 2
-      || self->frame_layout == 4)
+      || self->frame_layout == 4) {
     height *= 2;
+    gst_caps_set_simple (caps, "interlaced", G_TYPE_BOOLEAN, TRUE, NULL);
+  }
 
   if (width == 0 || height == 0) {
     GST_ERROR ("Invalid width/height");
@@ -4973,6 +4975,7 @@ gboolean
   gint fps_n, fps_d;
   MXFMetadataFileDescriptor *f = (MXFMetadataFileDescriptor *) self;
   GstStructure *s;
+  gboolean interlaced;
 
   g_return_val_if_fail (MXF_IS_METADATA_GENERIC_PICTURE_ESSENCE_DESCRIPTOR
       (self), FALSE);
@@ -4980,6 +4983,11 @@ gboolean
 
   s = gst_caps_get_structure (caps, 0);
 
+  if (!gst_structure_get_boolean (s, "interlaced", &interlaced) || !interlaced)
+    self->frame_layout = 1;
+  else
+    self->frame_layout = 3;
+
   if (!gst_structure_get_fraction (s, "framerate", &fps_n, &fps_d)) {
     GST_ERROR ("Invalid framerate");
     return FALSE;





More information about the Gstreamer-commits mailing list