support for 'sipr' codec - descrambling/reorder not yet fixed.

FIXME: you must have dspr.so in the library path... ie /usr/local/lib/


git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7087 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
arpi 2002-08-25 01:12:41 +00:00
parent a72f18f463
commit abd82380b9
1 changed files with 10 additions and 1 deletions

View File

@ -43,6 +43,7 @@ static unsigned long (*raInitDecoder)(unsigned long,unsigned long);
static unsigned long (*raOpenCodec2)(unsigned long);
static unsigned long (*raSetFlavor)(unsigned long,unsigned long);
static void (*raSetDLLAccessPath)(unsigned long);
static void (*raSetPwd)(char*,char*);
typedef struct {
int samplerate;
@ -78,6 +79,7 @@ static int preinit(sh_audio_t *sh){
raInitDecoder = dlsym(handle, "RAInitDecoder");
raSetFlavor = dlsym(handle, "RASetFlavor");
raSetDLLAccessPath = dlsym(handle, "SetDLLAccessPath");
raSetPwd = dlsym(handle, "RASetPwd"); // optional, used by SIPR
if(!raCloseCodec || !raDecode || !raFlush || !raFreeDecoder ||
!raGetFlavorProperty || !raOpenCodec2 || !raSetFlavor ||
@ -112,6 +114,11 @@ static int preinit(sh_audio_t *sh){
return 0;
}
}
if(raSetPwd){
// used by 'SIPR'
raSetPwd(sh->context,"Ardubancel Quazanga"); // set password... lol.
}
result=raSetFlavor(sh->context,((short*)(sh->wf+1))[2]);
if(result){
@ -155,9 +162,11 @@ static int decode_audio(sh_audio_t *sh,unsigned char *buf,int minlen,int maxlen)
int result;
int len=-1;
int sps=((short*)(sh->wf+1))[0];
int w=sh->wf->nBlockAlign/sps; // 5
int w=sh->wf->nBlockAlign; // 5
int h=((short*)(sh->wf+1))[1];
if(sps) w/=sps; else sps=1;
// printf("bs=%d sps=%d w=%d h=%d \n",sh->wf->nBlockAlign,sps,w,h);
#if 1