]> git.vomp.tv Git - vompclient.git/commitdiff
Fixes for w2k
authorChris Tallon <chris@vomp.tv>
Sat, 2 Dec 2006 18:56:00 +0000 (18:56 +0000)
committerChris Tallon <chris@vomp.tv>
Sat, 2 Dec 2006 18:56:00 +0000 (18:56 +0000)
command.cc
dssourcepin.cc
vlivebanner.cc
wwss.cc

index 3311a43333794c84d7736e4beefc2fe345abae30..3aa36726dceefd4db15eaef3f6cde1e41a19d30a 100644 (file)
@@ -772,11 +772,12 @@ void Command::doJustConnected(VConnect* vconnect)
     // Enter pre-keys here
 //    handleCommand(Remote::THREE);
 //    handleCommand(Remote::UP);
-//    handleCommand(Remote::OK);
-//    handleCommand(Remote::OK);
 //    handleCommand(Remote::PLAY);
 //    handleCommand(Remote::DOWN);
 //    handleCommand(Remote::DOWN);
+//    handleCommand(Remote::DOWN);
+//    handleCommand(Remote::OK);
+//    handleCommand(Remote::OK);
 //    handleCommand(Remote::OK);
   }
 }
index 63812a16a29238521a7eca88294a7a8ddded6f78..ed9780a3f9586921397635370e761f9a9e8a1e36 100644 (file)
 \r
 class DsSFEnumMediaTypes: public IEnumMediaTypes {
 public:
-       DsSFEnumMediaTypes(DsSourcePin* papa,ULONG pos=0);
-       virtual ~DsSFEnumMediaTypes();
-       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 ULONG STDMETHODCALLTYPE AddRef();\r
+  DsSFEnumMediaTypes(DsSourcePin* papa,ULONG pos=0);
+  virtual ~DsSFEnumMediaTypes();
+  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 ULONG STDMETHODCALLTYPE AddRef();\r
     virtual ULONG STDMETHODCALLTYPE Release();\r
 protected:\r
-       DsSourcePin* parent;\r
-       ULONG curpos;
-       volatile long refs;\r
+  DsSourcePin* parent;\r
+  ULONG curpos;
+  volatile long refs;\r
 };\r
 \r
 DsSFEnumMediaTypes::DsSFEnumMediaTypes(DsSourcePin* papa,ULONG pos){\r
-       parent=papa;\r
-       curpos=pos;\r
-       parent->AddRef();\r
-       refs=0;\r
+  parent=papa;\r
+  curpos=pos;\r
+  parent->AddRef();\r
+  refs=0;\r
 }\r
 \r
 DsSFEnumMediaTypes::~DsSFEnumMediaTypes(){
-       parent->Release();
+  parent->Release();
 }
 \r
