mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-27 12:11:13 +00:00
gst/mxf/mxfdemux.c: Make sure to only output generic container essence elements for a track if the body SID of the su...
Original commit message from CVS: * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_generic_container_essence_element): Make sure to only output generic container essence elements for a track if the body SID of the surrounding partition is the same as the body SID of the track's source package.
This commit is contained in:
parent
25a21ecdef
commit
10adeafe87
2 changed files with 29 additions and 6 deletions
|
@ -1,3 +1,11 @@
|
|||
2008-11-24 Sebastian Dröge <sebastian.droege@collabora.co.uk>
|
||||
|
||||
* gst/mxf/mxfdemux.c:
|
||||
(gst_mxf_demux_handle_generic_container_essence_element):
|
||||
Make sure to only output generic container essence elements
|
||||
for a track if the body SID of the surrounding partition is
|
||||
the same as the body SID of the track's source package.
|
||||
|
||||
2008-11-24 Julien Moutte <julien@fluendo.com>
|
||||
|
||||
* gst/flv/gstflvdemux.c: (gst_flv_demux_find_offset),
|
||||
|
|
|
@ -1127,9 +1127,8 @@ 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;
|
||||
}
|
||||
|
@ -1862,7 +1861,7 @@ gst_mxf_demux_handle_generic_container_essence_element (GstMXFDemux * demux,
|
|||
{
|
||||
GstFlowReturn ret = GST_FLOW_OK;
|
||||
guint32 track_number;
|
||||
guint i;
|
||||
guint i, j;
|
||||
GstMXFPad *pad = NULL;
|
||||
GstBuffer *inbuf;
|
||||
GstBuffer *outbuf = NULL;
|
||||
|
@ -1890,10 +1889,26 @@ gst_mxf_demux_handle_generic_container_essence_element (GstMXFDemux * demux,
|
|||
(p->source_track->track_number == 0 &&
|
||||
demux->src->len == 1 &&
|
||||
demux->current_package->n_essence_tracks == 1)) {
|
||||
if (demux->essence_container_data) {
|
||||
for (j = 0; j < demux->essence_container_data->len; j++) {
|
||||
MXFMetadataEssenceContainerData *edata =
|
||||
&g_array_index (demux->essence_container_data,
|
||||
MXFMetadataEssenceContainerData, j);
|
||||
|
||||
if (p->source_package == edata->linked_package
|
||||
&& demux->partition.body_sid == edata->body_sid) {
|
||||
pad = p;
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
pad = p;
|
||||
}
|
||||
|
||||
if (pad)
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (!pad) {
|
||||
GST_WARNING_OBJECT (demux, "No corresponding pad found");
|
||||
|
|
Loading…
Reference in a new issue