summaryrefslogtreecommitdiff
path: root/libavformat/mpegtsenc.c
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2015-07-07 10:44:46 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2015-07-07 10:44:46 +0200
commit1d5edad8ccfd1843bc8c60260a20ac37b738cb77 (patch)
tree74f8e4e13712954ea091f50bbe92d1a12a596bc8 /libavformat/mpegtsenc.c
parentd44cf5ef423cc39079f5ac51da936dd558689a9d (diff)
lavf/mpegtsenc: Only fail aac muxing if the first frame is invalid.
Fixes ticket #3957.
Diffstat (limited to 'libavformat/mpegtsenc.c')
-rw-r--r--libavformat/mpegtsenc.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libavformat/mpegtsenc.c b/libavformat/mpegtsenc.c
index 9efa9fc362..09f62d64ec 100644
--- a/libavformat/mpegtsenc.c
+++ b/libavformat/mpegtsenc.c
@@ -1313,9 +1313,9 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
if (!ts_st->amux) {
av_log(s, AV_LOG_ERROR, "AAC bitstream not in ADTS format "
"and extradata missing\n");
- return AVERROR_INVALIDDATA;
- }
-
+ if (!st->nb_frames)
+ return AVERROR_INVALIDDATA;
+ } else {
av_init_packet(&pkt2);
pkt2.data = pkt->data;
pkt2.size = pkt->size;
@@ -1334,6 +1334,7 @@ static int mpegts_write_packet_internal(AVFormatContext *s, AVPacket *pkt)
size = avio_close_dyn_buf(ts_st->amux->pb, &data);
ts_st->amux->pb = NULL;
buf = data;
+ }
}
} else if (st->codec->codec_id == AV_CODEC_ID_HEVC) {
int ret = check_hevc_startcode(s, st, pkt);