-HRESULT STDMETHODCALLTYPE DsSFEnumMediaTypes::Next(ULONG numpin,  AM_MEDIA_TYPE **pins,ULONG *fetched) {\r
-       int i;\r
-       if (fetched==NULL) return E_POINTER;\r
-       if (pins==NULL) return E_POINTER;\r
-       *fetched=0;\r
-\r
-       for (i=0;(i<numpin);i++) {\r
-               if (parent->GetMediaType(curpos+i,pins[i])!=S_OK) return S_FALSE;\r
-               curpos++;\r
-               (*fetched)++;\r
-       }\r
-       return S_OK;\r
-}\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;
+}
 \r
 HRESULT STDMETHODCALLTYPE   DsSFEnumMediaTypes::Skip(ULONG numpin){\r
-       curpos+=numpin;\r
-       if (curpos>1) return S_FALSE;\r
-       return S_OK;\r
+  curpos+=numpin;\r
+  if (curpos>1) return S_FALSE;\r
+  return S_OK;\r
 }\r
 HRESULT STDMETHODCALLTYPE DsSFEnumMediaTypes::Reset(){\r
-       curpos=0;\r
-       return S_OK;\r
+  curpos=0;\r
+  return S_OK;\r
 }\r
 HRESULT STDMETHODCALLTYPE DsSFEnumMediaTypes::Clone(IEnumMediaTypes **enuma){\r
-       if (enuma==NULL) return E_POINTER;\r
-       *enuma=new DsSFEnumMediaTypes(parent,curpos);\r
-       (*enuma)->AddRef();\r
-       return S_OK;\r
+  if (enuma==NULL) return E_POINTER;\r
+  *enuma=new DsSFEnumMediaTypes(parent,curpos);\r
+  (*enuma)->AddRef();\r
+  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;
-       }
+  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;
+  }
 }
 
 
 \r
 ULONG STDMETHODCALLTYPE DsSFEnumMediaTypes::AddRef(){\r
-       InterlockedIncrement(&refs);\r
-       long tempref=refs;\r
-       if (tempref>1) return tempref;\r
-       else return 1;\r
+  InterlockedIncrement(&refs);\r
+  long tempref=refs;\r
+  if (tempref>1) return tempref;\r
+  else return 1;\r
 }\r
 \r
 ULONG STDMETHODCALLTYPE DsSFEnumMediaTypes::Release(){\r
-       long tempref=InterlockedDecrement(&refs);\r
-       \r
-       if (tempref==0) {\r
-               refs++;\r
-               delete this;\r
-               return NULL;\r
-       } else {\r
-               if (tempref>1) return tempref;\r
-               else return 1;\r
-       }\r
+  long tempref=InterlockedDecrement(&refs);\r
+\r
+  if (tempref==0) {\r
+    refs++;\r
+    delete this;\r
+    return NULL;\r
+  } else {\r
+    if (tempref>1) return tempref;\r
+    else return 1;\r
+  }\r
 }\r
 \r
 \r
 void CopyMType(AM_MEDIA_TYPE* dest,const AM_MEDIA_TYPE*source) {\r
-       memcpy(dest,source,sizeof(AM_MEDIA_TYPE));\r
-       if (source->pbFormat!=NULL) {\r
-               dest->pbFormat=(BYTE*)CoTaskMemAlloc(dest->cbFormat);\r
-               memcpy(dest->pbFormat,source->pbFormat,dest->cbFormat);\r
-       }\r
+  memcpy(dest,source,sizeof(AM_MEDIA_TYPE));\r
+  if (source->pbFormat!=NULL) {\r
+    dest->pbFormat=(BYTE*)CoTaskMemAlloc(dest->cbFormat);\r
+    memcpy(dest->pbFormat,source->pbFormat,dest->cbFormat);\r
+  }\r
 }\r
 void ReleaseMType(AM_MEDIA_TYPE* free) {\r
-       if (free->cbFormat!=NULL) CoTaskMemFree(free->pbFormat);\r
-       free->pbFormat=NULL;\r
+  if (free->cbFormat!=NULL) CoTaskMemFree(free->pbFormat);\r
+  free->pbFormat=NULL;\r
 }\r
 \r
 DsSourcePin::DsSourcePin(DsSourceFilter *pFilter,\r
-                                                HRESULT *phr,LPCWSTR pName,bool audio)\r
+             HRESULT *phr,LPCWSTR pName,bool audio)\r
 {\r
-       isaudiopin=audio;\r
-       m_pFilter=pFilter;\r
-       connected=NULL;\r
-       connectedinput=NULL;\r
-       allocator=NULL;\r
+  isaudiopin=audio;\r
+  m_pFilter=pFilter;\r
+  connected=NULL;\r
+  connectedinput=NULL;\r
+  allocator=NULL;\r
+\r
 \r
-       \r
 \r
 }\r
 \r
 DsSourcePin::~DsSourcePin()\r
 {\r
-       \r
-       \r
+\r
+\r
 \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;
-       }
+  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;
+  }
 }
 
 ULONG STDMETHODCALLTYPE DsSourcePin::AddRef(){\r
-       return m_pFilter->AddRef();\r
+  return m_pFilter->AddRef();\r
 \r
 }\r
 ULONG STDMETHODCALLTYPE DsSourcePin::Release(){\r
-       return m_pFilter->Release();\r
+  return m_pFilter->Release();\r
 }\r
 \r
 \r
 /*IPin*/\r
 HRESULT STDMETHODCALLTYPE DsSourcePin::Connect(IPin *pinempf,const AM_MEDIA_TYPE *mtype) {\r
-       if (pinempf==NULL) return E_POINTER;\r
-       EnterCriticalSection(&m_pFilter->filterlock);\r
-       \r
-       if (connected!=NULL) {LeaveCriticalSection(&m_pFilter->filterlock);return VFW_E_ALREADY_CONNECTED;}\r
-       if (m_pFilter->mystate!=State_Stopped) {LeaveCriticalSection(&m_pFilter->filterlock);return VFW_E_NOT_STOPPED;}\r
-\r
-       \r
-       bool gotmt=false;\r
-\r
-       if (mtype!=NULL) {\r
-               if (CheckMediaType(mtype)==S_OK){\r
-                       pinempf->AddRef();\r
-                       if (pinempf->ReceiveConnection((IPin*)this,mtype)==S_OK) {\r
-                               CopyMType(&medtype,mtype);\r
-                               LeaveCriticalSection(&m_pFilter->filterlock);\r
-                       } else {\r
-                               LeaveCriticalSection(&m_pFilter->filterlock);\r
-                               CoTaskMemFree(mtype->pbFormat);\r
-                               pinempf->Release();\r
-                               return VFW_E_TYPE_NOT_ACCEPTED;\r
-                       }\r
-\r
-               } else {\r
-                       LeaveCriticalSection(&m_pFilter->filterlock);\r
-                       CoTaskMemFree(mtype->pbFormat);\r
-                       return VFW_E_TYPE_NOT_ACCEPTED;\r
-               }\r
-               CoTaskMemFree(mtype->pbFormat);\r
-       }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
-                       if (CheckMediaType(emtype)==S_OK){\r
-                               if (pinempf->ReceiveConnection((IPin*)this,emtype)==S_OK) {\r
-                                       connected=pinempf;\r
-                                       CopyMType(&medtype,emtype);\r
-                                       CoTaskMemFree(emtype->pbFormat);\r
-                                       gotmt=true;\r
-                                       break;\r
-                               }\r
-                               \r
-                       }\r
-                       CoTaskMemFree(emtype->pbFormat);\r
-               }\r
-               emt->Release();\r
-               if (gotmt==false) {\r
-                       pinempf->EnumMediaTypes(&emt);\r
-                       while (emt->Next(1,&emtype,&fetched)==S_OK) {\r
-                               if (CheckMediaType(emtype)==S_OK){\r
-                                       if (pinempf->ReceiveConnection((IPin*)this,emtype)==S_OK) {\r
-                                               connected=pinempf;\r
-                                               CopyMType(&medtype,emtype);\r
-                                               CoTaskMemFree(emtype->pbFormat);\r
-                                               gotmt=true;\r
-                                               break;\r
-                                       }\r
-                                       \r
-                               }\r
-                               CoTaskMemFree(emtype->pbFormat);\r
-                       }\r
-                       emt->Release();\r
-                       if (gotmt==false) {\r
-                               pinempf->Release();\r
-                               LeaveCriticalSection(&m_pFilter->filterlock);\r
-                               return VFW_E_NO_ACCEPTABLE_TYPES;\r
-                       }\r
-               }\r
-       }\r
-\r
-       if (pinempf->QueryInterface(IID_IMemInputPin,(void**)&connectedinput)!=S_OK) {\r
-               LeaveCriticalSection(&m_pFilter->filterlock);\r
-               connected->Release();\r
-               connected=NULL;\r
-       /*      connectedinput->Release();\r
-               connectedinput=NULL;*/\r
-               return VFW_E_NO_TRANSPORT;\r
-       }\r
-       ALLOCATOR_PROPERTIES eigenall;\r
-       ZeroMemory(&eigenall,sizeof(eigenall));\r
-       connectedinput->GetAllocatorRequirements(&eigenall);\r
-       if (eigenall.cbAlign==0) eigenall.cbAlign=1;\r
-       connectedinput->GetAllocator(&allocator);\r
-       if (DecideBufferSize(allocator,&eigenall)==S_OK) {\r
-               if (connectedinput->NotifyAllocator(allocator,FALSE)==S_OK){\r
-                       connected=pinempf;\r
-                       LeaveCriticalSection(&m_pFilter->filterlock);\r
-                       return S_OK;\r
-               }\r
-       } \r
-       if (allocator!=NULL) allocator->Release();\r
-       allocator=NULL;\r
-\r
-       if (CoCreateInstance(CLSID_MemoryAllocator,0,CLSCTX_INPROC_SERVER,\r
-               IID_IMemAllocator,(void **)allocator)==S_OK) {\r
-                       if (DecideBufferSize(allocator,&eigenall)==S_OK) {\r
-                               if (connectedinput->NotifyAllocator(allocator,FALSE)==S_OK){\r
-                                       connected=pinempf;\r
-                                       LeaveCriticalSection(&m_pFilter->filterlock);\r
-                               return S_OK;\r
-                       }\r
-               }\r
-       }\r
-       if (allocator!=NULL) allocator->Release();\r
-       allocator=NULL;\r
-       connected->Release();\r
-       connected=NULL;\r
-       connectedinput->Release();\r
-       connectedinput=NULL;\r
-       LeaveCriticalSection(&m_pFilter->filterlock);\r
-       return VFW_E_NO_TRANSPORT;\r
-       \r
-\r
-       \r
+  if (pinempf==NULL) return E_POINTER;\r
+  EnterCriticalSection(&m_pFilter->filterlock);\r
+\r
+  if (connected!=NULL) {LeaveCriticalSection(&m_pFilter->filterlock);return VFW_E_ALREADY_CONNECTED;}\r
+  if (m_pFilter->mystate!=State_Stopped) {LeaveCriticalSection(&m_pFilter->filterlock);return VFW_E_NOT_STOPPED;}\r
+\r
+\r
+  bool gotmt=false;\r
+\r
+  if (mtype!=NULL) {\r
+    if (CheckMediaType(mtype)==S_OK){\r
+      pinempf->AddRef();\r
+      if (pinempf->ReceiveConnection((IPin*)this,mtype)==S_OK) {\r
+        CopyMType(&medtype,mtype);\r
+        LeaveCriticalSection(&m_pFilter->filterlock);\r
+      } else {\r
+        LeaveCriticalSection(&m_pFilter->filterlock);\r
+        CoTaskMemFree(mtype->pbFormat);\r
+        pinempf->Release();\r
+        return VFW_E_TYPE_NOT_ACCEPTED;\r
+      }\r
+\r
+    } else {\r
+      LeaveCriticalSection(&m_pFilter->filterlock);\r
+      CoTaskMemFree(mtype->pbFormat);\r
+      return VFW_E_TYPE_NOT_ACCEPTED;\r
+    }\r
+    CoTaskMemFree(mtype->pbFormat);\r
+  }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
+      if (CheckMediaType(emtype)==S_OK){\r
+        if (pinempf->ReceiveConnection((IPin*)this,emtype)==S_OK) {\r
+          connected=pinempf;\r
+          CopyMType(&medtype,emtype);\r
+          CoTaskMemFree(emtype->pbFormat);\r
+          gotmt=true;\r
+          break;\r
+        }\r
+\r
+      }\r
+      CoTaskMemFree(emtype->pbFormat);\r
+    }\r
+    emt->Release();\r
+    if (gotmt==false) {\r
+      pinempf->EnumMediaTypes(&emt);\r
+      while (emt->Next(1,&emtype,&fetched)==S_OK) {\r
+        if (CheckMediaType(emtype)==S_OK){\r
+          if (pinempf->ReceiveConnection((IPin*)this,emtype)==S_OK) {\r
+            connected=pinempf;\r
+            CopyMType(&medtype,emtype);\r
+            CoTaskMemFree(emtype->pbFormat);\r
+            gotmt=true;\r
+            break;\r
+          }\r
+\r
+        }\r
+        CoTaskMemFree(emtype->pbFormat);\r
+      }\r
+      emt->Release();\r
+      if (gotmt==false) {\r
+        pinempf->Release();\r
+        LeaveCriticalSection(&m_pFilter->filterlock);\r
+        return VFW_E_NO_ACCEPTABLE_TYPES;\r
+      }\r
+    }\r
+  }\r
+\r
+  if (pinempf->QueryInterface(IID_IMemInputPin,(void**)&connectedinput)!=S_OK) {\r
+    LeaveCriticalSection(&m_pFilter->filterlock);\r
+    connected->Release();\r
+    connected=NULL;\r
+  /*  connectedinput->Release();\r
+    connectedinput=NULL;*/\r
+    return VFW_E_NO_TRANSPORT;\r
+  }\r
+  ALLOCATOR_PROPERTIES eigenall;\r
+  ZeroMemory(&eigenall,sizeof(eigenall));\r
+  connectedinput->GetAllocatorRequirements(&eigenall);\r
+  if (eigenall.cbAlign==0) eigenall.cbAlign=1;\r
+  connectedinput->GetAllocator(&allocator);\r
+  if (DecideBufferSize(allocator,&eigenall)==S_OK) {\r
+    if (connectedinput->NotifyAllocator(allocator,FALSE)==S_OK){\r
+      connected=pinempf;\r
+      LeaveCriticalSection(&m_pFilter->filterlock);\r
+      return S_OK;\r
+    }\r
+  }\r
+  if (allocator!=NULL) allocator->Release();\r
+  allocator=NULL;\r
+\r
+  if (CoCreateInstance(CLSID_MemoryAllocator,0,CLSCTX_INPROC_SERVER,\r
+    IID_IMemAllocator,(void **)allocator)==S_OK) {\r
+      if (DecideBufferSize(allocator,&eigenall)==S_OK) {\r
+        if (connectedinput->NotifyAllocator(allocator,FALSE)==S_OK){\r
+          connected=pinempf;\r
+          LeaveCriticalSection(&m_pFilter->filterlock);\r
+        return S_OK;\r
+      }\r
+    }\r
+  }\r
+  if (allocator!=NULL) allocator->Release();\r
+  allocator=NULL;\r
+  connected->Release();\r
+  connected=NULL;\r
+  connectedinput->Release();\r
+  connectedinput=NULL;\r
+  LeaveCriticalSection(&m_pFilter->filterlock);\r
+  return VFW_E_NO_TRANSPORT;\r
+\r
+\r
+\r
 \r
 }\r
 HRESULT STDMETHODCALLTYPE DsSourcePin::ReceiveConnection(IPin *connect,\r
-                                                                                                                const AM_MEDIA_TYPE *mtype){\r
-                return VFW_E_TYPE_NOT_ACCEPTED; //We have only output pins\r
+                             const AM_MEDIA_TYPE *mtype){\r
+     return VFW_E_TYPE_NOT_ACCEPTED; //We have only output pins\r
 }\r
  HRESULT STDMETHODCALLTYPE DsSourcePin::Disconnect() {\r
-        EnterCriticalSection(&m_pFilter->filterlock);\r
-        if (connected!=NULL) {\r
-                if (m_pFilter->mystate!=State_Stopped) {LeaveCriticalSection(&m_pFilter->filterlock);return VFW_E_NOT_STOPPED;}\r
-                /*TODO: Decommit allocator*/\r
-                allocator->Decommit();\r
-                allocator->Release();\r
-                allocator=NULL;\r
-                ReleaseMType(&medtype);\r
-                connectedinput->Release();\r
-                connectedinput=NULL;\r
-                connected->Release();\r
-                connected=NULL;\r
-                LeaveCriticalSection(&m_pFilter->filterlock);\r
-                return S_OK;\r
-        }\r
-        LeaveCriticalSection(&m_pFilter->filterlock);\r
-        return S_FALSE;\r
+   EnterCriticalSection(&m_pFilter->filterlock);\r
+   if (connected!=NULL) {\r
+     if (m_pFilter->mystate!=State_Stopped) {LeaveCriticalSection(&m_pFilter->filterlock);return VFW_E_NOT_STOPPED;}\r
+     /*TODO: Decommit allocator*/\r
+     allocator->Decommit();\r
+     allocator->Release();\r
+     allocator=NULL;\r
+     ReleaseMType(&medtype);\r
+     connectedinput->Release();\r
+     connectedinput=NULL;\r
+     connected->Release();\r
+     connected=NULL;\r
+     LeaveCriticalSection(&m_pFilter->filterlock);\r
+     return S_OK;\r
+   }\r
+   LeaveCriticalSection(&m_pFilter->filterlock);\r
+   return S_FALSE;\r
  }\r
 \r
  HRESULT STDMETHODCALLTYPE DsSourcePin::ConnectedTo(IPin **pin){\r
-        if (pin==NULL) return E_POINTER;\r
-        IPin* pinn=connected;\r
-        *pin=pinn;\r
-        if (pinn!=NULL) {\r
-                pinn->AddRef();\r
-                return S_OK;\r
-        } else {\r
-                return VFW_E_NOT_CONNECTED;\r
-        }\r
+   if (pin==NULL) return E_POINTER;\r
+   IPin* pinn=connected;\r
+   *pin=pinn;\r
+   if (pinn!=NULL) {\r
+     pinn->AddRef();\r
+     return S_OK;\r
+   } else {\r
+     return VFW_E_NOT_CONNECTED;\r
+   }\r
  }\r
  HRESULT STDMETHODCALLTYPE  DsSourcePin::ConnectionMediaType(AM_MEDIA_TYPE *mtype){\r
-        if (mtype==NULL) return E_POINTER;\r
-        if (connected!=NULL){\r
-               CopyMType(mtype,&medtype);\r
-               return S_OK;\r
-        } else {\r
-                ZeroMemory(mtype,sizeof(mtype));\r
-                return VFW_E_NOT_CONNECTED;\r
-        }\r
+   if (mtype==NULL) return E_POINTER;\r
+   if (connected!=NULL){\r
+    CopyMType(mtype,&medtype);\r
+    return S_OK;\r
+   } else {\r
+     ZeroMemory(mtype,sizeof(mtype));\r
+     return VFW_E_NOT_CONNECTED;\r
+   }\r
  }\r
  HRESULT STDMETHODCALLTYPE DsSourcePin::QueryPinInfo(PIN_INFO *info){\r
-        if (info==NULL) return E_POINTER;\r
-        info->dir=PINDIR_OUTPUT;\r
-        info->pFilter=(IBaseFilter*)m_pFilter;\r
-        if (m_pFilter) m_pFilter->AddRef();\r
-        if (isaudiopin) wcscpy(info->achName,L"Audio");\r
-        else wcscpy(info->achName,L"Video");\r
-        return S_OK;\r
+   if (info==NULL) return E_POINTER;\r
+   info->dir=PINDIR_OUTPUT;\r
+   info->pFilter=(IBaseFilter*)m_pFilter;\r
+   if (m_pFilter) m_pFilter->AddRef();\r
+   if (isaudiopin) wcscpy(info->achName,L"Audio");\r
+   else wcscpy(info->achName,L"Video");\r
+   return S_OK;\r
  }\r
 \r
  HRESULT STDMETHODCALLTYPE  DsSourcePin::QueryDirection(PIN_DIRECTION *dir){\r
-        if (dir==NULL) return E_POINTER;\r
-        *dir=PINDIR_OUTPUT;\r
-        return S_OK;\r
+   if (dir==NULL) return E_POINTER;\r
+   *dir=PINDIR_OUTPUT;\r
+   return S_OK;\r
  }\r
  HRESULT STDMETHODCALLTYPE DsSourcePin::QueryId(LPWSTR *id){\r
-        if (id==NULL) return E_POINTER;\r
-        *id=(LPWSTR)CoTaskMemAlloc(12);\r
-        if (*id==NULL) return E_OUTOFMEMORY;\r
-        \r
-\r
-        if (isaudiopin) wcscpy(*id,L"Audio");\r
-         else  wcscpy(*id, L"Video");\r
-         return S_OK;\r
+   if (id==NULL) return E_POINTER;\r
+   *id=(LPWSTR)CoTaskMemAlloc(12);\r
+   if (*id==NULL) return E_OUTOFMEMORY;\r
+\r
+\r
+   if (isaudiopin) wcscpy(*id,L"Audio");\r
+    else  wcscpy(*id, L"Video");\r
+    return S_OK;\r
  }\r
  HRESULT STDMETHODCALLTYPE  DsSourcePin::QueryAccept(const AM_MEDIA_TYPE *mtype) {\r
-        if (mtype==NULL) return S_FALSE;\r
-        if (CheckMediaType(mtype)==S_OK) return S_OK;\r
-        else return S_FALSE;\r
+   if (mtype==NULL) return S_FALSE;\r
+   if (CheckMediaType(mtype)==S_OK) return S_OK;\r
+   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;
+  *enuma=new DsSFEnumMediaTypes( this);
+  (*enuma)->AddRef();
+  return S_OK;
 }\r
 \r
 HRESULT STDMETHODCALLTYPE DsSourcePin::QueryInternalConnections(IPin **pin,ULONG *numpin){\r
-       return E_NOTIMPL;\r
+  return E_NOTIMPL;\r
 }\r
 HRESULT STDMETHODCALLTYPE DsSourcePin::EndOfStream(){\r
-       return E_UNEXPECTED; //we are a output pin!\r
+  return E_UNEXPECTED; //we are a output pin!\r
 }\r
 \r
 HRESULT STDMETHODCALLTYPE DsSourcePin::NewSegment(REFERENCE_TIME start,REFERENCE_TIME stop,double rate){\r
-       return E_UNEXPECTED;//we are a output pin!\r
+  return E_UNEXPECTED;//we are a output pin!\r
 }\r
 \r
 HRESULT DsSourcePin::getCurrentMediaSample(IMediaSample**ms){\r
-       if (allocator!=NULL) return allocator->GetBuffer(ms,NULL,NULL,0);\r
-       else return E_NOINTERFACE;\r
+  if (allocator!=NULL) return allocator->GetBuffer(ms,NULL,NULL,0);\r
+  else return E_NOINTERFACE;\r
 }\r
 \r
 HRESULT DsSourcePin::deliver(IMediaSample * ms){\r
-       //EnterCriticalSection(&m_pFilter->filterlock);\r
-       HRESULT hres;\r
-       if (connectedinput!=NULL)hres= connectedinput->Receive(ms);\r
-       else hres= VFW_E_NOT_CONNECTED;\r
-       //LeaveCriticalSection(&m_pFilter->filterlock);\r
-       return hres;\r
+  //EnterCriticalSection(&m_pFilter->filterlock);\r
+  HRESULT hres;\r
+  if (connectedinput!=NULL)hres= connectedinput->Receive(ms);\r
+  else hres= VFW_E_NOT_CONNECTED;\r
+  //LeaveCriticalSection(&m_pFilter->filterlock);\r
+  return hres;\r
 \r
 }\r
 \r
 HRESULT DsSourcePin::GetMediaType(int iPosition, AM_MEDIA_TYPE *pmt)\r
 {\r
-       HRESULT hr;\r
-       \r
-       if (isaudiopin){\r
-               if (iPosition==0) {\r
-                       ZeroMemory(pmt,sizeof(*pmt));\r
-                       pmt->lSampleSize = 1;\r
-                       pmt->bFixedSizeSamples = TRUE;\r
-                       pmt->majortype=MEDIATYPE_Audio;\r
-                       MPEG1WAVEFORMAT wfe;\r
-                       ZeroMemory(&wfe,sizeof(wfe));\r
-                       wfe.wfx.cbSize=22;\r
-                       wfe.wfx.nSamplesPerSec=48000;\r
-                       wfe.wfx.nChannels=2;\r
-                       wfe.wfx.nAvgBytesPerSec=32000;\r
-                       wfe.wfx.nBlockAlign=768;\r
-                       wfe.wfx.wFormatTag=WAVE_FORMAT_MPEG;\r
-                       wfe.fwHeadLayer=2;\r
-                       wfe.dwHeadBitrate=256000;\r
-                       wfe.fwHeadMode=ACM_MPEG_STEREO;\r
-                       wfe.fwHeadModeExt=1;\r
-                       wfe.wHeadEmphasis=1;\r
-                       wfe.fwHeadFlags=ACM_MPEG_ID_MPEG1 |ACM_MPEG_ORIGINALHOME | ACM_MPEG_PROTECTIONBIT;\r
-                       pmt->subtype=MEDIASUBTYPE_MPEG2_AUDIO;\r
-                       pmt->formattype=FORMAT_WaveFormatEx;\r
-                       pmt->cbFormat=sizeof(wfe);\r
-                       pmt->pbFormat=(BYTE*)CoTaskMemAlloc(sizeof(wfe));\r
-                       memcpy(pmt->pbFormat,&wfe,sizeof(wfe));\r
-                       pmt->lSampleSize=0;\r
-                       hr=S_OK;\r
-\r
-               \r
+  HRESULT hr;\r
+\r
+  if (isaudiopin){\r
+    if (iPosition==0) {\r
+      ZeroMemory(pmt,sizeof(*pmt));\r
+      pmt->lSampleSize = 1;\r
+      pmt->bFixedSizeSamples = TRUE;\r
+      pmt->majortype=MEDIATYPE_Audio;\r
+      MPEG1WAVEFORMAT wfe;\r
+      ZeroMemory(&wfe,sizeof(wfe));\r
+      wfe.wfx.cbSize=22;\r
+      wfe.wfx.nSamplesPerSec=48000;\r
+      wfe.wfx.nChannels=2;\r
+      wfe.wfx.nAvgBytesPerSec=32000;\r
+      wfe.wfx.nBlockAlign=768;\r
+      wfe.wfx.wFormatTag=WAVE_FORMAT_MPEG;\r
+      wfe.fwHeadLayer=2;\r
+      wfe.dwHeadBitrate=256000;\r
+      wfe.fwHeadMode=ACM_MPEG_STEREO;\r
+      wfe.fwHeadModeExt=1;\r
+      wfe.wHeadEmphasis=1;\r
+      wfe.fwHeadFlags=ACM_MPEG_ID_MPEG1 |ACM_MPEG_ORIGINALHOME | ACM_MPEG_PROTECTIONBIT;\r
+      pmt->subtype=MEDIASUBTYPE_MPEG2_AUDIO;\r
+      pmt->formattype=FORMAT_WaveFormatEx;\r
+      pmt->cbFormat=sizeof(wfe);\r
+      pmt->pbFormat=(BYTE*)CoTaskMemAlloc(sizeof(wfe));\r
+      memcpy(pmt->pbFormat,&wfe,sizeof(wfe));\r
+      pmt->lSampleSize=0;\r
+      hr=S_OK;\r
+\r
+\r
         } else  {\r
-                       hr=VFW_S_NO_MORE_ITEMS ;\r
-               }\r
-       } else {\r
-               if (iPosition == 0) {\r
-                       ZeroMemory(pmt,sizeof(*pmt));\r
-                       pmt->lSampleSize = 1;\r
-                       pmt->bFixedSizeSamples = TRUE;\r
-                       pmt->majortype=MEDIATYPE_Video;\r
-                       hr=S_OK;\r
-                       pmt->subtype=MEDIASUBTYPE_MPEG2_VIDEO;\r
+      hr=VFW_S_NO_MORE_ITEMS ;\r
+    }\r
+  } else {\r
+    if (iPosition == 0) {\r
+      ZeroMemory(pmt,sizeof(*pmt));\r
+      pmt->lSampleSize = 1;\r
+      pmt->bFixedSizeSamples = TRUE;\r
+      pmt->majortype=MEDIATYPE_Video;\r
+      hr=S_OK;\r
+      pmt->subtype=MEDIASUBTYPE_MPEG2_VIDEO;\r
             pmt->formattype=FORMAT_MPEG2Video;\r
 \r
             MPEG2VIDEOINFO hdr;\r
@@ -456,87 +458,87 @@ HRESULT DsSourcePin::GetMediaType(int iPosition, AM_MEDIA_TYPE *pmt)
             hdr.hdr.bmiHeader.biSize = sizeof(hdr.hdr.bmiHeader);\r
             hdr.hdr.bmiHeader.biWidth = 720;\r
             hdr.hdr.bmiHeader.biHeight = 568;\r
-                       pmt->cbFormat=sizeof(hdr);\r
-                       pmt->pbFormat=(BYTE*)CoTaskMemAlloc(sizeof(hdr));\r
-                       memcpy(pmt->pbFormat,&hdr,sizeof(hdr));\r
-            \r
-               } else {\r
-                       hr=VFW_S_NO_MORE_ITEMS;\r
-               }\r
-       }\r
-       return hr ;\r
+      pmt->cbFormat=sizeof(hdr);\r
+      pmt->pbFormat=(BYTE*)CoTaskMemAlloc(sizeof(hdr));\r
+      memcpy(pmt->pbFormat,&hdr,sizeof(hdr));\r
+\r
+    } else {\r
+      hr=VFW_S_NO_MORE_ITEMS;\r
+    }\r
+  }\r
+  return hr ;\r
 }\r
 \r
 HRESULT DsSourcePin::Inactive() {\r
-       if (allocator!=NULL) return allocator->Decommit();\r
-       return VFW_E_NO_ALLOCATOR;\r
+  if (allocator!=NULL) return allocator->Decommit();\r
+  return VFW_E_NO_ALLOCATOR;\r
 }\r
 \r
 HRESULT DsSourcePin::Active() {\r
-       if (allocator!=NULL) return allocator->Commit();\r
-       return VFW_E_NO_ALLOCATOR;\r
+  if (allocator!=NULL) return allocator->Commit();\r
+  return VFW_E_NO_ALLOCATOR;\r
 }\r
 \r
 
 HRESULT DsSourcePin::Run(REFERENCE_TIME reftime){\r
-       return NOERROR;\r
+  return NOERROR;\r
 }\r
 \r
 // No description\r
 HRESULT DsSourcePin::CheckMediaType(const AM_MEDIA_TYPE *pmt)\r
 {\r
     HRESULT res;\r
-    \r
+\r
     if (isaudiopin) {\r
         bool subtype=false;\r
 #if 0 /* For future demands ac3 */\r
-               subtype=pmt->subtype==(MEDIASUBTYPE_DOLBY_AC3);\r
+    subtype=pmt->subtype==(MEDIASUBTYPE_DOLBY_AC3);\r
 #endif\r
-               subtype=(pmt->subtype==(MEDIASUBTYPE_MPEG2_AUDIO));\r
+    subtype=(pmt->subtype==(MEDIASUBTYPE_MPEG2_AUDIO));\r
         if (pmt->majortype==MEDIATYPE_Audio && subtype) {\r
-                       res = S_OK ;\r
+      res = S_OK ;\r
         } else {\r
             res = S_FALSE ;\r
-        }    \r
+        }\r
     } else {\r
         if (pmt->majortype==MEDIATYPE_Video &&\r
                   pmt-> subtype==MEDIASUBTYPE_MPEG2_VIDEO) {\r
-                       res = S_OK ;\r
+      res = S_OK ;\r
         } else {\r
             res = S_FALSE ;\r
-        }  \r
+        }\r
     }\r
     return res;\r
 }\r
 \r
 HRESULT DsSourcePin::DecideBufferSize(IMemAllocator *pa,ALLOCATOR_PROPERTIES *all_pp){\r
-       HRESULT hr;\r
-   \r
+  HRESULT hr;\r
+\r
     if (pa==NULL)return E_POINTER;\r
     if (all_pp==NULL) return E_POINTER;\r
-       if (isaudiopin) {\r
-               if (all_pp->cBuffers*all_pp->cbBuffer < 300*64*1024)\r
-               {\r
-                       //all_pp->cBuffers = 300;//old\r
-                       all_pp->cBuffers = 10;\r
-                       all_pp->cbBuffer = 64*1024;\r
-               }\r
-       } else {\r
-               if (all_pp->cBuffers*all_pp->cbBuffer < 300*64*1024)\r
-               {\r
-                       //all_pp->cBuffers = 300;//old\r
-                       all_pp->cBuffers = 30;\r
-                       all_pp->cbBuffer = 64*1024;\r
-               }\r
-       }\r
+  if (isaudiopin) {\r
+    if (all_pp->cBuffers*all_pp->cbBuffer < 300*64*1024)\r
+    {\r
+      //all_pp->cBuffers = 300;//old\r
+      all_pp->cBuffers = 10;\r
+      all_pp->cbBuffer = 64*1024;\r
+    }\r
+  } else {\r
+    if (all_pp->cBuffers*all_pp->cbBuffer < 300*64*1024)\r
+    {\r
+      //all_pp->cBuffers = 300;//old\r
+      all_pp->cBuffers = 30;\r
+      all_pp->cbBuffer = 64*1024;\r
+    }\r
+  }\r
 \r
     ALLOCATOR_PROPERTIES all_pp_cur;\r
     hr =pa->SetProperties(all_pp,&all_pp_cur);\r
-    if (FAILED(hr)) \r
+    if (FAILED(hr))\r
     {\r
         return hr;\r
     }\r
-    if (all_pp_cur.cbBuffer*all_pp_cur.cBuffers < all_pp->cBuffers*all_pp->cbBuffer) \r
+    if (all_pp_cur.cbBuffer*all_pp_cur.cBuffers < all_pp->cBuffers*all_pp->cbBuffer)\r
     {\r
         return E_FAIL;\r
     }\r
index eb445e30ef7f349e0feb977457f9e362456cd60b..6ab28c57a00b63a210a211eab986f90731ffe370 100644 (file)
@@ -116,11 +116,13 @@ void VLiveBanner::setChannel(Channel* tChannel)
     {
       event = (*eventList)[i];
 
-      btime = localtime((time_t*)&event->time);
+      //btime = localtime((time_t*)&event->time);
+      time_t etime = event->time;
+      btime = localtime(&etime);
 #ifndef _MSC_VER
       strftime(tempString2, 299, "%0H:%0M ", btime);
 #else
-    strftime(tempString2, 299, "%H:%M ", btime);
+      strftime(tempString2, 299, "%H:%M ", btime);
 #endif
       SNPRINTF(tempString, 299, "%s %s", tempString2, event->title);
       sl.addOption(tempString, (ULONG)event, first);
diff --git a/wwss.cc b/wwss.cc
index 9bc81d628afee4aca165632e8a7b32231268e096..f1a6bb116fdad00be745f8d63faf9545d1777690 100644 (file)
--- a/wwss.cc
+++ b/wwss.cc
@@ -113,6 +113,7 @@ void Wwss::drawPAL()
 \r
   Colour c;\r
   UINT value;\r
+\r
   for(UINT q = 0; q < Nd; q++)\r
   {\r
     value = (UINT)(dst[q] * 182); // Apparently this is a better number than 255 for the colour value\r
@@ -123,13 +124,14 @@ void Wwss::drawPAL()
 \r
 void Wwss::drawNTSC()\r
 {\r
-  static UCHAR startCode[] = {1,0};\r
-  static UCHAR aspect43[]  = {0,0};\r
-  static UCHAR aspect169[] = {1,0};\r
-  static UCHAR theRest[]   = {0,0,0,0,0,0,0,0,0,0,0,0};\r
+/*\r
+  static UCHAR startCode[] = {1,0,0,0,0,0,0};\r
+  static UCHAR aspect43[]  = {0};\r
+  static UCHAR aspect169[] = {1};\r
+  static UCHAR theRest[]   = {0,0,0,0,0,0,0,0};\r
   static UCHAR crc43[]     = {0,0,0,0,0,0};\r
-  static UCHAR crc169[]    = {1,0,0,1,0,1};\r
-\r
+  static UCHAR crc169[]    = {0,0,1,1,0,0};\r
+*/\r
   /*\r
   Real NTSC pixel frequency: 13.5 MHz\r
   WSS bit frequency: 447.443125 kHz\r
@@ -144,17 +146,23 @@ void Wwss::drawNTSC()
 \r
   const UINT   Ns = 22;            // Num pix src\r
   const UINT   Nd = 664;           // Num pix dst\r
+//  const UINT   Nd = 518;           // Num pix dst\r
   UINT         Nl = lcm(Ns, Nd);   // Num pix in lcm\r
   UINT         Ss = Nl / Ns;       // Source split (how many lcm px = 1 src px)\r
   UINT         Sd = Nl / Nd;       // Dst split\r
-  UCHAR src[Ns];\r
+//  UCHAR src[Ns];\r
 \r
-  memcpy(&src[0], startCode, 2);\r
-  if (wide) memcpy(&src[2], aspect169, 2);\r
-  else      memcpy(&src[2], aspect43, 2);\r
-  memcpy(&src[4], theRest, 12);\r
+/*\r
+  memcpy(&src[0], startCode, 7);\r
+  if (wide) memcpy(&src[7], aspect169, 1);\r
+  else      memcpy(&src[7], aspect43, 1);\r
+  memcpy(&src[8], theRest, 8);\r
   if (wide) memcpy(&src[16], crc169, 6);\r
   else      memcpy(&src[16], crc43, 6);\r
+*/\r
+\r
+static UCHAR src[22] = {1,0, 0,0,0,0,1,1, 0,0,0,0, 0,0,0,0, 0,0,1,0,0,1 };\r
+\r
 \r
   float dst[Nd];\r
   UINT lcmpxbase = 0;\r
@@ -172,6 +180,7 @@ void Wwss::drawNTSC()
   Colour c;\r
   UINT value;\r
 \r
+// This one is the real one\r
 /*\r
   for(UINT q = 0; q < Nd; q++)\r
   {\r
@@ -181,13 +190,14 @@ void Wwss::drawNTSC()
   }\r
 */\r
 \r
+// This one is testing active\r
 for(int yy = 0; yy < 100; yy++)\r
 {\r
   for(UINT q = 0; q < Nd; q++)\r
   {\r
     value = (UINT)(dst[q] * 182); // Apparently this is a better number than 255 for the colour value\r
     c.set(value, value, value);\r
-    drawPixel(q+20, yy, c);\r
+    drawPixel(q+0, yy, c);\r
   }\r
 }\r
 \r
@@ -210,7 +220,7 @@ static UCHAR aspect43[]  = {0,0};
 static UCHAR aspect169[] = {1,0};\r
 static UCHAR theRest[]   = {0,0,0,0,0,0,0,0,0,0,0,0};\r
 static UCHAR crc43[]     = {0,0,0,0,0,0};\r
-static UCHAR crc169[]    = {1,0,0,1,0,1};\r
+static UCHAR crc169[]    = {0,0,1,0,0,1};\r
 \r
 Message 4:3\r
 \r