mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-26 19:01:44 +02:00
avformat/concatdec: Avoid duplicating buffer when adding side-data
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
This commit is contained in:
parent
ed9bbcff6f
commit
be22f97332
@ -626,17 +626,16 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt)
|
||||
av_ts2str(pkt->pts), av_ts2timestr(pkt->pts, &st->time_base),
|
||||
av_ts2str(pkt->dts), av_ts2timestr(pkt->dts, &st->time_base));
|
||||
if (cat->cur_file->metadata) {
|
||||
uint8_t* metadata;
|
||||
int metadata_len;
|
||||
char* packed_metadata = av_packet_pack_dictionary(cat->cur_file->metadata, &metadata_len);
|
||||
if (!packed_metadata)
|
||||
return AVERROR(ENOMEM);
|
||||
if (!(metadata = av_packet_new_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA, metadata_len))) {
|
||||
ret = av_packet_add_side_data(pkt, AV_PKT_DATA_STRINGS_METADATA,
|
||||
packed_metadata, metadata_len);
|
||||
if (ret < 0) {
|
||||
av_freep(&packed_metadata);
|
||||
return AVERROR(ENOMEM);
|
||||
return ret;
|
||||
}
|
||||
memcpy(metadata, packed_metadata, metadata_len);
|
||||
av_freep(&packed_metadata);
|
||||
}
|
||||
|
||||
if (cat->cur_file->duration == AV_NOPTS_VALUE && st->cur_dts != AV_NOPTS_VALUE) {
|
||||
@ -647,7 +646,7 @@ static int concat_read_packet(AVFormatContext *avf, AVPacket *pkt)
|
||||
}
|
||||
|
||||
pkt->stream_index = cs->out_stream_index;
|
||||
return ret;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void rescale_interval(AVRational tb_in, AVRational tb_out,
|
||||
|
Loading…
Reference in New Issue
Block a user