---
libavformat/matroskaenc.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
index 9f7b5f9..67d2350 100644
--- a/libavformat/matroskaenc.c
+++ b/libavformat/matroskaenc.c
@@ -1298,8 +1298,11 @@ static int mkv_write_packet(AVFormatContext *s, AVPacket
*pkt)
// keyframe's timecode is contained in the same cluster for WebM
if (codec->codec_type == AVMEDIA_TYPE_AUDIO) {
mkv->cur_audio_pkt = *pkt;
- mkv->cur_audio_pkt.buf = av_buffer_ref(pkt->buf);
- ret = mkv->cur_audio_pkt.buf ? 0 : AVERROR(ENOMEM);
+ if (pkt->buf) {
+ mkv->cur_audio_pkt.buf = av_buffer_ref(pkt->buf);
+ ret = mkv->cur_audio_pkt.buf ? 0 : AVERROR(ENOMEM);
+ } else
+ ret = av_dup_packet(&mkv->cur_audio_pkt);
} else
ret = mkv_write_packet_internal(s, pkt);
return ret;
--
1.8.1.2
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel