diff options
author | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-04-01 13:25:34 +0000 |
---|---|---|
committer | alex <alex@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-04-01 13:25:34 +0000 |
commit | ad74d199d9fe9319fa60dfec23f2e1efb86db8db (patch) | |
tree | 61051b782df73833a9000e1df49bb80124aad415 /dll_init.c | |
parent | ad8ea46df17d4d30cfc08a6e0f8b804097cedf14 (diff) | |
download | mpv-ad74d199d9fe9319fa60dfec23f2e1efb86db8db.tar.bz2 mpv-ad74d199d9fe9319fa60dfec23f2e1efb86db8db.tar.xz |
added vfw and acm uninit
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@5450 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'dll_init.c')
-rw-r--r-- | dll_init.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/dll_init.c b/dll_init.c index bf08c5b985..9320ed7d97 100644 --- a/dll_init.c +++ b/dll_init.c @@ -177,6 +177,32 @@ int acm_decode_audio(sh_audio_t *sh_audio, void* a_buffer,int minlen,int maxlen) return len; } +int close_acm_audio_codec(sh_audio_t *sh_audio) +{ + HRESULT ret; + + ret = acmStreamClose(sh_audio->srcstream, 0); + + if (ret) + switch(ret) + { + case ACMERR_BUSY: + case ACMERR_CANCELED: + mp_msg(MSGT_WIN32, MSGL_DBG2, "ACM_Decoder: stream busy, waiting..\n"); + sleep(100); + return(close_acm_audio_codec(sh_audio)); + case ACMERR_UNPREPARED: + case ACMERR_NOTPOSSIBLE: + return(0); + default: + mp_msg(MSGT_WIN32, MSGL_WARN, "ACM_Decoder: unknown error occured: %d\n", ret); + return(0); + } + +// MSACM_UnregisterAllDrivers(); + return(1); +} + int init_vfw_video_codec(sh_video_t *sh_video,int ex){ HRESULT ret; int yuv=0; @@ -412,6 +438,27 @@ int vfw_decode_video(sh_video_t* sh_video,void* start,int in_size,int drop_frame return (int)ret; } +int vfw_close_video_codec(sh_video_t *sh_video, int ex) +{ + HRESULT ret; + + ret = ICDecompressEnd(sh_video->hic); + if (ret) + { + mp_msg(MSGT_WIN32, MSGL_WARN, "ICDecompressEnd failed: %d\n", ret); + return(0); + } + + ret = ICClose(sh_video->hic); + if (ret) + { + mp_msg(MSGT_WIN32, MSGL_WARN, "ICClose failed: %d\n", ret); + return(0); + } + + return(1); +} + /************************ VFW COMPRESSION *****************************/ static int encoder_hic=0; |