Initial
This commit is contained in:
124
dvcap/scraps.txt
Normal file
124
dvcap/scraps.txt
Normal file
@@ -0,0 +1,124 @@
|
||||
// wndClass.hbrBackground =(HBRUSH)COLOR_APPWORKSPACE;
|
||||
// wndClass.hbrBackground =(HBRUSH)(COLOR_WINDOWFRAME);
|
||||
|
||||
|
||||
/*
|
||||
if (IDM_OPTIONS_SAVEGRAPH == LOWORD (wparam))
|
||||
{
|
||||
ofn.lpstrFilter = TEXT("Filter Graph\0*.grf\0\0");
|
||||
ofn.lpstrTitle = TEXT("Set FilterGraph File Name");
|
||||
ofn.lpstrFile = g_FilterGraphFileName;
|
||||
}
|
||||
else if (IDM_SETOUTPUT == LOWORD (wparam))
|
||||
{
|
||||
ofn.lpstrFilter = TEXT("Microsoft AVI\0*.avi\0\0");
|
||||
ofn.lpstrTitle = TEXT("Set output File Name");
|
||||
ofn.lpstrFile = g_OutputFileName;
|
||||
}
|
||||
else
|
||||
{
|
||||
ofn.lpstrFilter = TEXT("Microsoft AVI\0*.avi\0\0");
|
||||
ofn.lpstrTitle = TEXT("Set input File Name");
|
||||
ofn.lpstrFile = g_InputFileName;
|
||||
}
|
||||
|
||||
if (GetOpenFileName(&ofn))
|
||||
{
|
||||
if (IDM_OPTIONS_SAVEGRAPH == LOWORD (wparam))
|
||||
{
|
||||
lstrcpy(g_FilterGraphFileName, ofn.lpstrFile);
|
||||
// Save the current built filter graph to a *.grf file
|
||||
if(g_pGraph != NULL)
|
||||
g_pGraph->SaveGraphToFile(g_FilterGraphFileName);
|
||||
|
||||
}
|
||||
else if (IDM_SETOUTPUT == LOWORD (wparam))
|
||||
{
|
||||
lstrcpy(g_OutputFileName, ofn.lpstrFile);
|
||||
}
|
||||
else
|
||||
{
|
||||
lstrcpy(g_InputFileName, ofn.lpstrFile);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
|
||||
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// ******************************************************************************************
|
||||
|
||||
/*
|
||||
HRESULT CDVGraph::NukeFilters(IBaseFilter *pFilter, BOOL bNukeDownStream)
|
||||
{
|
||||
HRESULT hr = S_OK;
|
||||
IPin *pPin = NULL;
|
||||
IPin *pToPin = NULL;
|
||||
IEnumPins *pEnumPins = NULL;
|
||||
|
||||
ULONG uFetched = 0;
|
||||
PIN_INFO PinInfo;
|
||||
LONG lDelayCount = 100;
|
||||
|
||||
ASSERT(m_pGraph);
|
||||
|
||||
// Validating the the pointer to the Filter is not null
|
||||
if(!pFilter)
|
||||
{
|
||||
Dump( TEXT("CAVCGraph::NukeFilters():: Invalid Argument:: Invalid filter to nuke from") );
|
||||
return E_FAIL;
|
||||
}
|
||||
|
||||
// enumerate all the pins on this filter
|
||||
// reset the enumerator to the first pin
|
||||
hr = pFilter->EnumPins(&pEnumPins);
|
||||
CHECK_ERROR( TEXT("CAVCGraph::NukeFilters():: Could not enumerate pins on the filter to be nuked fro."), hr);
|
||||
pEnumPins->Reset();
|
||||
|
||||
// Loop through all the pins of the filter
|
||||
while( SUCCEEDED(pEnumPins->Next(1, &pPin, &uFetched)) && pPin )
|
||||
{
|
||||
// Get the pin & its pin_info struct that this filter's pin is connected to
|
||||
hr = pPin->ConnectedTo(&pToPin);
|
||||
if(SUCCEEDED(hr) &&pToPin )
|
||||
{
|
||||
hr = pToPin->QueryPinInfo(&PinInfo);
|
||||
CHECK_ERROR( TEXT("pToPin->QueryPinInfo failed."), hr);
|
||||
|
||||
// Check that this ConnectedTo Pin is a input pin thus validating that our filter's pin is an output pin
|
||||
if(PinInfo.dir == PINDIR_INPUT && bNukeDownStream)
|
||||
{
|
||||
// thus we have a pin on the downstream filter so nuke everything downstream of that filter recursively
|
||||
NukeFilters(PinInfo.pFilter, bNukeDownStream);
|
||||
// Disconnect the two pins and remove the downstream filter
|
||||
m_pGraph->Disconnect(pToPin);
|
||||
m_pGraph->Disconnect(pPin);
|
||||
//always leave the Camera filter in the graph
|
||||
if (PinInfo.pFilter != m_pDeviceFilter)
|
||||
{
|
||||
if(FAILED(m_pGraph->RemoveFilter(PinInfo.pFilter)))
|
||||
{
|
||||
Dump(TEXT("CAVCGraph::NukeFilters():: The Filter cannot be removed from the filtergraph"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
SAFE_RELEASE(PinInfo.pFilter);
|
||||
SAFE_RELEASE(pToPin);
|
||||
Dump(TEXT("CAVCGraph::NukeFilters():: release ToPin\n"));
|
||||
}
|
||||
SAFE_RELEASE(pPin);
|
||||
}
|
||||
|
||||
SAFE_RELEASE(pEnumPins);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
*/
|
||||
Reference in New Issue
Block a user