生成并初始化管理该设备的过滤器
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上海旅游节大巡游9月12日外滩启幕,21辆全新主题花车携手21支境内外表演方队联袂登场,邀你...
原创 8... 上周门诊来了位 62 岁的张阿姨,得糖尿病快五年了,平时管嘴特别严,糖果、点心、甜饮料一概不碰,连水...