Unable to use WaitForCompletion() in #include 2019 Community Moderator ElectionDShow Sample Code for playing video does not play the videoWhat is the difference between #include <filename> and #include “filename”?Detecting superfluous #includes in C/C++?Is #pragma once a safe include guard?Displaying the #include hierarchy for a C++ file in Visual Studio#pragma once vs include guards?C/C++ include header file orderCannot open include file 'afxres.h' in VC2010 ExpressWhat is the difference between “Include Directories” and “Additional Include Directories”Unable to launch the IIS Express Web serverWhat is “Service Include” in a csproj file for?

Are small insurances worth it?

Expressing logarithmic equations without logs

Which situations would cause a company to ground or recall a aircraft series?

Are all players supposed to be able to see each others' character sheets?

Dynamic Linkage of LocatorPane and InputField

Why does cron require MTA for logging?

Does "Until when" sound natural for native speakers?

How do we create new idioms and use them in a novel?

Gaining more land

Possible to detect presence of nuclear bomb?

When a wind turbine does not produce enough electricity how does the power company compensate for the loss?

What are some noteworthy "mic-drop" moments in math?

After `ssh` without `-X` to a machine, is it possible to change `$DISPLAY` to make it work like `ssh -X`?

Signed and unsigned numbers

Vocabulary for giving just numbers, not a full answer

Do cubics always have one real root?

Can we track matter through time by looking at different depths in space?

For which categories of spectra is there an explicit description of the fibrant objects via lifting properties?

Is it possible to find 2014 distinct positive integers whose sum is divisible by each of them?

Can't make sense of a paragraph from Lovecraft

Finitely many repeated replacements

Is it safe to abruptly remove Arduino power?

Giving a career talk in my old university, how prominently should I tell students my salary?

The meaning of ‘otherwise’



Unable to use WaitForCompletion() in #include



2019 Community Moderator ElectionDShow Sample Code for playing video does not play the videoWhat is the difference between #include <filename> and #include “filename”?Detecting superfluous #includes in C/C++?Is #pragma once a safe include guard?Displaying the #include hierarchy for a C++ file in Visual Studio#pragma once vs include guards?C/C++ include header file orderCannot open include file 'afxres.h' in VC2010 ExpressWhat is the difference between “Include Directories” and “Additional Include Directories”Unable to launch the IIS Express Web serverWhat is “Service Include” in a csproj file for?










0















I am using Qt patch in visual studio 2008. I am trying to run a video using #include <dshow.h>. I can run video successfully, but on using WaitForCompletion() my video gets hang. here is my code:-



MediaPlayer = new Media(ui.stackedWidget->currentWidget());
connect(ui.stackedWidget->currentWidget(), SIGNAL(videograph()), MediaPlayer,SLOT(HandleGraphEvent()));
MediaPlayer->pMediaControl->Run();
long evCode;
MediaPlayer->g_pEvent1->WaitForCompletion(INFINITE,&evCode);


My header file:-



Media.cpp



#include <dshow.h>
#include <commctrl.h>
#include <commdlg.h>
#include <stdio.h>
#include <tchar.h>
//#include <atlbase.h>

#include "Media.h"
#include <qtconcurrentrun.h>

Media::Media(QWidget *parent)


HRESULT hr;
CoInitialize(NULL);
hr = CoCreateInstance(CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&pVmr);
hr = pVmr->QueryInterface(IID_IVMRFilterConfig, (void**)&pWc);
hr = pWc->SetNumberOfStreams(2);
hr = pVmr->QueryInterface(IID_IVMRMixerBitmap,(void **)&pBitMAp);

if(SUCCEEDED(hr))
RenderPrefs_AllowOffscreen );
pWc->Release();

if(SUCCEEDED(hr))

hr = pVmr->QueryInterface(IID_IVMRWindowlessControl, (void**)&pWl);
if(SUCCEEDED(hr))
hr = pWl->SetVideoClippingWindow(parent->winId());


CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph);
pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
pGraph->QueryInterface(IID_IMediaEventEx, (void **)&g_pEvent);

