<font size="3"><span style="line-height: 24px;">Hello guys:</span></font><div><font size="3"><span style="line-height: 24px;">    I have a problem about how to pause a live source pipeline.(Gstreamer Version 1.2.0)</span></font></div><div><font size="3"><span style="line-height: 24px;">    I really have tried many times and searched many information from internet, but I still don't know how to do. So, I want to ask for help here.</span></font></div><div><font size="3"><span style="line-height: 24px;">    First, my pipeline is show as follows:</span></font></div><div><font size="3"><span style="line-height: 24px;">    </span></font><span style="line-height: 1.5;">gst-launch-1.0   \</span></div><div>            mpegtsmux name=mux \</div><div>            !  filesink location="/root/test/pause_test.ts" \</div><div>            \</div><div>            rtspsrc name=src  lanteny=200 location="rtsp://myip/stream"  \</div><div>            src. \  </div><div>            ! rtph264depay \</div><div>            ! queue  leaky=2  <span id="_editor_bookmark_start_2" style="display: none; line-height: 0px;">‍</span>\</div><div>            ! avdec_h264  \</div><div>            ! videorate  \</div><div>            ! videoscale \</div><div>            ! capsfilter caps="video/x-raw, format=(string)I420, width=1024, height=768, framerate=25/1"   \</div><div>            ! x264enc  tune=4 bitrate=4096 \</div><div>            ! video/x-h264, profile="high"  \</div><div>            ! mux. </div><div>            src. \</div><div>            ! fakesink name=audiofake</div><div><br></div><div><font size="3"><span style="line-height: 24px;">    Now, I want to record a file (MP4 or ts) via pipeline from rtspsrc to filesink </span></font><span style="font-size: medium; line-height: 24px;">plugin, the question is how can I pause when the file is recording.</span></div><div><span style="font-size: medium; line-height: 24px;"><br></span></div><div><font size="3"><span style="line-height: 24px;">    First,  I have tried to set pipeline GST_STATE_PAUSED<span id="_editor_bookmark_start_8" style="display: none; line-height: 0px;">‍</span></span></font><span style="line-height: 24px; font-size: medium;"> state directly when it is in state GST_STATE_PLAYING</span><span style="line-height: 24px; font-size: medium;">. And then, I can </span><font __editorwarp__="1" style="display: inline; font-size: 16px; font-family: Verdana; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); font-weight: normal; font-style: normal;">see GST_MESSAGE_STATE_CHANGED Bus Call Message, pipeline element and elements in pipeline states are all change to  GST_STATE_PAUSED, meanwhile, rtspsrc element occour an Error about " 无法从资源阅读(English meaning is: Unable to read from resource)" and  " 无法从资源写入(English meaning is: Unable to write from resources)" . After that, I set pipeline state to GST_STATE_PLAYING and the file can be recorded continue. Then, I set pipeline state to GST_STATE_NULL. Finally, I tried to play the recorded file.</font><font __editorwarp__="1" style="display: inline; font-size: 16px; font-family: Verdana; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); font-style: normal;"><b> The file can play in ubuntu but the pausing part is still in the file and the pausing part has no image</b></font><font __editorwarp__="1" style="display: inline; font-size: 16px; font-family: Verdana; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); font-weight: normal; font-style: normal;">. Besides, I try to set queue element leaky attribute to 0 and retry the steps above. There's something different, the file cannot recorded again after setting pause. Actually, I don't know why, I just try to set it as some guy said in the internet. I think it is because queue leaky attribute can make the data flow continue that the pipeline not died.</font><span style="line-height: 1.5;"><span id="_editor_bookmark_start_16" style="display: none; line-height: 0px;">‍</span></span></div><div><font __editorwarp__="1" style="display: inline; font-size: 16px; font-family: Verdana; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); font-weight: normal; font-style: normal;"><br></font></div><div><font __editorwarp__="1" style="display: inline; font-size: 16px; font-family: Verdana; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); font-weight: normal; font-style: normal;">     Secondly, somebody said I should set the segment in filesink element. So, I started to follow the ideas, I get the src-pad from queue first, set it to be leaky=downstream and block the src-pad via gst_pad_add_probe(...)<span id="_editor_bookmark_start_26" style="display: none; line-height: 0px;">‍</span>. Then, I try to pause the pipeline and remember the probe buffer pts as pause timestamp in the probe callback function, the video sub-pipeline paused but the audio sub-pipeline and rtspsrc element was still in playing state. After that, if I wasn't block(lock) the probe function to make it finish soon, the pipeline changed back to playing state automatically soon. So, I pause the pipeline through used a mutex to lock the function. When I want to continue recording the file, I unlock the probe function and the pipelin</font><font __editorwarp__="1" style="display: inline; font-size: 14px; font-family: Verdana; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); font-weight: normal; font-style: normal;">e sta</font><font __editorwarp__="1" style="display: inline; font-size: 16px; font-family: Verdana; color: rgb(0, 0, 0); background-color: rgba(0, 0, 0, 0); font-weight: normal; font-style: normal;">rted again automatically. At the same time, I got the rtph264depay-src pad and block it </font><span style="font-size: 16px; line-height: 24px;">via gst_pad_add_probe(...). I remember the probe buffer pts as continue timestamp. Last,  I sent event  and <b>set segment by </b></span><font size="3"><span style="line-height: 24px;"><b>gst_segment_to_stream_time(...) to filesink-sink, but there was no effects.</b> I don't know how to set a right segment in live pipeline, is there any examples?<span id="_editor_bookmark_start_29" style="display: none; line-height: 0px;">‍</span></span></font></div><div><br></div><div>      Actually, I want to know what's wrong with my step and if my steps are right, what details I should pay attention.  Is there some examples to my question?</div><div>      PS: My source code will be <span id="blng_part_tran_1_5" data-aligning="#blng_part_src_1_5,#blng_part_tran_1_5" class="" style="margin: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(67, 67, 67); font-family: Tahoma, Arial; font-size: 12px; line-height: 24px; background-color: rgb(242, 242, 242);">sent</span><span style="color: rgb(67, 67, 67); font-family: Tahoma, Arial; font-size: 12px; line-height: 24px; background-color: rgb(242, 242, 242);"> by </span><span id="blng_part_tran_1_6" data-aligning="#blng_part_src_1_6,#blng_part_tran_1_6" class="" style="margin: 0px; padding: 0px; border: 0px; outline: 0px; color: rgb(67, 67, 67); font-family: Tahoma, Arial; font-size: 12px; line-height: 24px; background-color: rgb(242, 242, 242);">attachment</span><span style="line-height: 1.5;">. <span id="_editor_bookmark_start_35" style="display: none; line-height: 0px;">‍</span></span></div><div><br></div><div><font size="3"><span style="line-height: 24px;">Regards<span id="_editor_bookmark_start_6" style="display: none; line-height: 0px;">‍</span>,</span></font></div><div><font size="3"><span style="line-height: 24px;">Neicole</span></font></div><div><font size="3"><span style="line-height: 24px;"><br></span></font></div>