ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinha...@outlook.com> | Fri Sep 3 22:05:21 2021 +0200| [805ec95f8eb5664bf11c4c9190c868fd5521d80a] | committer: Andreas Rheinhardt
avformat/mux: Sanitize packets without data and side-data The BSF API treats such packets as signalling EOF and therefore such a packet might corrupt the BSF state. In such a case, the guarantee that av_interleaved_write_frame() always frees the packet is not upheld. Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@outlook.com> > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=805ec95f8eb5664bf11c4c9190c868fd5521d80a --- libavformat/mux.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavformat/mux.c b/libavformat/mux.c index 2053a5636e..d7b2bdb4b3 100644 --- a/libavformat/mux.c +++ b/libavformat/mux.c @@ -787,6 +787,13 @@ static int prepare_input_packet(AVFormatContext *s, AVStream *st, AVPacket *pkt) if (sti->is_intra_only) pkt->flags |= AV_PKT_FLAG_KEY; + if (!pkt->data && !pkt->side_data_elems) { + /* Such empty packets signal EOS for the BSF API; so sanitize + * the packet by allocating data of size 0 (+ padding). */ + av_buffer_unref(&pkt->buf); + return av_packet_make_refcounted(pkt); + } + return 0; } _______________________________________________ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog To unsubscribe, visit link above, or email ffmpeg-cvslog-requ...@ffmpeg.org with subject "unsubscribe".