diff --git a/libavformat/mov.c b/libavformat/mov.c index 8d6cc12bac..9bf436e261 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -5647,20 +5647,13 @@ static int mov_read_header(AVFormatContext *s) break; case AVMEDIA_TYPE_VIDEO: if (sc->display_matrix) { - AVPacketSideData *sd, *tmp; + int ret; - tmp = av_realloc_array(st->side_data, - st->nb_side_data + 1, sizeof(*tmp)); - if (!tmp) - return AVERROR(ENOMEM); - - st->side_data = tmp; - st->nb_side_data++; + ret = av_stream_add_side_data(st, AV_PKT_DATA_DISPLAYMATRIX, (uint8_t*)sc->display_matrix, + sizeof(int32_t) * 9); + if (ret < 0) + return ret; - sd = &st->side_data[st->nb_side_data - 1]; - sd->type = AV_PKT_DATA_DISPLAYMATRIX; - sd->size = sizeof(int32_t) * 9; - sd->data = (uint8_t*)sc->display_matrix; sc->display_matrix = NULL; } break;