38 #include "wine/unicode.h" 104 TRACE(
"Starting message loop\n");
122 TRACE(
"End of message loop\n");
142 if (!
This->ThreadResult)
154 if (!
This->init && (!
This->WindowPos.right || !
This->WindowPos.top))
159 if (!
This->WindowPos.right)
161 if (
This->DestRect.right)
163 This->WindowPos.left =
This->DestRect.left;
164 This->WindowPos.right =
This->DestRect.right;
168 This->WindowPos.left =
This->SourceRect.left;
169 This->WindowPos.right =
This->SourceRect.right;
172 if (!
This->WindowPos.bottom)
174 if (
This->DestRect.bottom)
176 This->WindowPos.top =
This->DestRect.top;
177 This->WindowPos.bottom =
This->DestRect.bottom;
181 This->WindowPos.top =
This->SourceRect.top;
182 This->WindowPos.bottom =
This->SourceRect.bottom;
190 This->WindowPos.left,
192 This->WindowPos.right -
This->WindowPos.left,
193 This->WindowPos.bottom -
This->WindowPos.top,
198 else if (!
This->init)
201 if (
This->baseControlWindow.AutoShow)
213 hr = IPin_ConnectionMediaType(&
This->renderer.pInputPin->pin.IPin_iface, &amt);
215 ERR(
"Unable to retrieve media type\n");
219 if (
IsEqualIID(&amt.formattype, &FORMAT_VideoInfo))
223 else if (
IsEqualIID(&amt.formattype, &FORMAT_VideoInfo2))
241 if (!
This->baseControlWindow.baseWindow.hDC) {
242 ERR(
"Cannot get DC from window!\n");
250 This->DestRect.bottom -
This->DestRect.top,
This->SourceRect.left,
This->SourceRect.top,
251 This->SourceRect.right -
This->SourceRect.left,
This->SourceRect.bottom -
This->SourceRect.top,
260 if (IMediaSample_IsPreroll(pSample) ==
S_OK)
269 LONG cbSrcStream = 0;
274 hr = IMediaSample_GetPointer(pSample, &pbSrcStream);
277 ERR(
"Cannot get pointer to sample data (%x)\n",
hr);
281 cbSrcStream = IMediaSample_GetActualDataLength(pSample);
283 TRACE(
"val %p %d\n", pbSrcStream, cbSrcStream);
288 for(
i = 0;
i < cbSrcStream;
i++)
290 if ((
i!=0) && !(
i%16))
292 TRACE(
"%02x ", pbSrcStream[
i]);
299 if (
This->renderer.filter.state == State_Paused)
303 if (
This->renderer.filter.state == State_Paused)
308 if (
This->renderer.filter.state == State_Stopped)
322 if (!
IsEqualIID(&pmt->majortype, &MEDIATYPE_Video))
325 if (
IsEqualIID(&pmt->subtype, &MEDIASUBTYPE_RGB32) ||
326 IsEqualIID(&pmt->subtype, &MEDIASUBTYPE_RGB24) ||
327 IsEqualIID(&pmt->subtype, &MEDIASUBTYPE_RGB565) ||
328 IsEqualIID(&pmt->subtype, &MEDIASUBTYPE_RGB8))
332 if (
IsEqualIID(&pmt->formattype, &FORMAT_VideoInfo))
335 This->SourceRect.left = 0;
336 This->SourceRect.top = 0;
337 This->SourceRect.right =
This->VideoWidth =
format->bmiHeader.biWidth;
344 else if (
IsEqualIID(&pmt->formattype, &FORMAT_VideoInfo2))
348 This->SourceRect.left = 0;
349 This->SourceRect.top = 0;
371 TRACE(
"(%p)->()\n", iface);
373 if (
This->renderer.pMediaSample) {
383 if (
This->renderer.filter.state == State_Paused) {
397 if (
This->baseControlWindow.AutoShow)
408 if (
This->renderer.pInputPin->pin.pConnectedTo && (
This->renderer.filter.state == State_Stopped || !
This->renderer.pInputPin->end_of_stream))
410 if (
This->renderer.filter.state == State_Stopped)
420 static const WCHAR classnameW[] = {
'W',
'i',
'n',
'e',
' ',
'A',
'c',
't',
'i',
'v',
'e',
'M',
'o',
'v',
'i',
'e',
' ',
'C',
'l',
'a',
's',
's',0 };
424 *pWindowStylesEx = 0;
426 return (
LPWSTR)classnameW;
443 TRACE(
"WM_SIZE %d %d\n", Width, Height);
445 TRACE(
"WM_SIZING: DestRect=(%d,%d),(%d,%d)\n",
448 This->DestRect.right -
This->DestRect.left,
449 This->DestRect.bottom -
This->DestRect.top);
502 if (!
This->renderer.pMediaSample)
508 if (
IsEqualIID(&amt->formattype, &FORMAT_VideoInfo))
512 else if (
IsEqualIID(&amt->formattype, &FORMAT_VideoInfo2))
523 needed_size = bmiHeader->
biSize;
524 needed_size += IMediaSample_GetActualDataLength(
This->renderer.pMediaSample);
542 IMediaSample_GetPointer(
This->renderer.pMediaSample, (
BYTE **)&
ptr);
543 memcpy((
char *)pDIBImage + bmiHeader->
biSize,
ptr, IMediaSample_GetActualDataLength(
This->renderer.pMediaSample));
563 pmt = &
This->renderer.pInputPin->pin.mtCurrent;
564 if (
IsEqualIID(&pmt->formattype, &FORMAT_VideoInfo)) {
566 }
else if (
IsEqualIID(&pmt->formattype, &FORMAT_VideoInfo2)) {
581 FIXME(
"(%p/%p)->(): stub !!!\n",
This, iface);
589 FIXME(
"(%p/%p)->(): stub !!!\n",
This, iface);
659 *
ppv = &
This->baseControlVideo.IBasicVideo_iface;
661 *
ppv = &
This->baseControlWindow.IVideoWindow_iface;
663 *
ppv = &
This->IAMFilterMiscFlags_iface;
689 TRACE(
"(%p)->(): new ref = %d\n",
This, refCount);
699 TRACE(
"(%p)->(): new ref = %d\n",
This, refCount);
710 TRACE(
"Destroying Video Renderer\n");
729 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
735 return IUnknown_AddRef(
This->outer_unk);
741 return IUnknown_Release(
This->outer_unk);
753 if (
This->renderer.filter.state != State_Paused)
755 if (
This->renderer.filter.state == State_Stopped)
757 This->renderer.pInputPin->end_of_stream = 0;
763 This->renderer.filter.state = State_Paused;
796 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
805 return IUnknown_AddRef(
This->outer_unk);
814 return IUnknown_Release(
This->outer_unk);
868 return IUnknown_QueryInterface(
This->outer_unk,
riid, ppvObj);
877 return IUnknown_AddRef(
This->outer_unk);
886 return IUnknown_Release(
This->outer_unk);
890 LONG *FullScreenMode)
894 TRACE(
"(%p/%p)->(%p): %d\n",
This, iface, FullScreenMode,
This->FullScreenMode);
899 *FullScreenMode =
This->FullScreenMode;
909 FIXME(
"(%p/%p)->(%d): stub !!!\n",
This, iface, FullScreenMode);
911 if (FullScreenMode) {
921 SetParent(
This->baseControlWindow.baseWindow.hWnd,
This->baseControlWindow.hwndOwner);
927 This->FullScreenMode = FullScreenMode;
991 return IUnknown_QueryInterface(
This->outer_unk,
riid,
ppv);
997 return IUnknown_AddRef(
This->outer_unk);
1003 return IUnknown_Release(
This->outer_unk);
1023 TRACE(
"(%p, %p)\n", pUnkOuter,
ppv);
1043 &CLSID_VideoRenderer, (
DWORD_PTR)(__FILE__
": VideoRendererImpl.csFilter"),
HRESULT WINAPI BaseControlVideoImpl_get_BitErrorRate(IBasicVideo *iface, LONG *pBitErrorRate)
static HRESULT WINAPI VideoWindow_get_FullScreenMode(IVideoWindow *iface, LONG *FullScreenMode)
HRESULT WINAPI BaseControlVideoImpl_put_SourceHeight(IBasicVideo *iface, LONG SourceHeight)
HRESULT WINAPI BaseControlWindowImpl_NotifyOwnerMessage(IVideoWindow *iface, OAHWND hwnd, LONG uMsg, LONG_PTR wParam, LONG_PTR lParam)
HRESULT WINAPI BaseControlVideoImpl_get_DestinationTop(IBasicVideo *iface, LONG *pDestinationTop)
static ULONG WINAPI VideoWindow_AddRef(IVideoWindow *iface)
HRESULT WINAPI BaseRendererImpl_SetSyncSource(IBaseFilter *iface, IReferenceClock *clock)
HRESULT WINAPI BaseControlVideoImpl_GetTypeInfo(IBasicVideo *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static HRESULT WINAPI VideoRenderer_QueryInterface(IBaseFilter *iface, REFIID riid, LPVOID *ppv)
int WINAPI StretchDIBits(_In_ HDC, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_ int, _In_opt_ const VOID *, _In_ const BITMAPINFO *, _In_ UINT, _In_ DWORD)
HRESULT WINAPI BaseControlVideoImpl_get_SourceLeft(IBasicVideo *iface, LONG *pSourceLeft)
HRESULT WINAPI BaseControlVideo_Init(BaseControlVideo *pControlVideo, const IBasicVideoVtbl *lpVtbl, BaseFilter *owner, CRITICAL_SECTION *lock, BasePin *pPin, const BaseControlVideoFuncTable *pFuncsTable)
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
HRESULT WINAPI BaseControlVideoImpl_get_AvgTimePerFrame(IBasicVideo *iface, REFTIME *pAvgTimePerFrame)
BOOL WINAPI TranslateMessage(_In_ const MSG *)
HRESULT WINAPI BaseControlWindowImpl_Invoke(IVideoWindow *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
HRESULT WINAPI BaseControlVideoImpl_get_DestinationHeight(IBasicVideo *iface, LONG *pDestinationHeight)
LPCRITICAL_SECTION pCritSec
static ULONG WINAPI AMFilterMiscFlags_Release(IAMFilterMiscFlags *iface)
static ULONG WINAPI AMFilterMiscFlags_GetMiscFlags(IAMFilterMiscFlags *iface)
VOID WINAPI CoTaskMemFree(LPVOID ptr)
HRESULT WINAPI BaseControlWindowImpl_HideCursor(IVideoWindow *iface, LONG HideCursor)
static VideoRendererImpl * impl_from_IUnknown(IUnknown *iface)
static ULONG WINAPI VideoRendererInner_AddRef(IUnknown *iface)
HRESULT WINAPI BaseControlWindowImpl_get_Left(IVideoWindow *iface, LONG *pLeft)
HRESULT WINAPI BaseControlWindowImpl_get_Caption(IVideoWindow *iface, BSTR *strCaption)
static ULONG WINAPI BasicVideo_AddRef(IBasicVideo *iface)
HWND WINAPI SetParent(_In_ HWND, _In_opt_ HWND)
const char * qzdebugstr_guid(const GUID *id)
static const IUnknownVtbl IInner_VTable
HRESULT WINAPI BaseRendererImpl_GetState(IBaseFilter *iface, DWORD dwMilliSecsTimeout, FILTER_STATE *pState)
static const BaseWindowFuncTable renderer_BaseWindowFuncTable
HRESULT WINAPI BaseControlWindowImpl_put_AutoShow(IVideoWindow *iface, LONG AutoShow)
TW_UINT32 TW_UINT16 TW_UINT16 MSG
HRESULT WINAPI BaseControlVideoImpl_put_SourceWidth(IBasicVideo *iface, LONG SourceWidth)
BOOL WINAPI BaseWindowImpl_OnSize(BaseWindow *This, LONG Height, LONG Width)
static HRESULT WINAPI VideoRenderer_SetTargetRect(BaseControlVideo *iface, RECT *pTargetRect)
static const IBaseFilterVtbl VideoRenderer_Vtbl
HRESULT WINAPI BaseControlVideoImpl_get_DestinationLeft(IBasicVideo *iface, LONG *pDestinationLeft)
static HRESULT WINAPI VideoRendererInner_QueryInterface(IUnknown *iface, REFIID riid, void **ppv)
HRESULT WINAPI BaseControlVideoImpl_GetIDsOfNames(IBasicVideo *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
_Must_inspect_result_ _In_ ULONG _Out_writes_bytes_ pBufferSize PVOID _Inout_ PULONG pBufferSize
HRESULT WINAPI BaseControlWindowImpl_get_BackgroundPalette(IVideoWindow *iface, LONG *pBackgroundPalette)
HRESULT WINAPI BaseControlVideoImpl_get_DestinationWidth(IBasicVideo *iface, LONG *pDestinationWidth)
BOOL WINAPI AdjustWindowRectEx(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL, _In_ DWORD)
BOOL WINAPI DECLSPEC_HOTPATCH SetEvent(IN HANDLE hEvent)
HRESULT WINAPI BaseControlWindowImpl_GetMinIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlVideoImpl_Invoke(IBasicVideo *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
HRESULT WINAPI BaseControlWindowImpl_put_WindowState(IVideoWindow *iface, LONG WindowState)
static const IAMFilterMiscFlagsVtbl IAMFilterMiscFlags_Vtbl
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfoCount(IVideoWindow *iface, UINT *pctinfo)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
HRESULT WINAPI BaseControlWindowImpl_GetIDsOfNames(IVideoWindow *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
static const IVideoWindowVtbl IVideoWindow_VTable
static ULONG WINAPI AMFilterMiscFlags_AddRef(IAMFilterMiscFlags *iface)
HRESULT WINAPI BaseControlVideoImpl_put_DestinationHeight(IBasicVideo *iface, LONG DestinationHeight)
static DWORD WINAPI MessageLoop(LPVOID lpParameter)
static IUnknown * pVideoRenderer
GLint GLint GLsizei GLsizei GLsizei GLint GLenum format
static HRESULT WINAPI VideoWindow_put_FullScreenMode(IVideoWindow *iface, LONG FullScreenMode)
HRESULT WINAPI BaseControlVideoImpl_GetCurrentImage(IBasicVideo *iface, LONG *pBufferSize, LONG *pDIBImage)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateEventW(IN LPSECURITY_ATTRIBUTES lpEventAttributes OPTIONAL, IN BOOL bManualReset, IN BOOL bInitialState, IN LPCWSTR lpName OPTIONAL)
static VideoRendererImpl * impl_from_IAMFilterMiscFlags(IAMFilterMiscFlags *iface)
HRESULT WINAPI BaseControlVideoImpl_GetTypeInfoCount(IBasicVideo *iface, UINT *pctinfo)
WINE_DEFAULT_DEBUG_CHANNEL(quartz)
HRESULT WINAPI BaseControlVideoImpl_GetSourcePosition(IBasicVideo *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
ULONG WINAPI BaseRendererImpl_Release(IBaseFilter *iface)
HRESULT WINAPI BaseControlWindowImpl_put_Width(IVideoWindow *iface, LONG Width)
DWORD WINAPI WaitForSingleObject(IN HANDLE hHandle, IN DWORD dwMilliseconds)
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyle(IVideoWindow *iface, LONG *WindowStyle)
static HRESULT WINAPI VideoRenderer_GetTargetRect(BaseControlVideo *iface, RECT *pTargetRect)
static const BaseControlVideoFuncTable renderer_BaseControlVideoFuncTable
HRESULT WINAPI BaseControlVideoImpl_GetDestinationPosition(IBasicVideo *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
LRESULT WINAPI DispatchMessageW(_In_ const MSG *)
HRESULT WINAPI BaseRendererImpl_EndFlush(BaseRenderer *iface)
HRESULT WINAPI BaseControlVideoImpl_SetDestinationPosition(IBasicVideo *iface, LONG Left, LONG Top, LONG Width, LONG Height)
HRESULT WINAPI BaseRendererImpl_FindPin(IBaseFilter *iface, LPCWSTR Id, IPin **ppPin)
HRESULT WINAPI BaseFilterImpl_GetClassID(IBaseFilter *iface, CLSID *pClsid)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
HRESULT WINAPI BaseRendererImpl_QueryInterface(IBaseFilter *iface, REFIID riid, LPVOID *ppv)
HRESULT WINAPI BaseRenderer_Init(BaseRenderer *This, const IBaseFilterVtbl *Vtbl, IUnknown *pUnkOuter, const CLSID *pClsid, DWORD_PTR DebugInfo, const BaseRendererFuncTable *pBaseFuncsTable)
static HRESULT WINAPI BasicVideo_QueryInterface(IBasicVideo *iface, REFIID riid, LPVOID *ppvObj)
HRESULT WINAPI BaseControlWindow_Destroy(BaseControlWindow *pControlWindow)
BaseControlVideo baseControlVideo
HRESULT WINAPI BaseControlWindowImpl_get_AutoShow(IVideoWindow *iface, LONG *AutoShow)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
HRESULT WINAPI BaseControlWindowImpl_GetRestorePosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
HANDLE WINAPI DECLSPEC_HOTPATCH CreateThread(IN LPSECURITY_ATTRIBUTES lpThreadAttributes, IN DWORD dwStackSize, IN LPTHREAD_START_ROUTINE lpStartAddress, IN LPVOID lpParameter, IN DWORD dwCreationFlags, OUT LPDWORD lpThreadId)
static HRESULT WINAPI VideoRenderer_ShouldDrawSampleNow(BaseRenderer *This, IMediaSample *pSample, REFERENCE_TIME *pStartTime, REFERENCE_TIME *pEndTime)
HRESULT WINAPI BaseControlVideoImpl_SetSourcePosition(IBasicVideo *iface, LONG Left, LONG Top, LONG Width, LONG Height)
static RECT WINAPI VideoRenderer_GetDefaultRect(BaseWindow *iface)
HRESULT WINAPI BaseControlWindowImpl_get_Visible(IVideoWindow *iface, LONG *pVisible)
HRESULT WINAPI BaseControlVideoImpl_SetDefaultSourcePosition(IBasicVideo *iface)
HRESULT WINAPI BaseControlVideoImpl_IsUsingDefaultSource(IBasicVideo *iface)
PFLT_MESSAGE_WAITER_QUEUE CONTAINING_RECORD(Csq, DEVICE_EXTENSION, IrpQueue)) -> WaiterQ.mLock) _IRQL_raises_(DISPATCH_LEVEL) VOID NTAPI FltpAcquireMessageWaiterLock(_In_ PIO_CSQ Csq, _Out_ PKIRQL Irql)
HRESULT WINAPI BaseControlVideo_Destroy(BaseControlVideo *pControlVideo)
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyleEx(IVideoWindow *iface, LONG WindowStyleEx)
static HRESULT WINAPI VideoRenderer_GetSourceRect(BaseControlVideo *iface, RECT *pSourceRect)
HRESULT WINAPI BaseControlWindowImpl_put_Caption(IVideoWindow *iface, BSTR strCaption)
static VideoRendererImpl * impl_from_BaseRenderer(BaseRenderer *iface)
HRESULT WINAPI BaseFilterImpl_QueryVendorInfo(IBaseFilter *iface, LPWSTR *pVendorInfo)
static void VideoRenderer_AutoShowWindow(VideoRendererImpl *This)
#define VFW_E_RUNTIME_ERROR
HRESULT WINAPI BaseControlWindowImpl_put_BackgroundPalette(IVideoWindow *iface, LONG BackgroundPalette)
static VideoRendererImpl * impl_from_BaseWindow(BaseWindow *iface)
static BOOL CreateRenderingSubsystem(VideoRendererImpl *This)
const char * wine_dbgstr_rect(const RECT *rect)
int WINAPI GetSystemMetrics(_In_ int)
static HRESULT WINAPI VideoRenderer_IsDefaultSourceRect(BaseControlVideo *iface)
HRESULT WINAPI BaseWindowImpl_PrepareWindow(BaseWindow *This)
HRESULT WINAPI BaseControlWindowImpl_GetMaxIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_get_Width(IVideoWindow *iface, LONG *pWidth)
static HRESULT WINAPI VideoRenderer_IsDefaultTargetRect(BaseControlVideo *iface)
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfo(IVideoWindow *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
static VideoRendererImpl * impl_from_IBasicVideo(IBasicVideo *iface)
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
HRESULT WINAPI BaseControlVideoImpl_SetDefaultDestinationPosition(IBasicVideo *iface)
HRESULT WINAPI BaseControlWindowImpl_put_Owner(IVideoWindow *iface, OAHWND Owner)
HRESULT WINAPI BaseControlWindowImpl_get_BorderColor(IVideoWindow *iface, LONG *Color)
static ULONG WINAPI VideoWindow_Release(IVideoWindow *iface)
HRESULT WINAPI BaseControlWindowImpl_SetWindowForeground(IVideoWindow *iface, LONG Focus)
static VideoRendererImpl * impl_from_BaseControlVideo(BaseControlVideo *iface)
HRESULT WINAPI BaseControlWindowImpl_get_WindowState(IVideoWindow *iface, LONG *WindowState)
static __inline const char * debugstr_an(const char *s, int n)
#define memcpy(s1, s2, n)
HRESULT WINAPI BaseControlVideoImpl_GetVideoSize(IBasicVideo *iface, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindow_Init(BaseControlWindow *pControlWindow, const IVideoWindowVtbl *lpVtbl, BaseFilter *owner, CRITICAL_SECTION *lock, BasePin *pPin, const BaseWindowFuncTable *pFuncsTable)
CRITICAL_SECTION csFilter
static HRESULT WINAPI VideoRenderer_DoRenderSample(BaseRenderer *iface, IMediaSample *pSample)
HRESULT WINAPI BaseRendererImpl_Run(IBaseFilter *iface, REFERENCE_TIME tStart)
CRITICAL_SECTION csRenderLock
HRESULT WINAPI BaseFilterImpl_EnumPins(IBaseFilter *iface, IEnumPins **ppEnum)
static HRESULT WINAPI VideoRenderer_Pause(IBaseFilter *iface)
struct VideoRendererImpl VideoRendererImpl
HRESULT WINAPI BaseControlWindowImpl_get_Owner(IVideoWindow *iface, OAHWND *Owner)
HRESULT WINAPI BaseControlVideoImpl_get_VideoWidth(IBasicVideo *iface, LONG *pVideoWidth)
static DWORD VideoRenderer_SendSampleData(VideoRendererImpl *This, LPBYTE data, DWORD size)
GLint GLint GLsizei GLsizei height
static HRESULT WINAPI VideoRenderer_GetStaticImage(BaseControlVideo *iface, LONG *pBufferSize, LONG *pDIBImage)
HRESULT WINAPI BaseControlWindowImpl_get_Height(IVideoWindow *iface, LONG *pHeight)
static ULONG WINAPI VideoRenderer_Release(IBaseFilter *iface)
HRESULT WINAPI BaseControlVideoImpl_get_VideoHeight(IBasicVideo *iface, LONG *pVideoHeight)
HRESULT WINAPI BaseRendererImpl_Stop(IBaseFilter *iface)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyleEx(IVideoWindow *iface, LONG *WindowStyleEx)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
HRESULT WINAPI BaseControlWindowImpl_get_MessageDrain(IVideoWindow *iface, OAHWND *Drain)
HRESULT WINAPI BaseControlVideoImpl_put_SourceLeft(IBasicVideo *iface, LONG SourceLeft)
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
static HRESULT WINAPI VideoRenderer_SetSourceRect(BaseControlVideo *iface, RECT *pSourceRect)
HRESULT WINAPI BaseControlWindowImpl_get_Top(IVideoWindow *iface, LONG *pTop)
static ULONG WINAPI VideoRenderer_AddRef(IBaseFilter *iface)
static BOOL WINAPI VideoRenderer_OnSize(BaseWindow *iface, LONG Width, LONG Height)
static ULONG WINAPI VideoRendererInner_Release(IUnknown *iface)
BaseControlWindow baseControlWindow
HRESULT WINAPI BaseFilterImpl_QueryFilterInfo(IBaseFilter *iface, FILTER_INFO *pInfo)
static VideoRendererImpl * impl_from_IBaseFilter(IBaseFilter *iface)
static HRESULT WINAPI VideoRenderer_SetDefaultSourceRect(BaseControlVideo *iface)
BOOL WINAPI GetMessageW(_Out_ LPMSG, _In_opt_ HWND, _In_ UINT, _In_ UINT)
ULONG WINAPI BaseFilterImpl_AddRef(IBaseFilter *iface)
HRESULT WINAPI BaseControlVideoImpl_get_SourceTop(IBasicVideo *iface, LONG *pSourceTop)
BOOL WINAPI DECLSPEC_HOTPATCH ResetEvent(IN HANDLE hEvent)
HRESULT WINAPI BaseControlWindowImpl_put_Visible(IVideoWindow *iface, LONG Visible)
HRESULT WINAPI BaseFilterImpl_GetSyncSource(IBaseFilter *iface, IReferenceClock **ppClock)
HRESULT WINAPI BaseControlVideoImpl_get_SourceWidth(IBasicVideo *iface, LONG *pSourceWidth)
HRESULT VideoRenderer_create(IUnknown *pUnkOuter, void **ppv)
static HRESULT WINAPI AMFilterMiscFlags_QueryInterface(IAMFilterMiscFlags *iface, REFIID riid, void **ppv)
static HRESULT WINAPI VideoWindow_QueryInterface(IVideoWindow *iface, REFIID riid, LPVOID *ppvObj)
static LPWSTR WINAPI VideoRenderer_GetClassWindowStyles(BaseWindow *This, DWORD *pClassStyles, DWORD *pWindowStyles, DWORD *pWindowStylesEx)
HRESULT WINAPI BaseControlWindowImpl_put_Height(IVideoWindow *iface, LONG Height)
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle(IVideoWindow *iface, LONG WindowStyle)
BOOL WINAPI CopyRect(_Out_ LPRECT, _In_ LPCRECT)
static VOID WINAPI VideoRenderer_OnStopStreaming(BaseRenderer *iface)
HRESULT WINAPI BaseFilterImpl_JoinFilterGraph(IBaseFilter *iface, IFilterGraph *pGraph, LPCWSTR pName)
HRESULT WINAPI BaseControlVideoImpl_put_DestinationLeft(IBasicVideo *iface, LONG DestinationLeft)
HRESULT WINAPI BaseControlVideoImpl_IsUsingDefaultDestination(IBasicVideo *iface)
BOOL WINAPI GetWindowRect(_In_ HWND, _Out_ LPRECT)
BOOL WINAPI SetWindowPos(_In_ HWND, _In_opt_ HWND, _In_ int, _In_ int, _In_ int, _In_ int, _In_ UINT)
HRESULT WINAPI BaseControlVideoImpl_put_DestinationWidth(IBasicVideo *iface, LONG DestinationWidth)
HRESULT WINAPI BaseControlWindowImpl_put_BorderColor(IVideoWindow *iface, LONG Color)
static HRESULT WINAPI VideoRenderer_CheckMediaType(BaseRenderer *iface, const AM_MEDIA_TYPE *pmt)
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
#define VFW_E_WRONG_STATE
static VOID WINAPI VideoRenderer_OnStartStreaming(BaseRenderer *iface)
HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition(IVideoWindow *iface, LONG Left, LONG Top, LONG Width, LONG Height)
static const IBasicVideoVtbl IBasicVideo_VTable
BOOL WINAPI BaseControlWindowImpl_PossiblyEatMessage(BaseWindow *This, UINT uMsg, WPARAM wParam, LPARAM lParam)
static HRESULT WINAPI VideoRenderer_SetDefaultTargetRect(BaseControlVideo *iface)
HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain(IVideoWindow *iface, OAHWND Drain)
HRESULT WINAPI BaseControlWindowImpl_GetWindowPosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_put_Left(IVideoWindow *iface, LONG Left)
HRESULT WINAPI BaseControlVideoImpl_put_SourceTop(IBasicVideo *iface, LONG SourceTop)
BOOL WINAPI PostThreadMessageW(_In_ DWORD, _In_ UINT, _In_ WPARAM, _In_ LPARAM)
static const BaseRendererFuncTable BaseFuncTable
HRESULT VideoRendererDefault_create(IUnknown *pUnkOuter, LPVOID *ppv)
static VideoRendererImpl * impl_from_IVideoWindow(IVideoWindow *iface)
LPVOID WINAPI CoTaskMemAlloc(SIZE_T size)
HRESULT WINAPI BaseControlVideoImpl_put_DestinationTop(IBasicVideo *iface, LONG DestinationTop)
HRESULT WINAPI BaseControlWindowImpl_put_Top(IVideoWindow *iface, LONG Top)
static HRESULT WINAPI VideoRenderer_EndFlush(BaseRenderer *iface)
HRESULT WINAPI BaseControlVideoImpl_GetVideoPaletteEntries(IBasicVideo *iface, LONG StartIndex, LONG Entries, LONG *pRetrieved, LONG *pPalette)
#define IsEqualIID(riid1, riid2)
IAMFilterMiscFlags IAMFilterMiscFlags_iface
HRESULT WINAPI BaseControlVideoImpl_get_BitRate(IBasicVideo *iface, LONG *pBitRate)
HRESULT WINAPI BaseControlVideoImpl_get_SourceHeight(IBasicVideo *iface, LONG *pSourceHeight)
static VIDEOINFOHEADER *WINAPI VideoRenderer_GetVideoFormat(BaseControlVideo *iface)
HRESULT WINAPI BaseControlWindowImpl_IsCursorHidden(IVideoWindow *iface, LONG *CursorHidden)
static ULONG WINAPI BasicVideo_Release(IBasicVideo *iface)