From 32c1bf7c8be08c6016e7e9820c69baa31e38aba2 Mon Sep 17 00:00:00 2001 From: lordjaxom Date: Sat, 30 Apr 2005 14:59:56 +0000 Subject: [PATCH] - fixed wrong remux usage --- server/streamer.c | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/server/streamer.c b/server/streamer.c index 9ca4091..9369862 100644 --- a/server/streamer.c +++ b/server/streamer.c @@ -1,5 +1,5 @@ /* - * $Id: streamer.c,v 1.11 2005/04/27 19:43:09 lordjaxom Exp $ + * $Id: streamer.c,v 1.12 2005/04/30 14:59:56 lordjaxom Exp $ */ #include @@ -36,10 +36,14 @@ void cStreamdevWriter::Action(void) cTBSelect sel; Dprintf("Writer start\n"); int max = 0; + uchar *block = NULL; + int count, offset = 0; m_Active = true; while (m_Active) { - int count; - uchar *block = m_Streamer->Get(count); + if (block == NULL) { + block = m_Streamer->Get(count); + offset = 0; + } if (block) { sel.Clear(); @@ -51,13 +55,18 @@ void cStreamdevWriter::Action(void) if (sel.CanWrite(*m_Socket)) { int written; - if ((written = m_Socket->Write(block, count)) == -1) { + if ((written = m_Socket->Write(block + offset, count)) == -1) { esyslog("ERROR: streamdev-server: couldn't send data: %m"); break; } if (count > max) max = count; + + offset += written; + count -= written; m_Streamer->Del(written); + if (count == 0) + block = NULL; } } }