[Mplayerxp-cvslog] SF.net SVN: mplayerxp:[650] mplayerxp
Brought to you by:
olov
From: <nic...@us...> - 2013-06-10 07:27:28
|
Revision: 650 http://sourceforge.net/p/mplayerxp/code/650 Author: nickols_k Date: 2013-06-10 07:27:20 +0000 (Mon, 10 Jun 2013) Log Message: ----------- remove support of win32 binary codecs as incompatible with GPL-licence Modified Paths: -------------- mplayerxp/Makefile mplayerxp/configure mplayerxp/libmpcodecs/Makefile mplayerxp/libmpcodecs/ad.cpp mplayerxp/libmpcodecs/dec_video.cpp mplayerxp/libmpcodecs/vd.cpp mplayerxp/libmpconf/Makefile mplayerxp/libmpconf/codec-cfg.h mplayerxp/libmpdemux/asf.h mplayerxp/libmpdemux/aviprint.h mplayerxp/libmpdemux/demux_mkv.cpp mplayerxp/libmpdemux/demux_mov.cpp mplayerxp/libmpdemux/demux_mpxp64.cpp mplayerxp/libmpdemux/mux_mpxp64.cpp mplayerxp/libmpdemux/mux_raw.cpp mplayerxp/libmpdemux/muxer.cpp mplayerxp/libmpdemux/stheader.h mplayerxp/libmpstream2/s_oss.cpp mplayerxp/main.cpp mplayerxp/postproc/af_format.cpp mplayerxp/xmpcore/xmp_aframe.cpp Added Paths: ----------- mplayerxp/win32sdk/ mplayerxp/win32sdk/avifmt.h mplayerxp/win32sdk/basetsd.h mplayerxp/win32sdk/debugtools.h mplayerxp/win32sdk/driver.h mplayerxp/win32sdk/elfdll.h mplayerxp/win32sdk/heap.h mplayerxp/win32sdk/ldt.h mplayerxp/win32sdk/mmreg.h mplayerxp/win32sdk/module.h mplayerxp/win32sdk/msacm.h mplayerxp/win32sdk/msacmdrv.h mplayerxp/win32sdk/ntdef.h mplayerxp/win32sdk/objbase.h mplayerxp/win32sdk/pe_image.h mplayerxp/win32sdk/poppack.h mplayerxp/win32sdk/pshpack1.h mplayerxp/win32sdk/pshpack2.h mplayerxp/win32sdk/pshpack4.h mplayerxp/win32sdk/pshpack8.h mplayerxp/win32sdk/qtxsdk/ mplayerxp/win32sdk/vfw.h mplayerxp/win32sdk/winbase.h mplayerxp/win32sdk/windef.h mplayerxp/win32sdk/windows.h mplayerxp/win32sdk/winerror.h mplayerxp/win32sdk/winestring.h mplayerxp/win32sdk/winnt.h mplayerxp/win32sdk/winreg.h mplayerxp/win32sdk/winuser.h Removed Paths: ------------- mplayerxp/libmpcodecs/ad_acm.cpp mplayerxp/libmpcodecs/ad_dmo.cpp mplayerxp/libmpcodecs/ad_dshow.cpp mplayerxp/libmpcodecs/ad_qtaudio.cpp mplayerxp/libmpcodecs/ad_twin.cpp mplayerxp/libmpcodecs/vd_dmo.cpp mplayerxp/libmpcodecs/vd_dshow.cpp mplayerxp/libmpcodecs/vd_qtvideo.cpp mplayerxp/libmpcodecs/vd_vfw.cpp mplayerxp/libmpconf/codec-cfg.cpp mplayerxp/win32loader/ Modified: mplayerxp/Makefile =================================================================== --- mplayerxp/Makefile 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/Makefile 2013-06-10 07:27:20 UTC (rev 650) @@ -12,9 +12,7 @@ TARGET_EXE = $(PROGNAME) # these subdirectories required installation due binaries within them SUBDIRS = libmpdemux libmpstream2 libmpsub libplaytree2 libmpcodecs libmpconf libao3 osdep postproc input2 nls libvo2 xmpcore -ifeq ($(ENABLE_WIN32LOADER),yes) -SUBDIRS+=win32loader -endif + DO_MAKE = @ for i in $(SUBDIRS); do $(MAKE) -C $$i $@ || exit; done DO_MAKE_ALL = @ for i in $(SUBDIRS); do $(MAKE) -C $$i all || exit; done @@ -45,9 +43,6 @@ nls/libnls.a \ libmpconf/libmpconf.a \ xmpcore/libxmpcore.a -ifeq ($(ENABLE_WIN32LOADER),yes) - MP_LIBS += win32loader/libwin32loader.a -endif LIBS+= $(MP_LIBS) $(LAVC_LIBS) $(EXTRALIBS) -lm CXXFLAGS = $(OPTXXFLAGS) $(EXTRA_INC) Modified: mplayerxp/configure =================================================================== --- mplayerxp/configure 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/configure 2013-06-10 07:27:20 UTC (rev 650) @@ -87,7 +87,6 @@ "profile|compile profiling information into PROGRAM", "static|build static libraries", "dbg23|allow additional level of debug messages", - "win32loader|build support for Win32 codecs", "random_name|generates pseudo random suffix of target", "sdl|build with SDL video and audio output|http://www.libsdl.org", "sdl_image|build with SDL_image for screenshots|http://www.libsdl.org/projects/SDL_image", @@ -106,7 +105,6 @@ "libdir|object code libraries|\$exec_prefix/lib", "datadir|read-only architecture-independent data|\$prefix/share/mplayerxp", "confdir|read-only configuration files|\$prefix/share/mplayerxp", - "win32libdir|win32 .dll locations [/usr/lib/win32]" ) PROGNAME_LIST=( @@ -580,26 +578,6 @@ test -f nls/mpxp_help-$linguas.h || die "nls/mpxp_help-$linguas.h not found" echo "#define I18N_LANGUAGE \"$linguas\"" >>mpxp_config.h -enabled gpl_only && disable win32loader - -if win32 || ! x86_32 ; then -disable win32loader -fi -win32 && add_ldflags -lkernel32 -print_config ENABLE_ mpxp_config.h mpxp_config.mak win32loader - -echo -n "win32 dll's ... " -if test -z "$win32libdir" ; then - for I in /usr/local/lib/win32 /usr/lib/win32 ; do - if test -d "$I" ; then - win32libdir="$I" - break; - fi; - done -fi -echo "$win32libdir" -echo "#define WIN32_PATH \"$win32libdir\"" >>mpxp_config.h - ######### # VIDEO # ######### Modified: mplayerxp/libmpcodecs/Makefile =================================================================== --- mplayerxp/libmpcodecs/Makefile 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/Makefile 2013-06-10 07:27:20 UTC (rev 650) @@ -42,18 +42,6 @@ CXXSRCS+= ad_libdv.cpp vd_libdv.cpp endif -ifeq ($(ENABLE_WIN32LOADER),yes) -CXXSRCS+=vd_dshow.cpp \ - vd_vfw.cpp \ - vd_dmo.cpp \ - vd_qtvideo.cpp \ - ad_dshow.cpp \ - ad_acm.cpp \ - ad_dmo.cpp \ - ad_qtaudio.cpp \ - ad_twin.cpp -endif - OBJS=$(SRCS:.c=.o) CXXOBJS=$(CXXSRCS:.cpp=.o) Modified: mplayerxp/libmpcodecs/ad.cpp =================================================================== --- mplayerxp/libmpcodecs/ad.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/ad.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -52,13 +52,6 @@ #ifndef ENABLE_GPL_ONLY &mpcodecs_ad_real, #endif -#ifdef ENABLE_WIN32LOADER - &mpcodecs_ad_dshow, - &mpcodecs_ad_twin, - &mpcodecs_ad_msacm, - &mpcodecs_ad_dmo, - &mpcodecs_ad_qtaudio, -#endif &mpcodecs_ad_lavc, &mpcodecs_ad_null, Deleted: mplayerxp/libmpcodecs/ad_acm.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_acm.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/ad_acm.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -1,268 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace usr; -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ -#define __AD_ACM -#include "ad_internal.h" -#include "codecs_ld.h" -#include "win32loader/wineacm.h" -#include "libmpdemux/aviprint.h" -#include "libao3/afmt.h" -#include "mpxp_help.h" - -static const ad_info_t info = { - "Win32/ACM decoders", - "acm", - "Nickols_K", - "build-in" -}; - -static const mpxp_option_t options[] = { - { NULL, NULL, 0, 0, 0, 0, NULL} -}; - -LIBAD_EXTERN(msacm) - -struct acm_private_t : public Opaque { - acm_private_t(); - virtual ~acm_private_t(); - - float pts; - WAVEFORMATEX o_wf; // out format - HACMSTREAM srcstream; // handle - sh_audio_t* sh; -}; -acm_private_t::acm_private_t() {} -acm_private_t::~acm_private_t() {} - -static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } - -static int init_acm_audio_codec(acm_private_t& priv){ - sh_audio_t* sh_audio = priv.sh; - HRESULT ret; - WAVEFORMATEX *in_fmt=sh_audio->wf; - unsigned int srcsize=0; - - MSG_V("======= Win32 (ACM) AUDIO Codec init =======\n"); - - priv.srcstream=0; - - priv.o_wf.nChannels=sh_audio->nch; - priv.o_wf.nSamplesPerSec=sh_audio->rate; - priv.o_wf.nAvgBytesPerSec=2*priv.o_wf.nSamplesPerSec*priv.o_wf.nChannels; - priv.o_wf.wFormatTag=WAVE_FORMAT_PCM; - priv.o_wf.nBlockAlign=2*sh_audio->nch; - priv.o_wf.wBitsPerSample=sh_audio->afmt?afmt2bps(sh_audio->afmt)*8:16; - priv.o_wf.cbSize=0; - if(!in_fmt) { - in_fmt=sh_audio->wf=new(zeromem) WAVEFORMATEX; - memcpy(in_fmt,&priv.o_wf,sizeof(WAVEFORMATEX)); - in_fmt->wFormatTag=sh_audio->wtag; - } - - if(mp_conf.verbose) { - MSG_V("Output fmt:\n"); - print_wave_header(&priv.o_wf,sizeof(WAVEFORMATEX)); - } - MSACM_RegisterDriver((const char *)sh_audio->codec->dll_name, sh_audio->wtag, 0); - ret=acmStreamOpen(&priv.srcstream,(HACMDRIVER)NULL,in_fmt,&priv.o_wf,NULL,0,0,0); - if(ret){ - if(ret==ACMERR_NOTPOSSIBLE) - MSG_ERR("ACM_Decoder: Unappropriate audio format\n"); - else - MSG_ERR("ACM_Decoder: acmStreamOpen error: %d", (int)ret); - priv.srcstream=0; - return 0; - } - MSG_V("Audio codec opened OK! ;-)\n"); - - acmStreamSize(priv.srcstream, in_fmt->nBlockAlign, (LPDWORD)&srcsize, ACM_STREAMSIZEF_SOURCE); - srcsize*=2; - //if(srcsize<MAX_OUTBURST) srcsize=MAX_OUTBURST; - if(!srcsize){ - MSG_WARN("Warning! ACM codec reports srcsize=0\n"); - srcsize=16384; - } - // limit srcsize to 4-16kb - //while(srcsize && srcsize<4096) srcsize*=2; - //while(srcsize>16384) srcsize/=2; - sh_audio->audio_out_minsize=srcsize; // audio output min. size - MSG_V("Audio ACM output buffer min. size: %ld\n",srcsize); - - acmStreamSize(priv.srcstream, srcsize, (LPDWORD)&srcsize, ACM_STREAMSIZEF_DESTINATION); - if(srcsize<in_fmt->nBlockAlign) srcsize=2*in_fmt->nBlockAlign; - sh_audio->audio_in_minsize=srcsize; // audio input min. size - MSG_V("Audio ACM input buffer min. size: %ld\n",srcsize); - sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec; - sh_audio->nch=priv.o_wf.nChannels; - sh_audio->rate=priv.o_wf.nSamplesPerSec; - sh_audio->afmt=bps2afmt((priv.o_wf.wBitsPerSample+7)/8); - sh_audio->a_in_buffer_size=2*sh_audio->audio_in_minsize; - sh_audio->a_in_buffer=new char [sh_audio->a_in_buffer_size]; - sh_audio->a_in_buffer_len=0; - - return 1; -} - -static int close_acm_audio_codec(acm_private_t& priv) -{ - HRESULT ret; - - ret = acmStreamClose(priv.srcstream, 0); - - if (ret) - switch(ret) - { - case ACMERR_BUSY: - case ACMERR_CANCELED: - MSG_DBG2( "ACM_Decoder: stream busy, waiting..\n"); - sleep(100); - return close_acm_audio_codec(priv); - case ACMERR_UNPREPARED: - case ACMERR_NOTPOSSIBLE: - return 0; - default: - MSG_WARN( "ACM_Decoder: unknown error occured: %d\n", ret); - return 0; - } -/* MSACM_UnregisterAllDrivers();*/ - return 1; -} - -MPXP_Rc init(Opaque& ctx) -{ - acm_private_t& priv=static_cast<acm_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - float pts; - int ret=decode(priv,reinterpret_cast<unsigned char*>(sh_audio->a_buffer),4096,sh_audio->a_buffer_size,pts); - if(ret<0){ - MSG_INFO("ACM decoding error: %d\n",ret); - return MPXP_False; - } - sh_audio->a_buffer_len=ret; - return MPXP_Ok; -} - -Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) -{ - UNUSED(probe); - UNUSED(afi); - /* Win32 ACM audio codec: */ - acm_private_t *priv; - if(!(priv=new(zeromem) acm_private_t)) return NULL; - priv->sh = sh_audio; - if(!init_acm_audio_codec(*priv)){ - MSG_ERR(MSGTR_ACMiniterror); - delete priv; - return NULL; - } - MSG_V("INFO: Win32/ACM init OK!\n"); - return priv; -} - -void uninit(Opaque& ctx) -{ - acm_private_t& priv=static_cast<acm_private_t&>(ctx); - close_acm_audio_codec(priv); -} - -MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) -{ - acm_private_t& priv=static_cast<acm_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - int skip; - UNUSED(arg); - switch(cmd) { -// case ADCTRL_RESYNC_STREAM: -// sh_audio->a_in_buffer_len=0;/* reset ACM/DShow audio buffer */ -// return MPXP_True; - case ADCTRL_SKIP_FRAME: { - float pts; - skip=sh_audio->wf->nBlockAlign; - if(skip<16){ - skip=(sh_audio->wf->nAvgBytesPerSec/16)&(~7); - if(skip<16) skip=16; - } - demux_read_data_r(*sh_audio->ds,NULL,skip,pts); - return MPXP_True; - } - default: - return MPXP_Unknown; - } - return MPXP_Unknown; -} - -unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) -{ - acm_private_t& priv=static_cast<acm_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - ACMSTREAMHEADER ash; - HRESULT hr; - DWORD srcsize=0; - DWORD len=minlen; - - acmStreamSize(priv.srcstream,len , &srcsize, ACM_STREAMSIZEF_DESTINATION); - MSG_V("acm says: srcsize=%ld (bufflen=%d size=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,len); - - if(srcsize<sh_audio->wf->nBlockAlign){ - srcsize=sh_audio->wf->nBlockAlign; - acmStreamSize(priv.srcstream, srcsize, &len, ACM_STREAMSIZEF_SOURCE); - MSG_V("acm says: srcsize=%ld (bufflen=%d size=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,len); - if(len>maxlen) len=maxlen; - } - //if(srcsize==0) srcsize=priv.o_wf.nBlockAlign; - if(srcsize>sh_audio->a_in_buffer_size) srcsize=sh_audio->a_in_buffer_size; // !!!!!! - if(sh_audio->a_in_buffer_len<srcsize){ - int l; - l = demux_read_data_r(*sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), - srcsize-sh_audio->a_in_buffer_len,pts); - pts=FIX_APTS(sh_audio,pts,-sh_audio->a_in_buffer_len); - sh_audio->a_in_buffer_len+=l; - priv.pts=pts; - } - else pts=priv.pts; - /* !!! NK: FINALY WE MUST KNOW size of output buffer after a_in_buffer_len modifying !!!! */ - acmStreamSize(priv.srcstream,sh_audio->a_in_buffer_len, &len, ACM_STREAMSIZEF_SOURCE); - MSG_DBG2("acm convert %d -> %d bytes\n",sh_audio->a_in_buffer_len,len); - - memset(&ash, 0, sizeof(ash)); - ash.cbStruct=sizeof(ash); - ash.fdwStatus=0; - ash.dwUser=0; - ash.pbSrc=reinterpret_cast<BYTE*>(sh_audio->a_in_buffer); - ash.cbSrcLength=sh_audio->a_in_buffer_len; - ash.pbDst=buf; - ash.cbDstLength=len; - hr=acmStreamPrepareHeader(priv.srcstream,&ash,0); - if(hr){ - MSG_V("ACM_Decoder: acmStreamPrepareHeader error %d\n",(int)hr); - return -1; - } - hr=acmStreamConvert(priv.srcstream,&ash,0); - if(hr){ - MSG_DBG2("ACM_Decoder: acmStreamConvert error %d\n",(int)hr); - switch(hr) - { - case ACMERR_NOTPOSSIBLE: - case ACMERR_UNPREPARED: - MSG_DBG2( "ACM_Decoder: acmStreamConvert error: probarly not initialized!\n"); - } - } - MSG_DBG2("acm converted %d -> %d\n",ash.cbSrcLengthUsed,ash.cbDstLengthUsed); - if(ash.cbSrcLengthUsed>=sh_audio->a_in_buffer_len){ - sh_audio->a_in_buffer_len=0; - } else { - sh_audio->a_in_buffer_len-=ash.cbSrcLengthUsed; - memcpy(sh_audio->a_in_buffer,&sh_audio->a_in_buffer[ash.cbSrcLengthUsed],sh_audio->a_in_buffer_len); - priv.pts=FIX_APTS(sh_audio,priv.pts,ash.cbSrcLengthUsed); - } - len=ash.cbDstLengthUsed; - hr=acmStreamUnprepareHeader(priv.srcstream,&ash,0); - if(hr){ - MSG_V("ACM_Decoder: acmStreamUnprepareHeader error %d\n",(int)hr); - } - return len; -} Deleted: mplayerxp/libmpcodecs/ad_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dmo.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/ad_dmo.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -1,133 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace usr; -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <dlfcn.h> - -#include "codecs_ld.h" - -#include "mplayerxp.h" -#include "mpxp_help.h" -#include "ad_internal.h" -#include "ad_msg.h" - -static const ad_info_t info = { - "Win32/DMO decoders", - "dmo", - "A'rpi", - "build-in" -}; - -static const mpxp_option_t options[] = { - { NULL, NULL, 0, 0, 0, 0, NULL} -}; - -LIBAD_EXTERN(dmo) - -#include "win32loader/dmo/DMO_AudioDecoder.h" - -struct admo_private_t : public Opaque { - admo_private_t(); - virtual ~admo_private_t(); - - float pts; - DMO_AudioDecoder* ds_adec; - sh_audio_t* sh; -}; -admo_private_t::admo_private_t() {} -admo_private_t::~admo_private_t() { - DMO_AudioDecoder_Destroy(ds_adec); -} - -static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } - -static MPXP_Rc init(admo_private_t *p) -{ - UNUSED(p); - return MPXP_Ok; -} - -static Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) -{ - UNUSED(probe); - UNUSED(afi); - admo_private_t*priv; - int chans=(mp_conf.ao_channels==sh_audio->wf->nChannels) ? - mp_conf.ao_channels : (sh_audio->wf->nChannels>=2 ? 2 : 1); - if(!(priv=new(zeromem) admo_private_t)) return NULL; - priv->sh=sh_audio; - if(!(priv->ds_adec=DMO_AudioDecoder_Open(sh_audio->codec->dll_name,&sh_audio->codec->guid,sh_audio->wf,chans))) { - MSG_ERR(MSGTR_MissingDLLcodec,sh_audio->codec->dll_name); - delete priv; - return NULL; - } - sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec; - sh_audio->nch=chans; - sh_audio->rate=sh_audio->wf->nSamplesPerSec; - sh_audio->audio_in_minsize=4*sh_audio->wf->nBlockAlign; - if(sh_audio->audio_in_minsize<8192) sh_audio->audio_in_minsize=8192; - sh_audio->audio_out_minsize=4*16384; - MSG_V("INFO: Win32/DMO audio codec init OK!\n"); - return priv; -} - -static void uninit(Opaque& ctx) { UNUSED(ctx); } - -static MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) -{ - admo_private_t& priv=static_cast<admo_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - int skip; - UNUSED(arg); - switch(cmd) { - case ADCTRL_SKIP_FRAME: { - float pts; - skip=sh_audio->wf->nBlockAlign; - if(skip<16){ - skip=(sh_audio->wf->nAvgBytesPerSec/16)&(~7); - if(skip<16) skip=16; - } - demux_read_data_r(*sh_audio->ds,NULL,skip,pts); - return MPXP_True; - } - } - return MPXP_Unknown; -} - -static unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) -{ - admo_private_t& priv=static_cast<admo_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - unsigned len=0; - UNUSED(minlen); - { - unsigned size_in=0; - unsigned size_out=0; - unsigned srcsize=DMO_AudioDecoder_GetSrcSize(priv.ds_adec, maxlen); - MSG_DBG2("DMO says: srcsize=%d (buffsize=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_size,maxlen); - if(srcsize>sh_audio->a_in_buffer_size) srcsize=sh_audio->a_in_buffer_size; // !!!!!! - if((unsigned)sh_audio->a_in_buffer_len<srcsize){ - unsigned l; - l=demux_read_data_r(*sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), - srcsize-sh_audio->a_in_buffer_len,pts); - sh_audio->a_in_buffer_len+=l; - priv.pts=pts; - } - else pts=priv.pts; - DMO_AudioDecoder_Convert(priv.ds_adec, sh_audio->a_in_buffer,sh_audio->a_in_buffer_len, - buf,maxlen, &size_in,&size_out); - MSG_DBG2("DMO: audio %d -> %d converted (in_buf_len=%d of %d) %f\n" - ,size_in,size_out,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,pts); - if(size_in>=(unsigned)sh_audio->a_in_buffer_len){ - sh_audio->a_in_buffer_len=0; - } else { - sh_audio->a_in_buffer_len-=size_in; - memcpy(sh_audio->a_in_buffer,&sh_audio->a_in_buffer[size_in],sh_audio->a_in_buffer_len); - priv.pts=FIX_APTS(sh_audio,priv.pts,size_in); - } - len=size_out; - } - return len; -} Deleted: mplayerxp/libmpcodecs/ad_dshow.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_dshow.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/ad_dshow.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -1,131 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace usr; -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ -#include "ad_internal.h" -#include "mpxp_help.h" -#include "win32loader/dshow/DS_AudioDecoder.h" -#include "codecs_ld.h" - -static const ad_info_t info = { - "Win32/DirectShow decoders", - "dshow", - "Nickols_K", - "build-in" -}; - -static const mpxp_option_t options[] = { - { NULL, NULL, 0, 0, 0, 0, NULL} -}; - -LIBAD_EXTERN(dshow) - -struct adshow_private_t : public Opaque { - adshow_private_t(); - virtual ~adshow_private_t(); - - float pts; - DS_AudioDecoder* ds_adec; - sh_audio_t* sh; -}; -adshow_private_t::adshow_private_t() {} -adshow_private_t::~adshow_private_t() { - DS_AudioDecoder_Destroy(ds_adec); -} - -static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } - -MPXP_Rc init(Opaque& ctx) -{ - UNUSED(ctx); - return MPXP_Ok; -} - -Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) -{ - UNUSED(probe); - UNUSED(afi); - adshow_private_t *priv; - if(!(priv=new(zeromem) adshow_private_t)) return NULL; - priv->sh = sh_audio; - if(!(priv->ds_adec=DS_AudioDecoder_Open(sh_audio->codec->dll_name,&sh_audio->codec->guid,sh_audio->wf))) { - MSG_ERR(MSGTR_MissingDLLcodec,sh_audio->codec->dll_name); - delete priv; - return NULL; - } - sh_audio->i_bps=sh_audio->wf->nAvgBytesPerSec; - sh_audio->nch=sh_audio->wf->nChannels; - sh_audio->rate=sh_audio->wf->nSamplesPerSec; - sh_audio->audio_in_minsize=2*sh_audio->wf->nBlockAlign; - if(sh_audio->audio_in_minsize<8192) sh_audio->audio_in_minsize=8192; - sh_audio->audio_out_minsize=16384; - MSG_V("INFO: Win32/DShow init OK!\n"); - return priv; -} - -void uninit(Opaque& ctx) { UNUSED(ctx); } - - -MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) -{ - adshow_private_t& priv=static_cast<adshow_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - int skip; - UNUSED(arg); - switch(cmd) { - case ADCTRL_RESYNC_STREAM: - sh_audio->a_in_buffer_len=0; // reset ACM/DShow audio buffer - return MPXP_True; - case ADCTRL_SKIP_FRAME: { - float pts; - skip=sh_audio->wf->nBlockAlign; - if(skip<16){ - skip=(sh_audio->wf->nAvgBytesPerSec/16)&(~7); - if(skip<16) skip=16; - } - demux_read_data_r(*sh_audio->ds,NULL,skip,pts); - } - return MPXP_True; - default: - return MPXP_Unknown; - } - return MPXP_Unknown; -} - -unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) -{ - adshow_private_t& priv=static_cast<adshow_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - unsigned len=0; - UNUSED(minlen); - { unsigned size_in=0; - unsigned size_out=0; - unsigned srcsize=DS_AudioDecoder_GetSrcSize(priv.ds_adec, maxlen); - MSG_DBG3("DShow says: srcsize=%d (buffsize=%d) out_size=%d\n",srcsize,sh_audio->a_in_buffer_size,maxlen); - if(srcsize>sh_audio->a_in_buffer_size) srcsize=sh_audio->a_in_buffer_size; // !!!!!! - if((unsigned)sh_audio->a_in_buffer_len<srcsize){ - unsigned l; - l=demux_read_data_r(*sh_audio->ds,reinterpret_cast<unsigned char*>(&sh_audio->a_in_buffer[sh_audio->a_in_buffer_len]), - srcsize-sh_audio->a_in_buffer_len,pts); - sh_audio->a_in_buffer_len+=l; - priv.pts=pts; - } - else pts=priv.pts; - DS_AudioDecoder_Convert(priv.ds_adec, reinterpret_cast<unsigned char*>(sh_audio->a_in_buffer),sh_audio->a_in_buffer_len, - buf,maxlen, &size_in,&size_out); - MSG_DBG2("DShow: audio %d -> %d converted (in_buf_len=%d of %d) %f\n" - ,size_in,size_out,sh_audio->a_in_buffer_len,sh_audio->a_in_buffer_size,pts); - if(size_in>=(unsigned)sh_audio->a_in_buffer_len){ - sh_audio->a_in_buffer_len=0; - } else { - sh_audio->a_in_buffer_len-=size_in; - memcpy(sh_audio->a_in_buffer,&sh_audio->a_in_buffer[size_in],sh_audio->a_in_buffer_len); - priv.pts=FIX_APTS(sh_audio,priv.pts,size_in); - } - len=size_out; - } - return len; -} Deleted: mplayerxp/libmpcodecs/ad_qtaudio.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_qtaudio.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/ad_qtaudio.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -1,331 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace usr; -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <inttypes.h> -#include <dlfcn.h> - -#include "ad_internal.h" -#include "osdep/bswap.h" -#include "codecs_ld.h" -#include "mplayerxp.h" -#include "libao3/afmt.h" -#ifdef WIN32_LOADER -#include "win32loader/ldt_keeper.h" -#endif - -#ifdef MACOSX -#include <QuickTime/QuickTimeComponents.h> -#endif - -static const ad_info_t info = { - "QuickTime Audio Decoder", - "qtaudio", - "A'rpi & Sascha Sommer", - "build-in" -}; - -static const mpxp_option_t options[] = { - { NULL, NULL, 0, 0, 0, 0, NULL} -}; - -LIBAD_EXTERN(qtaudio) - - -typedef struct OpaqueSoundConverter* SoundConverter; -typedef unsigned long OSType; -typedef unsigned long UnsignedFixed; -typedef uint8_t Byte; -typedef struct SoundComponentData { - long flags; - OSType format; - short numChannels; - short sampleSize; - UnsignedFixed sampleRate; - long sampleCount; - Byte* buffer; - long reserved; -}SoundComponentData; - -typedef int (__cdecl* LPFUNC1)(long flag); -typedef int (__cdecl* LPFUNC2)(const SoundComponentData *, const SoundComponentData *,SoundConverter *); -typedef int (__cdecl* LPFUNC3)(SoundConverter sc); -typedef int (__cdecl* LPFUNC4)(void); -typedef int (__cdecl* LPFUNC5)(SoundConverter sc, OSType selector,any_t* infoPtr); -typedef int (__cdecl* LPFUNC6)(SoundConverter sc, - unsigned long inputBytesTarget, - unsigned long *inputFrames, - unsigned long *inputBytes, - unsigned long *outputBytes ); -typedef int (__cdecl* LPFUNC7)(SoundConverter sc, - const any_t*inputPtr, - unsigned long inputFrames, - any_t*outputPtr, - unsigned long *outputFrames, - unsigned long *outputBytes ); -typedef int (__cdecl* LPFUNC8)(SoundConverter sc, - any_t*outputPtr, - unsigned long *outputFrames, - unsigned long *outputBytes); -typedef int (__cdecl* LPFUNC9)(SoundConverter sc); - -static HINSTANCE qtml_dll; -static LPFUNC1 InitializeQTML; -static LPFUNC2 SoundConverterOpen; -static LPFUNC3 SoundConverterClose; -static LPFUNC4 TerminateQTML; -static LPFUNC5 SoundConverterSetInfo; -static LPFUNC6 SoundConverterGetBufferSizes; -static LPFUNC7 SoundConverterConvertBuffer; -static LPFUNC8 SoundConverterEndConversion; -static LPFUNC9 SoundConverterBeginConversion; - -#define siDecompressionParams 2002876005 // siDecompressionParams = FOUR_CHAR_CODE('wave') - -HMODULE WINAPI LoadLibraryA(LPCSTR); -FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR); -int WINAPI FreeLibrary(HMODULE); - -static int loader_init() -{ -#ifdef WIN32_LOADER - Setup_LDT_Keeper(); -#endif - qtml_dll = LoadLibraryA((LPCSTR)"qtmlClient.dll"); - if( !qtml_dll ) { - MSG_ERR("failed loading dll\n" ); - return 1; - } -#if 1 - InitializeQTML = (LPFUNC1)GetProcAddress(qtml_dll,(LPCSTR)"InitializeQTML"); - if ( InitializeQTML == NULL ) { - MSG_ERR("failed geting proc address InitializeQTML\n"); - return 1; - } - SoundConverterOpen = (LPFUNC2)GetProcAddress(qtml_dll,(LPCSTR)"SoundConverterOpen"); - if ( SoundConverterOpen == NULL ) { - MSG_ERR("failed getting proc address SoundConverterOpen\n"); - return 1; - } - SoundConverterClose = (LPFUNC3)GetProcAddress(qtml_dll,(LPCSTR)"SoundConverterClose"); - if ( SoundConverterClose == NULL ) { - MSG_ERR("failed getting proc address SoundConverterClose\n"); - return 1; - } - TerminateQTML = (LPFUNC4)GetProcAddress(qtml_dll,(LPCSTR)"TerminateQTML"); - if ( TerminateQTML == NULL ) { - MSG_ERR("failed getting proc address TerminateQTML\n"); - return 1; - } - SoundConverterSetInfo = (LPFUNC5)GetProcAddress(qtml_dll,(LPCSTR)"SoundConverterSetInfo"); - if ( SoundConverterSetInfo == NULL ) { - MSG_ERR("failed getting proc address SoundConverterSetInfo\n"); - return 1; - } - SoundConverterGetBufferSizes = (LPFUNC6)GetProcAddress(qtml_dll,(LPCSTR)"SoundConverterGetBufferSizes"); - if ( SoundConverterGetBufferSizes == NULL ) { - MSG_ERR("failed getting proc address SoundConverterGetBufferSizes\n"); - return 1; - } - SoundConverterConvertBuffer = (LPFUNC7)GetProcAddress(qtml_dll,(LPCSTR)"SoundConverterConvertBuffer"); - if ( SoundConverterConvertBuffer == NULL ) { - MSG_ERR("failed getting proc address SoundConverterConvertBuffer1\n"); - return 1; - } - SoundConverterEndConversion = (LPFUNC8)GetProcAddress(qtml_dll,(LPCSTR)"SoundConverterEndConversion"); - if ( SoundConverterEndConversion == NULL ) { - MSG_ERR("failed getting proc address SoundConverterEndConversion\n"); - return 1; - } - SoundConverterBeginConversion = (LPFUNC9)GetProcAddress(qtml_dll,(LPCSTR)"SoundConverterBeginConversion"); - if ( SoundConverterBeginConversion == NULL ) { - MSG_ERR("failed getting proc address SoundConverterBeginConversion\n"); - return 1; - } - MSG_V("Standard init done you may now call supported functions\n"); -#endif - MSG_V("loader_init DONE???\n"); - return 0; -} - -static SoundConverter myConverter = NULL; -static SoundComponentData InputFormatInfo,OutputFormatInfo; - -static int InFrameSize; -static int OutFrameSize; - -struct qta_private_t : public Opaque { - qta_private_t(); - virtual ~qta_private_t(); - - sh_audio_t* sh; -}; - -static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } - -static Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh,audio_filter_info_t& afi){ - UNUSED(probe); - UNUSED(afi); - int error; - unsigned long FramesToGet=0; //how many frames the demuxer has to get - unsigned long InputBufferSize=0; //size of the input buffer - unsigned long OutputBufferSize=0; //size of the output buffer - unsigned long WantedBufferSize=0; //the size you want your buffers to be - - if(mp_conf.s_cache_size) { - MSG_FATAL("Disabling sound:\nwin32 quicktime DLLs must be initialized in single-threaded mode! Try -nocache\n"); - return NULL; - } - MSG_INFO("win32 libquicktime loader (c) Sascha Sommer\n"); - -#ifdef MACOSX - EnterMovies(); -#else - if(loader_init()) return NULL; // failed to load DLL - - MSG_V("loader_init DONE!\n"); - - error = InitializeQTML(6+16); - MSG_ERR("InitializeQTML:%i\n",error); - if(error) return NULL; -#endif - -#if 1 - OutputFormatInfo.flags = InputFormatInfo.flags = 0; - OutputFormatInfo.sampleCount = InputFormatInfo.sampleCount = 0; - OutputFormatInfo.buffer = InputFormatInfo.buffer = NULL; - OutputFormatInfo.reserved = InputFormatInfo.reserved = 0; - OutputFormatInfo.numChannels = InputFormatInfo.numChannels = sh->wf->nChannels; - InputFormatInfo.sampleSize = sh->wf->wBitsPerSample; - OutputFormatInfo.sampleSize = 16; - OutputFormatInfo.sampleRate = InputFormatInfo.sampleRate = sh->wf->nSamplesPerSec; - InputFormatInfo.format = bswap_32(sh->wtag); //1363430706;///*1768775988;//*/1902406962;//qdm2//1768775988;//FOUR_CHAR_CODE('ima4'); - OutputFormatInfo.format = 1313820229;// FOUR_CHAR_CODE('NONE'); - - error = SoundConverterOpen(&InputFormatInfo, &OutputFormatInfo, &myConverter); - MSG_V("SoundConverterOpen:%i\n",error); - if(error) return NULL; - - if(sh->codecdata){ - error = SoundConverterSetInfo(myConverter,siDecompressionParams,sh->codecdata); - MSG_V("SoundConverterSetInfo:%i\n",error); -// if(error) return 0; - } - - WantedBufferSize=OutputFormatInfo.numChannels*OutputFormatInfo.sampleRate*2; - error = SoundConverterGetBufferSizes(myConverter, - WantedBufferSize,&FramesToGet,&InputBufferSize,&OutputBufferSize); - MSG_V("SoundConverterGetBufferSizes:%i\n",error); - MSG_V("WantedBufferSize = %li\n",WantedBufferSize); - MSG_V("InputBufferSize = %li\n",InputBufferSize); - MSG_V("OutputBufferSize = %li\n",OutputBufferSize); - MSG_V("FramesToGet = %li\n",FramesToGet); - - InFrameSize=(InputBufferSize+FramesToGet-1)/FramesToGet; - OutFrameSize=OutputBufferSize/FramesToGet; - - MSG_V("FrameSize: %i -> %i\n",InFrameSize,OutFrameSize); - - error = SoundConverterBeginConversion(myConverter); - MSG_V("SoundConverterBeginConversion:%i\n",error); - if(error) return NULL; - - sh->audio_out_minsize=OutputBufferSize; - sh->audio_in_minsize=InputBufferSize; - - sh->nch=sh->wf->nChannels; - sh->rate=sh->wf->nSamplesPerSec; - sh->afmt=bps2afmt(2); //(sh->wf->wBitsPerSample+7)/8; - - sh->i_bps=sh->wf->nAvgBytesPerSec; -//InputBufferSize*WantedBufferSize/OutputBufferSize; - -#endif - qta_private_t* priv = new(zeromem) qta_private_t; - priv->sh = sh; - return priv; // return values: 1=OK 0=ERROR -} - -static MPXP_Rc init(Opaque& ctx) -{ - UNUSED(ctx); - return MPXP_Ok; // return values: 1=OK 0=ERROR -} - -static void uninit(Opaque& ctx){ - qta_private_t& priv=static_cast<qta_private_t&>(ctx); - sh_audio_t* sh = priv.sh; - int error; - unsigned long ConvertedFrames=0; - unsigned long ConvertedBytes=0; - UNUSED(sh); - error=SoundConverterEndConversion(myConverter,NULL,&ConvertedFrames,&ConvertedBytes); - MSG_V("SoundConverterEndConversion:%i\n",error); - error = SoundConverterClose(myConverter); - MSG_V("SoundConverterClose:%i\n",error); -// error = TerminateQTML(); -// MSG_V("TerminateQTML:%i\n",error); -// FreeLibrary( qtml_dll ); -// qtml_dll = NULL; -// printf("qt dll loader uninit done\n"); -#ifdef MACOSX - ExitMovies(); -#endif -} - -static unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts){ - qta_private_t& priv=static_cast<qta_private_t&>(ctx); - sh_audio_t* sh = priv.sh; - int error; - unsigned long FramesToGet=0; //how many frames the demuxer has to get - unsigned long InputBufferSize=0; //size of the input buffer - unsigned long ConvertedFrames=0; - unsigned long ConvertedBytes=0; - - FramesToGet=minlen/OutFrameSize; - if(FramesToGet*OutFrameSize<minlen && - (FramesToGet+1)*OutFrameSize<=maxlen) ++FramesToGet; - if(FramesToGet*InFrameSize>sh->a_in_buffer_size) - FramesToGet=sh->a_in_buffer_size/InFrameSize; - - InputBufferSize=FramesToGet*InFrameSize; - -// printf("FramesToGet = %li (%li -> %li bytes)\n",FramesToGet, -// InputBufferSize, FramesToGet*OutFrameSize); - - if(InputBufferSize>(unsigned)sh->a_in_buffer_len){ - int x=demux_read_data_r(*sh->ds,reinterpret_cast<unsigned char*>(&sh->a_in_buffer[sh->a_in_buffer_len]), - InputBufferSize-sh->a_in_buffer_len,pts); - if(x>0) sh->a_in_buffer_len+=x; - if(InputBufferSize>(unsigned)sh->a_in_buffer_len) - FramesToGet=sh->a_in_buffer_len/InFrameSize; // not enough data! - } - -// printf("\nSoundConverterConvertBuffer(myConv=%p,inbuf=%p,frames=%d,outbuf=%p,&convframes=%p,&convbytes=%p)\n", -// myConverter,sh->a_in_buffer,FramesToGet,buf,&ConvertedFrames,&ConvertedBytes); - error = SoundConverterConvertBuffer(myConverter,sh->a_in_buffer, - FramesToGet,buf,&ConvertedFrames,&ConvertedBytes); -// printf("SoundConverterConvertBuffer:%i\n",error); -// printf("ConvertedFrames = %li\n",ConvertedFrames); -// printf("ConvertedBytes = %li\n",ConvertedBytes); - -// InputBufferSize=(ConvertedBytes/OutFrameSize)*InFrameSize; // FIXME!! - InputBufferSize=FramesToGet*InFrameSize; - sh->a_in_buffer_len-=InputBufferSize; - if(sh->a_in_buffer_len<0) sh->a_in_buffer_len=0; // should not happen... - else if(sh->a_in_buffer_len>0){ - memcpy(sh->a_in_buffer,&sh->a_in_buffer[InputBufferSize],sh->a_in_buffer_len); - } - - return ConvertedBytes; -} - -static MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...){ - // various optional functions you MAY implement: - UNUSED(ctx); - UNUSED(cmd); - UNUSED(arg); - return MPXP_Unknown; -} Deleted: mplayerxp/libmpcodecs/ad_twin.cpp =================================================================== --- mplayerxp/libmpcodecs/ad_twin.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/ad_twin.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -1,644 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace usr; -#include <stdexcept> - -#include <stdio.h> -#include <stdlib.h> -#include <unistd.h> -#include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ -#include "ad_internal.h" -#include "codecs_ld.h" -#include "win32loader/ldt_keeper.h" -#include "win32loader/wine/windef.h" -#include "libao3/afmt.h" -#include "libmpdemux/aviprint.h" -#include "mpxp_help.h" - -static const ad_info_t info = { - "TWinVQ decoder", - "vqf", - "Nickols_K", - "build-in" -}; - -static const mpxp_option_t options[] = { - { NULL, NULL, 0, 0, 0, 0, NULL} -}; - -LIBAD_EXTERN(twin) - - -/************************/ -/*** General settings ***/ -/************************/ -/* Initialization error code */ -enum INIT_ERROR_CODE { - TVQ_NO_ERROR = 0, // no error - TVQ_ERROR, // general - TVQ_ERROR_VERSION, // wrong version - TVQ_ERROR_CHANNEL, // channel setting error - TVQ_ERROR_MODE, // wrong coding mode - TVQ_ERROR_PARAM, // inner parameter setting error - TVQ_ERROR_N_CAN, // wrong number of VQ pre-selection candidates, used only in encoder -}; - -/* version ID */ -#define TVQ_UNKNOWN_VERSION -1 -#define V2 0 -#define V2PP 1 - -#define N_VERSIONS 2 - -/* window types */ -enum WINDOW_TYPE { - ONLY_LONG_WINDOW = 0, - LONG_SHORT_WINDOW, - ONLY_SHORT_WINDOW, - SHORT_LONG_WINDOW, - SHORT_MEDIUM_WINDOW, - MEDIUM_LONG_WINDOW, - LONG_MEDIUM_WINDOW, - MEDIUM_SHORT_WINDOW, - ONLY_MEDIUM_WINDOW, -}; - -/* block types */ -enum BLOCK_TYPE { - BLK_SHORT = 0, - BLK_MEDIUM, - BLK_LONG, - BLK_PPC, -}; -#define N_BTYPE 3 // number of block types -#define N_INTR_TYPE 4 // number of interleave types, enum BLOCK_TYPE is commonly used for detecting interleave types. - -/* maximum number of channels */ -#define N_CH_MAX 2 - -/* type definition of code information interface */ -typedef struct { - /* block type */ - int w_type; - int btype; - /* FBC info */ - int *segment_sw[ N_CH_MAX ]; - int *band_sw[ N_CH_MAX ]; - int *fg_intensity[ N_CH_MAX ]; - /* VQ info */ - int *wvq; - /* BSE info */ - int *fw; - int *fw_alf; - /* gain info */ - int *pow; - /* LSP info */ - int *lsp[ N_CH_MAX ]; - /* PPC info */ - int pit[ N_CH_MAX ]; - int *pls; - int pgain[ N_CH_MAX ]; - /* EBC info */ - int *bc[ N_CH_MAX ]; - any_t*manager; -} INDEX; - -/***********************************************/ -/*** Definitions about program configuration ***/ -/***********************************************/ -/* type definition of tvqConfInfoSubBlock */ -typedef struct { - int sf_sz; // subframe size - int nsf; // number of subframes - int ndiv; // number of division of weighted interleave vector quantization - int ncrb; // number of Bark-scale subbands - int fw_ndiv; // number of division of BSE VQ - int fw_nbit; // number of bits for BSE VQ - int nsubg; // number of sub-blocks for gain coding - int ppc_enable; // PPC switch - int ebc_enable; // EBC switch - int ebc_crb_base; // EBC base band - int ebc_bits; // EBC bits - int fbc_enable; // FBC switch - int fbc_n_segment; // FBC number of segments - int fbc_nband; // FBC number of subbands - int *fbc_crb_tbl; // FBC subband table -} tvqConfInfoSubBlock; - -/* type definition of tvqConfInfo */ -typedef struct { - /* frame configuration */ - int N_CH; - /* window type coding */ - int BITS_WTYPE; - /* LSP coding */ - int LSP_BIT0; - int LSP_BIT1; - int LSP_BIT2; - int LSP_SPLIT; - /* Bark-scale envelope coding */ - int FW_ARSW_BITS; - /* gain coding */ - int GAIN_BITS; - int SUB_GAIN_BITS; - /* pitch excitation */ - int N_DIV_P; - int BASF_BIT; - int PGAIN_BIT; - /* block type dependent parameters */ - tvqConfInfoSubBlock cfg[N_BTYPE]; -} tvqConfInfo; - -#define KEYWORD_BYTES 4 -#define VERSION_BYTES 8 -#define ELEM_BYTES sizeof(unsigned long) -/* - */ -typedef struct{ - char ID[KEYWORD_BYTES+VERSION_BYTES+1]; - int size; - /* Common Chunk */ - int channelMode; /* channel mode (mono:0/stereo:1) */ - int bitRate; /* bit rate (kbit/s) */ - int samplingRate; /* sampling rate (44.1 kHz -> 44) */ - int securityLevel; /* security level (always 0) */ - /* Text Chunk */ - char Name[BUFSIZ]; - char Comt[BUFSIZ]; - char Auth[BUFSIZ]; - char Cpyr[BUFSIZ]; - char File[BUFSIZ]; - char Extr[BUFSIZ]; // add by OKAMOTO 99.12.21 - /* Data size chunk*/ - int Dsiz; -} headerInfo; - -extern HMODULE WINAPI LoadLibraryA(LPCSTR); -extern FARPROC WINAPI GetProcAddress(HMODULE,LPCSTR); -extern int WINAPI FreeLibrary(HMODULE); - -static int (__cdecl* TvqInitialize_ptr)( headerInfo *setupInfo, INDEX *index, int dispErrorMessageBox ); -#define TvqInitialize(a,b,c) (*TvqInitialize_ptr)(a,b,c) -static void (__cdecl* TvqTerminate_ptr)( INDEX *index ); -#define TvqTerminate(a) (*TvqTerminate_ptr)(a) -static void (__cdecl* TvqGetVectorInfo_ptr)(int *bits0[], int *bits1[]); -#define TvqGetVectorInfo(a,b) (*TvqGetVectorInfo_ptr)(a,b) - -static void (__cdecl* TvqDecodeFrame_ptr)(INDEX *indexp, float out[]); -#define TvqDecodeFrame(a,b) (*TvqDecodeFrame_ptr)(a,b) -static int (__cdecl* TvqWtypeToBtype_ptr)( int w_type, int *btype ); -#define TvqWtypeToBtype(a,b) (*TvqWtypeToBtype_ptr)(a,b) -static void (__cdecl* TvqUpdateVectorInfo_ptr)(int varbits, int *ndiv, int bits0[], int bits1[]); -#define TvqUpdateVectorInfo(a,b,c,d) (*TvqUpdateVectorInfo_ptr)(a,b,c,d) - -static int (__cdecl* TvqCheckVersion_ptr)(char *versionID); -#define TvqCheckVersion(a) (*TvqCheckVersion_ptr)(a) -static void (__cdecl* TvqGetConfInfo_ptr)(tvqConfInfo *cf); -#define TvqGetConfInfo(a) (*TvqGetConfInfo_ptr)(a) -static int (__cdecl* TvqGetFrameSize_ptr)(); -#define TvqGetFrameSize() (*TvqGetFrameSize_ptr)() -static int (__cdecl* TvqGetNumFixedBitsPerFrame_ptr)(); -#define TvqGetNumFixedBitsPerFrame() (*TvqGetNumFixedBitsPerFrame_ptr)() - -#define BYTE_BIT 8 -#define BBUFSIZ 1024 /* Bit buffer size (bytes) */ -#define BBUFLEN (BBUFSIZ*BYTE_BIT) /* Bit buffer length (bits) */ -struct twin_private_t : public Opaque { - twin_private_t(); - virtual ~twin_private_t(); - - float pts; - WAVEFORMATEX o_wf; // out format - INDEX index; - tvqConfInfo cf; - headerInfo hi; - int *bits_0[N_INTR_TYPE], *bits_1[N_INTR_TYPE]; - unsigned framesize; - /* stream related */ - int readable; - int ptr; /* current point in the bit buffer */ - int nbuf; /* bit buffer size */ - char buf[BBUFSIZ]; /* the bit buffer */ - sh_audio_t* sh; -}; -twin_private_t::twin_private_t() {} -twin_private_t::~twin_private_t() {} - -static const audio_probe_t* __FASTCALL__ probe(uint32_t wtag) { return NULL; } - -static HINSTANCE vqf_dll; - -static int load_dll( const char *libname ) -{ -#ifdef WIN32_LOADER - Setup_LDT_Keeper_ptr(); -#endif - vqf_dll = LoadLibraryA((LPCSTR)libname); - if( vqf_dll == NULL ) { - MSG_ERR("failed loading dll\n" ); - return 0; - } - TvqInitialize_ptr = (int (*)(headerInfo*,INDEX*,int))GetProcAddress(vqf_dll,(LPCSTR)"TvqInitialize"); - TvqTerminate_ptr = (void (*)(INDEX*))GetProcAddress(vqf_dll,(LPCSTR)"TvqTerminate"); - TvqGetVectorInfo_ptr = (void (*)(int**,int**))GetProcAddress(vqf_dll,(LPCSTR)"TvqGetVectorInfo"); - TvqDecodeFrame_ptr = (void (*)(INDEX*,float*))GetProcAddress(vqf_dll,(LPCSTR)"TvqDecodeFrame"); - TvqWtypeToBtype_ptr = (int (*)(int,int*))GetProcAddress(vqf_dll,(LPCSTR)"TvqWtypeToBtype"); - TvqUpdateVectorInfo_ptr = (void (*)(int,int*,int*,int*))GetProcAddress(vqf_dll,(LPCSTR)"TvqUpdateVectorInfo"); - TvqCheckVersion_ptr = (int (*)(char*))GetProcAddress(vqf_dll,(LPCSTR)"TvqCheckVersion"); - TvqGetConfInfo_ptr = (void (*)(tvqConfInfo*))GetProcAddress(vqf_dll,(LPCSTR)"TvqGetConfInfo"); - TvqGetFrameSize_ptr = (int (*)())GetProcAddress(vqf_dll,(LPCSTR)"TvqGetFrameSize"); - TvqGetNumFixedBitsPerFrame_ptr = (int (*)())GetProcAddress(vqf_dll,(LPCSTR)"TvqGetNumFixedBitsPerFrame"); - return TvqInitialize_ptr && TvqTerminate_ptr && TvqGetVectorInfo_ptr && - TvqDecodeFrame_ptr && TvqWtypeToBtype_ptr && TvqUpdateVectorInfo_ptr && - TvqCheckVersion_ptr && TvqGetConfInfo_ptr && TvqGetFrameSize_ptr && - TvqGetNumFixedBitsPerFrame_ptr; -} - -static int init_vqf_audio_codec(twin_private_t& priv){ - sh_audio_t* sh_audio = priv.sh; - WAVEFORMATEX *in_fmt=sh_audio->wf; - int ver; - MSG_V("======= Win32 (TWinVQ) AUDIO Codec init =======\n"); - - priv.o_wf.nChannels=in_fmt->nChannels; - priv.o_wf.nSamplesPerSec=in_fmt->nSamplesPerSec; - priv.o_wf.nAvgBytesPerSec=in_fmt->nSamplesPerSec; - priv.o_wf.wFormatTag=0x01; - priv.o_wf.nBlockAlign=4*in_fmt->nChannels; - priv.o_wf.wBitsPerSample=in_fmt->wBitsPerSample; - priv.o_wf.cbSize=0; - sh_audio->nch=in_fmt->nChannels; - sh_audio->rate=in_fmt->nSamplesPerSec; - sh_audio->afmt=AFMT_FLOAT32; - - if(mp_conf.verbose) { - MSG_V("Input format:\n"); - print_wave_header(in_fmt,sizeof(WAVEFORMATEX)); - MSG_V("Output fmt:\n"); - print_wave_header(&priv.o_wf,sizeof(WAVEFORMATEX)); - } - memcpy(&priv.hi,&in_fmt[1],sizeof(headerInfo)); - if((ver=TvqInitialize(&priv.hi,&priv.index,0))){ - const char *tvqe[]={ - "No errors", - "General error", - "Wrong version", - "Channel setting error", - "Wrong coding mode", - "Inner parameter setting error", - "Wrong number of VQ pre-selection candidates, used only in encoder" }; - MSG_ERR("Tvq initialization error: %s\n",ver>=0&&ver<7?tvqe[ver]:"Unknown"); - return 0; - } - ver=TvqCheckVersion(priv.hi.ID); - if(ver==TVQ_UNKNOWN_VERSION){ - MSG_ERR("Tvq unknown version of stream\n" ); - return 0; - } - TvqGetConfInfo(&priv.cf); - TvqGetVectorInfo(priv.bits_0,priv.bits_1); - priv.framesize=TvqGetFrameSize(); - sh_audio->audio_in_minsize=priv.framesize*in_fmt->nChannels; - sh_audio->a_in_buffer_size=4*sh_audio->audio_in_minsize; - sh_audio->a_in_buffer=new char [sh_audio->a_in_buffer_size]; - sh_audio->a_in_buffer_len=0; - - return 1; -} - -static int close_vqf_audio_codec(twin_private_t& priv) -{ - TvqTerminate(&priv.index); - return 1; -} - -MPXP_Rc init(Opaque& ctx) -{ - UNUSED(ctx); - return MPXP_Ok; -} - -Opaque* preinit(const audio_probe_t& probe,sh_audio_t *sh_audio,audio_filter_info_t& afi) -{ - UNUSED(afi); - /* Win32 VQF audio codec: */ - twin_private_t *priv; - if(!(priv=new(zeromem) twin_private_t)) return NULL; - priv->sh = sh_audio; - if(!load_dll(probe.codec_dll)) { - MSG_ERR("win32.dll looks broken :(\n"); - delete priv; - return NULL; - } - if(!init_vqf_audio_codec(*priv)){ - MSG_ERR("TWinVQ initialization fail\n"); - delete priv; - return NULL; - } - MSG_V("INFO: TWinVQ audio codec init OK!\n"); - return priv; -} - -void uninit(Opaque& ctx) -{ - twin_private_t& priv=static_cast<twin_private_t&>(ctx); - close_vqf_audio_codec(priv); - FreeLibrary(vqf_dll); -} - -MPXP_Rc control_ad(Opaque& ctx,int cmd,any_t* arg, ...) -{ - twin_private_t& priv=static_cast<twin_private_t&>(ctx); - sh_audio_t* sh_audio = priv.sh; - int skip; - UNUSED(arg); - switch(cmd) { - case ADCTRL_SKIP_FRAME: { - float pts; - skip=sh_audio->wf->nBlockAlign; - if(skip<16){ - skip=(sh_audio->wf->nAvgBytesPerSec/16)&(~7); - if(skip<16) skip=16; - } - demux_read_data_r(*sh_audio->ds,NULL,skip,pts); - return MPXP_True; - } - default: - return MPXP_Unknown; - } - return MPXP_Unknown; -} - -static int bread(char *data, /* Output: Output data array */ - int size, /* Input: Length of each data */ - int nbits, /* Input: Number of bits to write */ - twin_private_t &priv, /* Input: File pointer */ - float &pts) -{ - /*--- Variables ---*/ - int ibits, iptr, idata, ibufadr, ibufbit, icl; - unsigned char mask, tmpdat; - int retval; - sh_audio_t* sh = priv.sh; - - /*--- Main operation ---*/ - retval = 0; - mask = 0x1; - for ( ibits=0; ibits<nbits; ibits++ ){ - if ( priv.readable == 0 ){ /* when the file data buffer is empty */ - priv.nbuf = demux_read_data_r(*sh->ds, reinterpret_cast<unsigned char*>(priv.buf), BBUFSIZ, priv.pts); - priv.nbuf *= 8; - priv.readable = 1; - } - pts=FIX_APTS(sh,priv.pts,priv.ptr); - iptr = priv.ptr; /* current file data buffer pointer */ - if ( iptr >= priv.nbuf ) /* If data file is empty then return */ - return retval; - ibufadr = iptr/BYTE_BIT; /* current file data buffer address */ - ibufbit = iptr%BYTE_BIT; /* current file data buffer bit */ - /* tmpdat = stream->buf[ibufadr] >> (BYTE_BIT-ibufbit-1); */ - tmpdat = (unsigned char)priv.buf[ibufadr]; - tmpdat >>= (BYTE_BIT-ibufbit-1); - /* current data bit */ - - idata = ibits*size; /* output data address */ - data[idata] = (char)(tmpdat & mask); /* set output data */ - for (icl=1; icl<size; icl++) - data[idata+icl] = 0; /* clear the rest output data buffer */ - priv.ptr += 1; /* update data buffer pointer */ - if (priv.ptr == BBUFLEN){ - priv.ptr = 0; - priv.readable = 0; - } - ++retval; - } - return retval; -} - -static const int BITS_INT=(sizeof(int)*8); - -static int get_bstm(int *data, /* Input: input data */ - unsigned nbits, /* Input: number of bits */ - twin_private_t& priv, /* Input: bit file pointer */ - float& pts) -{ - unsigned ibit; - unsigned mask; - unsigned work; - char tmpbit[BITS_INT]; - int retval; - - if ( nbits > BITS_INT ) throw std::runtime_error("get_bstm(): falied"); - - retval = bread(tmpbit, sizeof(*tmpbit), nbits, priv, pts ); - for (ibit=retval; ibit<nbits; ibit++){ - tmpbit[ibit] = 0; - } - mask = 0x1<<(nbits-1); - work=0; - for ( ibit=0; ibit<nbits; ibit++ ){ - work += mask*tmpbit[ibit]; - mask >>= 1; - } - *data = work; - return retval; -} - -static int GetVqInfo( tvqConfInfoSubBlock *cfg, - int bits0[], - int bits1[], - int variableBits, - INDEX *_index, - twin_private_t& priv) -{ - int idiv; - int bitcount = 0; - float pts; - if ( _index->btype == BLK_LONG ){ - TvqUpdateVectorInfo( variableBits, &cfg->ndiv, bits0, bits1 ); // re-calculate VQ bits - } - for ( idiv=0; idiv<cfg->ndiv; idiv++ ){ - bitcount += get_bstm(&_index->wvq[idiv],bits0[idiv],priv,pts); /* CB 0 */ - bitcount += get_bstm(&_index->wvq[idiv+cfg->ndiv],bits1[idiv],priv,pts); /* CB 1 */ - } - return bitcount; -} - -static int GetBseInfo( tvqConfInfo *cf, tvqConfInfoSubBlock *cfg, INDEX *_index, twin_private_t& priv) -{ - int i_sup, isf, itmp, idiv; - int bitcount = 0; - float pts; - for ( i_sup=0; i_sup<cf->N_CH; i_sup++ ){ - for ( isf=0; isf<cfg->nsf; isf++ ){ - for ( idiv=0; idiv<cfg->fw_ndiv; idiv++ ){ - itmp = idiv + ( isf + i_sup * cfg->nsf ) * cfg->fw_ndiv; - bitcount += get_bstm(&_index->fw[itmp],cfg->fw_nbit,priv,pts); - } - } - } - for ( i_sup=0; i_sup<cf->N_CH; i_sup++ ){ - for ( isf=0; isf<cfg->nsf; isf++ ){ - bitcount += get_bstm(&_index->fw_alf[i_sup * cfg->nsf + isf],cf->FW_ARSW_BITS,priv,pts); - } - } - return bitcount; -} - -static int GetGainInfo(tvqConfInfo *cf, tvqConfInfoSubBlock *cfg, INDEX *_index, twin_private_t& priv ) -{ - int i_sup, iptop, isf; - int bitcount = 0; - float pts; - for ( i_sup=0; i_sup<cf->N_CH; i_sup++ ){ - iptop = ( cfg->nsubg + 1 ) * i_sup; - bitcount += get_bstm(&_index->pow[iptop], cf->GAIN_BITS,priv,pts); - for ( isf=0; isf<cfg->nsubg; isf++ ){ - bitcount += get_bstm(&_index->pow[iptop+isf+1], cf->SUB_GAIN_BITS,priv,pts); - } - } - return bitcount; -} - -static int GetLspInfo( tvqConfInfo *cf, INDEX *_index, twin_private_t& priv ) -{ - int i_sup, itmp; - int bitcount = 0; - float pts; - - for ( i_sup=0; i_sup<cf->N_CH; i_sup++ ){ - bitcount += get_bstm(&_index->lsp[i_sup][0], cf->LSP_BIT0,priv,pts); /* pred. switch */ - bitcount += get_bstm(&_index->lsp[i_sup][1], cf->LSP_BIT1,priv,pts); /* first stage */ - for ( itmp=0; itmp<cf->LSP_SPLIT; itmp++ ){ /* second stage */ - bitcount += get_bstm(&_index->lsp[i_sup][itmp+2], cf->LSP_BIT2,priv,pts); - } - } - - return bitcount; -} - -static int GetPpcInfo( tvqConfInfo *cf, INDEX *_index, twin_private_t& priv) -{ - int idiv, i_sup; - int bitcount = 0; - float pts; - - for ( idiv=0; idiv<cf->N_DIV_P; idiv++ ){ - bitcount += get_bstm(&(_index->pls[idiv]), priv.bits_0[BLK_PPC][idiv],priv,pts); /*CB0*/ - bitcount += get_bstm(&(_index->pls[idiv+cf->N_DIV_P]), priv.bits_1[BLK_PPC][idiv],priv,pts);/*CB1*/ - } - for (i_sup=0; i_sup<cf->N_CH; i_sup++){ - bitcount += get_bstm(&(_index->pit[i_sup]), cf->BASF_BIT,priv,pts); - bitcount += get_bstm(&(_index->pgain[i_sup]), cf->PGAIN_BIT,priv,pts); - } - - return bitcount; -} - -static int GetEbcInfo( tvqConfInfo *cf, tvqConfInfoSubBlock *cfg, INDEX *_index, twin_private_t& priv) -{ - int i_sup, isf, itmp; - int bitcount = 0; - float pts; - - for ( i_sup=0; i_sup<cf->N_CH; i_sup++ ){ - for ( isf=0; isf<cfg->nsf; isf++){ - int indexSfOffset = isf * ( cfg->ncrb - cfg->ebc_crb_base ) - cfg->ebc_crb_base; - for ( itmp=cfg->ebc_crb_base; itmp<cfg->ncrb; itmp++ ){ - bitcount += get_bstm(&_index->bc[i_sup][itmp+indexSfOffset], cfg->ebc_bits,priv,pts); - } - } - } - - return bitcount; -} - -static int vqf_read_frame(twin_private_t& priv,INDEX *_index,float& pts) -{ - /*--- Variables ---*/ - tvqConfInfoSubBlock *cfg; - int variableBits; - int bitcount; - int numFixedBitsPerFrame = TvqGetNumFixedBitsPerFrame(); - int btype; - - /*--- Initialization ---*/ - variableBits = 0; - bitcount = 0; - - /*--- read block independent factors ---*/ - /* Window type */ - bitcount += get_bstm( &_index->w_type, priv.cf.BITS_WTYPE,priv,pts); - if ( TvqWtypeToBtype( _index->w_type, &_index->btype ) ) { - MSG_ERR("Error: unknown window type: %d\n", _index->w_type); - return 0; - } - btype = _index->btype; - - /*--- read block dependent factors ---*/ - cfg = &priv.cf.cfg[btype]; // set the block dependent paremeters table - - bitcount += variableBits; - - /* Interleaved vector quantization */ - bitcount += GetVqInfo( cfg, priv.bits_0[btype], priv.bits_1[btype], variableBits, _index, priv); - - /* Bark-scale envelope */ - bitcount += GetBseInfo( &priv.cf, cfg, _index, priv); - /* Gain */ - bitcount += GetGainInfo( &priv.cf, cfg, _index, priv); - /* LSP */ - bitcount += GetLspInfo( &priv.cf, _index, priv ); - /* PPC */ - if ( cfg->ppc_enable ){ - bitcount += GetPpcInfo( &priv.cf, _index, priv); - } - /* Energy Balance Calibration */ - if ( cfg->ebc_enable ){ - bitcount += GetEbcInfo( &priv.cf, cfg, _index, priv); - } - - return bitcount == numFixedBitsPerFrame ? bitcount/8 : 0; -} - -static void frtobuf(float out[], /* Input --- input data frame */ - float bufout[], /* Output --- output data buffer array */ - unsigned frameSize, /* Input --- frame size */ - unsigned numChannels) /* Input --- number of channels */ -{ - /*--- Variables ---*/ - unsigned ismp, ich; - float *ptr; - register float dtmp; - - for ( ich=0; ich<numChannels; ich++ ){ - ptr = out+ich*frameSize; - for ( ismp=0; ismp<frameSize; ismp++ ){ - dtmp = ptr[ismp]; - if ( dtmp >= 0. ) - bufout[ismp*numChannels+ich] = (dtmp+0.5)/32767.; - else - bufout[ismp*numChannels+ich] = (dtmp-0.5)/32767.; - } - } -} - -unsigned decode(Opaque& ctx,unsigned char *buf,unsigned minlen,unsigned maxlen,float& pts) -{ - twin_private_t& priv=static_cast<twin_private_t&>(ctx); - unsigned l,len=0; - float null_pts; - sh_audio_t* sh_audio = priv.sh; - UNUSED(maxlen); - while(len<minlen) - { - float out[priv.framesize*sh_audio->nch]; - l=vqf_read_frame(priv,&priv.index,len?null_pts:pts); - if(!l) break; - TvqDecodeFrame(&priv.index, out); - frtobuf(out, (float *)buf, priv.framesize, sh_audio->nch); - len += priv.framesize*sh_audio->nch*4; - buf += priv.framesize*sh_audio->nch*4; - } - return len; -} Modified: mplayerxp/libmpcodecs/dec_video.cpp =================================================================== --- mplayerxp/libmpcodecs/dec_video.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/dec_video.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -221,44 +221,6 @@ } if(done) vf_showlist(priv->vfilter); -#ifdef ENABLE_WIN32LOADER - if(sh_video->codec) { - done=0; - MSG_DBG3("mpcv_init(%p, %s, %s, %i)\n",sh_video,codecname,vfm,status); - while((sh_video->codec=find_codec(sh_video->fourcc, - sh_video->bih?((unsigned int*) &sh_video->bih->biCompression):NULL, - sh_video->codec,0) )){ - // ok we found one codec - if(sh_video->codec->flags&CODECS_FLAG_SELECTED) { - MSG_DBG3("mpcv_init: %s already tried and failed\n",sh_video->codec->codec_name); - continue; - } - if(codecname && strcmp(sh_video->codec->codec_name,codecname)) { - MSG_DBG3("mpcv_init: %s != %s [-vc]\n",sh_video->codec->codec_name,codecname); - continue; - } - if(vfm && strcmp(sh_video->codec->driver_name,vfm)!=0) { - MSG_DBG3("mpcv_init: vfm doesn't match %s != %s\n",vfm,sh_video->codec->driver_name); - continue; // vfm doesn't match - } - if(sh_video->codec->status<status) { - MSG_DBG3("mpcv_init: %s too unstable\n",sh_video->codec->codec_name); - continue; - } - sh_video->codec->flags|=CODECS_FLAG_SELECTED; // tagging it - // ok, it matches all rules, let's find the driver! - if(!(priv->mpvdec=vfm_find_driver(sh_video->codec->driver_name))) continue; - else MSG_DBG3("mpcv_init: mpcodecs_vd_drivers[%s]->mpvdec==0\n",priv->mpvdec->info->driver_name); - // it's available, let's try to init! - if(priv->mpvdec->init(*priv->ctx,*handle)!=MPXP_Ok){ - MSG_ERR(MSGTR_CODEC_CANT_INITV); - continue; // try next... - } - done=1; - break; - } - } -#endif if(done) { mpcv_print_codec_info(*priv); // memory leak here Modified: mplayerxp/libmpcodecs/vd.cpp =================================================================== --- mplayerxp/libmpcodecs/vd.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/vd.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -43,13 +43,6 @@ extern const vd_functions_t mpcodecs_vd_theora; static const vd_functions_t* mpcodecs_vd_drivers[] = { -#ifdef ENABLE_WIN32LOADER - &mpcodecs_vd_dshow, - &mpcodecs_vd_vfw, - &mpcodecs_vd_vfwex, - &mpcodecs_vd_dmo, - &mpcodecs_vd_qtvideo, -#endif &mpcodecs_vd_raw, &mpcodecs_vd_nuv, &mpcodecs_vd_libmpeg2, Deleted: mplayerxp/libmpcodecs/vd_dmo.cpp =================================================================== --- mplayerxp/libmpcodecs/vd_dmo.cpp 2013-06-08 14:04:10 UTC (rev 649) +++ mplayerxp/libmpcodecs/vd_dmo.cpp 2013-06-10 07:27:20 UTC (rev 650) @@ -1,131 +0,0 @@ -#include "mpxp_config.h" -#include "osdep/mplib.h" -using namespace usr; -#include <stdio.h> -#include <stdlib.h> -#include <stdarg.h> - -#include "mpxp_help.h" - -#include <dlfcn.h> /* GLIBC specific. Exists under cygwin too! */ - -#include "vd_internal.h" -#include "codecs_ld.h" -#include "win32loader/dmo/DMO_VideoDecoder.h" -#include "vd_msg.h" - -static const vd_info_t info = { - "Win32/DMO video codecs", - "dmo", - "A'rpi", - "build-in" -}; - -static const mpxp_option_t options[] = { - { NULL, NULL, 0, 0, 0, 0, NULL} -}; - -LIBVD_EXTERN(dmo) - -struct vdmo_private_t : public Opaque { - vdmo_private_t(); - virtual ~vdmo_private_t(); - - DMO_VideoDecoder* dmo; - sh_video_t* sh; - video_decoder_t* parent; -}; -vdmo_private_t::vdmo_private_t() {} -vdmo_private_t::~vdmo_private_t() { - DMO_VideoDecoder_Destroy(dmo); -} - -static const video_probe_t* __FASTCALL__ probe(uint32_t fourcc) { return NULL; } - -// to set/get/query special features/parameters -static MPXP_Rc control_vd(Opaque& ctx,int cmd,any_t* arg,...){ - UNUSED(ctx); - switch(cmd){ - case VDCTRL_QUERY_FORMAT: - if (*((int*)arg) == IMGFMT_YV12 || - *((int*)arg) == IMGFMT_I420 || - *((int*)arg) == IMGFMT_IYUV || - *((int*)arg) == IMGFMT_YVU9 || - *((int*)arg) == IMGFMT_YUY2 || - *((int*)arg) == IMGFMT_UYVY) - return MPXP_True; - else return MPXP_False; - default: break; - } - return MPXP_Unknown; -} - -static Opaque* preinit(const video_probe_t& probe,sh_video_t *sh,put_slice_info_t& psi){ - UNUSED(probe); - UNUSED(psi); - vdmo_private_t* priv = new(zeromem) vdmo_private_t; - priv->sh=sh; - return priv; -} - -// init driver -static MPXP_Rc init(Opaque& ctx,video_decoder_t& opaque){ - unsigned int out_fmt; - vdmo_private_t& priv=static_cast<vdmo_private_t&>(ctx); - priv.parent = &opaque; - sh_video_t* sh = pr... [truncated message content] |