Support seeking as defined by the rfc

a PLAY with Range alone while in PLAY status should be interpreted
as an enqueue
a PAUSE followed by a PLAY with Range is the proper way to ask to
seek to a point.

See rfc2326

Originally committed as revision 19143 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Luca Barbato 2009-06-10 15:08:02 +00:00
parent 4db819bc7f
commit ec606b36b4
2 changed files with 4 additions and 0 deletions

View File

@ -1599,6 +1599,9 @@ static int rtsp_read_seek(AVFormatContext *s, int stream_index,
case RTSP_STATE_IDLE: case RTSP_STATE_IDLE:
break; break;
case RTSP_STATE_PLAYING: case RTSP_STATE_PLAYING:
if (rtsp_read_pause(s) != 0)
return -1;
rt->state = RTSP_STATE_SEEKING;
if (rtsp_read_play(s) != 0) if (rtsp_read_play(s) != 0)
return -1; return -1;
break; break;

View File

@ -151,6 +151,7 @@ enum RTSPClientState {
RTSP_STATE_IDLE, /**< not initialized */ RTSP_STATE_IDLE, /**< not initialized */
RTSP_STATE_PLAYING, /**< initialized and receiving data */ RTSP_STATE_PLAYING, /**< initialized and receiving data */
RTSP_STATE_PAUSED, /**< initialized, but not receiving data */ RTSP_STATE_PAUSED, /**< initialized, but not receiving data */
RTSP_STATE_SEEKING, /**< initialized, requesting a seek */
}; };
/** /**