Unified · Split
| @@ -1602,6 +1602,28 @@ static int init_output_stream(OutputStream *ost, char *error, int error_len) · 1601 unmodified lines | |||
| 1602 | exit_program(1); | 1602 | exit_program(1); |
| 1603 | } | 1603 | } |
| 1604 | 1604 | ||
| 1605 | if (ost->enc_ctx->nb_coded_side_data) { | ||
| 1606 | int i; | ||
| 1607 | |||
| 1608 | ost->st->side_data = av_realloc_array(NULL, ost->enc_ctx->nb_coded_side_data, | ||
| 1609 | sizeof(*ost->st->side_data)); | ||
| 1610 | if (!ost->st->side_data) | ||
| 1611 | return AVERROR(ENOMEM); | ||
| 1612 | |||
| 1613 | for (i = 0; i < ost->enc_ctx->nb_coded_side_data; i++) { | ||
| 1614 | const AVPacketSideData *sd_src = &ost->enc_ctx->coded_side_data[i]; | ||
| 1615 | AVPacketSideData *sd_dst = &ost->st->side_data[i]; | ||
| 1616 | |||
| 1617 | sd_dst->data = av_malloc(sd_src->size); | ||
| 1618 | if (!sd_dst->data) | ||
| 1619 | return AVERROR(ENOMEM); | ||
| 1620 | memcpy(sd_dst->data, sd_src->data, sd_src->size); | ||
| 1621 | sd_dst->size = sd_src->size; | ||
| 1622 | sd_dst->type = sd_src->type; | ||
| 1623 | ost->st->nb_side_data++; | ||
| 1624 | } | ||
| 1625 | } | ||
| 1626 | |||
| 1605 | ost->st->time_base = ost->enc_ctx->time_base; | 1627 | ost->st->time_base = ost->enc_ctx->time_base; |
| 1606 | } else { | 1628 | } else { |
| 1607 | ret = av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts); | 1629 | ret = av_opt_set_dict(ost->enc_ctx, &ost->encoder_opts); |