IltmmAnalogVideoDecoder::get_AvailableTVFormats Example for C++
HRESULT hr;
long lSupportFormats, lTVFormat, lLines;
VARIANT_BOOL vLocked, vVCRLocked, vEnable;
IltmmAnalogVideoDecoder* pAnVidDec = NULL;
hr = m_capture->get_AnalogVideoDecoder(&pAnVidDec);
if (FAILED(hr))
return hr;
hr = pAnVidDec->get_AvailableTVFormats(&lSupportFormats);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
hr = pAnVidDec->get_TVFormat(&lTVFormat);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
if ((lTVFormat != AnalogVideo_NTSC_M ) && (lSupportFormats & AnalogVideo_NTSC_M))
{
hr = pAnVidDec->put_TVFormat (AnalogVideo_NTSC_M);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
}
hr = pAnVidDec->get_HorizontalLocked (&vLocked);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
hr = pAnVidDec->get_VCRHorizontalLocking (&vVCRLocked);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
if (vVCRLocked == VARIANT_FALSE)
{
hr = pAnVidDec->put_VCRHorizontalLocking (VARIANT_TRUE);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
}
hr = pAnVidDec->get_NumberOfLines (&lLines);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
hr = pAnVidDec->get_OutputEnable (&vEnable);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
if (vEnable == VARIANT_FALSE)
{
hr = pAnVidDec->put_OutputEnable (VARIANT_TRUE);
if (FAILED(hr))
{
pAnVidDec->Release();
pAnVidDec = NULL;
return hr;
}
}
pAnVidDec->Release();
pAnVidDec = NULL;