From d34041569e71fc9bd772354e94dc9d16061072a5 Mon Sep 17 00:00:00 2001 From: arpi_esp Date: Sat, 24 Feb 2001 20:28:24 +0000 Subject: Initial revision git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@2 b3059339-0415-0410-9bf9-f77b7e298cf2 --- dll_init.c | 164 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 164 insertions(+) create mode 100644 dll_init.c (limited to 'dll_init.c') diff --git a/dll_init.c b/dll_init.c new file mode 100644 index 0000000000..dac4e12d9d --- /dev/null +++ b/dll_init.c @@ -0,0 +1,164 @@ +// ACM audio and VfW video codecs initialization +// based on the avifile library [http://divx.euro.ru] + +int init_audio_codec(){ + HRESULT ret; + WAVEFORMATEX *in_fmt=(WAVEFORMATEX*)&avi_header.wf_ext; + unsigned long srcsize=0; + + if(verbose) printf("======= Win32 (ACM) AUDIO Codec init =======\n"); + + avi_header.srcstream=NULL; + +// if(in_fmt->nSamplesPerSec==0){ printf("Bad WAVE header!\n");exit(1); } +// MSACM_RegisterAllDrivers(); + + avi_header.wf.nChannels=in_fmt->nChannels; + avi_header.wf.nSamplesPerSec=in_fmt->nSamplesPerSec; + avi_header.wf.nAvgBytesPerSec=2*avi_header.wf.nSamplesPerSec*avi_header.wf.nChannels; + avi_header.wf.wFormatTag=WAVE_FORMAT_PCM; + avi_header.wf.nBlockAlign=2*in_fmt->nChannels; + avi_header.wf.wBitsPerSample=16; + avi_header.wf.cbSize=0; + + win32_codec_name = avi_header.audio_codec; + ret=acmStreamOpen(&avi_header.srcstream,(HACMDRIVER)NULL, + in_fmt,&avi_header.wf, + NULL,0,0,0); + if(ret){ + if(ret==ACMERR_NOTPOSSIBLE) + printf("ACM_Decoder: Unappropriate audio format\n"); + else + printf("ACM_Decoder: acmStreamOpen error %d", ret); + avi_header.srcstream=NULL; + return 0; + } + if(verbose) printf("Audio codec opened OK! ;-)\n"); + + srcsize=in_fmt->nBlockAlign; + acmStreamSize(avi_header.srcstream, srcsize, &srcsize, ACM_STREAMSIZEF_SOURCE); + if(srcsize