2025-04-27 07:49:33 -04:00

49 lines
1.9 KiB
C++

#include <windows.h>
#include <mediaobj.h>
#include "Utility.h"
/******************************************************************************
Internal Function Declarations
******************************************************************************/
static bool ValidateFlags( DWORD dwFlags, DWORD dwValidFlagsMask );
/******************************************************************************
Function Inplementation
******************************************************************************/
bool DMODataValidation::ValidGetInputStreamInfoFlags( DWORD dwFlags )
{
const DWORD VALID_FLAGS_MASK = DMO_INPUT_STREAMF_WHOLE_SAMPLES |
DMO_INPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER |
DMO_INPUT_STREAMF_FIXED_SAMPLE_SIZE |
DMO_INPUT_STREAMF_HOLDS_BUFFERS;
return ValidateFlags( dwFlags, VALID_FLAGS_MASK );
}
bool DMODataValidation::ValidGetOutputStreamInfoFlags( DWORD dwFlags )
{
const DWORD VALID_FLAGS_MASK = DMO_OUTPUT_STREAMF_WHOLE_SAMPLES |
DMO_OUTPUT_STREAMF_SINGLE_SAMPLE_PER_BUFFER |
DMO_OUTPUT_STREAMF_FIXED_SAMPLE_SIZE |
DMO_OUTPUT_STREAMF_DISCARDABLE |
DMO_OUTPUT_STREAMF_OPTIONAL;
return ValidateFlags( dwFlags, VALID_FLAGS_MASK );
}
bool DMODataValidation::ValidateStreamType( STREAM_TYPE st )
{
return (ST_INPUT_STREAM == st) || (ST_OUTPUT_STREAM == st);
}
bool DMODataValidation::ValidGetInputTypeReturnValue( HRESULT hrGetInputType )
{
// IMediaObject::GetInputType() can return any failure value and it can return S_OK.
return (S_OK == hrGetInputType) || FAILED(hrGetInputType);
}
bool ValidateFlags( DWORD dwFlags, DWORD dwValidFlagsMask )
{
return (dwFlags == (dwFlags & dwValidFlagsMask));
}