Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> --- mov chapter tracks are not compatible with this.
libavformat/internal.h | 3 +++ libavformat/utils.c | 9 +++++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/libavformat/internal.h b/libavformat/internal.h index b3c5d8a1d5..a6987619f7 100644 --- a/libavformat/internal.h +++ b/libavformat/internal.h @@ -678,6 +678,9 @@ int ff_read_packet(AVFormatContext *s, AVPacket *pkt); * @param buf if set, it contains the data and size information to be used * for the attached pic; if unset, data is read from pb. * @param size the size of the data to read if buf is unset. + * + * @return 0 on success, < 0 on error. On error, this function removes + * the stream it has added (if any). */ int ff_add_attached_pic(AVFormatContext *s, AVStream *st, AVIOContext *pb, AVBufferRef **buf, int size); diff --git a/libavformat/utils.c b/libavformat/utils.c index 2bd7dd8ec7..67302907b8 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -474,9 +474,10 @@ int avformat_queue_attached_pictures(AVFormatContext *s) return 0; } -int ff_add_attached_pic(AVFormatContext *s, AVStream *st, AVIOContext *pb, +int ff_add_attached_pic(AVFormatContext *s, AVStream *st0, AVIOContext *pb, AVBufferRef **buf, int size) { + AVStream *st = st0; AVPacket *pkt; int ret; @@ -493,7 +494,7 @@ int ff_add_attached_pic(AVFormatContext *s, AVStream *st, AVIOContext *pb, } else { ret = av_get_packet(pb, pkt, size); if (ret < 0) - return ret; + goto fail; } st->disposition |= AV_DISPOSITION_ATTACHED_PIC; st->codecpar->codec_type = AVMEDIA_TYPE_VIDEO; @@ -502,6 +503,10 @@ int ff_add_attached_pic(AVFormatContext *s, AVStream *st, AVIOContext *pb, pkt->flags |= AV_PKT_FLAG_KEY; return 0; +fail: + if (!st0) + ff_free_stream(s, st); + return ret; } static int update_stream_avctx(AVFormatContext *s) -- 2.27.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".