|
|
|
@@ -222,8 +222,10 @@ static int mxf_read_packet(AVFormatContext *s, AVPacket *pkt) |
|
|
|
KLVPacket klv; |
|
|
|
|
|
|
|
while (!url_feof(&s->pb)) { |
|
|
|
if (klv_read_packet(&klv, &s->pb) < 0) |
|
|
|
if (klv_read_packet(&klv, &s->pb) < 0) { |
|
|
|
av_log(s, AV_LOG_ERROR, "error reading KLV packet\n"); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
if (IS_KLV_KEY(klv.key, mxf_essence_element_key)) { |
|
|
|
av_get_packet(&s->pb, pkt, klv.length); |
|
|
|
pkt->stream_index = mxf_get_stream_index(s, &klv); |
|
|
|
@@ -822,8 +824,10 @@ static int mxf_read_header(AVFormatContext *s, AVFormatParameters *ap) |
|
|
|
|
|
|
|
mxf->fc = s; |
|
|
|
while (!url_feof(&s->pb)) { |
|
|
|
if (klv_read_packet(&klv, &s->pb) < 0) |
|
|
|
if (klv_read_packet(&klv, &s->pb) < 0) { |
|
|
|
av_log(s, AV_LOG_ERROR, "error reading KLV packet\n"); |
|
|
|
return -1; |
|
|
|
} |
|
|
|
if (IS_KLV_KEY(klv.key, mxf_metadata_track_key)) |
|
|
|
ret = mxf_read_metadata_track(mxf, &klv); |
|
|
|
else if (IS_KLV_KEY(klv.key, mxf_metadata_static_track_key)) |
|
|
|
@@ -856,8 +860,10 @@ static int mxf_read_header(AVFormatContext *s, AVFormatParameters *ap) |
|
|
|
break; |
|
|
|
} else |
|
|
|
url_fskip(&s->pb, klv.length); |
|
|
|
if (ret < 0) |
|
|
|
if (ret < 0) { |
|
|
|
av_log(s, AV_LOG_ERROR, "error reading header metadata\n"); |
|
|
|
return ret; |
|
|
|
} |
|
|
|
} |
|
|
|
return mxf_parse_structural_metadata(mxf); |
|
|
|
} |
|
|
|
|