[PATCH 4/5] winegstreamer: Introduce new wg_transform_push_data function.

Rémi Bernon rbernon at codeweavers.com
Wed Feb 23 02:24:11 CST 2022


On 2/23/22 03:09, Zebediah Figura (she/her) wrote:
> On 2/22/22 16:48, Rémi Bernon wrote:
>> +NTSTATUS wg_transform_push_data(void *args)
>> +{
>> +    struct wg_transform_push_data_params *params = args;
>> +    struct wg_transform *transform = params->transform;
>> +    struct wg_sample *sample = params->sample;
>> +    GstFlowReturn ret;
>> +    GstBuffer *buffer;
>> +
>> +    buffer = gst_buffer_new_and_alloc(sample->size);
>> +    if (!buffer)
>> +        return STATUS_NO_MEMORY;
>> +
>> +    gst_buffer_fill(buffer, 0, sample->data, sample->size);
>> +    if ((ret = gst_pad_push(transform->my_src, buffer)))
>> +        return MF_E_NOTACCEPTING;
> 
> Does MF_E_NOTACCEPTING correspond to any failure GstFlowReturn, though?
> As far as I can tell GStreamer doesn't even have an equivalent; it just
> blocks in the chain function if applicable.
> 


Yeah we could/should probably return an error instead here.


> (Side note: I'd really prefer that we don't mix two different error code
> namespaces. Note that we're already returning STATUS_NO_MEMORY here when
> the PE side expects an HRESULT.)


I agree, I'm not sure how to do that though. Perhaps an output result 
parameter then, I really don't like returning non-NTSTATUS values when 
the return type is NTSTATUS.


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



More information about the wine-devel mailing list