[vlc-devel] RTSP trickplay - libvlc_media_player_set_rate support for fast forward/rewind

Laurent Aimar fenrir at elivagar.org
Sun May 29 11:07:57 CEST 2011

On Sun, May 29, 2011 at 11:53:54AM +0300, Kaarlo Räihä wrote:
> 2011/5/29 Nuno Mota <ee05154 at fe.up.pt>
>     So i've been using VLC java bindings for a few days to create a RTSP client
>     to work with my Live555 RTSP Server implementation. 
>     Both commands play and pause work fine for me. Seek is working fine and the
>     playback works great after all these commands. However there's a few
>     remarks relating to fast forward and fast rewind. Fast forward works fine,
>     it moves along great but sometimes the current media position is set to
>     values way back the timeline. When I issue the command setRate(1), the
>     video is played again at the same rate but it skips some frames I think,
>     because the playback looks a little bit jumpy. I always get the same output
>     when i do this:
>     libdvbpsi error (PSI decoder): TS discontinuity (received 10, expected 15)
>     for PID 0
>     libdvbpsi error (PSI decoder): TS discontinuity (received 10, expected 0)
>     for PID 4095
>     libdvbpsi error (PSI decoder): TS duplicate (received 12, expected 13) for
>     PID 17
>     I see no other issues concerning Fast forward. Relative to fast rewind the
>     source code in the control section in media_player.c in line 1149 
>     int libvlc_media_player_set_rate( libvlc_media_player_t *p_mi, float rate )
>     {
>         if (rate < 0.)
>         {
>             libvlc_printerr ("Playing backward not supported");
>             return -1;
>         }
>     Playing backwards is not supported playing from a disc file, i've tested it
>     myself, however, when streaming from an Internet source the case is quite
>     different. I commented the above lines to produce something similar to fast
>     forward and the result was successful.
>     PLAY rtsp:// RTSP/1.0
>     CSeq: 11
>     User-Agent: LibVLC/1.1.9 (LIVE555 Streaming Media v2010.11.17)
>     Session: 68C9705
>     Scale: -2.000000
>     RTSP/1.0 200 OK
>     CSeq: 11
>     Date: Fri, May 27 2011 14:41:49 GMT
>     Scale: -2.000000
>     Session: 68C97056
>     RTP-Info: url=rtsp://;seq=13622;
>     rtptime=210151468
>     The playback was as good as the fast forward results. So here's my question
>     why is it still not supported for streaming? I see no other problems as the
>     ones that exist to still make this not supported. I'm kindly accepting
>     responses and comments and other stuff to make this a more interesting
>     topic.
> AFAIK it would be somewhat ugly hack in libvlc to add support like this for
> single access method (discs aren't the only problematic thing) with simple code
> change. But if there would be internal variable (e.g. b_can_play_backwards) and
> code for this in rtsp access, I don't think that patch would be opposed that
> much. 

 The input code does declare weither or not rewinding is supported for the current input
("can-rewind" variable of the input_thread_t object).


More information about the vlc-devel mailing list