leadtool 获取rgba帧

 使用leadtool版本V20,V21

leadtool 库播放多媒体,可以直接将yv12的数据显示出来。

通过在代码中添加m_player->editgraph()后,可在 graphstudio.exe 中查看具体的每个环节的格式。

如果需要将其转换成rgba ,需要做如下操作:

1、leadtool sdk 工具中有个工具(LTMMListFilters.exe)可以查看所有的filter的 在系统 中的CLSID

找到rgbconverter的CLSID

通过如下 代码设置当前的videoprocessor就ok了,否则需要使用

m_player->ShowDialog(ltmmPlay_Dlg_VideoProcessors, (long)(UINT64)m_hWnd) 设置回弹出窗口

void VideoShowDialog::setVideoProcessFilter()
{
    IltmmProcessors* processors;
    IltmmProcessors* selprocessors;
    IltmmProcessor* proc;
    long index = 0;
    BSTR bstr;
    HRESULT hr2 = 0;
    hr2 = m_player->get_VideoProcessors(&processors);
    hr2 = m_player->get_SelectedVideoProcessors(&selprocessors);
    bstr = SysAllocString(L"@device:sw:{E526D606-22E7-494C-B81E-AC0A94BFE603}\\{E2B7DB22-38C5-11D5-91F6-00104BDB8FF9}");//video rgb converter  will convert yv12 source to rgba frame  ,for adapting unigine   ,it will take a lot of gpu resources so only adding as you need
    hr2 = processors->Find(bstr, &index);
    hr2 = processors->Item(index, &proc);
    m_player->Pause();
    double location = 0;
    m_player->get_CurrentPosition(&location);
    hr2 = selprocessors->RemoveAll();
    hr2 = selprocessors->Add(proc, -1);
    m_player->Run();
    m_player->put_CurrentPosition(location);
    SysFreeString(bstr);
}

猜你喜欢

转载自blog.csdn.net/qiushangren/article/details/81390274
今日推荐