[PATCH v2 5/6] winegstreamer: Support wg_transform output format change events.

Zebediah Figura zfigura at codeweavers.com
Mon May 16 22:55:08 CDT 2022


On 5/13/22 04:48, Rémi Bernon wrote:
> diff --git a/dlls/winegstreamer/wg_transform.c b/dlls/winegstreamer/wg_transform.c
> index b6cc51aecb7..9edcd72754f 100644
> --- a/dlls/winegstreamer/wg_transform.c
> +++ b/dlls/winegstreamer/wg_transform.c
> @@ -52,17 +52,27 @@ struct wg_transform
>       guint input_max_length;
>       GstAtomicQueue *output_queue;
>       GstSample *output_sample;
> +    bool output_caps_changed;
>       GstCaps *output_caps;
>   };

To be clear, what bothered me about the last iteration is that the 
format-change logic feels awkwardly split in half between the frontend 
and backend. Hence my proposal to move it *entirely* to the 
frontend—including keeping track of the previous type there, comparing 
caps, and returning MF_E_TRANSFORM_STREAM_CHANGE from the front end. So 
the existence of this field still feels awkward to me. Did I forget a 
discussion again about why it's necessary?

For that matter, I could also see an argument for moving the whole thing 
to the back end, and handling the "frontend needs to explicitly 
invalidate the format" problem by adding a new unixlib API for it. (Or 
maybe just destroying and recreating the wg_transform? That's not ideal 
if it happens frequently, but I don't know if that's the case.)



More information about the wine-devel mailing list