widl: Always check the runtimeclass interfaces presence.
[wine/zf.git] / dlls / evr / evr.c
blob942394177949a190dda8660eb497d8f9bcd2caef
1 /*
2 * Copyright 2017 Fabian Maurer
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 #define COBJMACROS
21 #include "wine/debug.h"
23 #include <stdio.h>
25 #include "evr_private.h"
26 #include "d3d9.h"
28 #include "initguid.h"
29 #include "dxva2api.h"
31 WINE_DEFAULT_DEBUG_CHANNEL(evr);
33 struct evr
35 struct strmbase_renderer renderer;
38 static struct evr *impl_from_strmbase_renderer(struct strmbase_renderer *iface)
40 return CONTAINING_RECORD(iface, struct evr, renderer);
43 static void evr_destroy(struct strmbase_renderer *iface)
45 struct evr *filter = impl_from_strmbase_renderer(iface);
47 strmbase_renderer_cleanup(&filter->renderer);
48 free(filter);
51 static HRESULT evr_render(struct strmbase_renderer *iface, IMediaSample *sample)
53 FIXME("Not implemented.\n");
54 return E_NOTIMPL;
57 static HRESULT evr_query_accept(struct strmbase_renderer *iface, const AM_MEDIA_TYPE *mt)
59 FIXME("Not implemented.\n");
60 return E_NOTIMPL;
63 static const struct strmbase_renderer_ops renderer_ops =
65 .renderer_query_accept = evr_query_accept,
66 .renderer_render = evr_render,
67 .renderer_destroy = evr_destroy,
70 HRESULT evr_filter_create(IUnknown *outer, void **out)
72 struct evr *object;
74 if (!(object = calloc(1, sizeof(*object))))
75 return E_OUTOFMEMORY;
77 strmbase_renderer_init(&object->renderer, outer,
78 &CLSID_EnhancedVideoRenderer, L"EVR Input0", &renderer_ops);
80 TRACE("Created EVR %p.\n", object);
81 *out = &object->renderer.filter.IUnknown_inner;
82 return S_OK;