DirectShow - Cannot Render File



  • Hallo,

    ich entwickle gerade Testweise eine kleine Directshow-Anwendung für Windows Mobile 5:

    int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
    {
    	int nRetCode = 0;
    
    	// MFC initialisieren und drucken. Bei Fehlschlag Fehlermeldung aufrufen.
    	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
    	{
    		// TODO: Den Fehlercode an Ihre Anforderungen anpassen.
    		_tprintf(_T("Schwerwiegender Fehler bei der MFC-Initialisierung\n"));
    		nRetCode = 1;
    	}
    	else
    	{
    		// TODO: Hier den Code für das Verhalten der Anwendung schreiben.
    		HRESULT hr;
    		IGraphBuilder *pGraphBuilder;
    		IMediaControl *pMediaControl;
    
    		CoInitialize(NULL);
    
    		hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC, 
    						IID_IGraphBuilder, (void **)&pGraphBuilder);
    		hr = pGraphBuilder->QueryInterface(IID_IMediaControl,
    						(void **)&pMediaControl);
    
    		hr = pGraphBuilder->RenderFile(L"\\test.wmv", NULL);
    
    		if (hr == VFW_E_CANNOT_RENDER){
    
                            //FEHLER
    
    		if ((HRESULT)hr >=0 ){
    			pMediaControl->Run();
    
    			MessageBox(NULL, L"Click OK to end playback.", L"DirectShow", MB_OK);			
    		}
    
    		pMediaControl->Release();
    		pGraphBuilder->Release();
    		CoUninitialize();
    
    	}
    
    	return nRetCode;
    }
    

    Dabei liefert der Aufruf

    pGraphBuilder->RenderFile(L"\\test.wmv", NULL);
    

    den Fehlercode VFW_E_CANNOT_RENDER - also: no combination of filters could be found to render the stream

    Die Datei kann aber durch direkte Auswahl im Fileexplorer im Mediaplayer wiedergegeben werden - die Codecs sind also vorhanden.

    Hat jemand ne Idee, wo das Problem liegen könnte



  • Kannst du sie mit GraphEdit rendern?


Anmelden zum Antworten