Необходимо помочь разобраться в коде, суть которого - вывод текста по вверх видео. Проблема в том, что видео проигрывается из памяти и подключение к ней фильтра CLSID_VideoMixingRenderer9, не дает результат, сама картинка черная, звук идет, такое ощущение что запускается отдельным потоком.
Код при котором наложение текста происходит верно, и все работает как надо, только видео проигрывается не из памяти, а из файла:
CoCreateInstance(CLSID_FilterGraph, nil, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, MyGraphBuilder);
CoCreateInstance(CLSID_CaptureGraphBuilder2, nil, CLSCTX_INPROC, IID_ICaptureGraphBuilder2, pCaptureGraphBuilder2);
pCaptureGraphBuilder2.SetFiltergraph(MyGraphBuilder);
CoCreateInstance(CLSID_VideoMixingRenderer9, nil, CLSCTX_INPROC, IID_IBaseFilter, FVideoRender);
MyGraphBuilder.QueryInterface(IID_IVideoWindow, pVideoWindow);
FVideoRender.QueryInterface(IID_IVMRFilterConfig9, FConfig);
FConfig.SetNumberOfStreams(1);
FVideoRender.QueryInterface(IID_IVMRMixerBitmap9, FBitmap);
MyGraphBuilder.AddFilter(FVideoRender, Video Mixing);
{ //////////////////// Заремарино
MyGraphBuilder.AddFilter(FileReader, Video Memory);
Pin:= FileReader.GetPin(0);
MyGraphBuilder.Render(Pin);
//////////////////////// }
MyGraphBuilder.RenderFile(StringToOleStr(PChar(d:\Termovolt7.avi)), \);
Если разремарить и убрать строку MyGraphBuilder.RenderFile(StringToOleStr(PChar(d:\Termovolt7.avi)), \); то звук идет, но видео не проигрывается. Если заремарить еще строку MyGraphBuilder.AddFilter(FVideoRender, Video Mixing); - то видео проигрывается нормально, но не накладывается текст.