summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorphintuka <phintuka>2006-07-22 20:13:18 +0000
committerphintuka <phintuka>2006-07-22 20:13:18 +0000
commitb065efd0b9a0dc0cc62ab0af0d023b0e5a832a6b (patch)
treedbe0b31ad183ba1a73453d2302537456f980a688
parentda30eaa25a832739ae4a02f1eb5bd46e20765d48 (diff)
downloadxineliboutput-b065efd0b9a0dc0cc62ab0af0d023b0e5a832a6b.tar.gz
xineliboutput-b065efd0b9a0dc0cc62ab0af0d023b0e5a832a6b.tar.bz2
*** empty log message ***
-rw-r--r--tools/udp_pes_scheduler.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/tools/udp_pes_scheduler.c b/tools/udp_pes_scheduler.c
index 7d6bce13..66fd95cd 100644
--- a/tools/udp_pes_scheduler.c
+++ b/tools/udp_pes_scheduler.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: udp_pes_scheduler.c,v 1.9 2006-07-21 22:52:50 phintuka Exp $
+ * $Id: udp_pes_scheduler.c,v 1.10 2006-07-22 20:13:18 phintuka Exp $
*
*/
@@ -668,19 +668,19 @@ void cUdpScheduler::ReSend(int fd, uint64_t Pos, int Seq1, int Seq2)
((stream_udp_header_t *)udp_ctrl)->seq = (uint16_t)(-1);
((stream_udp_header_t *)udp_ctrl)->pos = (uint64_t)(-1);
- cMutexLock ml(&m_Lock); // keeps also scheduler thread suspended ...
-
// Handle buffer wrap
if(Seq1 > Seq2)
Seq2 += UDP_BUFFER_SIZE;
+ cMutexLock ml(&m_Lock); // keeps also scheduler thread suspended ...
+
if(Seq2-Seq1 > 64) {
LOGDBG("cUdpScheduler::ReSend: requested range too large (%d-%d)",
Seq1, Seq2);
sprintf((udp_ctrl+sizeof(stream_udp_header_t)),
"UDP MISSING %d-%d %" PRIu64,
- Seq1, Seq2, Pos);
+ Seq1, (Seq2 & UDP_BUFFER_MASK), Pos);
send(fd, udp_ctrl, 64, 0);
return;
}