[Mplayer-cvslog] CVS: main/loader/dshow DS_AudioDecoder.c,1.7,1.8

Arpi of Ize arpi at mplayer.dev.hu
Mon Dec 31 05:35:22 CET 2001


Update of /cvsroot/mplayer/main/loader/dshow
In directory mplayer:/var/tmp.root/cvs-serv15164

Modified Files:
	DS_AudioDecoder.c 
Log Message:
ACEL.P fixed (avifile sync)

Index: DS_AudioDecoder.c
===================================================================
RCS file: /cvsroot/mplayer/main/loader/dshow/DS_AudioDecoder.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- DS_AudioDecoder.c	11 Dec 2001 23:29:11 -0000	1.7
+++ DS_AudioDecoder.c	31 Dec 2001 04:35:20 -0000	1.8
@@ -41,14 +41,15 @@
     sz = 18 + wf->cbSize;
     this->m_sVhdr = malloc(sz);
     memcpy(this->m_sVhdr, wf, sz);
-    this->m_sVhdr2 = malloc(sz);
-    memcpy(this->m_sVhdr2, this->m_sVhdr, sz);
+    this->m_sVhdr2 = malloc(18);
+    memcpy(this->m_sVhdr2, this->m_sVhdr, 18);
     
     pWF = (WAVEFORMATEX*)this->m_sVhdr2;
     pWF->wFormatTag = 1;
     pWF->wBitsPerSample = 16;
-    pWF->nBlockAlign = 2*pWF->nChannels;
+    pWF->nBlockAlign = pWF->nChannels * (pWF->wBitsPerSample + 7) / 8;
     pWF->cbSize = 0;
+    pWF->nAvgBytesPerSec = pWF->nBlockAlign * pWF->nSamplesPerSec;
     
     memcpy(&this->in_fmt,wf,sizeof(WAVEFORMATEX));
 
@@ -67,18 +68,21 @@
     memset(&this->m_sDestType, 0, sizeof(this->m_sDestType));
     this->m_sDestType.majortype=MEDIATYPE_Audio;
     this->m_sDestType.subtype=MEDIASUBTYPE_PCM;
-    this->m_sDestType.subtype.f1=pWF->wFormatTag;
+//    this->m_sDestType.subtype.f1=pWF->wFormatTag;
     this->m_sDestType.formattype=FORMAT_WaveFormatEx;
     this->m_sDestType.bFixedSizeSamples=1;
     this->m_sDestType.bTemporalCompression=0;
-    this->m_sDestType.lSampleSize=2*wf->nChannels;
+    this->m_sDestType.lSampleSize=pWF->nBlockAlign;
     if (wf->wFormatTag == 0x130)
 	// ACEL hack to prevent memory corruption
         // obviosly we are missing something here
 	this->m_sDestType.lSampleSize *= 288;
     this->m_sDestType.pUnk=0;
-    this->m_sDestType.cbFormat=pWF->cbSize;
+    this->m_sDestType.cbFormat=18; //pWF->cbSize;
     this->m_sDestType.pbFormat=this->m_sVhdr2;
+
+print_wave_header(this->m_sVhdr);
+print_wave_header(this->m_sVhdr2);
 
     /*try*/
     {




More information about the MPlayer-cvslog mailing list