]> git.vomp.tv Git - vompclient.git/commitdiff
*** empty log message ***
authorChris Tallon <chris@vomp.tv>
Sun, 3 Dec 2006 16:30:41 +0000 (16:30 +0000)
committerChris Tallon <chris@vomp.tv>
Sun, 3 Dec 2006 16:30:41 +0000 (16:30 +0000)
dssourcepin.cc
videowin.cc

index ed9780a3f9586921397635370e761f9a9e8a1e36..f6893c7fa4890c81bb321d92a393a80ba30a5df3 100644 (file)
 #include <mmreg.h>\r
 \r
 \r
-class DsSFEnumMediaTypes: public IEnumMediaTypes {
-public:
-  DsSFEnumMediaTypes(DsSourcePin* papa,ULONG pos=0);
-  virtual ~DsSFEnumMediaTypes();
+class DsSFEnumMediaTypes: public IEnumMediaTypes {\r
+public:\r
+  DsSFEnumMediaTypes(DsSourcePin* papa,ULONG pos=0);\r
+  virtual ~DsSFEnumMediaTypes();\r
   virtual HRESULT STDMETHODCALLTYPE Next(ULONG nummedia,  AM_MEDIA_TYPE **pins,ULONG *fetched);\r
   virtual HRESULT STDMETHODCALLTYPE Skip(ULONG numpin);\r
   virtual HRESULT STDMETHODCALLTYPE Reset();\r
   virtual HRESULT STDMETHODCALLTYPE Clone(IEnumMediaTypes **enuma);\r
-  virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID id,void ** object);
+  virtual HRESULT STDMETHODCALLTYPE QueryInterface(REFIID id,void ** object);\r
   virtual ULONG STDMETHODCALLTYPE AddRef();\r
     virtual ULONG STDMETHODCALLTYPE Release();\r
 protected:\r
   DsSourcePin* parent;\r
-  ULONG curpos;
+  ULONG curpos;\r
   volatile long refs;\r
 };\r
 \r
@@ -47,25 +47,25 @@ DsSFEnumMediaTypes::DsSFEnumMediaTypes(DsSourcePin* papa,ULONG pos){
   refs=0;\r
 }\r
 \r
