есть такая проблема — в Graph Edit-е через render media file строится нормальный граф:
- ffdshow MPEG-4 Video Decoder - Video Renderer
*.avi - AVI Splitter |
- ACM Wrapper - DirectSound
а когда я из своей программы делаю IGraphBuilder::RenderFile(), то звук из сплиттра не рендерится =( если рендерить пин — возвращает VFW_E_INVALIDMEDIATYPE.
Кто-нибудь сталкивался с такой проблемой?
Здравствуйте, Аноним, Вы писали:
А>есть такая проблема — в Graph Edit-е через render media file строится нормальный граф:
А>А> - ffdshow MPEG-4 Video Decoder - Video Renderer
А>*.avi - AVI Splitter |
А> - ACM Wrapper - DirectSound
А>
А>а когда я из своей программы делаю IGraphBuilder::RenderFile(), то звук из сплиттра не рендерится =( если рендерить пин — возвращает VFW_E_INVALIDMEDIATYPE.
А>Кто-нибудь сталкивался с такой проблемой?
В твоей программе на момент вызова RenderFile уже есть вставленные в граф фильтры? Путь до файла 100% правильный?
путь правильный — видеопоток рендерит без проблем, фильтров никаких не вставляю:
HRESULT hr = m_pGraph.CoCreateInstance(CLSID_FilterGraph);
if (SUCCEEDED(hr))
hr = m_pGraph->RenderFile(A2BSTR(pFile), NULL);
Здравствуйте, Vircom, Вы писали:
V>путь правильный — видеопоток рендерит без проблем, фильтров никаких не вставляю:
V>V>HRESULT hr = m_pGraph.CoCreateInstance(CLSID_FilterGraph);
V>if (SUCCEEDED(hr))
V> hr = m_pGraph->RenderFile(A2BSTR(pFile), NULL);
V>
Ну я бы посмотрел какие медиатипа есть на выходе у пина AVISplitter'а, посмотрел бы состав графа после неудачного рендера (либо ROT+graphedit::connect, либо проэнумерил фильтры в графе), попробовал бы вставить DirectSoundRender в граф перед вызовом RenderFile и отрендерить с ним, посмотрел бы debug-output на предмет что вообще в процесс грузится, попробовал бы другой файл (с другим кодеком или вообще другого типа — asf/mpeg1/mpeg2).
Готового ответа нет.
А вообще — это вполне рядовая проблема
aik>Ну я бы посмотрел какие медиатипа есть на выходе у пина AVISplitter'а, посмотрел бы состав графа после неудачного рендера (либо ROT+graphedit::connect, либо проэнумерил фильтры в графе), попробовал бы вставить DirectSoundRender в граф перед вызовом RenderFile и отрендерить с ним, посмотрел бы debug-output на предмет что вообще в процесс грузится, попробовал бы другой файл (с другим кодеком или вообще другого типа — asf/mpeg1/mpeg2).
aik>Готового ответа нет.
aik>А вообще — это вполне рядовая проблема
на выходе сплиттера — WMAudio V8
состав графа — так же как при рендеринге в Graph Edit-е, только без соответственно ACM Wrapper и DSound
попробовал вставлять до рендеринга ACM Wrapper и DSound — ни сколько не помогает — они так и остаются "в стороне"
пытался принудительно законнектить, ACM Wrapper прицепляется к сплиттеру, но его выход не хочет соединятся с DSound — 0x80040217 (VFW_E_CANNOT_CONNECT)
у меня есть предположение, что этот глюк как-то связан с WMAudio, но что с этим делать понять не могу =(
И еще — если в Graph Edit загрузить через ROT мой граф, а потом попробовать сделать Render Media File этому фильму, то он отказывается — "Could not construct a graph from this file"... вообще бред! =(