ReactOS 0.4.17-dev-966-gf06eace
nullrenderer.c
Go to the documentation of this file.
1/*
2 * Null renderer filter
3 *
4 * Copyright 2004 Christian Costa
5 * Copyright 2008 Maarten Lankhorst
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
20 */
21
22#define COBJMACROS
23#include "dshow.h"
24#include "wine/debug.h"
25#include "wine/strmbase.h"
26
28
30{
32};
33
35{
36 return CONTAINING_RECORD(iface, struct null_renderer, renderer);
37}
38
40{
41 return S_OK;
42}
43
45{
46 return S_OK;
47}
48
49static void null_renderer_destroy(struct strmbase_renderer *iface)
50{
52
54 free(filter);
55}
56
58{
59 .renderer_query_accept = null_renderer_query_accept,
60 .renderer_render = null_renderer_render,
61 .renderer_destroy = null_renderer_destroy,
62};
63
65{
66 struct null_renderer *object;
67
68 if (!(object = calloc(1, sizeof(*object))))
69 return E_OUTOFMEMORY;
70
71 strmbase_renderer_init(&object->renderer, outer, &CLSID_NullRenderer, L"In", &renderer_ops);
72
73 TRACE("Created null renderer %p.\n", object);
74 *out = &object->renderer.filter.IUnknown_inner;
75 return S_OK;
76}
#define WINE_DEFAULT_DEBUG_CHANNEL(t)
Definition: precomp.h:23
#define E_OUTOFMEMORY
Definition: ddrawi.h:100
#define free
Definition: debug_ros.c:5
static void null_renderer_destroy(struct strmbase_renderer *iface)
Definition: nullrenderer.c:49
static struct null_renderer * impl_from_strmbase_renderer(struct strmbase_renderer *iface)
Definition: nullrenderer.c:34
static const struct strmbase_renderer_ops renderer_ops
Definition: nullrenderer.c:57
static HRESULT null_renderer_query_accept(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt)
Definition: nullrenderer.c:44
static HRESULT null_renderer_render(struct strmbase_renderer *iface, IMediaSample *sample)
Definition: nullrenderer.c:39
HRESULT null_renderer_create(IUnknown *outer, IUnknown **out)
Definition: nullrenderer.c:64
#define L(x)
Definition: resources.c:13
#define S_OK
Definition: intsafe.h:52
static IUnknown * outer
Definition: compobj.c:82
#define calloc
Definition: rosglue.h:14
#define TRACE(s)
Definition: solgame.cpp:4
void strmbase_renderer_init(struct strmbase_renderer *filter, IUnknown *outer, const CLSID *clsid, const WCHAR *sink_name, const struct strmbase_renderer_ops *ops)
Definition: renderer.c:584
void strmbase_renderer_cleanup(struct strmbase_renderer *filter)
Definition: renderer.c:568
Definition: filter.c:165
struct strmbase_renderer renderer
Definition: nullrenderer.c:31
Definition: wave.c:25
#define CONTAINING_RECORD(address, type, field)
Definition: typedefs.h:260
wchar_t tm const _CrtWcstime_Writes_and_advances_ptr_ count wchar_t ** out
Definition: wcsftime.cpp:383