# HG changeset patch # User arpi # Date 1013343650 0 # Node ID a4e774e16b22251a955140cb5b378de57a6afcbd # Parent bdb95c9fd709ae828d75a28e261f237623b832ec div3/vfw encoding fixed diff -r bdb95c9fd709 -r a4e774e16b22 dll_init.c --- 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; diff -r bdb95c9fd709 -r a4e774e16b22 dll_init.h --- 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); diff -r bdb95c9fd709 -r a4e774e16b22 mencoder.c --- 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");