changeset 7086:f0886fe4be89

support for 'sipr' codec - descrambling/reorder not yet fixed. FIXME: you must have dspr.so in the library path... ie /usr/local/lib/
author arpi
date Sun, 25 Aug 2002 01:12:41 +0000
parents 02aa64b49b70
children cf14ac26980d
files libmpcodecs/ad_real.c
diffstat 1 files changed, 10 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/libmpcodecs/ad_real.c	Sun Aug 25 00:07:15 2002 +0000
+++ b/libmpcodecs/ad_real.c	Sun Aug 25 01:12:41 2002 +0000
@@ -43,6 +43,7 @@
 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 @@
     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 @@
       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 @@
   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