changeset 3957:49290522ab06

SetValue fixed, iv_State=START enabled (silly xine developers disabled for unknown reason)
author arpi
date Wed, 02 Jan 2002 20:26:20 +0000
parents be47e35801dc
children 5e61815deced
files loader/dshow/DS_VideoDecoder.c
diffstat 1 files changed, 20 insertions(+), 17 deletions(-) [+]
line wrap: on
line diff
--- a/loader/dshow/DS_VideoDecoder.c	Wed Jan 02 19:54:55 2002 +0000
+++ b/loader/dshow/DS_VideoDecoder.c	Wed Jan 02 20:26:20 2002 +0000
@@ -272,7 +272,7 @@
     this->m_pDS_Filter->m_pAll->vt->SetProperties(this->m_pDS_Filter->m_pAll, &props, &props1);
     this->m_pDS_Filter->m_pAll->vt->Commit(this->m_pDS_Filter->m_pAll);
     
-    //this->iv.m_State = START;
+    this->iv.m_State = START;
 }
 
 void DS_VideoDecoder_StopInternal(DS_VideoDecoder *this)
@@ -719,13 +719,12 @@
 
 int DS_VideoDecoder_SetValue(DS_VideoDecoder *this, const char* name, int value)
 {
-/*
-    if (m_bIsDivX4)
-    {
-	IDivxFilterInterface* pIDivx;
-	if (m_pDS_Filter->m_pFilter->vt->QueryInterface((IUnknown*)m_pDS_Filter->m_pFilter, &IID_IDivxFilterInterface, (void**)&pIDivx))
+    if (this->m_bIsDivX4) {
+	IDivxFilterInterface* pIDivx=NULL;
+	printf("DS_SetValue for DIVX4, name=%s  value=%d\n",name,value);
+	if (this->m_pDS_Filter->m_pFilter->vt->QueryInterface((IUnknown*)this->m_pDS_Filter->m_pFilter, &IID_IDivxFilterInterface, (void**)&pIDivx))
 	{
-	    Debug printf("No such interface\n");
+	    printf("No such interface\n");
 	    return -1;
 	}
 	if (strcmp(name, "Postprocessing") == 0)
@@ -737,14 +736,15 @@
 	else if (strcmp(name, "Saturation") == 0)
 	    pIDivx->vt->put_Saturation(pIDivx, value);
 	else if (strcmp(name, "MaxAuto") == 0)
-            m_iMaxAuto = value;
+            this->m_iMaxAuto = value;
 	pIDivx->vt->Release((IUnknown*)pIDivx);
 	//printf("Set %s  %d\n", name, value);
 	return 0;
     }
-    else if (m_bIsDivX)
-    {
-	if (m_State != START)
+
+    if (this->m_bIsDivX) {
+	IHidden* hidden;
+	if (this->iv.m_State != START)
 	    return VFW_E_NOT_RUNNING;
 
 	//cout << "set value " << name << "  " << value << endl;
@@ -759,10 +759,11 @@
 // get4=set3 73
 // get5=set4 19
 	// get6=set5 23
-    	IHidden* hidden = (IHidden*)((int)m_pDS_Filter->m_pFilter + 0xb8);
+    	hidden = (IHidden*)((int)this->m_pDS_Filter->m_pFilter + 0xb8);
+	printf("DS_SetValue for DIVX, name=%s  value=%d\n",name,value);
 	if (strcmp(name, "Quality") == 0)
 	{
-            m_iLastQuality = value;
+            this->m_iLastQuality = value;
 	    return hidden->vt->SetSmth(hidden, value, 0);
 	}
 	if (strcmp(name, "Brightness") == 0)
@@ -775,11 +776,12 @@
 	    return hidden->vt->SetSmth5(hidden, value, 0);
 	if (strcmp(name, "MaxAuto") == 0)
 	{
-            m_iMaxAuto = value;
-	    return 0;
+            this->m_iMaxAuto = value;
 	}
+        return 0;
     }
-    else if (strcmp((const char*)record.dll, "ir50_32.dll") == 0)
+#if 0    
+    if (strcmp((const char*)record.dll, "ir50_32.dll") == 0)
     {
 	IHidden2* hidden = 0;
 	if (m_pDS_Filter->m_pFilter->vt->QueryInterface((IUnknown*)m_pDS_Filter->m_pFilter, &IID_Iv50Hidden, (void**)&hidden))
@@ -819,7 +821,8 @@
 
 	return result;
     }
-*/
+#endif
+    printf("DS_SetValue for ????, name=%s  value=%d\n",name,value);
     return 0;
 }
 /*