hook this up to the CYUV decoder
[libav.git] / libavformat / avienc.c
index f14b1cb..b2face1 100644 (file)
@@ -84,6 +84,10 @@ const CodecTag codec_bmp_tags[] = {
     { CODEC_ID_MPEG1VIDEO, MKTAG('m', 'p', 'g', '2') }, 
     { CODEC_ID_MPEG1VIDEO, MKTAG('P', 'I', 'M', '1') }, 
     { CODEC_ID_MJPEG, MKTAG('M', 'J', 'P', 'G') },
+    { CODEC_ID_HUFFYUV, MKTAG('H', 'F', 'Y', 'U') },
+    { CODEC_ID_HUFFYUV, MKTAG('h', 'f', 'y', 'u') },
+    { CODEC_ID_CYUV, MKTAG('C', 'Y', 'U', 'V') },
+    { CODEC_ID_CYUV, MKTAG('c', 'y', 'u', 'v') },
     { 0, 0 },
 };
 
@@ -197,13 +201,20 @@ static int avi_write_header(AVFormatContext *s)
             video_enc = stream;
     }
     
+/*     allowing audio-only AVI file 
+    
     if (!video_enc) {
         av_free(avi);
         return -1;
     }
+*/    
     nb_frames = 0;
 
+    if(video_enc){
     put_le32(pb, (UINT32)(INT64_C(1000000) * FRAME_RATE_BASE / video_enc->frame_rate));
+    } else {
+       put_le32(pb, 0);
+    }
     put_le32(pb, bitrate / 8); /* XXX: not quite exact */
     put_le32(pb, 0); /* padding */
     put_le32(pb, AVIF_TRUSTCKTYPE | AVIF_HASINDEX | AVIF_ISINTERLEAVED); /* flags */
@@ -212,8 +223,13 @@ static int avi_write_header(AVFormatContext *s)
     put_le32(pb, 0); /* initial frame */
     put_le32(pb, s->nb_streams); /* nb streams */
     put_le32(pb, 1024 * 1024); /* suggested buffer size */
+    if(video_enc){    
     put_le32(pb, video_enc->width);
     put_le32(pb, video_enc->height);
+    } else {
+       put_le32(pb, 0);
+       put_le32(pb, 0);
+    }  
     put_le32(pb, 0); /* reserved */
     put_le32(pb, 0); /* reserved */
     put_le32(pb, 0); /* reserved */