summaryrefslogtreecommitdiffstats
path: root/gst
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian.droege@collabora.co.uk>2009-04-16 22:14:15 +0200
committerDave Robillard <dave@drobilla.net>2009-05-03 12:03:15 -0400
commit8974702c73811a419de9cb45614b19ee38f54b49 (patch)
treee0beb22b6a215c6db30da5054356e6173c5ae363 /gst
parenteb948cae1ef184f5dcac2708032af4ec75175601 (diff)
downloadgst-plugins-bad-8974702c73811a419de9cb45614b19ee38f54b49.tar.gz
gst-plugins-bad-8974702c73811a419de9cb45614b19ee38f54b49.tar.bz2
gst-plugins-bad-8974702c73811a419de9cb45614b19ee38f54b49.zip
mxf: Properly handle the new interlaced support from libgstvideo for (de)muxing
Diffstat (limited to 'gst')
-rw-r--r--gst/mxf/mxfmetadata.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/gst/mxf/mxfmetadata.c b/gst/mxf/mxfmetadata.c
index 057a99d9..2237bc60 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;