quartz: FileSource_Load should not fail on unknown file formats. (v3)

Andrew Eikum aeikum at codeweavers.com
Tue May 3 08:54:35 CDT 2016


Signed-off-by: Andrew Eikum <aeikum at codeweavers.com>

On Fri, Apr 29, 2016 at 10:13:35PM +0200, Sebastian Lackner wrote:
> From: Michael Müller <michael at fds-team.de>
> 
> Signed-off-by: Michael Müller <michael at fds-team.de>
> Signed-off-by: Sebastian Lackner <sebastian at fds-team.de>
> ---
> Changes in v3:
> * Only test for success and not exact format. The previous version failed when
>   Wine is compiled with gstreamer support.
> 
>  dlls/quartz/filesource.c        |    5 +++--
>  dlls/quartz/tests/avisplitter.c |   17 +++++++++++++----
>  2 files changed, 16 insertions(+), 6 deletions(-)
> 
> diff --git a/dlls/quartz/filesource.c b/dlls/quartz/filesource.c
> index f0f85fd..269dd13 100644
> --- a/dlls/quartz/filesource.c
> +++ b/dlls/quartz/filesource.c
> @@ -655,8 +655,9 @@ static HRESULT WINAPI FileSource_Load(IFileSourceFilter * iface, LPCOLESTR pszFi
>              hr = GetClassMediaFile(pReader, pszFileName, &This->pmt->majortype, &This->pmt->subtype, NULL);
>              if (FAILED(hr))
>              {
> -                CoTaskMemFree(This->pmt);
> -                This->pmt = NULL;
> +                This->pmt->majortype = MEDIATYPE_Stream;
> +                This->pmt->subtype = MEDIASUBTYPE_NULL;
> +                hr = S_OK;
>              }
>          }
>          else
> diff --git a/dlls/quartz/tests/avisplitter.c b/dlls/quartz/tests/avisplitter.c
> index aa938c1..78ca8b8 100644
> --- a/dlls/quartz/tests/avisplitter.c
> +++ b/dlls/quartz/tests/avisplitter.c
> @@ -217,6 +217,12 @@ static void test_filesourcefilter(void)
>              12,
>              &MEDIASUBTYPE_WAVE,
>          },
> +        {
> +            "unknown format",
> +            "Hello World",
> +            11,
> +            NULL, /* FIXME: should be &MEDIASUBTYPE_NULL */
> +        },
>      };
>      WCHAR path[MAX_PATH], temp[MAX_PATH];
>      IFileSourceFilter *filesource;
> @@ -277,10 +283,13 @@ static void test_filesourcefilter(void)
>          ok(hr == S_OK, "expected S_OK, got %08x\n", hr);
>          ok(!lstrcmpW(olepath, path),
>             "expected %s, got %s\n", wine_dbgstr_w(path), wine_dbgstr_w(olepath));
> -        ok(IsEqualGUID(&mt.majortype, &MEDIATYPE_Stream),
> -           "expected MEDIATYPE_Stream, got %s\n", wine_dbgstr_guid(&mt.majortype));
> -        ok(IsEqualGUID(&mt.subtype, tests[i].subtype),
> -           "expected %s, got %s\n", wine_dbgstr_guid(tests[i].subtype), wine_dbgstr_guid(&mt.subtype));
> +        if (tests[i].subtype)
> +        {
> +            ok(IsEqualGUID(&mt.majortype, &MEDIATYPE_Stream),
> +               "expected MEDIATYPE_Stream, got %s\n", wine_dbgstr_guid(&mt.majortype));
> +            ok(IsEqualGUID(&mt.subtype, tests[i].subtype),
> +               "expected %s, got %s\n", wine_dbgstr_guid(tests[i].subtype), wine_dbgstr_guid(&mt.subtype));
> +        }
>          CoTaskMemFree(olepath);
>  
>          IFileSourceFilter_Release(filesource);
> -- 
> 2.8.0
> 
> 



More information about the wine-patches mailing list