[PATCH 2/4] qcap/filewriter: Implement IFileSinkFilter::SetFileName().

Zhiyi Zhang zzhang at codeweavers.com
Wed Apr 22 21:04:43 CDT 2020



On 4/23/20 9:10 AM, Zebediah Figura wrote:
> Signed-off-by: Zebediah Figura <z.figura12 at 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);
filter->filename is leaked when filesinkfilter_SetFileName() is called more than once.
> +    return S_OK;
>  }
>  
>  static HRESULT WINAPI filesinkfilter_GetCurFile(IFileSinkFilter *iface,




More information about the wine-devel mailing list