|
|
|
@ -1249,7 +1249,9 @@ static int mxf_compute_index_tables(MXFContext *mxf) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (!(mxf->index_tables = av_calloc(mxf->nb_index_tables, sizeof(MXFIndexTable)))) { |
|
|
|
|
mxf->index_tables = av_mallocz_array(mxf->nb_index_tables, |
|
|
|
|
sizeof(*mxf->index_tables)); |
|
|
|
|
if (!mxf->index_tables) { |
|
|
|
|
av_log(mxf->fc, AV_LOG_ERROR, "failed to allocate index tables\n"); |
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
goto finish_decoding_index; |
|
|
|
@ -1268,8 +1270,12 @@ static int mxf_compute_index_tables(MXFContext *mxf) |
|
|
|
|
for (i = j = 0; j < mxf->nb_index_tables; i += mxf->index_tables[j++].nb_segments) { |
|
|
|
|
MXFIndexTable *t = &mxf->index_tables[j]; |
|
|
|
|
|
|
|
|
|
if (!(t->segments = av_calloc(t->nb_segments, sizeof(MXFIndexTableSegment*)))) { |
|
|
|
|
av_log(mxf->fc, AV_LOG_ERROR, "failed to allocate IndexTableSegment pointer array\n"); |
|
|
|
|
t->segments = av_mallocz_array(t->nb_segments, |
|
|
|
|
sizeof(*t->segments)); |
|
|
|
|
|
|
|
|
|
if (!t->segments) { |
|
|
|
|
av_log(mxf->fc, AV_LOG_ERROR, "failed to allocate IndexTableSegment" |
|
|
|
|
" pointer array\n"); |
|
|
|
|
ret = AVERROR(ENOMEM); |
|
|
|
|
goto finish_decoding_index; |
|
|
|
|
} |
|
|
|
|