summaryrefslogtreecommitdiff
path: root/tools/udp_pes_scheduler.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/udp_pes_scheduler.c')
-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;
}