X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=ffmpeg.c;h=e4b94b2fa00f48964b35cde4fd842ca6fbcd2529;hb=fdd4922dc4896b97b17148744b5bd07e3301a027;hp=444b96300929f43ee6ed60e5056b408ad29f1e17;hpb=bfb2e20737cb310bd352b46a286a73e7a689e0d4;p=ffmpeg diff --git a/ffmpeg.c b/ffmpeg.c index 444b9630092..e4b94b2fa00 100644 --- a/ffmpeg.c +++ b/ffmpeg.c @@ -3062,23 +3062,14 @@ static int init_output_stream_streamcopy(OutputStream *ost) ost->st->disposition = ist->st->disposition; if (ist->st->nb_side_data) { - ost->st->side_data = av_realloc_array(NULL, ist->st->nb_side_data, - sizeof(*ist->st->side_data)); - if (!ost->st->side_data) - return AVERROR(ENOMEM); - - ost->st->nb_side_data = 0; for (i = 0; i < ist->st->nb_side_data; i++) { const AVPacketSideData *sd_src = &ist->st->side_data[i]; - AVPacketSideData *sd_dst = &ost->st->side_data[ost->st->nb_side_data]; + uint8_t *dst_data; - sd_dst->data = av_malloc(sd_src->size); - if (!sd_dst->data) + dst_data = av_stream_new_side_data(ost->st, sd_src->type, sd_src->size); + if (!dst_data) return AVERROR(ENOMEM); - memcpy(sd_dst->data, sd_src->data, sd_src->size); - sd_dst->size = sd_src->size; - sd_dst->type = sd_src->type; - ost->st->nb_side_data++; + memcpy(dst_data, sd_src->data, sd_src->size); } } @@ -3467,22 +3458,14 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) if (ost->enc_ctx->nb_coded_side_data) { int i; - ost->st->side_data = av_realloc_array(NULL, ost->enc_ctx->nb_coded_side_data, - sizeof(*ost->st->side_data)); - if (!ost->st->side_data) - return AVERROR(ENOMEM); - for (i = 0; i < ost->enc_ctx->nb_coded_side_data; i++) { const AVPacketSideData *sd_src = &ost->enc_ctx->coded_side_data[i]; - AVPacketSideData *sd_dst = &ost->st->side_data[i]; + uint8_t *dst_data; - sd_dst->data = av_malloc(sd_src->size); - if (!sd_dst->data) + dst_data = av_stream_new_side_data(ost->st, sd_src->type, sd_src->size); + if (!dst_data) return AVERROR(ENOMEM); - memcpy(sd_dst->data, sd_src->data, sd_src->size); - sd_dst->size = sd_src->size; - sd_dst->type = sd_src->type; - ost->st->nb_side_data++; + memcpy(dst_data, sd_src->data, sd_src->size); } }