lavf/mpegtsenc: fix autobsf when the first NAL is 0x1<XX> bytes
authorRodger Combs <rodger.combs@gmail.com>
Sun, 25 Sep 2016 19:43:42 +0000 (14:43 -0500)
committerRodger Combs <rodger.combs@gmail.com>
Tue, 4 Oct 2016 06:20:20 +0000 (01:20 -0500)
libavformat/mpegtsenc.c

index c10a3bf..3ad3de7 100644 (file)
@@ -1790,11 +1790,15 @@ static int mpegts_check_bitstream(struct AVFormatContext *s, const AVPacket *pkt
 
     if (st->codecpar->codec_id == AV_CODEC_ID_H264) {
         if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 &&
 
     if (st->codecpar->codec_id == AV_CODEC_ID_H264) {
         if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 &&
-                              AV_RB24(pkt->data) != 0x000001)
+                             (AV_RB24(pkt->data) != 0x000001 ||
+                              (st->codecpar->extradata_size > 0 &&
+                               st->codecpar->extradata[0] == 1)))
             ret = ff_stream_add_bitstream_filter(st, "h264_mp4toannexb", NULL);
     } else if (st->codecpar->codec_id == AV_CODEC_ID_HEVC) {
         if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 &&
             ret = ff_stream_add_bitstream_filter(st, "h264_mp4toannexb", NULL);
     } else if (st->codecpar->codec_id == AV_CODEC_ID_HEVC) {
         if (pkt->size >= 5 && AV_RB32(pkt->data) != 0x0000001 &&
-                              AV_RB24(pkt->data) != 0x000001)
+                             (AV_RB24(pkt->data) != 0x000001 ||
+                              (st->codecpar->extradata_size > 0 &&
+                               st->codecpar->extradata[0] == 1)))
             ret = ff_stream_add_bitstream_filter(st, "hevc_mp4toannexb", NULL);
     }
 
             ret = ff_stream_add_bitstream_filter(st, "hevc_mp4toannexb", NULL);
     }