Commit d8d43332 authored by Mark Reid's avatar Mark Reid Committed by Michael Niedermayer

avformat/mxfdec: use first valid sourceclip found if material track has multiple components

This commit fixes a issue with mxf footage having multiple
components on a material track.
Signed-off-by: 's avatarMichael Niedermayer <michael@niedermayer.cc>
parent fa0780d6
...@@ -1888,7 +1888,11 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) ...@@ -1888,7 +1888,11 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
} }
} }
/* TODO: handle multiple source clips */ /* TODO: handle multiple source clips, only finds first valid source clip */
if(material_track->sequence->structural_components_count > 1)
av_log(mxf->fc, AV_LOG_WARNING, "material track %d: has %d components\n",
material_track->track_id, material_track->sequence->structural_components_count);
for (j = 0; j < material_track->sequence->structural_components_count; j++) { for (j = 0; j < material_track->sequence->structural_components_count; j++) {
component = mxf_resolve_sourceclip(mxf, &material_track->sequence->structural_components_refs[j]); component = mxf_resolve_sourceclip(mxf, &material_track->sequence->structural_components_refs[j]);
if (!component) if (!component)
...@@ -1914,6 +1918,8 @@ static int mxf_parse_structural_metadata(MXFContext *mxf) ...@@ -1914,6 +1918,8 @@ static int mxf_parse_structural_metadata(MXFContext *mxf)
av_log(mxf->fc, AV_LOG_ERROR, "material track %d: no corresponding source track found\n", material_track->track_id); av_log(mxf->fc, AV_LOG_ERROR, "material track %d: no corresponding source track found\n", material_track->track_id);
break; break;
} }
if(source_track && component)
break;
} }
if (!source_track || !component || !source_package) if (!source_track || !component || !source_package)
continue; continue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment