qtmobility/plugins/multimedia/directshow/player/videosurfacefilter.cpp
changeset 4 90517678cc4f
parent 1 2b40d63a9c3d
child 11 06b8e2af4411
--- a/qtmobility/plugins/multimedia/directshow/player/videosurfacefilter.cpp	Fri Apr 16 15:51:22 2010 +0300
+++ b/qtmobility/plugins/multimedia/directshow/player/videosurfacefilter.cpp	Mon May 03 13:18:40 2010 +0300
@@ -81,7 +81,11 @@
 }
 
 HRESULT VideoSurfaceFilter::QueryInterface(REFIID riid, void **ppvObject)
-{
+{    
+    // 2dd74950-a890-11d1-abe8-00a0c905f375
+    static const GUID iid_IAmFilterMiscFlags = {
+        0x2dd74950, 0xa890, 0x11d1, {0xab, 0xe8, 0x00, 0xa0, 0xc9, 0x05, 0xf3, 0x75} };
+
     if (!ppvObject) {
         return E_POINTER;
     } else if (riid == IID_IUnknown
@@ -89,7 +93,7 @@
             || riid == IID_IMediaFilter
             || riid == IID_IBaseFilter) {
         *ppvObject = static_cast<IBaseFilter *>(this);
-    } else if (riid == IID_IAMFilterMiscFlags) {
+    } else if (riid == iid_IAmFilterMiscFlags) {
         *ppvObject = static_cast<IAMFilterMiscFlags *>(this);
     } else if (riid == IID_IPin) {
         *ppvObject = static_cast<IPin *>(this);
@@ -443,7 +447,7 @@
     QMutexLocker locker(&m_mutex);
 
     if (!m_sampleScheduler.scheduleEndOfStream()) {
-        if (IMediaEventSink *sink = com_cast<IMediaEventSink>(m_graph)) {
+        if (IMediaEventSink *sink = com_cast<IMediaEventSink>(m_graph, IID_IMediaEventSink)) {
             sink->Notify(
                     EC_COMPLETE,
                     S_OK,
@@ -567,6 +571,10 @@
 {
     QMutexLocker locker(&m_mutex);
 
+    // MEDIASUBTYPE_None;
+    static const GUID none = {
+        0xe436eb8e, 0x524f, 0x11ce, {0x9f, 0x53, 0x00, 0x20, 0xaf, 0x0b, 0xa7, 0x70} };
+
     QList<QVideoFrame::PixelFormat> formats = m_surface->supportedPixelFormats();
 
     QVector<AM_MEDIA_TYPE> mediaTypes;
@@ -585,7 +593,7 @@
     foreach (QVideoFrame::PixelFormat format, formats) {
         type.subtype = DirectShowMediaType::convertPixelFormat(format);
 
-        if (type.subtype != MEDIASUBTYPE_None)
+        if (type.subtype != none)
             mediaTypes.append(type);
     }
 
@@ -607,7 +615,7 @@
         sample->Release();
 
         if (eos) {
-            if (IMediaEventSink *sink = com_cast<IMediaEventSink>(m_graph)) {
+            if (IMediaEventSink *sink = com_cast<IMediaEventSink>(m_graph, IID_IMediaEventSink)) {
                 sink->Notify(
                         EC_COMPLETE,
                         S_OK,