[PATCH v2 1/4] winegstreamer: Introduce audio conversion transform.
Zebediah Figura (she/her)
zfigura at codeweavers.com
Wed Dec 2 15:52:39 CST 2020
On 12/2/20 3:49 PM, Derek Lesho wrote:
>
> On 12/2/20 4:47 PM, Zebediah Figura (she/her) wrote:
>> On 12/2/20 3:37 PM, Derek Lesho wrote:
>>> On 12/2/20 4:31 PM, Zebediah Figura (she/her) wrote:
>>>> On 12/2/20 3:07 PM, Derek Lesho wrote:
>>>>> On 12/2/20 4:01 PM, Zebediah Figura (she/her) wrote:
>>>>>> On 12/1/20 2:06 PM, Derek Lesho wrote:
>>>>>>> On 12/1/20 3:00 PM, Zebediah Figura (she/her) wrote:
>>>>>>>>> +static HRESULT WINAPI audio_converter_ProcessMessage(IMFTransform
>>>>>>>>> *iface, MFT_MESSAGE_TYPE message, ULONG_PTR param)
>>>>>>>>> +{
>>>>>>>>> + FIXME("%p, %u.\n", iface, message);
>>>>>>>>> +
>>>>>>>>> + return S_OK;
>>>>>>>>> +}
>>>>>>>> Why S_OK?
>>>>>>> Because the media session sends some messages to the transform
>>>>>>> such as
>>>>>>> MFT_MESSAGE_NOTIFY_BEGIN_STREAMING and fails to play if S_OK isn't
>>>>>>> returned. I take it you'd like me to actually implement this method
>>>>>>> instead.
>>>>>> Not necessarily, but if nothing needs to be done, then presumably
>>>>>> there
>>>>>> shouldn't be a FIXME either, and it's not obvious to me what needs
>>>>>> to be
>>>>>> done. Sorry, I guess that comment should have been more specific.
>>>>> FWIW I've already sent a patch "implementing" this function in v3?
>>>>> Should I remove it and just switch to a trace or just keep it as
>>>>> is? I
>>>>> think it may be better to keep it as is, since some messages not being
>>>>> implemented may cause real problems.
>>>>>>>> Why not CLSID_CResamplerMediaObject? In fact, we already have one
>>>>>>>> application that needs it (bug 47781).
>>>>>>> The only reason I didn't expose it as CLSID_CResamplerMediaObject is
>>>>>>> that I didn't want to imply that I was basing the interface and
>>>>>>> types
>>>>>>> supported off of that specific object. For instance, that object,
>>>>>>> from
>>>>>>> what I can see on the MSDN, doesn't support PCM<->Float
>>>>>>> conversions, and
>>>>>>> vice versa. Is this not a big enough deal to keep it separate?
>>>>>>>
>>>>>> Do we need to support integer/float conversion?
>>>>> Yes, from what I've seen the SAR usually only supports one or the
>>>>> other,
>>>>> at-least on wine.
>>>> I'm not sure I understand; what do you mean by this?
>>> The SAR on wine, at-least on my system, only accepts one input type (the
>>> one derived from IAudioClient::GetMixFormat). So we need to be able to
>>> convert the one media type we are allowed to use from the source to the
>>> one media type the SAR supports. Naturally, you end up with cases where
>>> one is floating point and the other is PCM.
>>>>> Exposing a PCM and Float type from the source doesn't
>>>>> solve this either, as the application doesn't have to specify
>>>>> ENUMERATE_SOURCE_TYPES when loading the topology, and in practice,
>>>>> rarely does, so the topology loader is forced to work with whatever
>>>>> the
>>>>> default type happens to be. It may be that on windows the decoders
>>>>> almost always expose both a PCM and floating point type, but
>>>>> currently,
>>>>> we are not using decoder MFTs in wine (and instead decoding in the
>>>>> media
>>>>> source).
>>>> It would be nice to confirm whether this is the case.
>>> At-least for the MFTs I've seen so far, it is the case. (both the AAC
>>> decoder and WMA decoder guarantee a floating point and PCM output type)
>>>>> In practice, what this means is that without PCM<->Floating
>>>>> Point capabilities, Borderlands 3 doesn't work.
>>>>>
>> Okay, that's unfortunate, but makes sense. And there's no transform
>> present on Windows which can do simple integer/float PCM conversion?
> Not that I know of, and even if there was, the topology loader can only
> hook up one converter automatically. Is this enough of a reason to stay
> with a custom object GUID for now?
>
It seems that way to me, yes.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0x0D9D358A07A17840.asc
Type: application/pgp-keys
Size: 1769 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20201202/4d94f343/attachment.key>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature
Type: application/pgp-signature
Size: 495 bytes
Desc: OpenPGP digital signature
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20201202/4d94f343/attachment.sig>
More information about the wine-devel
mailing list