[PATCH v2 6/8] winegstreamer: Keep wg_transform output samples in a list.

Rémi Bernon rbernon at codeweavers.com
Fri Feb 25 14:37:58 CST 2022


On 2/25/22 18:45, Zebediah Figura (she/her) wrote:
> On 2/23/22 08:46, Rémi Bernon wrote:
>> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51931
>> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=52391
>> Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
>> ---
>>   dlls/winegstreamer/wg_transform.c | 31 +++++++++++++++++++++++++++++++
>>   1 file changed, 31 insertions(+)
>>
> 
> What's the motivation for doing this?
> 
> (And why not, say, use a queue element instead? Not that this is
> particularly complex, to be fair.)
> 


It seemed simpler like this as it doesn't need to wait on ProcessOutput 
to be called.

Still, I'd like to add a queue later anyway, for the purpose of 
implementing zero-copy, so maybe I can use it there, I'll have a try.


>>   
>> +    if (!(entry = calloc(1, sizeof(*entry))))
>> +        GST_ERROR("Failed to allocate sample entry");
>> +    else
>> +    {
>> +        pthread_mutex_lock(&transform->mutex);
>> +        entry->sample = gst_sample_new(buffer, NULL, NULL, NULL);
>> +        list_add_tail(&transform->samples, &entry->entry);
>> +        pthread_mutex_unlock(&transform->mutex);
> 
> Why create a GstSample?
> 


Because I think we'll need to hold the caps for the buffers too, to 
detect format changes which can and must happen with H264.

I can change it later too, it makes future changes smaller to have the 
sample now.

-- 
Rémi Bernon <rbernon at codeweavers.com>



More information about the wine-devel mailing list