[PATCH v2 2/2] winegstreamer: Wait for duration-changed message before duration query.

Connor McAdams cmcadams at codeweavers.com
Thu Apr 29 10:42:58 CDT 2021


On Thu, Apr 29, 2021 at 10:36:39PM +0700, Anton Baskanov wrote:
> Unfortunately, this breaks WMA playback. Looks like GstASFDemux does not send 
> duration-changed, and the duration is available immediately.
Yes, this was something I was afraid of. I guess the more correct
behavior would be to check duration, and if it fails, then have the
duration_changed check. Or, only enable the check depending on the
format type. I will ask Zebediah for her opinion on this in IRC, if she
doesn't get to this before then.

> 
> On среда, 28 апреля 2021 г. 23:15:26 +07 you wrote:
> > Signed-off-by: Connor McAdams <cmcadams at codeweavers.com>
> > ---
> >  dlls/winegstreamer/wg_parser.c | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/dlls/winegstreamer/wg_parser.c b/dlls/winegstreamer/wg_parser.c
> > index f90362981df..2041cf713fc 100644
> > --- a/dlls/winegstreamer/wg_parser.c
> > +++ b/dlls/winegstreamer/wg_parser.c
> > @@ -1553,7 +1553,7 @@ static HRESULT CDECL wg_parser_connect(struct
> > wg_parser *parser, uint64_t file_s {
> >          struct wg_parser_stream *stream = parser->streams[i];
> > 
> > -        while (!stream->has_caps && !parser->error)
> > +        while ((!stream->has_caps || !parser->has_duration) &&
> > !parser->error) pthread_cond_wait(&parser->init_cond, &parser->mutex);
> > stream->duration = query_duration(stream->their_src);
> >          if (parser->error)
> 
> 
> 
> 



More information about the wine-devel mailing list