gst/mxf/mxfdemux.c: Ignore zero sized essence elements. They're often inserted to fulfill the streaming requirements.

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.
This commit is contained in:
Sebastian Dröge 2008-12-04 09:26:25 +00:00
parent fff48b08f6
commit 462980ec57
2 changed files with 15 additions and 2 deletions

View file

@ -1,3 +1,10 @@
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> 2008-12-04 Sebastian Dröge <sebastian.droege@collabora.co.uk>
* gst/mxf/mxfparse.c: * gst/mxf/mxfparse.c:

View file

@ -1347,8 +1347,9 @@ gst_mxf_demux_handle_header_metadata_resolve_references (GstMXFDemux * demux)
MXFMetadataEssenceContainerData, i); MXFMetadataEssenceContainerData, i);
for (j = 0; j < demux->content_storage.n_essence_container_data; j++) { for (j = 0; j < demux->content_storage.n_essence_container_data; j++) {
if (mxf_ul_is_equal (&demux->content_storage. if (mxf_ul_is_equal (&demux->
essence_container_data_uids[j], &data->instance_uid)) { content_storage.essence_container_data_uids[j],
&data->instance_uid)) {
demux->content_storage.essence_container_data[j] = data; demux->content_storage.essence_container_data[j] = data;
break; break;
} }
@ -2161,6 +2162,11 @@ gst_mxf_demux_handle_generic_container_essence_element (GstMXFDemux * demux,
return GST_FLOW_ERROR; 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]); track_number = GST_READ_UINT32_BE (&key->u[12]);
for (i = 0; i < demux->src->len; i++) { for (i = 0; i < demux->src->len; i++) {