diff options
-rw-r--r-- | CHANGELOG | 3 | ||||
-rw-r--r-- | osdworker.c | 3 | ||||
-rw-r--r-- | streamdevice.c | 5 |
3 files changed, 9 insertions, 2 deletions
@@ -92,3 +92,6 @@ Changelog 2007-09-28: - added compiling switch 'FFNETDEV_DEBUG' + 2009-07-02 + - fixed a Bug. Is now stable. +
\ No newline at end of file diff --git a/osdworker.c b/osdworker.c index 46a929e..91c8c9b 100644 --- a/osdworker.c +++ b/osdworker.c @@ -143,7 +143,7 @@ bool cOSDWorker::SendPlayMode(ePlayMode PlayMode) { void cOSDWorker::CreateSendBuffer(int SendBufferSize) { - if (SendBufferSize != m_SendBufferSize) + if (SendBufferSize > m_SendBufferSize) { if (m_pSendBuffer != NULL) delete [] m_pSendBuffer; @@ -307,6 +307,7 @@ bool cOSDWorker::SendCMAP(int NumColors, const tColor *Colors) if ((m_Instance->state==HANDSHAKE_OK) && !(m_Instance->ClientFormat.trueColour)) { dsyslog("[ffnetdev] VNC: SendColourMapEntries\n"); scme.type=rfbSetColourMapEntries; + scme.pad = 0; scme.firstColour = Swap16IfLE(0); scme.nColours = Swap16IfLE((CARD16)NumColors); diff --git a/streamdevice.c b/streamdevice.c index 48cfa22..4440c89 100644 --- a/streamdevice.c +++ b/streamdevice.c @@ -63,6 +63,7 @@ bool cStreamDevice::SetPlayMode(ePlayMode PlayMode) if (PlayMode == pmNone) { m_PlayState = psBufferReset; + m_Remux->ClearOutput(); m_Remux->ClearInput(); m_Remux->ClearOutput(); } @@ -187,6 +188,7 @@ int cStreamDevice::PlayAudio(const uchar *Data, int Length, uchar Id) (m_Remux->Fill() > TCP_SEND_SIZE * 10)))) && (cTSWorker::HaveStreamClient())) cCondWait::SleepMs(1); + int result=m_Remux->Put(Data, Length); if (result!=Length) { dsyslog("[ffnetdev] Device: Did not put all in input buffer(audio). result:%d Length: %d Skipping Audio PES packet...\n", result, Length ); @@ -218,7 +220,8 @@ int cStreamDevice::PlayVideo(const uchar *Data, int Length) ((m_Playing) && ((m_Remux->InputFree() < Length) || (m_Remux->Fill() > TCP_SEND_SIZE * 10)))) && (cTSWorker::HaveStreamClient())) - cCondWait::SleepMs(1); + cCondWait::SleepMs(1); + int result=m_Remux->Put(Data, Length); if (result!=Length) { dsyslog("[ffnetdev] Device: Did not put all in input buffer(video). result:%d Length: %d Skipping Video PES packet...\n", result, Length ); |