<div dir="ltr"><div><div>Hi,<br><br>In my current implementation of an gstreamer demuxer plugin i am facing some trickmode support issues<br><br>I red Sebastain Dröge gstreamer trick mode support power-point document and 
also gstreamer design part-trickmodes.txt, part-synchronisation.txt and implemented things as said
 there but still have a problem only with reverse playback mode. <br><br></div><div>when the seek event is received, my element asks the server to switch to reverse playback with the given segment.rate.<br>because
 the server do the actual job and sends only Key Frames with 
increasing timestamps going from 0 to, let say, 10s in order to be 
played at x1 (normal playback). and as indicated in part-trickmodes.txt 
for server side trick modes, I tried the following:<br><br>Segment event:<br>a segment 
event is created using  <b>SEGMENT.applied_rate</b> set to the actual rate and <b>SEGMENT.rate</b> set to 1.0 and is sent before start sending buffers in the 
same thread (streaming thread).<br><br></div><div>Media buffers:<br></div><div>then I tried to to modify buffers timestamps as follow:<br></div><div> 1 - the received timestamps are transformed to go backward starting from segment.stop to segment.start<br> 2-  the received timestamps are transformed to go forward starting from segment.stop<br><br></div><div>the result is that the video freezes and the stream position (stream time) continue forward! as said in part-trickmodes.txt stream position should go back to SEGMENT.start<br><br></div><div>for
 fastforward, setting segment.applied_rate set to the rate and 
segment.rate set to 1.0 and translating timestamps to start from 
segment.start  allowed to play successfully the scaled stream<br></div><div><br></div><div>is
 there anything else to set. when setting segment.applied_rate to the 
server rate and segment.rate to 1.0, should I update the other fields ? 
from where timestamps should start and stop.<br><br></div><b>in part-synchronisation.txt it is said that:</b><br><br></div>running time:<br><br><div><pre style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:13.3333px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255)"><code>B.running_time = (B.timestamp - (S.start + S.offset)) / ABS (S.rate) + S.base</code></pre><br></div><div>stream time:<br><br><pre style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:13.3333px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255)"><code>stream_time = (B.timestamp - S.start) * ABS (S.applied_rate) + S.time<br></code><br></pre></div><div><div><div><div><font size="4"><span style="color:rgb(255,0,0)"><br></span></font></div><div><font size="4"><span style="color:rgb(0,0,0)">but for server side trick mode when<code> setting S.rate</code> == 1.0 and<code> S.applied_rate</code> == -2,<code>  <span style="color:rgb(255,0,0)">B.running_time is going backward! since</span></code><span style="color:rgb(255,0,0)"><code> B.timestamp </code><br></span></span></font><pre style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:13.3333px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255)"><code><font size="4"><span style="color:rgb(255,0,0)">is going backward from S.stop to S.start</span></font><br><br></code></pre><pre style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:13.3333px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255)"><code>could you confirm<br><br></code></pre><pre style="padding:0px;margin:0px;color:rgb(0,0,0);font-size:13.3333px;font-style:normal;font-variant:normal;font-weight:normal;letter-spacing:normal;line-height:normal;text-align:start;text-indent:0px;text-transform:none;word-spacing:0px;background-color:rgb(255,255,255)"><code>also, is there any possible workaround or any other maner to get this working?<br> <br></code></pre></div><div><br></div><font size="4">Thanks a lot for your help<br><br></font></div><div><font size="4">Fateh,<br></font></div></div></div></div>