summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzwer <zwer@1f4bef6d-8e0a-0410-8695-e467da8aaccf>2009-07-05 21:14:32 +0000
committerzwer <zwer@1f4bef6d-8e0a-0410-8695-e467da8aaccf>2009-07-05 21:14:32 +0000
commitd68e6e1b6b06c9fd5198082b256a959a34dad5e4 (patch)
tree9c4266c48fc4c92a49f3fe6918d4e92c9d7bbbbc
parent5bf410e25a0029041653ebecc93ca8c60ee8df04 (diff)
downloadvdr-plugin-ffnetdev-d68e6e1b6b06c9fd5198082b256a959a34dad5e4.tar.gz
vdr-plugin-ffnetdev-d68e6e1b6b06c9fd5198082b256a959a34dad5e4.tar.bz2
- Bugfix. Jetzt noch stabiler in Verbindung mit VLC.
git-svn-id: svn://svn.berlios.de/ffnetdev/trunk@36 1f4bef6d-8e0a-0410-8695-e467da8aaccf
-rw-r--r--CHANGELOG3
-rw-r--r--osdworker.c3
-rw-r--r--streamdevice.c5
3 files changed, 9 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG
index f2f7af5..7aac301 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -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 );