22#define NONAMELESSUNION
42DEFINE_GUID(IID_IDirectDraw7, 0x15e65ec0,0x3b9c,0x11d2,0xb9,0x2f,0x00,0x60,0x97,0x97,0xea,0x5b);
84 IAMMediaStream_AddRef(iface);
90 IAMMediaStream_AddRef(iface);
91 *ret_iface = &
This->IDirectDrawMediaStream_iface;
96 IAMMediaStream_AddRef(iface);
97 *ret_iface = &
This->input_pin->pin.pin.IPin_iface;
102 IAMMediaStream_AddRef(iface);
103 *ret_iface = &
This->input_pin->pin.IMemInputPin_iface;
133 IDirectDraw7_Release(
This->ddraw);
146 TRACE(
"(%p/%p)->(%p)\n",
This, iface, multi_media_stream);
148 if (!multi_media_stream)
151 IMultiMediaStream_AddRef(
This->parent);
152 *multi_media_stream =
This->parent;
165 *purpose_id =
This->purpose_id;
177 FIXME(
"(%p/%p)->(%p,%x) stub!\n",
This, iface, pStreamThatHasDesiredFormat,
flags);
197 FIXME(
"(%p/%p)->(%p,%x,%p) stub!\n",
This, iface, existing_sample,
flags, sample);
217 FIXME(
"(%p/%p)->(%p,%x,%p,%u) stub!\n",
This, iface, source_object,
flags, purpose_id, stream_type);
235 FIXME(
"(%p/%p)->(%p) stub!\n",
This, iface, am_multi_media_stream);
244 TRACE(
"(%p/%p)->(%p)\n",
This, iface, media_stream_filter);
246 This->input_pin->pin.pin.pinInfo.pFilter = (
IBaseFilter *)media_stream_filter;
255 FIXME(
"(%p/%p)->(%p) stub!\n",
This, iface, filtergraph);
292 return IAMMediaStream_QueryInterface(&
This->IAMMediaStream_iface,
riid, ret_iface);
299 return IAMMediaStream_AddRef(&
This->IAMMediaStream_iface);
306 return IAMMediaStream_Release(&
This->IAMMediaStream_iface);
315 TRACE(
"(%p/%p)->(%p)\n",
This, iface, multi_media_stream);
317 if (!multi_media_stream)
320 IMultiMediaStream_AddRef(
This->parent);
321 *multi_media_stream =
This->parent;
334 *purpose_id =
This->purpose_id;
346 FIXME(
"(%p/%p)->(%p,%x) stub!\n",
This, iface, pStreamThatHasDesiredFormat,
dwFlags);
366 FIXME(
"(%p/%p)->(%p,%x,%p) stub!\n",
This, iface, pExistingSample,
dwFlags, ppSample);
386 FIXME(
"(%p)->(%p,%p,%p,%p) stub!\n", iface, current_format,
palette, desired_format,
389 return MS_E_NOSTREAM;
394 const DDSURFACEDESC *pDDSurfaceDesc, IDirectDrawPalette *pDirectDrawPalette)
396 FIXME(
"(%p)->(%p,%p) stub!\n", iface, pDDSurfaceDesc, pDirectDrawPalette);
417 return IDirectDraw7_QueryInterface(
This->ddraw, &IID_IDirectDraw, (
void**)
ddraw);
421 IDirectDraw *pDirectDraw)
423 FIXME(
"(%p)->(%p) stub!\n", iface, pDirectDraw);
440 FIXME(
"(%p)->(%p) stub!\n", iface, pFrameTime);
477 return IAMMediaStream_QueryInterface(&
This->parent->IAMMediaStream_iface,
riid, ret_iface);
484 return IAMMediaStream_AddRef(&
This->parent->IAMMediaStream_iface);
491 return IAMMediaStream_Release(&
This->parent->IAMMediaStream_iface);
522 if (
IsEqualGUID(&media_type->majortype, &MEDIATYPE_Video))
524 if (
IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_RGB1) ||
525 IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_RGB4) ||
526 IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_RGB8) ||
527 IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_RGB565) ||
528 IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_RGB555) ||
529 IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_RGB24) ||
530 IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_RGB32))
554 media_type->majortype = MEDIATYPE_Video;
559 media_type->subtype = MEDIASUBTYPE_RGB1;
562 media_type->subtype = MEDIASUBTYPE_RGB4;
565 media_type->subtype = MEDIASUBTYPE_RGB8;
568 media_type->subtype = MEDIASUBTYPE_RGB565;
571 media_type->subtype = MEDIASUBTYPE_RGB555;
574 media_type->subtype = MEDIASUBTYPE_RGB24;
577 media_type->subtype = MEDIASUBTYPE_RGB32;
590 FIXME(
"(%p)->(%p) stub!\n",
This, sample);
625 pin_info.pFilter =
NULL;
627 pin_info.achName[0] =
'I';
635 object->input_pin->parent =
object;
638 object->purpose_id = *purpose_id;
639 object->stream_type = stream_type;
641 *media_stream = &
object->IAMMediaStream_iface;
686 IAMMediaStream_AddRef(iface);
692 IAMMediaStream_AddRef(iface);
693 *ret_iface = &
This->IAudioMediaStream_iface;
698 IAMMediaStream_AddRef(iface);
699 *ret_iface = &
This->input_pin->pin.pin.IPin_iface;
704 IAMMediaStream_AddRef(iface);
705 *ret_iface = &
This->input_pin->pin.IMemInputPin_iface;
746 TRACE(
"(%p/%p)->(%p)\n",
This, iface, multi_media_stream);
748 if (!multi_media_stream)
751 IMultiMediaStream_AddRef(
This->parent);
752 *multi_media_stream =
This->parent;
765 *purpose_id =
This->purpose_id;
777 FIXME(
"(%p/%p)->(%p,%x) stub!\n",
This, iface, pStreamThatHasDesiredFormat,
flags);
797 FIXME(
"(%p/%p)->(%p,%x,%p) stub!\n",
This, iface, existing_sample,
flags, sample);
817 FIXME(
"(%p/%p)->(%p,%x,%p,%u) stub!\n",
This, iface, source_object,
flags, purpose_id, stream_type);
835 FIXME(
"(%p/%p)->(%p) stub!\n",
This, iface, am_multi_media_stream);
844 TRACE(
"(%p/%p)->(%p)\n",
This, iface, media_stream_filter);
846 This->input_pin->pin.pin.pinInfo.pFilter = (
IBaseFilter *)media_stream_filter;
855 FIXME(
"(%p/%p)->(%p) stub!\n",
This, iface, filtergraph);
892 return IAMMediaStream_QueryInterface(&
This->IAMMediaStream_iface,
riid, ret_iface);
899 return IAMMediaStream_AddRef(&
This->IAMMediaStream_iface);
906 return IAMMediaStream_Release(&
This->IAMMediaStream_iface);
915 TRACE(
"(%p/%p)->(%p)\n", iface,
This, multi_media_stream);
917 if (!multi_media_stream)
920 IMultiMediaStream_AddRef(
This->parent);
921 *multi_media_stream =
This->parent;
934 *purpose_id =
This->purpose_id;
946 FIXME(
"(%p/%p)->(%p,%x) stub!\n", iface,
This, stream_format,
flags);
966 FIXME(
"(%p/%p)->(%p,%x,%p) stub!\n", iface,
This, existing_sample,
flags, sample);
986 FIXME(
"(%p/%p)->(%p) stub!\n", iface,
This, wave_format_current);
988 if (!wave_format_current)
991 return MS_E_NOSTREAM;
999 FIXME(
"(%p/%p)->(%p) stub!\n", iface,
This, wave_format);
1009 TRACE(
"(%p/%p)->(%p,%u,%p)\n", iface,
This, audio_data,
flags, sample);
1046 return IAMMediaStream_QueryInterface(&
This->parent->IAMMediaStream_iface,
riid, ret_iface);
1053 return IAMMediaStream_AddRef(&
This->parent->IAMMediaStream_iface);
1060 return IAMMediaStream_Release(&
This->parent->IAMMediaStream_iface);
1089 TRACE(
"(%p)->(%p)\n",
This, media_type);
1091 if (
IsEqualGUID(&media_type->majortype, &MEDIATYPE_Audio))
1093 if (
IsEqualGUID(&media_type->subtype, &MEDIASUBTYPE_PCM))
1120 media_type->majortype = MEDIATYPE_Audio;
1121 media_type->subtype = MEDIASUBTYPE_PCM;
1130 FIXME(
"(%p)->(%p) stub!\n",
This, sample);
1165 pin_info.pFilter =
NULL;
1167 pin_info.achName[0] =
'I';
1175 object->input_pin->parent =
object;
1178 object->purpose_id = *purpose_id;
1179 object->stream_type = stream_type;
1181 *media_stream = &
object->IAMMediaStream_iface;
1214 IDirectDrawStreamSample_AddRef(iface);
1230 TRACE(
"(%p)->(): new ref = %u\n", iface,
ref);
1240 TRACE(
"(%p)->(): new ref = %u\n", iface,
ref);
1245 IDirectDrawSurface_Release(
This->surface);
1246 IMediaStream_Release(
This->parent);
1256 FIXME(
"(%p)->(%p): stub\n", iface, media_stream);
1264 FIXME(
"(%p)->(%p,%p,%p): stub\n", iface, start_time, end_time, current_time);
1272 FIXME(
"(%p)->(%p,%p): stub\n", iface, start_time, end_time);
1280 FIXME(
"(%p)->(%x,%p,%p,%u): stub\n", iface,
flags,
event, func_APC, APC_data);
1287 FIXME(
"(%p)->(%x,%u): stub\n", iface,
flags, milliseconds);
1315 FIXME(
"(%p)->(%p): stub\n", iface,
rect);
1343 TRACE(
"(%p)\n", ddraw_stream_sample);
1352 IMediaStream_AddRef(
object->parent);
1356 object->surface = surface;
1357 IDirectDrawSurface_AddRef(surface);
1367 IDirectDrawStreamSample_Release(&
object->IDirectDrawStreamSample_iface);
1373 desc.dwHeight = 100;
1375 desc.ddpfPixelFormat.dwSize =
sizeof(
desc.ddpfPixelFormat);
1377 desc.ddpfPixelFormat.dwRGBBitCount = 32;
1378 desc.ddpfPixelFormat.dwRBitMask = 0xff0000;
1379 desc.ddpfPixelFormat.dwGBitMask = 0x00ff00;
1380 desc.ddpfPixelFormat.dwBBitMask = 0x0000ff;
1381 desc.ddpfPixelFormat.dwRGBAlphaBitMask = 0;
1386 IDirectDraw_Release(
ddraw);
1389 ERR(
"failed to create surface, 0x%08x\n",
hr);
1390 IDirectDrawStreamSample_Release(&
object->IDirectDrawStreamSample_iface);
1396 object->rect = *
rect;
1397 else if (
object->surface)
1400 hr = IDirectDrawSurface_GetSurfaceDesc(
object->surface, &
desc);
1405 *ddraw_stream_sample = &
object->IDirectDrawStreamSample_iface;
1432 IAudioStreamSample_AddRef(iface);
1448 TRACE(
"(%p)->(): new ref = %u\n", iface,
ref);
1458 TRACE(
"(%p)->(): new ref = %u\n", iface,
ref);
1469 FIXME(
"(%p)->(%p): stub\n", iface, media_stream);
1477 FIXME(
"(%p)->(%p,%p,%p): stub\n", iface, start_time, end_time, current_time);
1485 FIXME(
"(%p)->(%p,%p): stub\n", iface, start_time, end_time);
1493 FIXME(
"(%p)->(%x,%p,%p,%u): stub\n", iface,
flags,
event, func_APC, APC_data);
1500 FIXME(
"(%p)->(%x,%u): stub\n", iface,
flags, milliseconds);
1508 FIXME(
"(%p)->(%p): stub\n", iface, audio_data);
1533 TRACE(
"(%p)\n", audio_stream_sample);
1542 object->audio_data = audio_data;
#define InterlockedIncrement
#define InterlockedDecrement
static const char * wine_dbgstr_rect(const RECT *prc)
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
HRESULT WINAPI DirectDrawCreateEx(LPGUID lpGUID, LPVOID *lplpDD, REFIID id, LPUNKNOWN pUnkOuter)
#define HeapFree(x, y, z)
INT WINAPI StringFromGUID2(REFGUID id, LPOLESTR str, INT cmax)
GLuint GLuint GLsizei GLenum type
static const WCHAR desc[]
#define DEFINE_GUID(name, l, w1, w2, b1, b2, b3, b4, b5, b6, b7, b8)
#define IsEqualGUID(rguid1, rguid2)
#define DDSCAPS_OFFSCREENPLAIN
#define DDSCAPS_SYSTEMMEMORY
HRESULT WINAPI BasePinImpl_ConnectionMediaType(IPin *iface, AM_MEDIA_TYPE *pmt)
HRESULT WINAPI BaseInputPinImpl_EndFlush(IPin *iface)
HRESULT WINAPI BasePinImpl_QueryInternalConnections(IPin *iface, IPin **apPin, ULONG *cPin)
HRESULT WINAPI BasePinImpl_ConnectedTo(IPin *iface, IPin **ppPin)
HRESULT WINAPI BaseInputPinImpl_NewSegment(IPin *iface, REFERENCE_TIME tStart, REFERENCE_TIME tStop, double dRate)
HRESULT WINAPI BasePinImpl_QueryId(IPin *iface, LPWSTR *Id)
HRESULT BaseInputPin_Construct(const IPinVtbl *InputPin_Vtbl, LONG inputpin_size, const PIN_INFO *pPinInfo, const BaseInputPinFuncTable *pBaseInputFuncsTable, LPCRITICAL_SECTION pCritSec, IMemAllocator *, IPin **ppPin)
HRESULT WINAPI BasePinImpl_QueryPinInfo(IPin *iface, PIN_INFO *pInfo)
HRESULT WINAPI BaseInputPin_Destroy(BaseInputPin *This)
HRESULT WINAPI BasePinImpl_EnumMediaTypes(IPin *iface, IEnumMediaTypes **ppEnum)
HRESULT WINAPI BaseInputPinImpl_BeginFlush(IPin *iface)
HRESULT WINAPI BasePinImpl_Disconnect(IPin *iface)
HRESULT WINAPI BasePinImpl_QueryDirection(IPin *iface, PIN_DIRECTION *pPinDir)
HRESULT WINAPI BasePinImpl_QueryAccept(IPin *iface, const AM_MEDIA_TYPE *pmt)
HRESULT WINAPI BaseInputPinImpl_ReceiveConnection(IPin *iface, IPin *pReceivePin, const AM_MEDIA_TYPE *pmt)
HRESULT WINAPI BaseInputPinImpl_Connect(IPin *iface, IPin *pConnector, const AM_MEDIA_TYPE *pmt)
HRESULT WINAPI BaseInputPinImpl_EndOfStream(IPin *iface)
IAudioStreamSample IAudioStreamSample_iface
IDirectDrawSurface * surface
IDirectDrawStreamSample IDirectDrawStreamSample_iface
VOID WINAPI InitializeCriticalSection(OUT LPCRITICAL_SECTION lpCriticalSection)
#define CONTAINING_RECORD(address, type, field)
void WINAPI DeleteCriticalSection(PCRITICAL_SECTION)
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)