GNOME Bugzilla – Bug 731830
Output-selector switching active-pad doesn't work when you directly connected to sink.
Last modified: 2018-01-23 10:50:59 UTC
Pipeline look like gst-launch-1.0 filesrc location=/filepath ! wavparse ! output-selector name=os os. ! alsasink async=true os. ! alsasink async=false I am trying this pipeline through code. First I set one of alsasink async=true other as async=false to preroll. After that I am setting both the sinks async=false. We output-selector is connected to prerolled sink playback is fine. But when it is connected to othersink (i.e at the beginning or once i change active pad to this un prerolled sink) it is not playing and giving below error: basesink gstbasesink.c:2198:gst_base_sink_do_preroll:<sink2>[00m prerolling object 0xb2403370 basesink gstbasesink.c:2217:gst_base_sink_do_preroll:<sink2>[00m preroll buffer 0:00:09.800000000 audiobasesink gstaudiobasesink.c:1104:gst_audio_base_sink_preroll:<sink2>[00m ringbuffer in wrong state audiobasesink gstaudiobasesink.c:1105:gst_audio_base_sink_preroll:<sink2>[00m error: sink not negotiated. But when I connected to same with mp3 playback by placing output-selector in between parser and decoder (... mpegaudioparse ! output-selector name=os os.! mad ! alsasink os. ! mad ! alsasink) It works fine for any number of time switching active-pad of output-selector. But if you place output-selector after decoder i.e directly to sink. It is giving same error as above.
I think the solution to this is same as https://bugzilla.gnome.org/show_bug.cgi?id=729811
Sukesh, can you confirm that the patch from bug #729811 fixes your problem too?
Ping
Closing this bug report as no further information has been provided. Please feel free to reopen this bug report if you can provide the information that was asked for in a previous comment. Thanks!