diff options
-rw-r--r-- | CHANGELOG | 10 | ||||
-rw-r--r-- | osdworker.c | 4 | ||||
-rw-r--r-- | streamdevice.c | 15 |
3 files changed, 21 insertions, 8 deletions
@@ -23,3 +23,13 @@ Changelog - fixed PES2TS remuxer: PES packets shorter than TS payload size(184 bytes) did not have the PUSI (payload unit start indicator) flag set - reworked PES2TS remuxer code and added a mutex to synchronize input ringbuffer access + + 2006-02-19: ffnetdev-0.1.0 + - optimize for DBOX2-Plugin VDR-Viewer https://developer.berlios.de/projects/vdrviewer/ + - add VNC compression (RRE, Hextile) + - start learning remote if accept client, no more if start plugin + - added auto change primary DVB feature (enable/deisable in plugin settings) + - fixed several bugs + + 2006-02-20: ffnetdev-0.1.1 + - fixed buffer overflow bug
\ No newline at end of file diff --git a/osdworker.c b/osdworker.c index f8f67cd..37c3037 100644 --- a/osdworker.c +++ b/osdworker.c @@ -431,14 +431,14 @@ void cOSDWorker::HandleClientRequests(cTBSelect *select) case rfbEncodingCoRRE: if (m_pEncoder == NULL) { - isyslog("[ffnetdev] VNC: ->CoRRE encoding(not supported).\n"); + isyslog("[ffnetdev] VNC: ->CoRRE encoding(hav a bug).\n"); m_pEncoder = new vncEncodeCoRRE(); } break; case rfbEncodingHextile: if (m_pEncoder == NULL) { - isyslog("[ffnetdev] VNC: ->Hextile encoding(not supported).\n"); + isyslog("[ffnetdev] VNC: ->Hextile encoding.\n"); m_pEncoder = new vncEncodeHexT(); } break; diff --git a/streamdevice.c b/streamdevice.c index 9c9aef1..5805043 100644 --- a/streamdevice.c +++ b/streamdevice.c @@ -114,7 +114,8 @@ bool cStreamDevice::Poll(cPoller &Poller, int TimeoutMs) */ int cStreamDevice::PlayAudio(const uchar *Data, int Length) { - if (cTSWorker::HaveStreamClient()) { + if (cTSWorker::HaveStreamClient()) + { while ((m_Remux->Free() < Length) && cTSWorker::HaveStreamClient()) cCondWait::SleepMs(1); int result=m_Remux->Put(Data, Length); @@ -132,8 +133,8 @@ int cStreamDevice::PlayAudio(const uchar *Data, int Length) else { m_Remux->ClearInput(); - usleep(100000); - return ( 0 ); +// usleep(10000); + return ( Length ); } } @@ -142,7 +143,9 @@ int cStreamDevice::PlayAudio(const uchar *Data, int Length) */ int cStreamDevice::PlayVideo(const uchar *Data, int Length) { - if (cTSWorker::HaveStreamClient()) { + if (cTSWorker::HaveStreamClient()) + { + while ((m_Remux->Free() < Length) && cTSWorker::HaveStreamClient()) cCondWait::SleepMs(1); int result=m_Remux->Put(Data, Length); @@ -160,7 +163,7 @@ int cStreamDevice::PlayVideo(const uchar *Data, int Length) else { m_Remux->ClearInput(); - usleep(100000); - return ( 0 ); +// usleep(10000); + return ( Length ); } } |