changeset 4638:a4e774e16b22

div3/vfw encoding fixed
author arpi
date Sun, 10 Feb 2002 12:20:50 +0000
parents bdb95c9fd709
children f1465a04a3ce
files dll_init.c dll_init.h mencoder.c
diffstat 3 files changed, 6 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/dll_init.c	Sun Feb 10 11:25:14 2002 +0000
+++ b/dll_init.c	Sun Feb 10 12:20:50 2002 +0000
@@ -420,7 +420,7 @@
 static int encoder_frameno=0;
 
 //int init_vfw_encoder(char *dll_name, BITMAPINFOHEADER *input_bih, BITMAPINFOHEADER *output_bih)
-BITMAPINFOHEADER* vfw_open_encoder(char *dll_name, BITMAPINFOHEADER *input_bih)
+BITMAPINFOHEADER* vfw_open_encoder(char *dll_name, BITMAPINFOHEADER *input_bih,unsigned int out_fourcc)
 {
 //  sh_video_t *sh_video;
   HRESULT ret;
@@ -440,7 +440,7 @@
 //  output_bih->biSize = sizeof(BITMAPINFOHEADER);
 
   win32_codec_name = dll_name;
-  encoder_hic = ICOpen( 0x63646976, 0, ICMODE_COMPRESS);
+  encoder_hic = ICOpen( 0x63646976, out_fourcc, ICMODE_COMPRESS);
   if(!encoder_hic){
     mp_msg(MSGT_WIN32,MSGL_ERR,"ICOpen failed! unknown codec / wrong parameters?\n");
     return NULL;
--- a/dll_init.h	Sun Feb 10 11:25:14 2002 +0000
+++ b/dll_init.h	Sun Feb 10 12:20:50 2002 +0000
@@ -10,7 +10,7 @@
 int vfw_decode_video(sh_video_t* sh_video,void* start,int in_size,int drop_frame,int ex);
 int vfw_set_postproc(sh_video_t* sh_video,int quality);
 
-BITMAPINFOHEADER* vfw_open_encoder(char *dll_name, BITMAPINFOHEADER *input_bih);
+BITMAPINFOHEADER* vfw_open_encoder(char *dll_name, BITMAPINFOHEADER *input_bih,unsigned int out_fourcc);
 int vfw_encode_frame(BITMAPINFOHEADER* biOutput,void* OutBuf,
 		     BITMAPINFOHEADER* biInput,void* Image,
 		     long* keyframe, int quality);
--- a/mencoder.c	Sun Feb 10 11:25:14 2002 +0000
+++ b/mencoder.c	Sun Feb 10 12:20:50 2002 +0000
@@ -761,12 +761,12 @@
     vfw_bih->biSize=sizeof(BITMAPINFOHEADER);
     vfw_bih->biWidth=vo_w;
     vfw_bih->biHeight=vo_h;
-    vfw_bih->biPlanes=0;
+    vfw_bih->biPlanes=1;
     vfw_bih->biBitCount=24;
     vfw_bih->biCompression=0;
     vfw_bih->biSizeImage=vo_w*vo_h*((vfw_bih->biBitCount+7)/8);
-//    mux_v->bih=vfw_open_encoder("divxc32.dll",vfw_bih);
-    mux_v->bih=vfw_open_encoder("AvidAVICodec.dll",vfw_bih);
+//    mux_v->bih=vfw_open_encoder("divxc32.dll",vfw_bih,mmioFOURCC('D', 'I', 'V', '3'));
+    mux_v->bih=vfw_open_encoder("AvidAVICodec.dll",vfw_bih, 0);
     break;
 #else
     printf("No support for Win32/VfW codecs compiled in\n");