]> git.sesse.net Git - ffmpeg/blobdiff - libavformat/riffenc.c
Merge commit 'e92123093dfdca0ef6608998240e2f9345d63bff'
[ffmpeg] / libavformat / riffenc.c
index bcfe018f74e86fa87298f13b506b45f9a4b0c512..7b4b7ddffe94f4a57893c24f67ef8934ec9867cb 100644 (file)
@@ -201,10 +201,10 @@ int ff_put_wav_header(AVIOContext *pb, AVCodecContext *enc)
 
 /* BITMAPINFOHEADER header */
 void ff_put_bmp_header(AVIOContext *pb, AVCodecContext *enc,
-                       const AVCodecTag *tags, int for_asf)
+                       const AVCodecTag *tags, int for_asf, int ignore_extradata)
 {
     /* size */
-    avio_wl32(pb, 40 + enc->extradata_size);
+    avio_wl32(pb, 40 + (ignore_extradata ? 0 : enc->extradata_size));
     avio_wl32(pb, enc->width);
     //We always store RGB TopDown
     avio_wl32(pb, enc->codec_tag ? enc->height : -enc->height);
@@ -220,10 +220,12 @@ void ff_put_bmp_header(AVIOContext *pb, AVCodecContext *enc,
     avio_wl32(pb, 0);
     avio_wl32(pb, 0);
 
-    avio_write(pb, enc->extradata, enc->extradata_size);
+    if (!ignore_extradata) {
+        avio_write(pb, enc->extradata, enc->extradata_size);
 
-    if (!for_asf && enc->extradata_size & 1)
-        avio_w8(pb, 0);
+        if (!for_asf && enc->extradata_size & 1)
+            avio_w8(pb, 0);
+    }
 }
 
 void ff_parse_specific_params(AVCodecContext *stream, int *au_rate,