Exemplo n.º 1
0
bool HDevice::CreateGraph()
{
	if (initialized) {
		Warning(L"Graph already created");
		return false;
	}

	if (!CreateFilterGraph(&graph, &builder, &control))
		return false;

	initialized = true;
	return true;
}
Exemplo n.º 2
0
HRESULT CConvert::StartConversionDirect()
{
	StopConversion();
	printf("Initialising conversion...\n");
	m_tStartTime = timeGetTime();

	HRESULT hr = MakeNotificationWindow();
	if (FAILED(hr))
		return hr;

	hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, 
                          NULL, CLSCTX_INPROC_SERVER,
						  IID_ICaptureGraphBuilder2, 
						  (void **)&m_pBuilder);
	
	if (FAILED(hr))
	{
		StopConversion();
		ThrowError(hr, "GraphBuilder could not be created");
		return hr;
	}

	if (wcscmp(m_pSettings->strOutputFile, m_pSettings->strOutputFile) == 0)
	{
		StopConversion();
		ThrowError(E_FAIL, "The source and target files are the same.");
		return E_FAIL;
	}

    hr |= CreateFilterGraph(&m_pGraph);
    if(FAILED(hr))
    {
        StopConversion();
        ThrowError(hr, "Couldn't create filter graph! Please check that DirectX 8 (or higher) is installed");
        return hr;
    }
    
    hr = m_pBuilder->SetFiltergraph(m_pGraph);
	if(FAILED(hr))
    {
        StopConversion();
        ThrowError(hr, "Couldn't create filter graph! Please check that DirectX 8 (or higher) is installed");
        return hr;
    }    
    
	m_pCallback->ConversionConnecting();

    CComPtr<IBaseFilter> pSourceFilter = NULL;
    hr = m_pGraph->AddSourceFilter(m_pSettings->strInputFile, NULL, &pSourceFilter);  
    if (FAILED(hr))
    {
        StopConversion();
        ThrowError(hr, "Failed to render source UROL!");
        return hr;
    }

	if (m_pCallback)
		m_pCallback->ConversionStreaming();

	hr = RenderOutput(m_pBuilder, m_pGraph, NULL, NULL, NULL, NULL, pSourceFilter);


//	PromptForGraph(m_pGraph, "stream");

	if (m_pCallback)
		m_pCallback->ConversionAboutToRun();


	hr = Run();
	
	if(FAILED(hr))
	{
        StopConversion();
		ThrowError(hr, "Could not start streaming!");
		return hr;
	}


    return hr;
}
Exemplo n.º 3
0
HVideoEncoder::HVideoEncoder()
{
	initialized = CreateFilterGraph(&graph, &builder, &control);
}