Signed-off-by: Zebediah Figura z.figura12@gmail.com --- dlls/qcap/filewriter.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/dlls/qcap/filewriter.c b/dlls/qcap/filewriter.c index e56b5f68a4..284fee2c36 100644 --- a/dlls/qcap/filewriter.c +++ b/dlls/qcap/filewriter.c @@ -22,6 +22,7 @@ #include "dshow.h" #include "qcap_main.h" #include "wine/debug.h" +#include "wine/unicode.h"
WINE_DEFAULT_DEBUG_CHANNEL(qcap);
@@ -31,6 +32,8 @@ struct file_writer IFileSinkFilter IFileSinkFilter_iface;
struct strmbase_sink sink; + + WCHAR *filename; };
static inline struct file_writer *impl_from_strmbase_pin(struct strmbase_pin *iface) @@ -87,6 +90,7 @@ static void file_writer_destroy(struct strmbase_filter *iface) { struct file_writer *filter = impl_from_strmbase_filter(iface);
+ heap_free(filter->filename); strmbase_sink_cleanup(&filter->sink); strmbase_filter_cleanup(&filter->filter); heap_free(filter); @@ -127,10 +131,16 @@ static HRESULT WINAPI filesinkfilter_SetFileName(IFileSinkFilter *iface, { struct file_writer *filter = impl_from_IFileSinkFilter(iface);
- FIXME("filter %p, filename %s, mt %p, stub!\n", filter, debugstr_w(filename), mt); + TRACE("filter %p, filename %s, mt %p, stub!\n", filter, debugstr_w(filename), mt); strmbase_dump_media_type(mt);
- return E_NOTIMPL; + if (mt) + FIXME("Ignoring media type %p.\n", mt); + + if (!(filter->filename = heap_alloc((strlenW(filename) + 1) * sizeof(WCHAR)))) + return E_OUTOFMEMORY; + strcpyW(filter->filename, filename); + return S_OK; }
static HRESULT WINAPI filesinkfilter_GetCurFile(IFileSinkFilter *iface,