-DsSFEnumMediaTypes::~DsSFEnumMediaTypes(){
-  parent->Release();
-}
-\r
-HRESULT STDMETHODCALLTYPE DsSFEnumMediaTypes::Next(ULONG numpin, AM_MEDIA_TYPE **pins,ULONG *fetched) {
-  int i;
-
-  if (pins==NULL) return E_POINTER;
-  if (numpin!=1 && fetched==NULL) return E_INVALIDARG;
-  *fetched=0;
-
-  for (i=0;(i<numpin);i++) {
-    pins[i]=(AM_MEDIA_TYPE*)CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE));
-    if (parent->GetMediaType(curpos+i,pins[i])!=S_OK) return S_FALSE;
-    curpos++;
-    if (fetched!=NULL)  (*fetched)++;
-  }
-  return S_OK;
-}
+DsSFEnumMediaTypes::~DsSFEnumMediaTypes(){\r
+  parent->Release();\r
+}\r
+\r
+HRESULT STDMETHODCALLTYPE DsSFEnumMediaTypes::Next(ULONG numpin, AM_MEDIA_TYPE **pins,ULONG *fetched) {\r
+  int i;\r
+\r
+  if (pins==NULL) return E_POINTER;\r
+  if (numpin!=1 && fetched==NULL) return E_INVALIDARG;\r
+  *fetched=0;\r
+\r
+  for (i=0;(i<numpin);i++) {\r
+    pins[i]=(AM_MEDIA_TYPE*)CoTaskMemAlloc(sizeof(AM_MEDIA_TYPE));\r
+    if (parent->GetMediaType(curpos+i,pins[i])!=S_OK) return S_FALSE;\r
+    curpos++;\r
+    if (fetched!=NULL)  (*fetched)++;\r
+  }\r
+  return S_OK;\r
+}\r
 \r
 HRESULT STDMETHODCALLTYPE   DsSFEnumMediaTypes::Skip(ULONG numpin){\r
   curpos+=numpin;\r
@@ -83,19 +83,19 @@ HRESULT STDMETHODCALLTYPE DsSFEnumMediaTypes::Clone(IEnumMediaTypes **enuma){
   return S_OK;\r
 }\r
 \r
-HRESULT STDMETHODCALLTYPE  DsSFEnumMediaTypes::QueryInterface(REFIID id,void ** object){
-  if (object==NULL) return E_POINTER;
-  if (id==IID_IUnknown ||id == IID_IEnumMediaTypes) {
-    *object=(IUnknown*)this;
-    ((IUnknown*)object)->AddRef();
-    return NOERROR;
-  } else {
-    *object=NULL;
-    return E_NOINTERFACE;
-  }
-}
-
-
+HRESULT STDMETHODCALLTYPE  DsSFEnumMediaTypes::QueryInterface(REFIID id,void ** object){\r
+  if (object==NULL) return E_POINTER;\r
+  if (id==IID_IUnknown ||id == IID_IEnumMediaTypes) {\r
+    *object=(IUnknown*)this;\r
+    ((IUnknown*)object)->AddRef();\r
+    return NOERROR;\r
+  } else {\r
+    *object=NULL;\r
+    return E_NOINTERFACE;\r
+  }\r
+}\r
+\r
+\r
 \r
 ULONG STDMETHODCALLTYPE DsSFEnumMediaTypes::AddRef(){\r
   InterlockedIncrement(&refs);\r
@@ -150,22 +150,22 @@ DsSourcePin::~DsSourcePin()
 \r
 }\r
 \r
-HRESULT STDMETHODCALLTYPE DsSourcePin::QueryInterface(REFIID id,void ** object){
-  if (object==NULL) return E_POINTER;
-  if (id==IID_IUnknown) {
-    *object=(IUnknown*)this;
-    ((IUnknown*)object)->AddRef();
-    return NOERROR;
-  } else if (id==IID_IPin) {
-    *object=(IPin*)this;
-    ((IPin*)object)->AddRef();
-    return NOERROR;
-  } else {
-    *object=NULL;
-    return E_NOINTERFACE;
-  }
-}
-
+HRESULT STDMETHODCALLTYPE DsSourcePin::QueryInterface(REFIID id,void ** object){\r
+  if (object==NULL) return E_POINTER;\r
+  if (id==IID_IUnknown) {\r
+    *object=(IUnknown*)this;\r
+    ((IUnknown*)object)->AddRef();\r
+    return NOERROR;\r
+  } else if (id==IID_IPin) {\r
+    *object=(IPin*)this;\r
+    ((IPin*)object)->AddRef();\r
+    return NOERROR;\r
+  } else {\r
+    *object=NULL;\r
+    return E_NOINTERFACE;\r
+  }\r
+}\r
+\r
 ULONG STDMETHODCALLTYPE DsSourcePin::AddRef(){\r
   return m_pFilter->AddRef();\r
 \r
@@ -208,9 +208,7 @@ HRESULT STDMETHODCALLTYPE DsSourcePin::Connect(IPin *pinempf,const AM_MEDIA_TYPE
   }else {\r
     IEnumMediaTypes * emt;\r
     EnumMediaTypes(&emt);\r
-    AM_MEDIA_TYPE emtype_np;\r
     AM_MEDIA_TYPE  * emtype;\r
-    emtype=&emtype_np;\r
     ULONG fetched=0;\r
     pinempf->AddRef();\r
     while (emt->Next(1,&emtype,&fetched)==S_OK) {\r
@@ -219,12 +217,14 @@ HRESULT STDMETHODCALLTYPE DsSourcePin::Connect(IPin *pinempf,const AM_MEDIA_TYPE
           connected=pinempf;\r
           CopyMType(&medtype,emtype);\r
           CoTaskMemFree(emtype->pbFormat);\r
+                 CoTaskMemFree(emtype);\r
           gotmt=true;\r
           break;\r
         }\r
 \r
       }\r
       CoTaskMemFree(emtype->pbFormat);\r
+         CoTaskMemFree(emtype);\r
     }\r
     emt->Release();\r
     if (gotmt==false) {\r
@@ -235,12 +235,14 @@ HRESULT STDMETHODCALLTYPE DsSourcePin::Connect(IPin *pinempf,const AM_MEDIA_TYPE
             connected=pinempf;\r
             CopyMType(&medtype,emtype);\r
             CoTaskMemFree(emtype->pbFormat);\r
+                                               CoTaskMemFree(emtype);\r
             gotmt=true;\r
             break;\r
           }\r
 \r
         }\r
         CoTaskMemFree(emtype->pbFormat);\r
+               CoTaskMemFree(emtype);\r
       }\r
       emt->Release();\r
       if (gotmt==false) {\r
@@ -373,10 +375,10 @@ HRESULT STDMETHODCALLTYPE DsSourcePin::ReceiveConnection(IPin *connect,
    else return S_FALSE;\r
  }\r
  HRESULT STDMETHODCALLTYPE DsSourcePin::EnumMediaTypes(IEnumMediaTypes **enuma){\r
-if (enuma==NULL) return E_POINTER;
-  *enuma=new DsSFEnumMediaTypes( this);
-  (*enuma)->AddRef();
-  return S_OK;
+if (enuma==NULL) return E_POINTER;\r
+  *enuma=new DsSFEnumMediaTypes( this);\r
+  (*enuma)->AddRef();\r
+  return S_OK;\r
 }\r
 \r
 HRESULT STDMETHODCALLTYPE DsSourcePin::QueryInternalConnections(IPin **pin,ULONG *numpin){\r
@@ -479,7 +481,7 @@ HRESULT DsSourcePin::Active() {
   return VFW_E_NO_ALLOCATOR;\r
 }\r
 \r
-
+\r
 HRESULT DsSourcePin::Run(REFERENCE_TIME reftime){\r
   return NOERROR;\r
 }\r
@@ -546,3 +548,4 @@ HRESULT DsSourcePin::DecideBufferSize(IMemAllocator *pa,ALLOCATOR_PROPERTIES *al
     return S_OK;\r
 }\r
 \r
+\r
index 50e19d03d3290f4aa5de2b40a7bcd71bd7feef39..14d056607a4d5545a04ef57c2fc20112b7a6669b 100644 (file)
@@ -314,7 +314,7 @@ int VideoWin::dsplay()
    dsgraphbuilder->QueryInterface(IID_IMediaControl,(void **) &dsmediacontrol);\r
    dsgraphbuilder->QueryInterface(IID_IBasicAudio,(void **) &dsbasicaudio);    \r
    dsinited=true;\r
-   MILLISLEEP(100);\r
+   //MILLISLEEP(100);\r
 \r
    hresdeb=dsmediacontrol->Run();\r
    iframemode=false;//exit iframe mode\r
@@ -987,3 +987,4 @@ int VideoWin::test2()
 \r
 \r
 \r
+\r