summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavformat/mux.c7
1 files changed, 7 insertions, 0 deletions
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;
}