使用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);
}