mirror of https://github.com/mpv-player/mpv
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
This commit is contained in:
parent
f8dcd9f789
commit
8927f24348
|
@ -359,7 +359,15 @@ int real_get_rdt_chunk(rtsp_t *rtsp_session, char **buffer, int rdt_rawdata) {
|
||||||
#ifdef LOG
|
#ifdef LOG
|
||||||
printf("got flags1: 0x%02x\n",flags1);
|
printf("got flags1: 0x%02x\n",flags1);
|
||||||
#endif
|
#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");
|
mp_msg(MSGT_STREAM, MSGL_INFO, "realrtsp: Stream EOF detected\n");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue