[RFC PATCH 5/5] winegstreamer: Merge parser creation functions and wg_parser_connect.

Derek Lesho dlesho at codeweavers.com
Thu Sep 2 11:06:57 CDT 2021


So I've thought about this patch some more, and since the goal here is 
to make adding push-mode support more streamlined, I'm thinking that a 
bigger rework than this would be preferred.  In the current patch, we 
simply merge _create and _connect, having the read thread spin until the 
parser is ready (just like previously it spinned until sink_connect was 
true).  However, in push mode, we need to return from the creation 
function and move on to ::ProcessInput and ::ProcessOutput, so maybe it 
would be a better idea to have _create() handle everything to 
gst_element_set_state(pipeline, PAUSED), and restructure other functions 
(i.e. get_stream_count, get_stream, get_stream_duration) to block on the 
corresponding step of initialization.

This would keep the pull mode functions fundamentally the same, since 
they query for all this data right after the parser is initialized, but 
allow push-mode transforms to yield control to the consumer of the 
transform when gstreamer wants data.

I'm going to start work on this now, but if there are any better ideas, 
I'd love to hear them.




More information about the wine-devel mailing list