[Mplayer-cvslog] CVS: main/loader/dshow DS_AudioDecoder.c,1.6,1.7 DS_VideoDecoder.c,1.14,1.15

Arpi of Ize arpi at mplayer.dev.hu
Wed Dec 12 00:29:13 CET 2001


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

Modified Files:
	DS_AudioDecoder.c DS_VideoDecoder.c 
Log Message:
avifile merge

Index: DS_AudioDecoder.c
===================================================================
RCS file: /cvsroot/mplayer/main/loader/dshow/DS_AudioDecoder.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- DS_AudioDecoder.c	10 Dec 2001 21:53:13 -0000	1.6
+++ DS_AudioDecoder.c	11 Dec 2001 23:29:11 -0000	1.7
@@ -72,6 +72,10 @@
     this->m_sDestType.bFixedSizeSamples=1;
     this->m_sDestType.bTemporalCompression=0;
     this->m_sDestType.lSampleSize=2*wf->nChannels;
+    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.pbFormat=this->m_sVhdr2;
@@ -144,9 +148,9 @@
 	    Debug printf("DS_AudioDecoder::Convert() Error: null sample\n");
 	    break;
 	}
+	sample->vt->SetActualDataLength(sample, this->in_fmt.nBlockAlign);
 	sample->vt->GetPointer(sample, (BYTE **)&ptr);
 	memcpy(ptr, (const uint8_t*)in_data + read, this->in_fmt.nBlockAlign);
-	sample->vt->SetActualDataLength(sample, this->in_fmt.nBlockAlign);
 	sample->vt->SetSyncPoint(sample, 1);
 	sample->vt->SetPreroll(sample, 0);
 	result = this->m_pDS_Filter->m_pImp->vt->Receive(this->m_pDS_Filter->m_pImp, sample);
@@ -161,6 +165,7 @@
         sample->vt->Release((IUnknown*)sample);
 	read+=this->in_fmt.nBlockAlign;
 	written+=frame_size;
+	break;
     }
     if (size_read)
 	*size_read = read;

Index: DS_VideoDecoder.c
===================================================================
RCS file: /cvsroot/mplayer/main/loader/dshow/DS_VideoDecoder.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -r1.14 -r1.15
--- DS_VideoDecoder.c	11 Dec 2001 14:48:42 -0000	1.14
+++ DS_VideoDecoder.c	11 Dec 2001 23:29:11 -0000	1.15
@@ -152,14 +152,14 @@
 
 	if (!flip)
 	{
-	    this->m_sVhdr2->bmiHeader.biHeight *= -1;
 	    this->iv.m_obh.biHeight *= -1;
+	    this->m_sVhdr2->bmiHeader.biHeight = this->iv.m_obh.biHeight;
 	    result = this->m_pDS_Filter->m_pOutputPin->vt->QueryAccept(this->m_pDS_Filter->m_pOutputPin, &this->m_sDestType);
 	    if (result)
 	    {
-		printf("Decoder does not support upside-down frames\n");
-		this->m_sVhdr2->bmiHeader.biHeight *= -1;
+		printf("Decoder does not support upside-down RGB frames\n");
 		this->iv.m_obh.biHeight *= -1;
+		this->m_sVhdr2->bmiHeader.biHeight = this->iv.m_obh.biHeight;
 	    }
 	}
 
@@ -280,9 +280,9 @@
     }
 
 
+    sample->vt->SetActualDataLength(sample, size);
     sample->vt->GetPointer(sample, (BYTE **)&ptr);
     memcpy(ptr, src, size);
-    sample->vt->SetActualDataLength(sample, size);
     sample->vt->SetSyncPoint(sample, is_keyframe);
     sample->vt->SetPreroll(sample, pImage ? 0 : 1);
     // sample->vt->SetMediaType(sample, &m_sOurType);




More information about the MPlayer-cvslog mailing list