|
|
|
@@ -899,6 +899,8 @@ static int mxf_read_index_entry_array(AVIOContext *pb, MXFIndexTableSegment *seg |
|
|
|
segment->nb_index_entries = avio_rb32(pb); |
|
|
|
|
|
|
|
length = avio_rb32(pb); |
|
|
|
if(segment->nb_index_entries && length < 11) |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
|
|
|
|
if (!(segment->temporal_offset_entries=av_calloc(segment->nb_index_entries, sizeof(*segment->temporal_offset_entries))) || |
|
|
|
!(segment->flag_entries = av_calloc(segment->nb_index_entries, sizeof(*segment->flag_entries))) || |
|
|
|
@@ -909,6 +911,8 @@ static int mxf_read_index_entry_array(AVIOContext *pb, MXFIndexTableSegment *seg |
|
|
|
} |
|
|
|
|
|
|
|
for (i = 0; i < segment->nb_index_entries; i++) { |
|
|
|
if(avio_feof(pb)) |
|
|
|
return AVERROR_INVALIDDATA; |
|
|
|
segment->temporal_offset_entries[i] = avio_r8(pb); |
|
|
|
avio_r8(pb); /* KeyFrameOffset */ |
|
|
|
segment->flag_entries[i] = avio_r8(pb); |
|
|
|
|