[PATCH v3 1/5] winegstreamer: Implement H264 decoder GetInputStreamInfo.

Rémi Bernon rbernon at codeweavers.com
Wed Mar 23 10:46:05 CDT 2022


On 3/23/22 06:10, Nikolay Sivov wrote:
> 
> 
> On 3/21/22 23:11, Rémi Bernon wrote:
>>   static HRESULT WINAPI transform_GetInputStreamInfo(IMFTransform 
>> *iface, DWORD id, MFT_INPUT_STREAM_INFO *info)
>>   {
>> -    FIXME("iface %p, id %#lx, info %p stub!\n", iface, id, info);
>> -    return E_NOTIMPL;
>> +    struct h264_decoder *decoder = impl_from_IMFTransform(iface);
>> +
>> +    TRACE("iface %p, id %#lx, info %p.\n", iface, id, info);
>> +
>> +    if (!decoder->input_type)
>> +        return MF_E_TRANSFORM_TYPE_NOT_SET;
>> +
>> +    info->hnsMaxLatency = 0;
>> +    info->dwFlags = MFT_INPUT_STREAM_WHOLE_SAMPLES | 
>> MFT_INPUT_STREAM_SINGLE_SAMPLE_PER_BUFFER | 
>> MFT_INPUT_STREAM_FIXED_SAMPLE_SIZE;
>> +    info->cbSize = 0x1000;
>> +    info->cbMaxLookahead = 0;
>> +    info->cbAlignment = 0;
>> +
>> +    return S_OK;
>>   }
>>   static HRESULT WINAPI transform_GetOutputStreamInfo(IMFTransform 
>> *iface, DWORD id, MFT_OUTPUT_STREAM_INFO *info)
> 
> Is it really using static size here, regardless of input stream 
> parameters? Like frame size for example? Not sure how useful this field 
> is in a first place for decoder input, maybe they set it to be non-zero.
> 

Yeah I don't think it's really useful, and I'm not even sure it's 
actually required. Input stream parameters is really just the codec 
subtype, I believe H264 streams have their metadata embedded in the 
first packets.
-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list