[PATCH] winegstreamer: Fixup raw audio caps to be compatible with IMFMediaType.

Derek Lesho dlesho at codeweavers.com
Fri Nov 6 15:01:16 CST 2020


A few typos in my previous mail, fixed them up here.

On 11/6/20 2:51 PM, Derek Lesho wrote:
>> In both cases you're doing conversion from a type which may not be
>> representable into a type which is.
> No, in the case of the uncompressed video streams, the type is almost 
> definitely representable.  Think of it as a necessary hack for the 
> bypassing of the decoder MFT we are doing.  On the other hand, there 
> are plenty of cases where uncompressed audio may be read from a 
> container, and the fixup path would still be necessary in those cases.
>>   The reasons for doing this
>> conversion may be different, but there is no reason for the mechanism 
>> to be.
> I would say there is, the conversion we're doing for the video streams 
> is unconditional, entirely specific to the media source output, and 
> doesn't output 1 fixed up caps structure per input caps structure.  On 
> the other hand, the audio and compressed type format would be 
> necessary any time we want to feed gstreamer buffers with those caps 
> to a media foundation component, and is a 1 to 1 conversion in every 
> case.  Examples of other areas where this would be necessary, off the 
> top of my head, would be a separate uncompressed-audio-emitting media 
> source from, say, a microphone, or any MFT which outputs compressed 
> media or raw audio, such as an encoder MFT.
>>
>> Moreover, the goals are not entirely orthogonal; not all video will be
>> output in the four types you have listed.
> All video streams that take the videoconvert enumeration path 
> (uncompressed video) won't need any transformation to align with an 
> IMFMediaType object.  The only potential incompatibility would be the 
> layout, but that problem would never surface with the current media 
> source since we are pretending that our output types have gone through 
> a standard media foundation decoder.  An instance where we would want 
> to put this type of code in the make_mf_compatible_caps path would be 
> a media source that provides uncompressed video on windows, such as 
> from a webcam or screen capture.  In the code for that kind of media 
> source, we'd unconditionally put the video caps through the 
> make_mf_compatible_caps path, and add code there to replace any 
> unsupported layout with its closest equivalent defined in media 
> foundation.
>>
>



More information about the wine-devel mailing list