From 5f0a0e39e4b2c823b164acb4356d7aab9953e041 Mon Sep 17 00:00:00 2001 From: rtognimp Date: Mon, 18 Oct 2004 20:08:12 +0000 Subject: EOF detection (fix hanging at end of stream) git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@13677 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/realrtsp/real.c | 4 ++++ libmpdemux/realrtsp/rtsp_session.c | 2 ++ 2 files changed, 6 insertions(+) diff --git a/libmpdemux/realrtsp/real.c b/libmpdemux/realrtsp/real.c index ae5b469cfd..565a9b7e8e 100644 --- a/libmpdemux/realrtsp/real.c +++ b/libmpdemux/realrtsp/real.c @@ -618,6 +618,10 @@ int real_get_rdt_chunk(rtsp_t *rtsp_session, char **buffer) { #ifdef LOG printf("got flags1: 0x%02x\n",flags1); #endif + if(header[6] == 0x06) { + printf("Stream EOF detected\n"); + return -1; + } header[0]=header[5]; header[1]=header[6]; header[2]=header[7]; diff --git a/libmpdemux/realrtsp/rtsp_session.c b/libmpdemux/realrtsp/rtsp_session.c index 013e4fe2bc..89cd140340 100644 --- a/libmpdemux/realrtsp/rtsp_session.c +++ b/libmpdemux/realrtsp/rtsp_session.c @@ -169,6 +169,8 @@ int rtsp_session_read (rtsp_session_t *this, char *data, int len) { dest += fill; this->recv_read = 0; this->recv_size = real_get_rdt_chunk (this->s, (char **)&(this->recv)); + if (this->recv_size < 0) + return -1; source = this->recv; fill = this->recv_size; -- cgit v1.2.3