pGraph->QueryInterface(IID_IBasicAudio,(void **)&pAudio);
pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pMediaSeeking );
pGraph->QueryInterface( IID_IMediaPosition, (void **) &pMediaPosition);
hr = pGraph->AddFilter(pVmr, L"Video Mixing Renderer");
g_pEvent->SetNotifyWindow((OAHWND)parent->winId(), WM_GRAPHNOTIFY, 0);
RECT grc;
GetWindowRect(parent->winId(), &grc);
pGraph->RenderFile(L"/FlashDisk/test.mp4", NULL);
long lWidth, lHeight;
hr = pWl->GetNativeVideoSize(&lWidth, &lHeight, NULL, NULL);
if (SUCCEEDED(hr))

SetRect(&g_rcSRc, 0, 0, lWidth, lHeight);
GetWindowRect(parent->winId(), &g_rcDest);
SetRect(&g_rcDest, 0, 0, g_rcDest.right, g_rcDest.bottom);

video_rendered = 1;
pWl->SetVideoPosition(&g_rcSRc, &g_rcDest);


Media::~Media()

CleanUp();


void Media::HandleGraphEvent()

if (g_pEvent == NULL)
return;
long evCode;
LONG_PTR param1, param2;
while (SUCCEEDED(g_pEvent->GetEvent(&evCode, &param1, &param2, 0)))

g_pEvent->FreeEventParams(evCode, param1, param2);
switch (evCode)

case EC_STATE_CHANGE: //ADDED for state change from pause to play to indiacte video paused.
//SetEvent(sync_event);
return;
case EC_COMPLETE: // Fall through.
CleanUp();
return;
case EC_USERABORT: // Fall through.
case EC_ERRORABORT:
CleanUp();
//media.play_next_file();
return;



/*#######################################################################################
CleanUp
#######################################################################################*/
void Media::CleanUp(void)

video_rendered = 0;
g_pEvent->SetNotifyWindow(NULL, 0, 0);
g_pEvent->Release();
g_pEvent = NULL;
pMediaControl->Release();
pAudio->Release();
pGraph->Release();



Media.h



#ifndef MEDIA_H
#define MEDIA_H
//#define max(a,b) (((a) > (b)) ? (a) : (b))
//#define min(a,b) (((a) < (b)) ? (a) : (b))
#include <windef.h>
#include <QObject>
#include <QDebug>
#include <QFile>
#include <QMessageBox>
#include <QTimer>
#include <windows.h>
#include <math.h>
#include <stdlib.h>
#include <Phonon>
#include <dshow.h>
#include <commctrl.h>
#include <commdlg.h>
#include <stdio.h>
#include <tchar.h>
//#include <atlbase.h>
#include <qtconcurrentrun.h>
#pragma comment (lib, "strmiids.lib")
#define WM_GRAPHNOTIFY WM_APP + 1
#define WM_AUDIOGRAPHNOTIFY WM_APP + 2

class Media: public QObject

Q_OBJECT
public:
Media(QWidget *parent);
~Media();
IMediaControl *pMediaControl;
IMediaEventEx *g_pEvent;
IMediaEvent *g_pEvent1;
IVideoWindow *pVidWin;
IVMRMixerBitmap *pBitMAp;
IVMRMixerBitmap *pBitMAp1;
IMediaSeeking *pMediaSeeking;
IMediaPosition *pMediaPosition;
IVMRFilterConfig *pWc;
IBaseFilter *pVmr;
IVMRWindowlessControl *pWl;
RECT g_rcSRc;
RECT g_rcDest;
IBasicAudio *pAudio;
IVMRMixerControl *pVmc;
IGraphBuilder *pGraph;
DWORD width;
unsigned char video_rendered;
void CleanUp(void);
public slots:
void HandleGraphEvent(void);
;


#endif


Please suggest me what i am missing here.










