70 if (
IsEqualGUID(&mt->formattype, &FORMAT_VideoInfo))
78 if (
This->window.AutoShow)
92 hr = IMediaSample_GetPointer(pSample, &pbSrcStream);
95 ERR(
"Failed to get buffer pointer, hr %#lx.\n",
hr);
110 if (!
IsEqualGUID(&mt->majortype, &MEDIATYPE_Video))
113 if (!
IsEqualGUID(&mt->subtype, &MEDIASUBTYPE_RGB32)
115 && !
IsEqualGUID(&mt->subtype, &MEDIASUBTYPE_RGB565)
119 if (!
IsEqualGUID(&mt->formattype, &FORMAT_VideoInfo)
120 && !
IsEqualGUID(&mt->formattype, &FORMAT_VideoInfo2))
140 *
out = &
filter->window.IBasicVideo_iface;
142 *
out = &
filter->window.IVideoWindow_iface;
169 if (
This->window.AutoShow)
246 if (!
filter->renderer.current_sample)
273 LONG *FullScreenMode)
379 return IPin_QueryInterface(&
filter->renderer.sink.pin.IPin_iface, iid,
out);
385 return IPin_AddRef(&
filter->renderer.sink.pin.IPin_iface);
391 return IPin_Release(&
filter->renderer.sink.pin.IPin_iface);
408 FIXME(
"iface %p, key %p, stub!\n", iface,
key);
414 FIXME(
"iface %p, key %p, stub!\n", iface,
key);
420 FIXME(
"iface %p, key %p, stub!\n", iface,
key);
448 FIXME(
"iface %p, sink %p, flags %#lx, stub!\n", iface,
sink,
flags);
454 FIXME(
"iface %p, stub!\n", iface);
480 if (!(
object =
calloc(1,
sizeof(*
object))))
499 TRACE(
"Created video renderer %p.\n",
object);
500 *
out = &
object->renderer.filter.IUnknown_inner;
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
static HRESULT WINAPI VideoWindow_get_FullScreenMode(IVideoWindow *iface, LONG *FullScreenMode)
static HRESULT WINAPI overlay_GetColorKey(IOverlay *iface, COLORKEY *key)
static struct video_renderer * impl_from_video_window(struct video_window *iface)
static HRESULT video_renderer_pin_query_interface(struct strmbase_renderer *iface, REFIID iid, void **out)
static const BITMAPINFOHEADER * get_bitmap_header(const AM_MEDIA_TYPE *mt)
static HRESULT WINAPI VideoWindow_put_FullScreenMode(IVideoWindow *iface, LONG fullscreen)
static const struct video_window_ops window_ops
static const struct strmbase_renderer_ops renderer_ops
static HRESULT WINAPI overlay_GetWindowHandle(IOverlay *iface, HWND *window)
static void VideoRenderer_AutoShowWindow(struct video_renderer *This)
static void video_renderer_destroy(struct strmbase_renderer *iface)
static void video_renderer_stop_stream(struct strmbase_renderer *iface)
static struct video_renderer * impl_from_IOverlay(IOverlay *iface)
static HRESULT video_renderer_get_current_image(struct video_window *iface, LONG *size, LONG *image)
static const IOverlayVtbl overlay_vtbl
static ULONG WINAPI overlay_AddRef(IOverlay *iface)
static HRESULT video_renderer_render(struct strmbase_renderer *iface, IMediaSample *pSample)
static HRESULT WINAPI overlay_QueryInterface(IOverlay *iface, REFIID iid, void **out)
static struct video_renderer * impl_from_IVideoWindow(IVideoWindow *iface)
static void video_renderer_get_default_rect(struct video_window *iface, RECT *rect)
static void video_renderer_init_stream(struct strmbase_renderer *iface)
HRESULT video_renderer_create(IUnknown *outer, IUnknown **out)
static const IVideoWindowVtbl IVideoWindow_VTable
static HRESULT WINAPI overlay_SetColorKey(IOverlay *iface, COLORKEY *key)
static HRESULT WINAPI overlay_SetPalette(IOverlay *iface, DWORD count, PALETTEENTRY *palette)
static HRESULT WINAPI overlay_GetVideoPosition(IOverlay *iface, RECT *source, RECT *dest)
HRESULT video_renderer_default_create(IUnknown *outer, IUnknown **out)
static HRESULT video_renderer_query_interface(struct strmbase_renderer *iface, REFIID iid, void **out)
static HRESULT WINAPI overlay_GetDefaultColorKey(IOverlay *iface, COLORKEY *key)
static HRESULT WINAPI overlay_Advise(IOverlay *iface, IOverlayNotify *sink, DWORD flags)
static HRESULT WINAPI overlay_Unadvise(IOverlay *iface)
static struct video_renderer * impl_from_strmbase_renderer(struct strmbase_renderer *iface)
static HRESULT WINAPI overlay_GetClipList(IOverlay *iface, RECT *source, RECT *dest, RGNDATA **region)
static HRESULT video_renderer_connect(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt)
static ULONG WINAPI overlay_Release(IOverlay *iface)
static HRESULT WINAPI overlay_GetPalette(IOverlay *iface, DWORD *count, PALETTEENTRY **palette)
static HRESULT video_renderer_query_accept(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt)
GLuint GLuint GLsizei count
GLsizei GLenum GLboolean sink
static GLint image_size(GLint width, GLint height, GLenum format, GLenum type)
#define memcpy(s1, s2, n)
static IHTMLWindow2 * window
#define IsEqualGUID(rguid1, rguid2)
int WINAPI ReleaseDC(_In_opt_ HWND, _In_ HDC)
BOOL WINAPI RedrawWindow(_In_opt_ HWND, _In_opt_ LPCRECT, _In_opt_ HRGN, _In_ UINT)
BOOL WINAPI ShowWindow(_In_ HWND, _In_ int)
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)
HWND WINAPI SetParent(_In_ HWND, _In_opt_ HWND)
LONG WINAPI SetWindowLongW(_In_ HWND, _In_ int, _In_ LONG)
LONG WINAPI GetWindowLongW(_In_ HWND, _In_ int)
BOOL WINAPI AdjustWindowRectEx(_Inout_ LPRECT, _In_ DWORD, _In_ BOOL, _In_ DWORD)
BOOL WINAPI GetClientRect(_In_ HWND, _Out_ LPRECT)
HDC WINAPI GetDC(_In_opt_ HWND)
int WINAPI GetSystemMetrics(_In_ int)
BOOL WINAPI SetRect(_Out_ LPRECT, _In_ int, _In_ int, _In_ int, _In_ int)
ULONG WINAPI BaseControlWindowImpl_AddRef(IVideoWindow *iface)
ULONG WINAPI BaseControlWindowImpl_Release(IVideoWindow *iface)
void video_window_init(struct video_window *window, const IVideoWindowVtbl *vtbl, struct strmbase_filter *filter, struct strmbase_pin *pin, const struct video_window_ops *ops)
HRESULT WINAPI BaseControlWindowImpl_HideCursor(IVideoWindow *iface, LONG HideCursor)
HRESULT WINAPI BaseControlWindowImpl_put_Visible(IVideoWindow *iface, LONG Visible)
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfo(IVideoWindow *iface, UINT iTInfo, LCID lcid, ITypeInfo **ppTInfo)
HRESULT WINAPI BaseControlWindowImpl_put_WindowState(IVideoWindow *iface, LONG WindowState)
HRESULT WINAPI BaseControlWindowImpl_get_Top(IVideoWindow *iface, LONG *pTop)
HRESULT WINAPI BaseControlWindowImpl_put_Height(IVideoWindow *iface, LONG Height)
HRESULT WINAPI BaseControlWindowImpl_get_Height(IVideoWindow *iface, LONG *pHeight)
HRESULT video_window_create_window(struct video_window *window)
HRESULT WINAPI BaseControlWindowImpl_get_Width(IVideoWindow *iface, LONG *pWidth)
HRESULT WINAPI BaseControlWindowImpl_put_AutoShow(IVideoWindow *iface, LONG AutoShow)
HRESULT WINAPI BaseControlWindowImpl_Invoke(IVideoWindow *iface, DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS *pDispParams, VARIANT *pVarResult, EXCEPINFO *pExepInfo, UINT *puArgErr)
HRESULT WINAPI BaseControlWindowImpl_QueryInterface(IVideoWindow *iface, REFIID iid, void **out)
HRESULT WINAPI BaseControlWindowImpl_get_Caption(IVideoWindow *iface, BSTR *strCaption)
HRESULT WINAPI BaseControlWindowImpl_put_Top(IVideoWindow *iface, LONG Top)
HRESULT WINAPI BaseControlWindowImpl_put_Owner(IVideoWindow *iface, OAHWND Owner)
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyle(IVideoWindow *iface, LONG *WindowStyle)
HRESULT WINAPI BaseControlWindowImpl_GetWindowPosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_get_WindowState(IVideoWindow *iface, LONG *WindowState)
HRESULT WINAPI BaseControlWindowImpl_GetMinIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_put_Width(IVideoWindow *iface, LONG Width)
HRESULT WINAPI BaseControlWindowImpl_get_Left(IVideoWindow *iface, LONG *pLeft)
HRESULT WINAPI BaseControlWindowImpl_GetIDsOfNames(IVideoWindow *iface, REFIID riid, LPOLESTR *rgszNames, UINT cNames, LCID lcid, DISPID *rgDispId)
HRESULT WINAPI BaseControlWindowImpl_GetMaxIdealImageSize(IVideoWindow *iface, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_get_WindowStyleEx(IVideoWindow *iface, LONG *WindowStyleEx)
HRESULT WINAPI BaseControlWindowImpl_put_Left(IVideoWindow *iface, LONG Left)
HRESULT vmr7_create(IUnknown *outer, IUnknown **out)
HRESULT WINAPI BaseControlWindowImpl_SetWindowPosition(IVideoWindow *iface, LONG Left, LONG Top, LONG Width, LONG Height)
HRESULT WINAPI BaseControlWindowImpl_put_BorderColor(IVideoWindow *iface, LONG Color)
HRESULT WINAPI BaseControlWindowImpl_get_Visible(IVideoWindow *iface, LONG *pVisible)
HRESULT WINAPI BaseControlWindowImpl_get_BackgroundPalette(IVideoWindow *iface, LONG *pBackgroundPalette)
HRESULT WINAPI BaseControlWindowImpl_get_MessageDrain(IVideoWindow *iface, OAHWND *Drain)
HRESULT WINAPI BaseControlWindowImpl_put_MessageDrain(IVideoWindow *iface, OAHWND Drain)
HRESULT WINAPI BaseControlWindowImpl_SetWindowForeground(IVideoWindow *iface, LONG Focus)
void video_window_cleanup(struct video_window *window)
HRESULT WINAPI BaseControlWindowImpl_get_AutoShow(IVideoWindow *iface, LONG *AutoShow)
HRESULT WINAPI BaseControlWindowImpl_GetTypeInfoCount(IVideoWindow *iface, UINT *pctinfo)
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyle(IVideoWindow *iface, LONG WindowStyle)
HRESULT WINAPI BaseControlWindowImpl_get_Owner(IVideoWindow *iface, OAHWND *Owner)
HRESULT WINAPI BaseControlWindowImpl_GetRestorePosition(IVideoWindow *iface, LONG *pLeft, LONG *pTop, LONG *pWidth, LONG *pHeight)
HRESULT WINAPI BaseControlWindowImpl_NotifyOwnerMessage(IVideoWindow *iface, OAHWND hwnd, LONG uMsg, LONG_PTR wParam, LONG_PTR lParam)
HRESULT WINAPI BaseControlWindowImpl_put_BackgroundPalette(IVideoWindow *iface, LONG BackgroundPalette)
HRESULT WINAPI BaseControlWindowImpl_IsCursorHidden(IVideoWindow *iface, LONG *CursorHidden)
HRESULT WINAPI BaseControlWindowImpl_get_BorderColor(IVideoWindow *iface, LONG *Color)
HRESULT WINAPI BaseControlWindowImpl_put_Caption(IVideoWindow *iface, BSTR strCaption)
HRESULT WINAPI BaseControlWindowImpl_put_WindowStyleEx(IVideoWindow *iface, LONG WindowStyleEx)
void strmbase_renderer_init(struct strmbase_renderer *filter, IUnknown *outer, const CLSID *clsid, const WCHAR *sink_name, const struct strmbase_renderer_ops *ops)
void strmbase_renderer_cleanup(struct strmbase_renderer *filter)
struct strmbase_renderer renderer
struct video_window window
#define CONTAINING_RECORD(address, type, field)
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
void WINAPI LeaveCriticalSection(LPCRITICAL_SECTION)
void WINAPI EnterCriticalSection(LPCRITICAL_SECTION)
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)