生成并初始化管理该设备的过滤器
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(); //播放视频
          
    }
    

相关内容

热门资讯

国庆黄金周景区情况:大同古城半... 文| 芙昕 编辑 | 芙昕 国庆长假,很多人都计划着出门走走,可一到了那些热门景点,看到的往往不是山...
来大东北一共分两步:先“冷藏”... 还在被“东北=冰窖”的刻板印象吓退? 南方的“小土豆”们 别急着裹紧小棉袄 这个冬天 让“气候缓冲带...
第三届“长城之约”活动在河北涞... 11月15日,第三届"长城之约"全球推广活动暨世界文化遗产对话15日在河北省保定市涞源县启幕。 本次...
巴厘岛:时光在此停驻 (自由行... 曾几何时,世人只知巴厘岛而不知印尼。巴厘岛的美太过耀眼,以至于人们常常忘记——它只是印尼万千岛屿中最...