From db67e6d5554bbbe297078b97b3c875d682822921 Mon Sep 17 00:00:00 2001 From: arpi Date: Thu, 11 Apr 2002 02:52:28 +0000 Subject: [PATCH] vfw encoding func splitted to init and start parts git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5555 b3059339-0415-0410-9bf9-f77b7e298cf2 --- dll_init.c | 18 ++++++++++-------- dll_init.h | 2 +- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/dll_init.c b/dll_init.c index 5934d5393c..22702ec02d 100644 --- a/dll_init.c +++ b/dll_init.c @@ -466,15 +466,9 @@ 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,unsigned int out_fourcc) { -// sh_video_t *sh_video; HRESULT ret; -// int yuv=0; -// unsigned int outfmt=sh_video->codec->outfmt[sh_video->outfmtidx]; -// unsigned int outfmt; BITMAPINFOHEADER* output_bih=NULL; int temp_len; - int i; -// int hic; //sh_video = malloc(sizeof(sh_video_t)); @@ -524,12 +518,20 @@ printf("\n"); memset(output_bih,0,temp_len); output_bih->biSize = temp_len; //sizeof(BITMAPINFOHEADER); + return output_bih; +} + +int vfw_start_encoder(BITMAPINFOHEADER *input_bih, BITMAPINFOHEADER *output_bih){ + HRESULT ret; + int temp_len=output_bih->biSize; + int i; + ret = ICCompressGetFormat(encoder_hic, input_bih, output_bih); if(ret < 0){ unsigned char* temp=output_bih; mp_msg(MSGT_WIN32,MSGL_ERR,"ICCompressGetFormat failed: Error %d (0x%X)\n", (int)ret, (int)ret); for (i=0; i < temp_len; i++) mp_msg(MSGT_WIN32, MSGL_DBG2, "%02x ", temp[i]); - return NULL; + return 0; } mp_msg(MSGT_WIN32,MSGL_V,"ICCompressGetFormat OK\n"); @@ -592,7 +594,7 @@ printf("\n"); encoder_frameno=0; mp_msg(MSGT_WIN32,MSGL_V,"VIDEO CODEC Init OK!!! ;-)\n"); - return output_bih; + return 1; } int vfw_encode_frame(BITMAPINFOHEADER* biOutput,void* OutBuf, diff --git a/dll_init.h b/dll_init.h index 1199796063..f1688ddd8d 100644 --- a/dll_init.h +++ b/dll_init.h @@ -11,7 +11,7 @@ int vfw_decode_video(sh_video_t* sh_video,void* start,int in_size,int drop_frame int vfw_set_postproc(sh_video_t* sh_video,int quality); BITMAPINFOHEADER* vfw_open_encoder(char *dll_name, BITMAPINFOHEADER *input_bih,unsigned int out_fourcc); +int vfw_start_encoder(BITMAPINFOHEADER *input_bih, BITMAPINFOHEADER *output_bih); int vfw_encode_frame(BITMAPINFOHEADER* biOutput,void* OutBuf, BITMAPINFOHEADER* biInput,void* Image, long* keyframe, int quality); -