[PATCH 4/7] winegstreamer: Check whether transform is supported when creating MPEG audio decoder.

Zebediah Figura (she/her) zfigura at codeweavers.com
Tue May 3 16:18:37 CDT 2022


On 5/3/22 13:28, Anton Baskanov wrote:
> Signed-off-by: Anton Baskanov <baskanov at gmail.com>
> ---
>   dlls/winegstreamer/quartz_transform.c | 28 +++++++++++++++++++++++++++
>   1 file changed, 28 insertions(+)
> 
> diff --git a/dlls/winegstreamer/quartz_transform.c b/dlls/winegstreamer/quartz_transform.c
> index 375c549aad5..98953a5b47f 100644
> --- a/dlls/winegstreamer/quartz_transform.c
> +++ b/dlls/winegstreamer/quartz_transform.c
> @@ -296,9 +296,37 @@ static const struct transform_ops mpeg_audio_codec_transform_ops =
>   
>   HRESULT mpeg_audio_codec_create(IUnknown *outer, IUnknown **out)
>   {
> +    struct wg_format output_format =
> +    {
> +        .major_type = WG_MAJOR_TYPE_AUDIO,
> +        .u.audio = {
> +            .format = WG_AUDIO_FORMAT_S16LE,
> +            .channel_mask = 1,
> +            .channels = 1,
> +            .rate = 44100,
> +        },
> +    };
> +    struct wg_format input_format =
> +    {
> +        .major_type = WG_MAJOR_TYPE_MPEG1_AUDIO,
> +        .u.mpeg1_audio = {
> +            .layer = 2,
> +            .rate = 44100,
> +            .channels = 1,
> +        },
> +    };
> +    struct wg_transform *transform;
>       struct transform *object;
>       HRESULT hr;
>   
> +    transform = wg_transform_create(&input_format, &output_format);
> +    if (!transform)
> +    {
> +        FIXME("GStreamer doesn't support MPEG-1 audio decoding, please install appropriate plugins.\n");

I didn't notice this when reviewing Rémi's patches, but this should be a 
winediag error, not a FIXME. I'll send patches to address that for the 
WMA and H.264 decoders as well.

> +        return E_FAIL;
> +    }
> +    wg_transform_destroy(transform);
> +
>       hr = transform_create(outer, &CLSID_CMpegAudioCodec, &mpeg_audio_codec_transform_ops, &object);
>       if (FAILED(hr))
>           return hr;



More information about the wine-devel mailing list