share|improve this question


























    0















    I am using Qt patch in visual studio 2008. I am trying to run a video using #include <dshow.h>. I can run video successfully, but on using WaitForCompletion() my video gets hang. here is my code:-



    MediaPlayer = new Media(ui.stackedWidget->currentWidget());
    connect(ui.stackedWidget->currentWidget(), SIGNAL(videograph()), MediaPlayer,SLOT(HandleGraphEvent()));
    MediaPlayer->pMediaControl->Run();
    long evCode;
    MediaPlayer->g_pEvent1->WaitForCompletion(INFINITE,&evCode);


    My header file:-



    Media.cpp



    #include <dshow.h>
    #include <commctrl.h>
    #include <commdlg.h>
    #include <stdio.h>
    #include <tchar.h>
    //#include <atlbase.h>

    #include "Media.h"
    #include <qtconcurrentrun.h>

    Media::Media(QWidget *parent)


    HRESULT hr;
    CoInitialize(NULL);
    hr = CoCreateInstance(CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&pVmr);
    hr = pVmr->QueryInterface(IID_IVMRFilterConfig, (void**)&pWc);
    hr = pWc->SetNumberOfStreams(2);
    hr = pVmr->QueryInterface(IID_IVMRMixerBitmap,(void **)&pBitMAp);

    if(SUCCEEDED(hr))
    RenderPrefs_AllowOffscreen );
    pWc->Release();

    if(SUCCEEDED(hr))

    hr = pVmr->QueryInterface(IID_IVMRWindowlessControl, (void**)&pWl);
    if(SUCCEEDED(hr))
    hr = pWl->SetVideoClippingWindow(parent->winId());


    CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph);
    pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
    pGraph->QueryInterface(IID_IMediaEventEx, (void **)&g_pEvent);

    pGraph->QueryInterface(IID_IBasicAudio,(void **)&pAudio);
    pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pMediaSeeking );
    pGraph->QueryInterface( IID_IMediaPosition, (void **) &pMediaPosition);
    hr = pGraph->AddFilter(pVmr, L"Video Mixing Renderer");
    g_pEvent->SetNotifyWindow((OAHWND)parent->winId(), WM_GRAPHNOTIFY, 0);
    RECT grc;
    GetWindowRect(parent->winId(), &grc);
    pGraph->RenderFile(L"/FlashDisk/test.mp4", NULL);
    long lWidth, lHeight;
    hr = pWl->GetNativeVideoSize(&lWidth, &lHeight, NULL, NULL);
    if (SUCCEEDED(hr))

    SetRect(&g_rcSRc, 0, 0, lWidth, lHeight);
    GetWindowRect(parent->winId(), &g_rcDest);
    SetRect(&g_rcDest, 0, 0, g_rcDest.right, g_rcDest.bottom);

    video_rendered = 1;
    pWl->SetVideoPosition(&g_rcSRc, &g_rcDest);


    Media::~Media()

    CleanUp();


    void Media::HandleGraphEvent()

    if (g_pEvent == NULL)
    return;
    long evCode;
    LONG_PTR param1, param2;
    while (SUCCEEDED(g_pEvent->GetEvent(&evCode, &param1, &param2, 0)))

    g_pEvent->FreeEventParams(evCode, param1, param2);
    switch (evCode)

    case EC_STATE_CHANGE: //ADDED for state change from pause to play to indiacte video paused.
    //SetEvent(sync_event);
    return;
    case EC_COMPLETE: // Fall through.
    CleanUp();
    return;
    case EC_USERABORT: // Fall through.
    case EC_ERRORABORT:
    CleanUp();
    //media.play_next_file();
    return;



    /*#######################################################################################
    CleanUp
    #######################################################################################*/
    void Media::CleanUp(void)

    video_rendered = 0;
    g_pEvent->SetNotifyWindow(NULL, 0, 0);
    g_pEvent->Release();
    g_pEvent = NULL;
    pMediaControl->Release();
    pAudio->Release();
    pGraph->Release();



    Media.h



    #ifndef MEDIA_H
    #define MEDIA_H
    //#define max(a,b) (((a) > (b)) ? (a) : (b))
    //#define min(a,b) (((a) < (b)) ? (a) : (b))
    #include <windef.h>
    #include <QObject>
    #include <QDebug>
    #include <QFile>
    #include <QMessageBox>
    #include <QTimer>
    #include <windows.h>
    #include <math.h>
    #include <stdlib.h>
    #include <Phonon>
    #include <dshow.h>
    #include <commctrl.h>
    #include <commdlg.h>
    #include <stdio.h>
    #include <tchar.h>
    //#include <atlbase.h>
    #include <qtconcurrentrun.h>
    #pragma comment (lib, "strmiids.lib")
    #define WM_GRAPHNOTIFY WM_APP + 1
    #define WM_AUDIOGRAPHNOTIFY WM_APP + 2

    class Media: public QObject

    Q_OBJECT
    public:
    Media(QWidget *parent);
    ~Media();
    IMediaControl *pMediaControl;
    IMediaEventEx *g_pEvent;
    IMediaEvent *g_pEvent1;
    IVideoWindow *pVidWin;
    IVMRMixerBitmap *pBitMAp;
    IVMRMixerBitmap *pBitMAp1;
    IMediaSeeking *pMediaSeeking;
    IMediaPosition *pMediaPosition;
    IVMRFilterConfig *pWc;
    IBaseFilter *pVmr;
    IVMRWindowlessControl *pWl;
    RECT g_rcSRc;
    RECT g_rcDest;
    IBasicAudio *pAudio;
    IVMRMixerControl *pVmc;
    IGraphBuilder *pGraph;
    DWORD width;
    unsigned char video_rendered;
    void CleanUp(void);
    public slots:
    void HandleGraphEvent(void);
    ;


    #endif


    Please suggest me what i am missing here.










    share|improve this question
























      0












      0








      0








      I am using Qt patch in visual studio 2008. I am trying to run a video using #include <dshow.h>. I can run video successfully, but on using WaitForCompletion() my video gets hang. here is my code:-



      MediaPlayer = new Media(ui.stackedWidget->currentWidget());
      connect(ui.stackedWidget->currentWidget(), SIGNAL(videograph()), MediaPlayer,SLOT(HandleGraphEvent()));
      MediaPlayer->pMediaControl->Run();
      long evCode;
      MediaPlayer->g_pEvent1->WaitForCompletion(INFINITE,&evCode);


      My header file:-



      Media.cpp



      #include <dshow.h>
      #include <commctrl.h>
      #include <commdlg.h>
      #include <stdio.h>
      #include <tchar.h>
      //#include <atlbase.h>

      #include "Media.h"
      #include <qtconcurrentrun.h>

      Media::Media(QWidget *parent)


      HRESULT hr;
      CoInitialize(NULL);
      hr = CoCreateInstance(CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&pVmr);
      hr = pVmr->QueryInterface(IID_IVMRFilterConfig, (void**)&pWc);
      hr = pWc->SetNumberOfStreams(2);
      hr = pVmr->QueryInterface(IID_IVMRMixerBitmap,(void **)&pBitMAp);

      if(SUCCEEDED(hr))
      RenderPrefs_AllowOffscreen );
      pWc->Release();

      if(SUCCEEDED(hr))

      hr = pVmr->QueryInterface(IID_IVMRWindowlessControl, (void**)&pWl);
      if(SUCCEEDED(hr))
      hr = pWl->SetVideoClippingWindow(parent->winId());


      CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph);
      pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
      pGraph->QueryInterface(IID_IMediaEventEx, (void **)&g_pEvent);

      pGraph->QueryInterface(IID_IBasicAudio,(void **)&pAudio);
      pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pMediaSeeking );
      pGraph->QueryInterface( IID_IMediaPosition, (void **) &pMediaPosition);
      hr = pGraph->AddFilter(pVmr, L"Video Mixing Renderer");
      g_pEvent->SetNotifyWindow((OAHWND)parent->winId(), WM_GRAPHNOTIFY, 0);
      RECT grc;
      GetWindowRect(parent->winId(), &grc);
      pGraph->RenderFile(L"/FlashDisk/test.mp4", NULL);
      long lWidth, lHeight;
      hr = pWl->GetNativeVideoSize(&lWidth, &lHeight, NULL, NULL);
      if (SUCCEEDED(hr))

      SetRect(&g_rcSRc, 0, 0, lWidth, lHeight);
      GetWindowRect(parent->winId(), &g_rcDest);
      SetRect(&g_rcDest, 0, 0, g_rcDest.right, g_rcDest.bottom);

      video_rendered = 1;
      pWl->SetVideoPosition(&g_rcSRc, &g_rcDest);


      Media::~Media()

      CleanUp();


      void Media::HandleGraphEvent()

      if (g_pEvent == NULL)
      return;
      long evCode;
      LONG_PTR param1, param2;
      while (SUCCEEDED(g_pEvent->GetEvent(&evCode, &param1, &param2, 0)))

      g_pEvent->FreeEventParams(evCode, param1, param2);
      switch (evCode)

      case EC_STATE_CHANGE: //ADDED for state change from pause to play to indiacte video paused.
      //SetEvent(sync_event);
      return;
      case EC_COMPLETE: // Fall through.
      CleanUp();
      return;
      case EC_USERABORT: // Fall through.
      case EC_ERRORABORT:
      CleanUp();
      //media.play_next_file();
      return;



      /*#######################################################################################
      CleanUp
      #######################################################################################*/
      void Media::CleanUp(void)

      video_rendered = 0;
      g_pEvent->SetNotifyWindow(NULL, 0, 0);
      g_pEvent->Release();
      g_pEvent = NULL;
      pMediaControl->Release();
      pAudio->Release();
      pGraph->Release();



      Media.h



      #ifndef MEDIA_H
      #define MEDIA_H
      //#define max(a,b) (((a) > (b)) ? (a) : (b))
      //#define min(a,b) (((a) < (b)) ? (a) : (b))
      #include <windef.h>
      #include <QObject>
      #include <QDebug>
      #include <QFile>
      #include <QMessageBox>
      #include <QTimer>
      #include <windows.h>
      #include <math.h>
      #include <stdlib.h>
      #include <Phonon>
      #include <dshow.h>
      #include <commctrl.h>
      #include <commdlg.h>
      #include <stdio.h>
      #include <tchar.h>
      //#include <atlbase.h>
      #include <qtconcurrentrun.h>
      #pragma comment (lib, "strmiids.lib")
      #define WM_GRAPHNOTIFY WM_APP + 1
      #define WM_AUDIOGRAPHNOTIFY WM_APP + 2

      class Media: public QObject

      Q_OBJECT
      public:
      Media(QWidget *parent);
      ~Media();
      IMediaControl *pMediaControl;
      IMediaEventEx *g_pEvent;
      IMediaEvent *g_pEvent1;
      IVideoWindow *pVidWin;
      IVMRMixerBitmap *pBitMAp;
      IVMRMixerBitmap *pBitMAp1;
      IMediaSeeking *pMediaSeeking;
      IMediaPosition *pMediaPosition;
      IVMRFilterConfig *pWc;
      IBaseFilter *pVmr;
      IVMRWindowlessControl *pWl;
      RECT g_rcSRc;
      RECT g_rcDest;
      IBasicAudio *pAudio;
      IVMRMixerControl *pVmc;
      IGraphBuilder *pGraph;
      DWORD width;
      unsigned char video_rendered;
      void CleanUp(void);
      public slots:
      void HandleGraphEvent(void);
      ;


      #endif


      Please suggest me what i am missing here.










      share|improve this question














      I am using Qt patch in visual studio 2008. I am trying to run a video using #include <dshow.h>. I can run video successfully, but on using WaitForCompletion() my video gets hang. here is my code:-



      MediaPlayer = new Media(ui.stackedWidget->currentWidget());
      connect(ui.stackedWidget->currentWidget(), SIGNAL(videograph()), MediaPlayer,SLOT(HandleGraphEvent()));
      MediaPlayer->pMediaControl->Run();
      long evCode;
      MediaPlayer->g_pEvent1->WaitForCompletion(INFINITE,&evCode);


      My header file:-



      Media.cpp



      #include <dshow.h>
      #include <commctrl.h>
      #include <commdlg.h>
      #include <stdio.h>
      #include <tchar.h>
      //#include <atlbase.h>

      #include "Media.h"
      #include <qtconcurrentrun.h>

      Media::Media(QWidget *parent)


      HRESULT hr;
      CoInitialize(NULL);
      hr = CoCreateInstance(CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC, IID_IBaseFilter, (void**)&pVmr);
      hr = pVmr->QueryInterface(IID_IVMRFilterConfig, (void**)&pWc);
      hr = pWc->SetNumberOfStreams(2);
      hr = pVmr->QueryInterface(IID_IVMRMixerBitmap,(void **)&pBitMAp);

      if(SUCCEEDED(hr))
      RenderPrefs_AllowOffscreen );
      pWc->Release();

      if(SUCCEEDED(hr))

      hr = pVmr->QueryInterface(IID_IVMRWindowlessControl, (void**)&pWl);
      if(SUCCEEDED(hr))
      hr = pWl->SetVideoClippingWindow(parent->winId());


      CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, IID_IGraphBuilder, (void **)&pGraph);
      pGraph->QueryInterface(IID_IMediaControl, (void **)&pMediaControl);
      pGraph->QueryInterface(IID_IMediaEventEx, (void **)&g_pEvent);

      pGraph->QueryInterface(IID_IBasicAudio,(void **)&pAudio);
      pGraph->QueryInterface(IID_IMediaSeeking, (void **)&pMediaSeeking );
      pGraph->QueryInterface( IID_IMediaPosition, (void **) &pMediaPosition);
      hr = pGraph->AddFilter(pVmr, L"Video Mixing Renderer");
      g_pEvent->SetNotifyWindow((OAHWND)parent->winId(), WM_GRAPHNOTIFY, 0);
      RECT grc;
      GetWindowRect(parent->winId(), &grc);
      pGraph->RenderFile(L"/FlashDisk/test.mp4", NULL);
      long lWidth, lHeight;
      hr = pWl->GetNativeVideoSize(&lWidth, &lHeight, NULL, NULL);
      if (SUCCEEDED(hr))

      SetRect(&g_rcSRc, 0, 0, lWidth, lHeight);
      GetWindowRect(parent->winId(), &g_rcDest);
      SetRect(&g_rcDest, 0, 0, g_rcDest.right, g_rcDest.bottom);

      video_rendered = 1;
      pWl->SetVideoPosition(&g_rcSRc, &g_rcDest);


      Media::~Media()

      CleanUp();


      void Media::HandleGraphEvent()

      if (g_pEvent == NULL)
      return;
      long evCode;
      LONG_PTR param1, param2;
      while (SUCCEEDED(g_pEvent->GetEvent(&evCode, &param1, &param2, 0)))

      g_pEvent->FreeEventParams(evCode, param1, param2);
      switch (evCode)

      case EC_STATE_CHANGE: //ADDED for state change from pause to play to indiacte video paused.
      //SetEvent(sync_event);
      return;
      case EC_COMPLETE: // Fall through.
      CleanUp();
      return;
      case EC_USERABORT: // Fall through.
      case EC_ERRORABORT:
      CleanUp();
      //media.play_next_file();
      return;



      /*#######################################################################################
      CleanUp
      #######################################################################################*/
      void Media::CleanUp(void)

      video_rendered = 0;
      g_pEvent->SetNotifyWindow(NULL, 0, 0);
      g_pEvent->Release();
      g_pEvent = NULL;
      pMediaControl->Release();
      pAudio->Release();
      pGraph->Release();



      Media.h



      #ifndef MEDIA_H
      #define MEDIA_H
      //#define max(a,b) (((a) > (b)) ? (a) : (b))
      //#define min(a,b) (((a) < (b)) ? (a) : (b))
      #include <windef.h>
      #include <QObject>
      #include <QDebug>
      #include <QFile>
      #include <QMessageBox>
      #include <QTimer>
      #include <windows.h>
      #include <math.h>
      #include <stdlib.h>
      #include <Phonon>
      #include <dshow.h>
      #include <commctrl.h>
      #include <commdlg.h>
      #include <stdio.h>
      #include <tchar.h>
      //#include <atlbase.h>
      #include <qtconcurrentrun.h>
      #pragma comment (lib, "strmiids.lib")
      #define WM_GRAPHNOTIFY WM_APP + 1
      #define WM_AUDIOGRAPHNOTIFY WM_APP + 2

      class Media: public QObject

      Q_OBJECT
      public:
      Media(QWidget *parent);
      ~Media();
      IMediaControl *pMediaControl;
      IMediaEventEx *g_pEvent;
      IMediaEvent *g_pEvent1;
      IVideoWindow *pVidWin;
      IVMRMixerBitmap *pBitMAp;
      IVMRMixerBitmap *pBitMAp1;
      IMediaSeeking *pMediaSeeking;
      IMediaPosition *pMediaPosition;
      IVMRFilterConfig *pWc;
      IBaseFilter *pVmr;
      IVMRWindowlessControl *pWl;
      RECT g_rcSRc;
      RECT g_rcDest;
      IBasicAudio *pAudio;
      IVMRMixerControl *pVmc;
      IGraphBuilder *pGraph;
      DWORD width;
      unsigned char video_rendered;
      void CleanUp(void);
      public slots:
      void HandleGraphEvent(void);
      ;


      #endif


      Please suggest me what i am missing here.







      c++ visual-studio qt video-streaming directshow






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Mar 7 at 4:46









      Tabish SaifullahTabish Saifullah

      330316




      330316






















          1 Answer
          1






          active

          oldest

          votes


















          0














          On a COM STA thread you are responsible to dispatch window messages and WaitForCompletion is a blocking call without a promise to implement message loop.



          See DShow Sample Code for playing video does not play the video




          An easy way to find out if #2 is the problem is placing MessageBox call between Run and WaitForCompletion. MessageBox dispatches messages for you and as long as you keep the box open, video plays as well (or start playing well and keeps playing even after you close the box). Proper solution is to wait and displach messages in the same time (WaitDispatchingMessages, this SO question or similar).




          This applies to your case as well, change to finite timeout, dispatch messages and get back to another wait attempt.






          share|improve this answer






















            Your Answer






            StackExchange.ifUsing("editor", function ()
            StackExchange.using("externalEditor", function ()
            StackExchange.using("snippets", function ()
            StackExchange.snippets.init();
            );
            );
            , "code-snippets");

            StackExchange.ready(function()
            var channelOptions =
            tags: "".split(" "),
            id: "1"
            ;
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function()
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled)
            StackExchange.using("snippets", function()
            createEditor();
            );

            else
            createEditor();

            );

            function createEditor()
            StackExchange.prepareEditor(
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader:
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            ,
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            );



            );













            draft saved

            draft discarded


















            StackExchange.ready(
            function ()
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55036271%2funable-to-use-waitforcompletion-in-include-dshow-h%23new-answer', 'question_page');

            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            On a COM STA thread you are responsible to dispatch window messages and WaitForCompletion is a blocking call without a promise to implement message loop.



            See DShow Sample Code for playing video does not play the video




            An easy way to find out if #2 is the problem is placing MessageBox call between Run and WaitForCompletion. MessageBox dispatches messages for you and as long as you keep the box open, video plays as well (or start playing well and keeps playing even after you close the box). Proper solution is to wait and displach messages in the same time (WaitDispatchingMessages, this SO question or similar).




            This applies to your case as well, change to finite timeout, dispatch messages and get back to another wait attempt.






            share|improve this answer



























              0














              On a COM STA thread you are responsible to dispatch window messages and WaitForCompletion is a blocking call without a promise to implement message loop.



              See DShow Sample Code for playing video does not play the video




              An easy way to find out if #2 is the problem is placing MessageBox call between Run and WaitForCompletion. MessageBox dispatches messages for you and as long as you keep the box open, video plays as well (or start playing well and keeps playing even after you close the box). Proper solution is to wait and displach messages in the same time (WaitDispatchingMessages, this SO question or similar).




              This applies to your case as well, change to finite timeout, dispatch messages and get back to another wait attempt.






              share|improve this answer

























                0












                0








                0







                On a COM STA thread you are responsible to dispatch window messages and WaitForCompletion is a blocking call without a promise to implement message loop.



                See DShow Sample Code for playing video does not play the video




                An easy way to find out if #2 is the problem is placing MessageBox call between Run and WaitForCompletion. MessageBox dispatches messages for you and as long as you keep the box open, video plays as well (or start playing well and keeps playing even after you close the box). Proper solution is to wait and displach messages in the same time (WaitDispatchingMessages, this SO question or similar).




                This applies to your case as well, change to finite timeout, dispatch messages and get back to another wait attempt.






                share|improve this answer













                On a COM STA thread you are responsible to dispatch window messages and WaitForCompletion is a blocking call without a promise to implement message loop.



                See DShow Sample Code for playing video does not play the video




                An easy way to find out if #2 is the problem is placing MessageBox call between Run and WaitForCompletion. MessageBox dispatches messages for you and as long as you keep the box open, video plays as well (or start playing well and keeps playing even after you close the box). Proper solution is to wait and displach messages in the same time (WaitDispatchingMessages, this SO question or similar).




                This applies to your case as well, change to finite timeout, dispatch messages and get back to another wait attempt.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Mar 7 at 11:28









                Roman R.Roman R.

                57.3k466109




                57.3k466109





























                    draft saved

                    draft discarded
















































                    Thanks for contributing an answer to Stack Overflow!


                    • Please be sure to answer the question. Provide details and share your research!

                    But avoid


                    • Asking for help, clarification, or responding to other answers.

                    • Making statements based on opinion; back them up with references or personal experience.

                    To learn more, see our tips on writing great answers.




                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function ()
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f55036271%2funable-to-use-waitforcompletion-in-include-dshow-h%23new-answer', 'question_page');

                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Thal And Out Agency railway station See also References External links Navigation menuOfficial Web Site of Pakistan RailwaysArchivedOfficial Web Site of Pakistan Railwayseeexpanding ite

                    Understanding generators in Python2019 Community Moderator ElectionGenerator function not working pythonFor loop not executing two timesGenerators - Printing generated valuesWhy can a python generator only be used once?What exactly do generators do?What does the “yield” keyword do?What does “list comprehension” mean? How does it work and how can I use it?sklearn Kfold acces single fold instead of for loopIs a generator the callable? Which is the generator?Apply Border To Range Of Cells Using OpenpyxlCalling an external command in PythonWhat are metaclasses in Python?What is the difference between @staticmethod and @classmethod?Finding the index of an item given a list containing it in PythonDifference between append vs. extend list methods in PythonHow can I safely create a nested directory in Python?Does Python have a ternary conditional operator?Understanding slice notationUnderstanding Python super() with __init__() methodsDoes Python have a string 'contains' substring method?

                    How can I change the color of pagination dots of UIPageControl?How to change UIPageControl dotsIs there a way to change page indicator dots colorCustomize dot with image of UIPageControl at index 0 of UIPageControlNo visible @interface for 'NSObject<PageControlDelegate>' declares the selector 'pageControlPageDidChange:'How to change the color of pagination dots in UIPageControl with a different color per pagepagecontrol indicator custom image instead of DefaultChanging the colour of UIPageControl dots in MonoTouchpagecontrol selectable page visibility color?Alternative way to load ViewControllers on a UIPageControlHow to set only layer.border-color for UIpage control dots in swiftHow can I develop for iPhone using a Windows development machine?How to change the name of an iOS app?UITableView - change section header coloruipagecontrol indicator(dot)issueCustom UIPageControl dots color not changingchange the interspace between UIPageControl dotsHow to change Status Bar text color in iOSHow can I change image tintColor in iOS and WatchKitUIPageControl dots with larger space in between each dotsHow to change the color of pagination dots in UIPageControl with a different color per page