<html><head></head><body><div style="color:#000; background-color:#fff; font-family:lucida console, sans-serif;font-size:13px"><div id="yui_3_16_0_ym19_1_1503614056161_6112">Hi,</div><div id="yui_3_16_0_ym19_1_1503614056161_6113"><br></div><div id="yui_3_16_0_ym19_1_1503614056161_6114">I am writing a python player using playbin. GStreamer version is 1.12.2.</div><div id="yui_3_16_0_ym19_1_1503614056161_6377"><br></div><div id="yui_3_16_0_ym19_1_1503614056161_6254">Pausing and playing work well until I disable audio.<br></div><div id="yui_3_16_0_ym19_1_1503614056161_6192"><br></div><div id="yui_3_16_0_ym19_1_1503614056161_6193">To disable audio, I set the audio-sink property of the playbin to a fakesink (as indicated in the playbin documentation).</div><div id="yui_3_16_0_ym19_1_1503614056161_6376">The pipeline is created with:</div><div id="yui_3_16_0_ym19_1_1503614056161_6363" dir="ltr"> self.pipeline = Gst.ElementFactory.make("playbin", "player")<br id="yui_3_16_0_ym19_1_1503614056161_6366"> self.pipeline.set_property("audio-sink", Gst.ElementFactory.make("fakesink"))</div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_6367"><br></div><div id="yui_3_16_0_ym19_1_1503614056161_6265">When the playbin is configured as such, changing state from PLAYING to PAUSED will not complete (although video is effectively "paused").</div><div id="yui_3_16_0_ym19_1_1503614056161_6308">Neither ASYNC_DONE nor STATE_CHANGED messages are posted on the bus.</div><br><div id="yui_3_16_0_ym19_1_1503614056161_6312">Once in that state, going back to PLAYING state will also not complete.<br></div><div id="yui_3_16_0_ym19_1_1503614056161_6555"><br></div><div id="yui_3_16_0_ym19_1_1503614056161_4193" dir="ltr">Same happens with playbin3.</div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_10184"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_10192">While writing this message, I tried to set the "sync" property of the fakesink to true and everything started to work as expected!!!</div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_10260"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_10261">Still, playbins should not just go in that indeterminate state if a plain fakesink is used as audio sink.</div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_10269">Or, at least, the playbin doc should mention that the fakesink must be synchronized.</div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_10318"><br></div><div id="yui_3_16_0_ym19_1_1503614056161_12161">PS: There must be a better way to disable audio ? With the fakesink approach, the whole audio playing branch is constructed, which is a waste.</div><div id="yui_3_16_0_ym19_1_1503614056161_12171"><br></div><div dir="ltr" id="yui_3_16_0_ym19_1_1503614056161_12173">PPS: The goal of disabling audio was to investigate video glitches when unpausing. I'll post another message about that.<br></div><div id="yui_3_16_0_ym19_1_1503614056161_6500"><br></div></div></body></html>