生成并初始化管理该设备的过滤器
admin
2024-03-26 20:45:54

    //生成并初始化管理该设备的过滤器
        hr = pM->BindToObject(0, 0, IID_IBaseFilter, (void**)&pVCap);
        if(pVCap== NULL) 
        {
            MessageBox(m_hwnd,"Cannot get the capture filterr","Error",MB_OK);
            return;
        }
        HELPER_RELEASE(pM);
        uIndex++;
    }
    HELPER_RELEASE(pEm);
    
    if(pVCap)
        hr = CappFg->AddFilter(pVCap, NULL); //添加过滤器到Filter Graph中
    if (hr != NOERROR) 
    {
        MessageBox(m_hwnd,"Cannot add vidcap to filtergraph","Error",MB_OK);
        return;
    }
    //连接源过滤器和提交过滤器
    hr = CapPigb->RenderStream(&PIN_CATEGORY_PREVIEW,pVCap,NULL, NULL);
    if (hr != S_OK)
    {
        MessageBox(m_hwnd,"This graph cannot preview properly","Error",MB_OK);
        return;
    }
    //在过滤器图表中查找一个与捕捉有关的接口
    hr = CapPigb->FindInterface(&PIN_CATEGORY_PREVIEW,pVCap,IID_IVideoWindow,(void **)&pivw);
    if (hr != NOERROR) 
    {
          MessageBox(m_hwnd,"cannot find Video Window properly","Error",MB_OK);
        return;
    
    } 
    else 
    {
        DisplayVideoWin(); //显示视频播放窗口
      }
    //查询数据流控制接口
    hr =CappFg->QueryInterface(IID_IMediaControl, (void **)&pimc);
    if (SUCCEEDED(hr)) 
    {
       hr = pimc->Run(); //播放视频
          
    }
        //生成并初始化管理该设备的过滤器
        hr = pM->BindToObject(0, 0, IID_IBaseFilter, (void**)&pVCap);
        if(pVCap== NULL) 
        {
            MessageBox(m_hwnd,"Cannot get the capture filterr","Error",MB_OK);
            return;
        }
        HELPER_RELEASE(pM);
        uIndex++;
    }
    HELPER_RELEASE(pEm);
    
    if(pVCap)
        hr = CappFg->AddFilter(pVCap, NULL); //添加过滤器到Filter Graph中
    if (hr != NOERROR) 
    {
        MessageBox(m_hwnd,"Cannot add vidcap to filtergraph","Error",MB_OK);
        return;
    }
    //连接源过滤器和提交过滤器
    hr = CapPigb->RenderStream(&PIN_CATEGORY_PREVIEW,pVCap,NULL, NULL);
    if (hr != S_OK)
    {
        MessageBox(m_hwnd,"This graph cannot preview properly","Error",MB_OK);
        return;
    }
    //在过滤器图表中查找一个与捕捉有关的接口
    hr = CapPigb->FindInterface(&PIN_CATEGORY_PREVIEW,pVCap,IID_IVideoWindow,(void **)&pivw);
    if (hr != NOERROR) 
    {
          MessageBox(m_hwnd,"cannot find Video Window properly","Error",MB_OK);
        return;
    
    } 
    else 
    {
        DisplayVideoWin(); //显示视频播放窗口
      }
    //查询数据流控制接口
    hr =CappFg->QueryInterface(IID_IMediaControl, (void **)&pimc);
    if (SUCCEEDED(hr)) 
    {
       hr = pimc->Run(); //播放视频
          
    }
    

相关内容

热门资讯

2026年3月重庆优质旅行社榜... 导语:为推动重庆文化和旅游产业高质量发展,规范旅游市场经营秩序,为广大游客提供权威、可靠的出行参考依...
【畅游惠东】4月4-6日 海边... 【活动亮点】 ❤ 新线,一个未经开发,海水清澈, 海货超多的宝藏旅游地。 ❤ 绝佳露营地,沙滩沙子细...
3月29日起,在呼和浩特坐飞机... 3月28日 呼和浩特机场发布消息 2026年夏航季 于3月29日正式启幕 3月29日起,呼和浩特机...
茂名化州糖水封神!20 多款糖... 在广东的甜品江湖里,茂名化州糖水绝对是独树一帜的存在,被誉为“中国糖水看广东,广东糖水看化州”。它不...
3种朝天血粑吃法:冬日暖胃神器... 你发现没,冬天一冷,就想吃点热乎的。78%的打工人早餐总在凑合,其实一顿好饭能提神醒脑。朝天血粑,就...