diff options
author | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-05-23 13:02:54 +0200 |
---|---|---|
committer | Andreas Rheinhardt <andreas.rheinhardt@gmail.com> | 2020-05-28 12:03:28 +0200 |
commit | 9fee37c56e60f9e24bf921188519a062de6185a1 (patch) | |
tree | f96e4919f74cb0339907bdbcef8e4a80815377db | |
parent | be22f97332a530a42f4548aab1258d52fb17bb77 (diff) | |
download | ffmpeg-9fee37c56e60f9e24bf921188519a062de6185a1.tar.gz |
avformat/img2dec: Avoid duplicating buffer when adding side-data
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r-- | libavformat/img2dec.c | 12 |
1 files changed, 5 insertions, 7 deletions
diff --git a/libavformat/img2dec.c b/libavformat/img2dec.c index 40f3e3d499..ee7ceed08f 100644 --- a/libavformat/img2dec.c +++ b/libavformat/img2dec.c @@ -379,8 +379,7 @@ int ff_img_read_header(AVFormatContext *s1) * as a dictionary, so it can be used by filters like 'drawtext'. */ static int add_filename_as_pkt_side_data(char *filename, AVPacket *pkt) { - uint8_t* metadata; - int metadata_len; + int metadata_len, ret; AVDictionary *d = NULL; char *packed_metadata = NULL; @@ -391,13 +390,12 @@ static int add_filename_as_pkt_side_data(char *filename, AVPacket *pkt) { av_dict_free(&d); 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); - return 0; } |