159 if (*SampleCount == 0 || *SampleCount < 0)
163 *OutStreamSegment =
NULL;
187 StreamSegment->
StreamSegment.KsDataTypeHandler = KsDataTypeHandler;
188 StreamSegment->
StreamSegment.KsInterfaceHandler = (IKsInterfaceHandler*)
this;
195 if (KsDataTypeHandler)
198 KsDataTypeHandler->KsQueryExtendedSize(&ExtendedSize);
203 KsDataTypeHandler->AddRef();
247 hr = KsDataTypeHandler->KsPrepareIoOperation(SampleList[
Index], (CurStreamHeader + 1), IoOperation);
272 hr = SampleList[
Index]->
GetTime(&Properties.tStart, &Properties.tStop);
275 assert(Properties.cbBuffer);
277 Properties.dwSampleFlags = 0;
279 if (SampleList[
Index]->IsDiscontinuity() ==
S_OK)
282 if (SampleList[
Index]->IsPreroll() ==
S_OK)
285 if (SampleList[
Index]->IsSyncPoint() ==
S_OK)
290 swprintf(
Buffer,
L"CKsInterfaceHandler::KsProcessMediaSamples PinName %s BufferLength %lu Property Buffer %p ExtendedSize %u lActual %u dwSampleFlags %lx\n",
m_PinName, Properties.cbBuffer, Properties.pbBuffer, ExtendedSize, Properties.lActual, Properties.dwSampleFlags);
297 CurStreamHeader->
FrameExtent = Properties.cbBuffer;
298 CurStreamHeader->
Data = Properties.pbBuffer;
300 if (IoOperation == KsIoOperation_Write)
303 CurStreamHeader->
OptionsFlags = Properties.dwSampleFlags;
304 CurStreamHeader->
DataUsed = Properties.lActual;
317 m_Pin->KsIncrementPendingIoCount();
330 *OutStreamSegment = (PKSSTREAM_SEGMENT)StreamSegment;
336 *OutStreamSegment = (PKSSTREAM_SEGMENT)StreamSegment;
#define IOCTL_KS_WRITE_STREAM
VOID WINAPI CoTaskMemFree(LPVOID ptr)
struct KSSTREAM_SEGMENT_EXT * PKSSTREAM_SEGMENT_EXT
#define IOCTL_KS_READ_STREAM
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
DWORD WINAPI GetLastError(VOID)
struct KSSTREAM_HEADER * PKSSTREAM_HEADER
_Must_inspect_result_ _In_ WDFIOTARGET _In_opt_ WDFREQUEST _In_ ULONG _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_MEMORY_DESCRIPTOR _In_opt_ PWDF_REQUEST_SEND_OPTIONS _Out_opt_ PULONG_PTR BytesReturned
void WINAPI SHIM_OBJ_NAME() OutputDebugStringW(LPCWSTR lpOutputString)
KSSTREAM_SEGMENT StreamSegment
PKSSTREAM_HEADER StreamHeader
#define MAKE_HRESULT(sev, fac, code)
_In_ WDFCOLLECTION _In_ ULONG Index
IMediaSample * MediaSample[64]
BOOL WINAPI DeviceIoControl(IN HANDLE hDevice, IN DWORD dwIoControlCode, IN LPVOID lpInBuffer OPTIONAL, IN DWORD nInBufferSize OPTIONAL, OUT LPVOID lpOutBuffer OPTIONAL, IN DWORD nOutBufferSize OPTIONAL, OUT LPDWORD lpBytesReturned OPTIONAL, IN LPOVERLAPPED lpOverlapped OPTIONAL)
static ULONG WINAPI AddRef(IStream *iface)
HRESULT QueryInterface([in] REFIID riid, [out, iid_is(riid)] void **ppvObject)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)