gst/mxf/mxfdemux.c: Ignore zero sized essence elements. They're often inserted to...
authorSebastian Dröge <slomo@circular-chaos.org>
Thu, 4 Dec 2008 09:26:25 +0000 (09:26 +0000)
committerSebastian Dröge <slomo@circular-chaos.org>
Thu, 4 Dec 2008 09:26:25 +0000 (09:26 +0000)
Original commit message from CVS:
* gst/mxf/mxfdemux.c:
(gst_mxf_demux_handle_generic_container_essence_element):
Ignore zero sized essence elements. They're often inserted
to fulfill the streaming requirements.

ChangeLog
gst/mxf/mxfdemux.c

index 660abdb..cc8089e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,12 @@
 2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
 
+       * gst/mxf/mxfdemux.c:
+       (gst_mxf_demux_handle_generic_container_essence_element):
+       Ignore zero sized essence elements. They're often inserted
+       to fulfill the streaming requirements.
+
+2008-12-04  Sebastian Dröge  <sebastian.droege@collabora.co.uk>
+
        * gst/mxf/mxfparse.c:
        (mxf_metadata_generic_picture_essence_descriptor_set_caps):
        Fix setting of the height/width and PAR of video streams.
index e20ddf7..a389a05 100644 (file)
@@ -1347,8 +1347,9 @@ gst_mxf_demux_handle_header_metadata_resolve_references (GstMXFDemux * demux)
           MXFMetadataEssenceContainerData, i);
 
       for (j = 0; j < demux->content_storage.n_essence_container_data; j++) {
-        if (mxf_ul_is_equal (&demux->content_storage.
-                essence_container_data_uids[j], &data->instance_uid)) {
+        if (mxf_ul_is_equal (&demux->
+                content_storage.essence_container_data_uids[j],
+                &data->instance_uid)) {
           demux->content_storage.essence_container_data[j] = data;
           break;
         }
@@ -2161,6 +2162,11 @@ gst_mxf_demux_handle_generic_container_essence_element (GstMXFDemux * demux,
     return GST_FLOW_ERROR;
   }
 
+  if (GST_BUFFER_SIZE (buffer) == 0) {
+    GST_DEBUG_OBJECT (demux, "Zero sized essence element, ignoring");
+    return GST_FLOW_OK;
+  }
+
   track_number = GST_READ_UINT32_BE (&key->u[12]);
 
   for (i = 0; i < demux->src->len; i++) {