<div dir="ltr">Hello all. <br><div><br></div><div>I have some application, which receives the stream from rtsp and dumps it to the files. </div><div>Method is like this:</div><div><b>Left pipe </b>part<b>:</b></div><div>rtspsrc -> rtph264depay -> appsink(samples)-> [handmadebuffer] </div><div><b>Right pipe </b>part:</div><div>[handmadebuffer] -> appsrc(samples)->h264parse->splitmuxsink.</div><div>It working fine. When I want to stop just <b>Right</b> part I'm calling </div><div><i>gst_element_send_event (pipeline, gst_event_new_eos());</i></div><div>And it works fine. The <b>Right</b> part pipe correctly finishes.  </div><div>I have Bus_on_message callbacks which process EOS and ERROR messages and it works fine for both pipes.</div><div>BUT.</div><div>When I just plug-off my rtsp source (pull-out network cable) I have the correct EOS message for <b>Left</b> pipe and from my on_eos_message callback for <b>Left</b> pipe, I call gst_element_send_event (pipeline, gst_event_new_eos()) for my <b>Right</b> pipe. And the magic begins to happen... g_main_loop for <b>Right</b> pipe just hangs. No EOS messages for <b>Right</b> pipe. Nothing. Using gdb I've attached to my app and made a bt for that thread:</div><div>(<b>gdb) bt<br>#0  syscall () at ../sysdeps/unix/sysv/linux/x86_64/syscall.S:38<br>#1  0x00007ff9e3c15483 in g_cond_wait () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0<br>#2  0x00007ff9e3bc5105 in  () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0<br>#3  0x00007ff9e3bc8598 in g_main_loop_run () at /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0</b><br></div><div><b><br></b></div><div>Here is bt head above my functions.</div><div><b><br></b></div><div>Does anybody know how to proceed with this? Googe did not help much with this :(</div><div><br></div><div>Thank you in advance,</div><div>Best regards,</div><div>Anton.</div></div>