diff options
Diffstat (limited to 'avstream/avscamera/DMFT/AvsCameraDMFT.cpp')
| -rw-r--r-- | avstream/avscamera/DMFT/AvsCameraDMFT.cpp | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/avstream/avscamera/DMFT/AvsCameraDMFT.cpp b/avstream/avscamera/DMFT/AvsCameraDMFT.cpp index e12cff65..524d6b92 100644 --- a/avstream/avscamera/DMFT/AvsCameraDMFT.cpp +++ b/avstream/avscamera/DMFT/AvsCameraDMFT.cpp @@ -14,11 +14,22 @@ CMultipinMft::CMultipinMft() : m_nRefCount( 0 ), m_InputPinCount( 0 ), m_OutputPinCount( 0 ), - m_dwWorkQueueId ( MFASYNC_CALLBACK_QUEUE_MULTITHREADED ), - m_lWorkQueuePriority ( 0 ), - m_spAttributes( nullptr ), + m_CustomPinCount( 0 ), + m_StreamingState( DeviceStreamState_Disabled ), + m_OutPins(), + m_InPins(), + m_PhotoModeIsPhotoSequence( FALSE ), + m_critSec(), + m_spDeviceManagerUnk( nullptr ), m_spSourceTransform( nullptr ), - m_SymbolicLink(nullptr) + m_eShutdownStatus( MFSHUTDOWN_INITIATED ), + m_dwWorkQueueId( MFASYNC_CALLBACK_QUEUE_MULTITHREADED ), + m_lWorkQueuePriority( 0 ), + m_punValue( 0 ), + m_spIkscontrol( nullptr ), + m_spAttributes( nullptr ), + m_outputPinMap(), + m_SymbolicLink( nullptr ) { HRESULT hr = S_OK; @@ -189,7 +200,7 @@ IFACEMETHODIMP CMultipinMft::InitializeTransform ( // // Create one on one mapping // - for (ULONG ulIndex = 0; ulIndex < m_InPins.size(); ulIndex++) + for (ULONG ulIndex = 0; ulIndex < (ULONG)(m_InPins.size()); ulIndex++) { ComPtr<CInPin> spInPin = (CInPin*)m_InPins[ulIndex].Get(); @@ -378,12 +389,16 @@ IFACEMETHODIMP CMultipinMft::GetInputAvailableType( ) { HRESULT hr = S_OK; - + + if (ppMediaType) + { + *ppMediaType = nullptr; + } + ComPtr<CInPin> spiPin = GetInPin( dwInputStreamID ); DMFTCHECKNULL_GOTO(ppMediaType, done, E_INVALIDARG); DMFTCHECKNULL_GOTO( spiPin, done, MF_E_INVALIDSTREAMNUMBER ); - - *ppMediaType = nullptr; + hr = spiPin->GetOutputAvailableType( dwTypeIndex,ppMediaType ); @@ -417,12 +432,15 @@ IFACEMETHODIMP CMultipinMft::GetOutputAvailableType( CAutoLock Lock(m_critSec); ComPtr<COutPin> spoPin = GetOutPin( dwOutputStreamID ); + + if (ppMediaType) + { + *ppMediaType = nullptr; + } DMFTCHECKNULL_GOTO( spoPin.Get(), done, MF_E_INVALIDSTREAMNUMBER ); DMFTCHECKNULL_GOTO(ppMediaType, done, E_INVALIDARG); - *ppMediaType = nullptr; - hr = spoPin->GetOutputAvailableType( dwTypeIndex, ppMediaType ); if ( FAILED( hr ) ) |
