]> rtime.felk.cvut.cz Git - frescor/ffmpeg.git/commitdiff
Matroska muxer needs to format all NAL units, not only extradata.
authoraurel <aurel@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 11 Jan 2008 23:21:22 +0000 (23:21 +0000)
committeraurel <aurel@9553f0bf-9b14-0410-a0b8-cfaf0461ba5b>
Fri, 11 Jan 2008 23:21:22 +0000 (23:21 +0000)
git-svn-id: file:///var/local/repositories/ffmpeg/trunk@11510 9553f0bf-9b14-0410-a0b8-cfaf0461ba5b

libavformat/matroskaenc.c

index 09f975af422bfde81b89eea228adeab22c296498..7051d658cce8741f3bde13a0fad57f0a3d912ecc 100644 (file)
@@ -745,6 +745,16 @@ static int mkv_write_packet(AVFormatContext *s, AVPacket *pkt)
         av_md5_update(mkv->md5_ctx, pkt->data, FFMIN(200, pkt->size));
     }
 
+    if (codec->codec_id == CODEC_ID_H264 &&
+        codec->extradata_size > 0 && AV_RB32(codec->extradata) == 0x00000001) {
+        /* from x264 or from bytestream h264 */
+        /* nal reformating needed */
+        int ret = avc_parse_nal_units(pkt->data, &pkt->data, &pkt->size);
+        if (ret < 0)
+            return ret;
+        assert(pkt->size);
+    }
+
     if (codec->codec_type != CODEC_TYPE_SUBTITLE) {
         mkv_write_block(s, MATROSKA_ID_SIMPLEBLOCK, pkt, keyframe << 7);
     } else {