29static const WCHAR sink_id[] =
L"I{A35FF56A-9FDA-11D0-8FDF-00C04FD9189D}";
95 if (
sample->external_event)
125 row_size = (
sample->rect.right -
sample->rect.left) *
desc.ddpfPixelFormat.dwRGBBitCount / 8;
127 dst_row =
desc.lpSurface;
130 memcpy(dst_row, src_row, row_size);
132 dst_row +=
desc.lPitch;
135 hr = IDirectDrawSurface_Unlock(
sample->surface,
desc.lpSurface);
182 IAMMediaStream_AddRef(iface);
188 IAMMediaStream_AddRef(iface);
189 *ret_iface = &
This->IDirectDrawMediaStream_iface;
194 IAMMediaStream_AddRef(iface);
195 *ret_iface = &
This->IPin_iface;
200 IAMMediaStream_AddRef(iface);
201 *ret_iface = &
This->IMemInputPin_iface;
214 TRACE(
"(%p/%p)->(): new ref = %lu\n", iface,
This,
ref);
230 IDirectDraw_Release(
stream->ddraw);
243 TRACE(
"stream %p, mmstream %p.\n",
stream, mmstream);
249 IMultiMediaStream_AddRef(
stream->parent);
250 *mmstream =
stream->parent;
274 FIXME(
"(%p/%p)->(%p,%lx) stub!\n",
This, iface, pStreamThatHasDesiredFormat,
flags);
315 TRACE(
"stream %p, source_object %p, flags %lx, purpose_id %s, stream_type %u.\n",
stream, source_object,
flags,
322 FIXME(
"AMMSF_CREATEPEER is not yet supported.\n");
328 IDirectDraw_Release(
stream->ddraw);
332 &&
FAILED(
hr = IUnknown_QueryInterface(source_object, &IID_IDirectDraw, (
void **)&
stream->ddraw)))
333 FIXME(
"Stream object doesn't implement IDirectDraw interface, hr %#lx.\n",
hr);
353 if (
state == State_Stopped)
355 if (
stream->state == State_Stopped)
369 TRACE(
"stream %p, mmstream %p.\n",
stream, mmstream);
391 TRACE(
"stream %p, filtergraph %p.\n",
stream, filtergraph);
393 stream->graph = filtergraph;
430 return IAMMediaStream_QueryInterface(&
This->IAMMediaStream_iface,
riid, ret_iface);
437 return IAMMediaStream_AddRef(&
This->IAMMediaStream_iface);
444 return IAMMediaStream_Release(&
This->IAMMediaStream_iface);
451 return IAMMediaStream_GetMultiMediaStream(&
stream->IAMMediaStream_iface, mmstream);
465 return IAMMediaStream_SetSameFormat(&
stream->IAMMediaStream_iface,
other,
flags);
472 return IAMMediaStream_AllocateSample(&
stream->IAMMediaStream_iface,
flags,
sample);
479 return IAMMediaStream_CreateSharedSample(&
stream->IAMMediaStream_iface, existing_sample,
flags,
sample);
485 return IAMMediaStream_SendEndOfStream(&
stream->IAMMediaStream_iface,
flags);
495 TRACE(
"stream %p, current_format %p, palette %p, desired_format %p, flags %p.\n",
stream, current_format,
palette,
496 desired_format,
flags);
503 return MS_E_NOSTREAM;
509 current_format->dwWidth =
stream->format.width;
510 current_format->dwHeight =
stream->format.height;
511 current_format->ddpfPixelFormat =
stream->format.pf;
521 desired_format->dwWidth =
stream->format.width;
522 desired_format->dwHeight =
stream->format.height;
523 desired_format->ddpfPixelFormat =
stream->format.pf;
547 FIXME(
"Setting palette is not yet supported.\n");
555 TRACE(
"flags %#lx, pixel format flags %#lx, bit count %lu, size %lux%lu.\n",
566 if (!
format->ddpfPixelFormat.dwRGBBitCount)
578 switch (
format->ddpfPixelFormat.dwRGBBitCount)
587 if ((
format->ddpfPixelFormat.dwRBitMask != 0x7c00 ||
588 format->ddpfPixelFormat.dwGBitMask != 0x03e0 ||
589 format->ddpfPixelFormat.dwBBitMask != 0x001f) &&
590 (
format->ddpfPixelFormat.dwRBitMask != 0xf800 ||
591 format->ddpfPixelFormat.dwGBitMask != 0x07e0 ||
592 format->ddpfPixelFormat.dwBBitMask != 0x001f))
599 if (
format->ddpfPixelFormat.dwRBitMask != 0xff0000 ||
600 format->ddpfPixelFormat.dwGBitMask != 0x00ff00 ||
601 format->ddpfPixelFormat.dwBBitMask != 0x0000ff)
612 old_format =
stream->format;
627 stream->format = old_format;
632 IPin_AddRef(old_peer);
635 IFilterGraph_Disconnect(
stream->graph, &
stream->IPin_iface);
639 stream->format = old_format;
640 IFilterGraph_ConnectDirect(
stream->graph, old_peer, &
stream->IPin_iface, &old_media_type);
641 IPin_Release(old_peer);
647 IPin_Release(old_peer);
672 IDirectDraw_AddRef(
stream->ddraw);
695 IDirectDraw_Release(
stream->ddraw);
699 IDirectDraw_AddRef(
ddraw);
717 TRACE(
"stream %p, surface %p, rect %s, flags %#lx, sample %p.\n",
720 if (!surface &&
rect)
735 TRACE(
"stream %p, frame_time %p.\n",
stream, frame_time);
745 return MS_E_NOSTREAM;
797 IEnumMediaTypes_AddRef(iface);
829 TRACE(
"iface %p, count %lu, mts %p, ret_count %p.\n", iface,
count, mts, ret_count);
838 mts[0]->majortype = MEDIATYPE_Video;
839 mts[0]->subtype = MEDIASUBTYPE_RGB8;
840 mts[0]->bFixedSizeSamples =
TRUE;
841 mts[0]->lSampleSize = 10000;
855 TRACE(
"iface %p, count %lu.\n", iface,
count);
866 TRACE(
"iface %p.\n", iface);
877 TRACE(
"iface %p, out %p.\n", iface,
out);
879 if (!(
object =
calloc(1,
sizeof(*
object))))
883 object->refcount = 1;
886 *
out = &
object->IEnumMediaTypes_iface;
909 return IAMMediaStream_QueryInterface(&
stream->IAMMediaStream_iface, iid,
out);
915 return IAMMediaStream_AddRef(&
stream->IAMMediaStream_iface);
921 return IAMMediaStream_Release(&
stream->IAMMediaStream_iface);
926 WARN(
"iface %p, peer %p, mt %p, unexpected call!\n", iface,
peer,
mt);
1006 IPin_QueryDirection(
peer, &
dir);
1009 WARN(
"Rejecting connection from input pin.\n");
1041 IPin_Release(
stream->peer);
1116 TRACE(
"iface %p, dir %p.\n", iface,
dir);
1123 TRACE(
"iface %p, id %p.\n", iface,
id);
1135 TRACE(
"iface %p, mt %p.\n", iface,
mt);
1154 if (!(
object =
calloc(1,
sizeof(*
object))))
1158 object->refcount = 1;
1167 TRACE(
"iface %p, pins %p, count %p.\n", iface, pins,
count);
1194 IMediaStreamFilter_EndOfStream(
stream->filter);
1208 cancel_eos =
stream->eos;
1219 IMediaStreamFilter_Flush(
stream->filter, cancel_eos);
1243 TRACE(
"stream %p, start %s, stop %s, rate %0.16e\n",
1285 return IAMMediaStream_QueryInterface(&
stream->IAMMediaStream_iface, iid,
out);
1291 return IAMMediaStream_AddRef(&
stream->IAMMediaStream_iface);
1297 return IAMMediaStream_Release(&
stream->IAMMediaStream_iface);
1328 IMemAllocator_Release(
stream->allocator);
1336 TRACE(
"iface %p, props %p.\n", iface,
props);
1350 BYTE *top_down_pointer;
1351 int top_down_stride;
1363 IMediaSample_GetTime(
sample, &start_time, &end_time);
1367 if (
stream->state == State_Stopped)
1381 top_down = (bitmap_info->
biHeight < 0);
1386 start_stream_time = start_time +
stream->segment_start;
1387 end_stream_time = end_time +
stream->segment_start;
1392 if (
S_OK == IMediaStreamFilter_GetCurrentStreamTime(
filter, ¤t_time)
1393 && start_time >= current_time + 10000)
1394 IMediaStreamFilter_WaitUntil(
filter, start_time);
1399 if (
stream->state == State_Stopped)
1415 start_stream_time, end_stream_time);
1427 if (
S_OK == IMediaStreamFilter_GetCurrentStreamTime(
filter, ¤t_time)
1428 &&
SUCCEEDED(IPin_QueryInterface(
stream->peer, &IID_IQualityControl, (
void **)&qc)))
1432 q.Proportion = 1000;
1436 IQualityControl_Release(qc);
1456 TRACE(
"iface %p.\n", iface);
1480 if (!(
object =
calloc(1,
sizeof(*
object))))
1489 object->format.width = 100;
1490 object->format.height = 100;
1496 TRACE(
"Created ddraw stream %p.\n",
object);
1498 *
out = &
object->IAMMediaStream_iface;
1518 IDirectDrawStreamSample_AddRef(iface);
1534 TRACE(
"(%p)->(): new ref = %lu\n", iface,
ref);
1544 TRACE(
"(%p)->(): new ref = %lu\n", iface,
ref);
1549 --
sample->parent->sample_refs;
1553 IMultiMediaStream_Release(
sample->mmstream);
1554 IAMMediaStream_Release(&
sample->parent->IAMMediaStream_iface);
1557 IDirectDrawSurface_Release(
sample->surface);
1569 TRACE(
"sample %p, media_stream %p.\n",
sample, media_stream);
1574 IAMMediaStream_AddRef(&
sample->parent->IAMMediaStream_iface);
1588 IMediaStreamFilter_GetCurrentStreamTime(
sample->parent->filter, current_time);
1611 TRACE(
"sample %p, flags %#lx, event %p, apc_func %p, apc_data %#lx.\n",
1619 FIXME(
"APC support is not implemented!\n");
1625 if (
sample->parent->state != State_Running)
1628 return MS_E_NOTRUNNING;
1632 sample->update_hr = MS_S_ENDOFSTREAM;
1634 return MS_S_ENDOFSTREAM;
1644 sample->update_hr = MS_S_NOUPDATE;
1653 return MS_S_PENDING;
1661 return sample->update_hr;
1669 TRACE(
"sample %p, flags %#lx, milliseconds %lu.\n",
sample,
flags, milliseconds);
1684 while (
sample->busy && elapsed < milliseconds)
1686 DWORD sleep_time = milliseconds - elapsed;
1724 FIXME(
"(%p)->(%p): stub\n", iface,
rect);
1753 TRACE(
"(%p)\n", ddraw_stream_sample);
1755 if (!(
object =
calloc(1,
sizeof(*
object))))
1761 object->mmstream =
parent->parent;
1763 IAMMediaStream_AddRef(&
parent->IAMMediaStream_iface);
1765 IMultiMediaStream_AddRef(
object->mmstream);
1771 IDirectDrawSurface_AddRef(
surface);
1777 hr = IDirectDrawMediaStream_GetDirectDraw(&
parent->IDirectDrawMediaStream_iface, &
ddraw);
1780 IDirectDrawStreamSample_Release(&
object->IDirectDrawStreamSample_iface);
1794 desc.ddpfPixelFormat.dwSize =
sizeof(
desc.ddpfPixelFormat);
1796 desc.ddpfPixelFormat.dwRGBBitCount = 32;
1797 desc.ddpfPixelFormat.dwRBitMask = 0xff0000;
1798 desc.ddpfPixelFormat.dwGBitMask = 0x00ff00;
1799 desc.ddpfPixelFormat.dwBBitMask = 0x0000ff;
1800 desc.ddpfPixelFormat.dwRGBAlphaBitMask = 0;
1806 IDirectDraw_Release(
ddraw);
1809 ERR(
"failed to create surface, 0x%08lx\n",
hr);
1810 IDirectDrawStreamSample_Release(&
object->IDirectDrawStreamSample_iface);
1816 hr = IDirectDrawSurface_GetSurfaceDesc(
object->surface, &
desc);
1819 IDirectDrawStreamSample_Release(&
object->IDirectDrawStreamSample_iface);
1825 object->rect = *
rect;
1834 hr = IDirectDrawMediaStream_SetFormat(&
parent->IDirectDrawMediaStream_iface, &
desc,
NULL);
1837 IDirectDrawStreamSample_Release(&
object->IDirectDrawStreamSample_iface);
1841 *ddraw_stream_sample = &
object->IDirectDrawStreamSample_iface;
static void CALLBACK apc_func(ULONG_PTR param)
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
enum _PinDirection PIN_DIRECTION
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static void list_remove(struct list_entry *entry)
static int list_empty(struct list_entry *head)
static void list_add_tail(struct list_entry *head, struct list_entry *entry)
static void list_init(struct list_entry *head)
static HRESULT WINAPI ddraw_sink_EnumMediaTypes(IPin *iface, IEnumMediaTypes **enum_media_types)
static HRESULT WINAPI ddraw_sample_QueryInterface(IDirectDrawStreamSample *iface, REFIID riid, void **ret_iface)
static struct enum_media_types * impl_from_IEnumMediaTypes(IEnumMediaTypes *iface)
static HRESULT WINAPI ddraw_sink_Connect(IPin *iface, IPin *peer, const AM_MEDIA_TYPE *mt)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_AllocateSample(IDirectDrawMediaStream *iface, DWORD flags, IStreamSample **sample)
static HRESULT WINAPI ddraw_sample_SetRect(IDirectDrawStreamSample *iface, const RECT *rect)
static ULONG WINAPI enum_media_types_Release(IEnumMediaTypes *iface)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_CreateSharedSample(IDirectDrawMediaStream *iface, IStreamSample *existing_sample, DWORD flags, IStreamSample **sample)
static void flush_update_queue(struct ddraw_stream *stream, HRESULT update_hr)
static HRESULT WINAPI ddraw_IAMMediaStream_SendEndOfStream(IAMMediaStream *iface, DWORD flags)
static HRESULT WINAPI ddraw_IAMMediaStream_JoinAMMultiMediaStream(IAMMediaStream *iface, IAMMultiMediaStream *mmstream)
static HRESULT WINAPI ddraw_IAMMediaStream_GetMultiMediaStream(IAMMediaStream *iface, IMultiMediaStream **mmstream)
static HRESULT WINAPI ddraw_IAMMediaStream_QueryInterface(IAMMediaStream *iface, REFIID riid, void **ret_iface)
static const IPinVtbl ddraw_sink_vtbl
static struct ddraw_stream * impl_from_IMemInputPin(IMemInputPin *iface)
static HRESULT WINAPI ddraw_sink_QueryInternalConnections(IPin *iface, IPin **pins, ULONG *count)
static ULONG WINAPI ddraw_IDirectDrawMediaStream_Release(IDirectDrawMediaStream *iface)
static HRESULT WINAPI ddraw_IAMMediaStream_Initialize(IAMMediaStream *iface, IUnknown *source_object, DWORD flags, REFMSPID purpose_id, const STREAM_TYPE stream_type)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_SetSameFormat(IDirectDrawMediaStream *iface, IMediaStream *other, DWORD flags)
static HRESULT WINAPI ddraw_sink_EndOfStream(IPin *iface)
static struct ddraw_stream * impl_from_IAMMediaStream(IAMMediaStream *iface)
static HRESULT WINAPI ddraw_sink_ConnectedTo(IPin *iface, IPin **peer)
static HRESULT WINAPI ddraw_meminput_GetAllocatorRequirements(IMemInputPin *iface, ALLOCATOR_PROPERTIES *props)
static HRESULT WINAPI ddraw_sample_Update(IDirectDrawStreamSample *iface, DWORD flags, HANDLE event, PAPCFUNC apc_func, DWORD apc_data)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_GetInformation(IDirectDrawMediaStream *iface, MSPID *purpose_id, STREAM_TYPE *type)
static HRESULT WINAPI ddraw_sink_QueryPinInfo(IPin *iface, PIN_INFO *info)
static HRESULT WINAPI enum_media_types_QueryInterface(IEnumMediaTypes *iface, REFIID iid, void **out)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_SendEndOfStream(IDirectDrawMediaStream *iface, DWORD flags)
static struct ddraw_sample * impl_from_IDirectDrawStreamSample(IDirectDrawStreamSample *iface)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_GetDirectDraw(IDirectDrawMediaStream *iface, IDirectDraw **ddraw)
static HRESULT WINAPI ddraw_IAMMediaStream_SetState(IAMMediaStream *iface, FILTER_STATE state)
static HRESULT WINAPI ddraw_sink_QueryInterface(IPin *iface, REFIID iid, void **out)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_GetTimePerFrame(IDirectDrawMediaStream *iface, STREAM_TIME *frame_time)
static ULONG WINAPI ddraw_IAMMediaStream_Release(IAMMediaStream *iface)
static HRESULT WINAPI ddraw_sample_GetSurface(IDirectDrawStreamSample *iface, IDirectDrawSurface **ddraw_surface, RECT *rect)
static struct ddraw_stream * impl_from_IPin(IPin *iface)
static HRESULT WINAPI ddraw_meminput_Receive(IMemInputPin *iface, IMediaSample *sample)
static ULONG WINAPI ddraw_IDirectDrawMediaStream_AddRef(IDirectDrawMediaStream *iface)
static HRESULT WINAPI ddraw_IAMMediaStream_JoinFilterGraph(IAMMediaStream *iface, IFilterGraph *filtergraph)
static BOOL is_format_compatible(struct ddraw_stream *stream, DWORD width, DWORD height, const DDPIXELFORMAT *connection_pf)
static HRESULT WINAPI enum_media_types_Reset(IEnumMediaTypes *iface)
static const struct IDirectDrawMediaStreamVtbl ddraw_IDirectDrawMediaStream_Vtbl
static HRESULT WINAPI ddraw_IAMMediaStream_AllocateSample(IAMMediaStream *iface, DWORD flags, IStreamSample **sample)
static ULONG WINAPI enum_media_types_AddRef(IEnumMediaTypes *iface)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_QueryInterface(IDirectDrawMediaStream *iface, REFIID riid, void **ret_iface)
static HRESULT WINAPI ddraw_sink_QueryAccept(IPin *iface, const AM_MEDIA_TYPE *mt)
static ULONG WINAPI ddraw_sink_Release(IPin *iface)
static HRESULT WINAPI ddraw_sink_QueryId(IPin *iface, WCHAR **id)
HRESULT ddraw_stream_create(IUnknown *outer, void **out)
static HRESULT WINAPI ddraw_sample_SetSampleTimes(IDirectDrawStreamSample *iface, const STREAM_TIME *start_time, const STREAM_TIME *end_time)
static HRESULT WINAPI ddraw_IAMMediaStream_SetSameFormat(IAMMediaStream *iface, IMediaStream *pStreamThatHasDesiredFormat, DWORD flags)
static const struct IAMMediaStreamVtbl ddraw_IAMMediaStream_vtbl
static HRESULT WINAPI ddraw_meminput_NotifyAllocator(IMemInputPin *iface, IMemAllocator *allocator, BOOL readonly)
static HRESULT WINAPI ddraw_sink_ConnectionMediaType(IPin *iface, AM_MEDIA_TYPE *mt)
static HRESULT WINAPI ddraw_sink_ReceiveConnection(IPin *iface, IPin *peer, const AM_MEDIA_TYPE *mt)
static HRESULT WINAPI ddraw_sink_EndFlush(IPin *iface)
static void remove_queued_update(struct ddraw_sample *sample)
static HRESULT WINAPI ddraw_sample_CompletionStatus(IDirectDrawStreamSample *iface, DWORD flags, DWORD milliseconds)
static HRESULT ddrawstreamsample_create(struct ddraw_stream *parent, IDirectDrawSurface *surface, const RECT *rect, IDirectDrawStreamSample **ddraw_stream_sample)
static HRESULT process_update(struct ddraw_sample *sample, int stride, BYTE *pointer, STREAM_TIME start_time, STREAM_TIME end_time)
static HRESULT WINAPI ddraw_sink_Disconnect(IPin *iface)
static HRESULT WINAPI ddraw_sink_NewSegment(IPin *iface, REFERENCE_TIME start, REFERENCE_TIME stop, double rate)
static ULONG WINAPI ddraw_meminput_Release(IMemInputPin *iface)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_SetDirectDraw(IDirectDrawMediaStream *iface, IDirectDraw *ddraw)
static HRESULT WINAPI ddraw_sample_GetSampleTimes(IDirectDrawStreamSample *iface, STREAM_TIME *start_time, STREAM_TIME *end_time, STREAM_TIME *current_time)
static ULONG WINAPI ddraw_sink_AddRef(IPin *iface)
static HRESULT WINAPI enum_media_types_Next(IEnumMediaTypes *iface, ULONG count, AM_MEDIA_TYPE **mts, ULONG *ret_count)
static HRESULT WINAPI enum_media_types_Clone(IEnumMediaTypes *iface, IEnumMediaTypes **out)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_CreateSample(IDirectDrawMediaStream *iface, IDirectDrawSurface *surface, const RECT *rect, DWORD flags, IDirectDrawStreamSample **sample)
static HRESULT WINAPI ddraw_meminput_QueryInterface(IMemInputPin *iface, REFIID iid, void **out)
static HRESULT WINAPI ddraw_meminput_GetAllocator(IMemInputPin *iface, IMemAllocator **allocator)
static ULONG WINAPI ddraw_meminput_AddRef(IMemInputPin *iface)
static const IMemInputPinVtbl ddraw_meminput_vtbl
static ULONG WINAPI ddraw_sample_Release(IDirectDrawStreamSample *iface)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_GetFormat(IDirectDrawMediaStream *iface, DDSURFACEDESC *current_format, IDirectDrawPalette **palette, DDSURFACEDESC *desired_format, DWORD *flags)
static const struct IDirectDrawStreamSampleVtbl DirectDrawStreamSample_Vtbl
static HRESULT WINAPI ddraw_IAMMediaStream_GetInformation(IAMMediaStream *iface, MSPID *purpose_id, STREAM_TYPE *type)
static HRESULT WINAPI ddraw_meminput_ReceiveMultiple(IMemInputPin *iface, IMediaSample **samples, LONG count, LONG *processed)
static const WCHAR sink_id[]
static HRESULT WINAPI ddraw_IAMMediaStream_JoinFilter(IAMMediaStream *iface, IMediaStreamFilter *filter)
static HRESULT WINAPI ddraw_sink_BeginFlush(IPin *iface)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_SetFormat(IDirectDrawMediaStream *iface, const DDSURFACEDESC *format, IDirectDrawPalette *palette)
static HRESULT WINAPI enum_media_types_Skip(IEnumMediaTypes *iface, ULONG count)
static const IEnumMediaTypesVtbl enum_media_types_vtbl
static HRESULT WINAPI ddraw_meminput_ReceiveCanBlock(IMemInputPin *iface)
static HRESULT WINAPI ddraw_sample_GetMediaStream(IDirectDrawStreamSample *iface, IMediaStream **media_stream)
static HRESULT WINAPI ddraw_sink_QueryDirection(IPin *iface, PIN_DIRECTION *dir)
static HRESULT WINAPI ddraw_IDirectDrawMediaStream_GetMultiMediaStream(IDirectDrawMediaStream *iface, IMultiMediaStream **mmstream)
static ULONG WINAPI ddraw_sample_AddRef(IDirectDrawStreamSample *iface)
static struct ddraw_stream * impl_from_IDirectDrawMediaStream(IDirectDrawMediaStream *iface)
static HRESULT WINAPI ddraw_IAMMediaStream_CreateSharedSample(IAMMediaStream *iface, IStreamSample *existing_sample, DWORD flags, IStreamSample **sample)
static ULONG WINAPI ddraw_IAMMediaStream_AddRef(IAMMediaStream *iface)
HRESULT WINAPI DirectDrawCreate(LPGUID lpGUID, LPDIRECTDRAW *lplpDD, LPUNKNOWN pUnkOuter)
void *WINAPI CoTaskMemAlloc(SIZE_T size)
static __inline const char * wine_dbgstr_longlong(ULONGLONG ll)
BOOL WINAPI SleepConditionVariableCS(PCONDITION_VARIABLE ConditionVariable, PCRITICAL_SECTION CriticalSection, DWORD Timeout)
VOID WINAPI InitializeConditionVariable(PCONDITION_VARIABLE ConditionVariable)
VOID WINAPI WakeConditionVariable(PCONDITION_VARIABLE ConditionVariable)
ULONG WINAPI DECLSPEC_HOTPATCH GetTickCount(void)
struct png_info_def *typedef unsigned char **typedef struct png_info_def *typedef struct png_info_def *typedef struct png_info_def *typedef unsigned char ** row
GLuint GLuint GLsizei count
GLint GLint GLsizei GLsizei height
GLuint GLuint GLsizei GLenum type
GLint GLint GLsizei width
GLdouble GLdouble GLdouble GLdouble q
GLsizei const GLvoid * pointer
#define memcpy(s1, s2, n)
D3D11_SHADER_VARIABLE_DESC desc
#define IsEqualGUID(rguid1, rguid2)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
for(i=0;i< sizeof(testsuite)/sizeof(testsuite[0]);++i) ok(call_test(testsuite[i].func)
#define DDPF_PALETTEINDEXEDTO8
#define DDPF_PALETTEINDEXED4
#define DDPF_PALETTEINDEXED2
struct _DDPIXELFORMAT DDPIXELFORMAT
#define DDSCAPS_OFFSCREENPLAIN
#define DDPF_PALETTEINDEXED1
#define DDSCAPS_SYSTEMMEMORY
#define DDERR_INVALIDSURFACETYPE
HRESULT WINAPI CopyMediaType(AM_MEDIA_TYPE *pDest, const AM_MEDIA_TYPE *pSrc)
void WINAPI FreeMediaType(AM_MEDIA_TYPE *pMediaType)
IDirectDrawStreamSample IDirectDrawStreamSample_iface
IDirectDrawSurface * surface
IMultiMediaStream * mmstream
CONDITION_VARIABLE update_cv
struct ddraw_stream * parent
IMultiMediaStream * parent
IDirectDrawMediaStream IDirectDrawMediaStream_iface
IMemInputPin IMemInputPin_iface
IAMMediaStream IAMMediaStream_iface
CONDITION_VARIABLE update_queued_cv
IMemAllocator * allocator
REFERENCE_TIME segment_start
IMediaStreamFilter * filter
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
#define CONTAINING_RECORD(address, type, field)
static int processed(const type_t *type)
#define VFW_E_ALREADY_CONNECTED
#define VFW_E_TYPE_NOT_ACCEPTED
#define VFW_E_INVALID_DIRECTION
#define VFW_E_NO_ALLOCATOR
#define VFW_E_NOT_CONNECTED
static const WCHAR props[]
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
#define CLASS_E_NOAGGREGATION