[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://172.16.2.196:8554/Redbull_720.ts/ 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://172.16.2.196:8554/Redbull_720.ts/track1;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).

-- 
fenrir




More information about the vlc-devel mailing list