From 8927f243487559b5741a09b4ff4bfd58957b23ca Mon Sep 17 00:00:00 2001 From: rtogni Date: Tue, 20 Mar 2007 22:32:38 +0000 Subject: Declare eof only when stream 0 gets eof Fixes premature eof on rtsp://vodreal.stanford.edu/opa/philo/061022.rm git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@22768 b3059339-0415-0410-9bf9-f77b7e298cf2 --- stream/realrtsp/real.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'stream') diff --git a/stream/realrtsp/real.c b/stream/realrtsp/real.c index beb115f320..7495dab2f3 100644 --- a/stream/realrtsp/real.c +++ b/stream/realrtsp/real.c @@ -359,7 +359,15 @@ int real_get_rdt_chunk(rtsp_t *rtsp_session, char **buffer, int rdt_rawdata) { #ifdef LOG printf("got flags1: 0x%02x\n",flags1); #endif - if(header[6] == 0x06) { + if(header[6] == 0x06) { // eof packet + rtsp_read_data(rtsp_session, header, 7); // Skip the rest of the eof packet + /* Some files have short auxiliary streams, we must ignore eof packets + * for these streams to avoid premature eof. + * Now the code declares eof only if the stream with id == 0 gets eof + * (old code was: eof on the first eof packet received). + */ + if(flags1 & 0x7c) // ignore eof for streams with id != 0 + return 0; mp_msg(MSGT_STREAM, MSGL_INFO, "realrtsp: Stream EOF detected\n"); return -1; } -- cgit v1.2.3