diff options
Diffstat (limited to 'client')
-rw-r--r-- | client/device.c | 8 | ||||
-rw-r--r-- | client/device.h | 1 | ||||
-rw-r--r-- | client/filter.c | 155 | ||||
-rw-r--r-- | client/filter.h | 3 | ||||
-rw-r--r-- | client/po/de_DE.po | 31 | ||||
-rw-r--r-- | client/po/es_ES.po | 31 | ||||
-rw-r--r-- | client/po/fi_FI.po | 29 | ||||
-rw-r--r-- | client/po/fr_FR.po | 31 | ||||
-rw-r--r-- | client/po/it_IT.po | 31 | ||||
-rw-r--r-- | client/po/lt_LT.po | 31 | ||||
-rw-r--r-- | client/po/pl_PL.po | 5 | ||||
-rw-r--r-- | client/po/ru_RU.po | 31 | ||||
-rwxr-xr-x | client/po/sk_SK.po | 6 | ||||
-rw-r--r-- | client/setup.c | 5 | ||||
-rw-r--r-- | client/setup.h | 1 |
15 files changed, 242 insertions, 157 deletions
diff --git a/client/device.c b/client/device.c index 3bc0dbd..25825b8 100644 --- a/client/device.c +++ b/client/device.c @@ -282,6 +282,14 @@ int cStreamdevDevice::OpenFilter(u_short Pid, u_char Tid, u_char Mask) { return -1; } +void cStreamdevDevice::CloseFilter(int Handle) { + + if(m_Filters) + m_Filters->CloseFilter(Handle); + else + esyslog("cStreamdevDevice::CloseFilter called while m_Filters is null"); +} + bool cStreamdevDevice::ReInit(bool Disable) { LOCK_THREAD; m_Disabled = Disable; diff --git a/client/device.h b/client/device.h index c4e3a43..9d4bedb 100644 --- a/client/device.h +++ b/client/device.h @@ -45,6 +45,7 @@ protected: virtual bool GetTSPacket(uchar *&Data); virtual int OpenFilter(u_short Pid, u_char Tid, u_char Mask); + virtual void CloseFilter(int Handle); public: cStreamdevDevice(void); diff --git a/client/filter.c b/client/filter.c index 8606770..cf18fd5 100644 --- a/client/filter.c +++ b/client/filter.c @@ -6,12 +6,16 @@ #include "client/socket.h" #include "tools/select.h" #include "common.h" +#include <sys/ioctl.h> +#include <string.h> #include <vdr/device.h> #define PID_MASK_HI 0x1F // --- cStreamdevFilter ------------------------------------------------------ +static int FilterSockBufSize_warn = 0; + class cStreamdevFilter: public cListObject { private: uchar m_Buffer[4096]; @@ -20,6 +24,10 @@ private: u_short m_Pid; u_char m_Tid; u_char m_Mask; +#ifdef TIOCOUTQ + unsigned long m_maxq; + unsigned long m_flushed; +#endif public: cStreamdevFilter(u_short Pid, u_char Tid, u_char Mask); @@ -29,7 +37,6 @@ public: bool PutSection(const uchar *Data, int Length, bool Pusi); int ReadPipe(void) const { return m_Pipe[0]; } - bool IsClosed(void); void Reset(void); u_short Pid(void) const { return m_Pid; } @@ -47,6 +54,10 @@ cStreamdevFilter::cStreamdevFilter(u_short Pid, u_char Tid, u_char Mask) { m_Tid = Tid; m_Mask = Mask; m_Pipe[0] = m_Pipe[1] = -1; +#ifdef TIOCOUTQ + m_flushed = 0; + m_maxq = 0; +#endif #ifdef SOCK_SEQPACKET // SOCK_SEQPACKET (since kernel 2.6.4) @@ -58,7 +69,46 @@ cStreamdevFilter::cStreamdevFilter(u_short Pid, u_char Tid, u_char Mask) { esyslog("streamdev-client: couldn't open section filter socket: %m"); } - else if(fcntl(m_Pipe[0], F_SETFL, O_NONBLOCK) != 0 || + // Set buffer for socketpair. During certain situations, such as startup, channel/transponder + // change, VDR may lag in reading data. Instead of discarding it, we can buffer it. + // Buffer size required may be up to 4MByte. + + if(StreamdevClientSetup.FilterSockBufSize) { + int sbs = StreamdevClientSetup.FilterSockBufSize; + int sbs2; + unsigned int sbss = sizeof(sbs); + int r; + + r = setsockopt(m_Pipe[1], SOL_SOCKET, SO_SNDBUF, (char *)&sbs, sbss); + + if(r < 0) { + isyslog("streamdev-client: setsockopt(SO_SNDBUF, %d) = %s", sbs, strerror(errno)); + } + sbs2 = 0; + r = getsockopt(m_Pipe[1], SOL_SOCKET, SO_SNDBUF, (char *)&sbs2, &sbss); + if(r < 0 || !sbss || !sbs2) { + isyslog("streamdev-client: getsockopt(SO_SNDBUF, &%d, &%d) = %s", sbs2, sbss, strerror(errno)); + } else { + // Linux actually returns double the requested size + // if everything works fine. And it actually buffers up to that double amount + // as can be seen from observing TIOCOUTQ (kernel 3.7/2014). + + if(sbs2 > sbs) + sbs2 /= 2; + if(sbs2 < sbs) { + if(FilterSockBufSize_warn != sbs2) { + isyslog("streamdev-client: ******************************************************"); + isyslog("streamdev-client: getsockopt(SO_SNDBUF) = %d < %d (configured).", sbs2, sbs); + isyslog("streamdev-client: Consider increasing system buffer size:"); + isyslog("streamdev-client: 'sysctl net.core.wmem_max=%d'", sbs); + isyslog("streamdev-client: ******************************************************"); + FilterSockBufSize_warn = sbs2; + } + } + } + } + + if(fcntl(m_Pipe[0], F_SETFL, O_NONBLOCK) != 0 || fcntl(m_Pipe[1], F_SETFL, O_NONBLOCK) != 0) { esyslog("streamdev-client: couldn't set section filter socket to non-blocking mode: %m"); } @@ -67,11 +117,12 @@ cStreamdevFilter::cStreamdevFilter(u_short Pid, u_char Tid, u_char Mask) { cStreamdevFilter::~cStreamdevFilter() { Dprintf("~cStreamdevFilter %p\n", this); - // ownership of handle m_Pipe[0] has been transferred to VDR section handler - //if (m_Pipe[0] >= 0) - // close(m_Pipe[0]); - if (m_Pipe[1] >= 0) + if (m_Pipe[0] >= 0) { + close(m_Pipe[0]); + } + if (m_Pipe[1] >= 0) { close(m_Pipe[1]); + } } bool cStreamdevFilter::PutSection(const uchar *Data, int Length, bool Pusi) { @@ -94,13 +145,42 @@ bool cStreamdevFilter::PutSection(const uchar *Data, int Length, bool Pusi) { int length = (((m_Buffer[1] & 0x0F) << 8) | m_Buffer[2]) + 3; if (m_Used == length) { m_Used = 0; - if (write(m_Pipe[1], m_Buffer, length) < 0) { - if(errno == EAGAIN || errno == EWOULDBLOCK) - dsyslog("cStreamdevFilter::PutSection socket overflow, " - "Pid %4d Tid %3d", m_Pid, m_Tid); +#ifdef TIOCOUTQ + // If we can determine the queue size of the socket, + // we flush rather then let the socket drop random packets. + // This ensures that we have more contiguous set of packets + // on the receiver side. + if(m_flushed) { + unsigned long queue = 0; + ioctl(m_Pipe[1], TIOCOUTQ, &queue); + if(queue > m_maxq) + m_maxq = queue; + if(queue * 2 < m_maxq) { + dsyslog("cStreamdevFilter::PutSection(Pid:%d Tid: %d): " + "Flushed %ld bytes, max queue: %ld", + m_Pid, m_Tid, m_flushed, m_maxq); + m_flushed = m_maxq = 0; - else + } else { + m_flushed += length; + } + } + if(!m_flushed) +#endif + if(write(m_Pipe[1], m_Buffer, length) < 0) { + if(errno != EAGAIN && errno != EWOULDBLOCK) { + dsyslog("cStreamdevFilter::PutSection(Pid:%d Tid: %d): error: %s", + m_Pid, m_Tid, strerror(errno)); return false; + } else { +#ifdef TIOCOUTQ + m_flushed += length; +#else + dsyslog("cStreamdevFilter::PutSection(Pid:%d Tid: %d): " + "Dropping packet %ld bytes (queue overflow)", + m_Pid, m_Tid, length); +#endif + } } } @@ -123,25 +203,6 @@ void cStreamdevFilter::Reset(void) { m_Used = 0; } -bool cStreamdevFilter::IsClosed(void) { - char m_Buffer[3] = {0,0,0}; /* tid 0, 0 bytes */ - - // Test if pipe/socket has been closed by writing empty section - if (write(m_Pipe[1], m_Buffer, 3) < 0 && - errno != EAGAIN && - errno != EWOULDBLOCK) { - - if (errno != ECONNREFUSED && - errno != ECONNRESET && - errno != EPIPE) - esyslog("cStreamdevFilter::IsClosed failed: %m"); - - return true; - } - - return false; -} - // --- cStreamdevFilters ----------------------------------------------------- cStreamdevFilters::cStreamdevFilters(cClientSocket *ClientSocket): @@ -155,8 +216,6 @@ cStreamdevFilters::~cStreamdevFilters() { } int cStreamdevFilters::OpenFilter(u_short Pid, u_char Tid, u_char Mask) { - CarbageCollect(); - cStreamdevFilter *f = new cStreamdevFilter(Pid, Tid, Mask); int fh = f->ReadPipe(); @@ -167,31 +226,18 @@ int cStreamdevFilters::OpenFilter(u_short Pid, u_char Tid, u_char Mask) { return fh; } -void cStreamdevFilters::CarbageCollect(void) { +void cStreamdevFilters::CloseFilter(int Handle) { LOCK_THREAD; - for (cStreamdevFilter *fi = First(); fi;) { - if (fi->IsClosed()) { - if (errno == ECONNREFUSED || - errno == ECONNRESET || - errno == EPIPE) { - m_ClientSocket->SetFilter(fi->Pid(), fi->Tid(), fi->Mask(), false); - Dprintf("cStreamdevFilters::CarbageCollector: filter closed: Pid %4d, Tid %3d, Mask %2x (%d filters left)", - (int)fi->Pid(), (int)fi->Tid(), fi->Mask(), Count()-1); - - cStreamdevFilter *next = Prev(fi); - Del(fi); - fi = next ? Next(next) : First(); - } else { - esyslog("cStreamdevFilters::CarbageCollector() error: " - "Pid %4d, Tid %3d, Mask %2x (%d filters left) failed", - (int)fi->Pid(), (int)fi->Tid(), fi->Mask(), Count()-1); - LOG_ERROR; - fi = Next(fi); - } - } else { - fi = Next(fi); + + for (cStreamdevFilter *fi = First(); fi; fi = Next(fi)) { + if(fi->ReadPipe() == Handle) { + // isyslog("cStreamdevFilters::CloseFilter(%d): Pid %4d, Tid %3d, Mask %2x (%d filters left)\n", + // Handle, (int)fi->Pid(), (int)fi->Tid(), fi->Mask(), Count()-1); + Del(fi); + return; } } + esyslog("cStreamdevFilters::CloseFilter(%d): failed (%d filters left)\n", Handle, Count()-1); } bool cStreamdevFilters::ReActivateFilters(void) @@ -199,7 +245,6 @@ bool cStreamdevFilters::ReActivateFilters(void) LOCK_THREAD; bool res = true; - CarbageCollect(); for (cStreamdevFilter *fi = First(); fi; fi = Next(fi)) { res = m_ClientSocket->SetFilter(fi->Pid(), fi->Tid(), fi->Mask(), true) && res; Dprintf("ReActivateFilters(%d, %d, %d) -> %s", fi->Pid(), fi->Tid(), fi->Mask(), res ? "Ok" :"FAIL"); diff --git a/client/filter.h b/client/filter.h index a096248..e962c34 100644 --- a/client/filter.h +++ b/client/filter.h @@ -20,8 +20,6 @@ private: protected: virtual void Action(void); - void CarbageCollect(void); - bool ReActivateFilters(void); public: @@ -30,6 +28,7 @@ public: void SetConnection(int Handle); int OpenFilter(u_short Pid, u_char Tid, u_char Mask); + void CloseFilter(int Handle); }; #endif // VDR_STREAMDEV_FILTER_H diff --git a/client/po/de_DE.po b/client/po/de_DE.po index f347fe9..a3d1c8b 100644 --- a/client/po/de_DE.po +++ b/client/po/de_DE.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: streamdev 0.5.0\n" -"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" -"POT-Creation-Date: 2013-01-20 23:46+0100\n" +"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" +"POT-Creation-Date: 2014-10-20 22:57+0200\n" "PO-Revision-Date: 2008-03-30 02:11+0200\n" "Last-Translator: Frank Schmirler <vdrdev@schmirler.de>\n" "Language-Team: German <vdr@linuxtv.org>\n" @@ -16,18 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" -msgid "VTP Streaming Client" -msgstr "VTP Streaming Client" - -msgid "Suspend Server" -msgstr "Server pausieren" - -msgid "Server is suspended" -msgstr "Server ist pausiert" - -msgid "Couldn't suspend Server!" -msgstr "Konnte Server nicht pausieren!" - msgid "Hide Mainmenu Entry" msgstr "Hauptmenüeintrag verstecken" @@ -46,6 +34,9 @@ msgstr "Timeout (s)" msgid "Filter Streaming" msgstr "Filter-Daten streamen" +msgid "Filter SockBufSize" +msgstr "Filter Socket Puffergröße" + msgid "Live TV Priority" msgstr "Live TV Priorität" @@ -57,3 +48,15 @@ msgstr "Maximale Priorität" msgid "Broadcast Systems / Cost" msgstr "Empfangssysteme / Kosten" + +msgid "VTP Streaming Client" +msgstr "VTP Streaming Client" + +msgid "Suspend Server" +msgstr "Server pausieren" + +msgid "Server is suspended" +msgstr "Server ist pausiert" + +msgid "Couldn't suspend Server!" +msgstr "Konnte Server nicht pausieren!" diff --git a/client/po/es_ES.po b/client/po/es_ES.po index 5182453..15cb64f 100644 --- a/client/po/es_ES.po +++ b/client/po/es_ES.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: streamdev 0.5.0\n" -"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" -"POT-Creation-Date: 2013-01-28 22:16+0100\n" +"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: 2010-06-19 03:58+0100\n" "Last-Translator: Javier Bradineras <jbradi@hotmail.com>\n" "Language-Team: Spanish <vdr@linuxtv.org>\n" @@ -16,18 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" -msgid "VTP Streaming Client" -msgstr "Cliente trasmisión VTP" - -msgid "Suspend Server" -msgstr "Suspender servidor" - -msgid "Server is suspended" -msgstr "Servidor en suspensión" - -msgid "Couldn't suspend Server!" -msgstr "Imposible suspender el servidor!" - msgid "Hide Mainmenu Entry" msgstr "Ocultar entrada en menú principal" @@ -46,6 +34,9 @@ msgstr "" msgid "Filter Streaming" msgstr "Filtrar transmisión" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "" @@ -57,3 +48,15 @@ msgstr "Prioridad máxima" msgid "Broadcast Systems / Cost" msgstr "" + +msgid "VTP Streaming Client" +msgstr "Cliente trasmisión VTP" + +msgid "Suspend Server" +msgstr "Suspender servidor" + +msgid "Server is suspended" +msgstr "Servidor en suspensión" + +msgid "Couldn't suspend Server!" +msgstr "Imposible suspender el servidor!" diff --git a/client/po/fi_FI.po b/client/po/fi_FI.po index 6b55ac5..afe56a4 100644 --- a/client/po/fi_FI.po +++ b/client/po/fi_FI.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: streamdev 0.5.0\n" "Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" -"POT-Creation-Date: 2013-01-28 22:16+0100\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: 2008-03-30 02:11+0200\n" "Last-Translator: Rolf Ahrenberg\n" "Language-Team: Finnish <vdr@linuxtv.org>\n" @@ -16,18 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -msgid "VTP Streaming Client" -msgstr "VTP-suoratoistoasiakas" - -msgid "Suspend Server" -msgstr "Pysäytä palvelin" - -msgid "Server is suspended" -msgstr "Palvelin on pysäytetty" - -msgid "Couldn't suspend Server!" -msgstr "Palvelinta ei onnistuttu pysäyttämään!" - msgid "Hide Mainmenu Entry" msgstr "Piilota valinta päävalikosta" @@ -46,6 +34,9 @@ msgstr "Yhteyden aikakatkaisu (s)" msgid "Filter Streaming" msgstr "Suodatetun tiedon suoratoisto" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "Live-katselun prioriteetti" @@ -57,3 +48,15 @@ msgstr "Suurin prioriteetti" msgid "Broadcast Systems / Cost" msgstr "Lähetysjärjestelmien suhdeluku" + +msgid "VTP Streaming Client" +msgstr "VTP-suoratoistoasiakas" + +msgid "Suspend Server" +msgstr "Pysäytä palvelin" + +msgid "Server is suspended" +msgstr "Palvelin on pysäytetty" + +msgid "Couldn't suspend Server!" +msgstr "Palvelinta ei onnistuttu pysäyttämään!" diff --git a/client/po/fr_FR.po b/client/po/fr_FR.po index 7d938f0..1441df5 100644 --- a/client/po/fr_FR.po +++ b/client/po/fr_FR.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: streamdev 0.5.0\n" -"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" -"POT-Creation-Date: 2013-01-28 22:16+0100\n" +"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: 2008-03-30 02:11+0200\n" "Last-Translator: micky979 <micky979@free.fr>\n" "Language-Team: French <vdr@linuxtv.org>\n" @@ -16,18 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-15\n" "Content-Transfer-Encoding: 8bit\n" -msgid "VTP Streaming Client" -msgstr "Client de streaming VTP" - -msgid "Suspend Server" -msgstr "Suspendre le serveur" - -msgid "Server is suspended" -msgstr "Le serveur est suspendu" - -msgid "Couldn't suspend Server!" -msgstr "Impossible de suspendre le serveur!" - msgid "Hide Mainmenu Entry" msgstr "Masquer dans le menu principal" @@ -46,6 +34,9 @@ msgstr "" msgid "Filter Streaming" msgstr "Filtre streaming" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "" @@ -57,3 +48,15 @@ msgstr "" msgid "Broadcast Systems / Cost" msgstr "" + +msgid "VTP Streaming Client" +msgstr "Client de streaming VTP" + +msgid "Suspend Server" +msgstr "Suspendre le serveur" + +msgid "Server is suspended" +msgstr "Le serveur est suspendu" + +msgid "Couldn't suspend Server!" +msgstr "Impossible de suspendre le serveur!" diff --git a/client/po/it_IT.po b/client/po/it_IT.po index c311507..a1323c2 100644 --- a/client/po/it_IT.po +++ b/client/po/it_IT.po @@ -8,8 +8,8 @@ msgid "" msgstr "" "Project-Id-Version: streamdev 0.5.0\n" -"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" -"POT-Creation-Date: 2013-01-28 22:16+0100\n" +"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: 2012-06-10 20:34+0100\n" "Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n" "Language-Team: Italian <vdr@linuxtv.org>\n" @@ -18,18 +18,6 @@ msgstr "" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: 8bit\n" -msgid "VTP Streaming Client" -msgstr "Client trasmissione VTP" - -msgid "Suspend Server" -msgstr "Sospendi Server" - -msgid "Server is suspended" -msgstr "Server sospeso" - -msgid "Couldn't suspend Server!" -msgstr "Impossibile sospendere il server!" - msgid "Hide Mainmenu Entry" msgstr "Nascondi voce menu principale" @@ -48,6 +36,9 @@ msgstr "Scadenza (s)" msgid "Filter Streaming" msgstr "Filtra trasmissione" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "Priorità TV dal vivo" @@ -59,3 +50,15 @@ msgstr "Priorità massima" msgid "Broadcast Systems / Cost" msgstr "Costo / sistemi trasmissione" + +msgid "VTP Streaming Client" +msgstr "Client trasmissione VTP" + +msgid "Suspend Server" +msgstr "Sospendi Server" + +msgid "Server is suspended" +msgstr "Server sospeso" + +msgid "Couldn't suspend Server!" +msgstr "Impossibile sospendere il server!" diff --git a/client/po/lt_LT.po b/client/po/lt_LT.po index 409c267..01927f6 100644 --- a/client/po/lt_LT.po +++ b/client/po/lt_LT.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: streamdev 0.5.0\n" -"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" -"POT-Creation-Date: 2013-01-28 22:16+0100\n" +"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: 2009-11-26 21:57+0200\n" "Last-Translator: Valdemaras Pipiras <varas@ambernet.lt>\n" "Language-Team: Lithuanian <vdr@linuxtv.org>\n" @@ -16,18 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -msgid "VTP Streaming Client" -msgstr "VTP transliavimo standartas" - -msgid "Suspend Server" -msgstr "Sustabdyti serverį" - -msgid "Server is suspended" -msgstr "Serveris sustabdytas" - -msgid "Couldn't suspend Server!" -msgstr "Negali sustabdyti serverio!" - msgid "Hide Mainmenu Entry" msgstr "PaslÄ—pti pagrindinio meniu įrašą" @@ -46,6 +34,9 @@ msgstr "" msgid "Filter Streaming" msgstr "Filtruoti transliavimÄ…" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "" @@ -57,3 +48,15 @@ msgstr "Maksimalus prioritetas" msgid "Broadcast Systems / Cost" msgstr "" + +msgid "VTP Streaming Client" +msgstr "VTP transliavimo standartas" + +msgid "Suspend Server" +msgstr "Sustabdyti serverį" + +msgid "Server is suspended" +msgstr "Serveris sustabdytas" + +msgid "Couldn't suspend Server!" +msgstr "Negali sustabdyti serverio!" diff --git a/client/po/pl_PL.po b/client/po/pl_PL.po index 7058f96..599139c 100644 --- a/client/po/pl_PL.po +++ b/client/po/pl_PL.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: vdr-streamdev-client 0.6.1-git\n" "Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" -"POT-Creation-Date: 2014-11-20 14:11+0100\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: 2014-11-24 18:07+0100\n" "Last-Translator: Tomasz Maciej Nowak <tomek_n@o2.pl>\n" "Language-Team: Polish <vdr@linuxtv.org>\n" @@ -35,6 +35,9 @@ msgstr "Czas oczekiwania (s)" msgid "Filter Streaming" msgstr "Filtruj strumieñ" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "Priorytet lokalnych ur±dzeñ" diff --git a/client/po/ru_RU.po b/client/po/ru_RU.po index 8f5a9b2..b2ff56c 100644 --- a/client/po/ru_RU.po +++ b/client/po/ru_RU.po @@ -6,8 +6,8 @@ msgid "" msgstr "" "Project-Id-Version: streamdev 0.5.0\n" -"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n" -"POT-Creation-Date: 2013-01-28 22:16+0100\n" +"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: 2008-06-26 15:36+0100\n" "Last-Translator: Oleg Roitburd <oleg@roitburd.de>\n" "Language-Team: Russian <vdr@linuxtv.org>\n" @@ -16,18 +16,6 @@ msgstr "" "Content-Type: text/plain; charset=ISO-8859-5\n" "Content-Transfer-Encoding: 8bit\n" -msgid "VTP Streaming Client" -msgstr "VTP Streaming ÚÛØÕÝâ" - -msgid "Suspend Server" -msgstr "¾áâÐÝÞÒØâì áÕàÒÕà" - -msgid "Server is suspended" -msgstr "ÁÕàÒÕà ÞáâÐÝÞÒÛÕÝ" - -msgid "Couldn't suspend Server!" -msgstr "ÝÕ ÜÞÓã ÞáâÐÝÞÒØâì áÕàÒÕà" - msgid "Hide Mainmenu Entry" msgstr "ÁßàïâÐâì Ò ÓÛÐÒÝÞÜ ÜÕÝî" @@ -46,6 +34,9 @@ msgstr "" msgid "Filter Streaming" msgstr "ÄØÛìâà ßÞâÞÚÐ" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "" @@ -57,3 +48,15 @@ msgstr "" msgid "Broadcast Systems / Cost" msgstr "" + +msgid "VTP Streaming Client" +msgstr "VTP Streaming ÚÛØÕÝâ" + +msgid "Suspend Server" +msgstr "¾áâÐÝÞÒØâì áÕàÒÕà" + +msgid "Server is suspended" +msgstr "ÁÕàÒÕà ÞáâÐÝÞÒÛÕÝ" + +msgid "Couldn't suspend Server!" +msgstr "ÝÕ ÜÞÓã ÞáâÐÝÞÒØâì áÕàÒÕà" diff --git a/client/po/sk_SK.po b/client/po/sk_SK.po index 65f9a10..76374f6 100755 --- a/client/po/sk_SK.po +++ b/client/po/sk_SK.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: streamdev_SK\n" "Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n" -"POT-Creation-Date: 2013-03-13 14:20+0100\n" +"POT-Creation-Date: 2015-01-16 22:32+0100\n" "PO-Revision-Date: \n" "Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n" "Language-Team: Slovak <hrala.milan@gmail.com>\n" @@ -36,6 +36,9 @@ msgstr "Èasový limit (s)" msgid "Filter Streaming" msgstr "Filtrova» dátový prúd" +msgid "Filter SockBufSize" +msgstr "" + msgid "Live TV Priority" msgstr "Priorita ¾ivého vysielania" @@ -59,4 +62,3 @@ msgstr "Server je doèasne pozastavený" msgid "Couldn't suspend Server!" msgstr "Server sa nepodarilo pozastavi»!" - diff --git a/client/setup.c b/client/setup.c index 691ab35..1f2960d 100644 --- a/client/setup.c +++ b/client/setup.c @@ -26,6 +26,7 @@ cStreamdevClientSetup::cStreamdevClientSetup(void) { NumProvidedSystems = 1; #endif strcpy(RemoteIp, ""); + FilterSockBufSize = 0; } bool cStreamdevClientSetup::SetupParse(const char *Name, const char *Value) { @@ -43,6 +44,7 @@ bool cStreamdevClientSetup::SetupParse(const char *Name, const char *Value) { else if (strcmp(Name, "LivePriority") == 0) LivePriority = atoi(Value); else if (strcmp(Name, "MinPriority") == 0) MinPriority = atoi(Value); else if (strcmp(Name, "MaxPriority") == 0) MaxPriority = atoi(Value); + else if (strcmp(Name, "FilterSockBufSize") == 0) FilterSockBufSize = atoi(Value); #if APIVERSNUM >= 10700 else if (strcmp(Name, "NumProvidedSystems") == 0) NumProvidedSystems = atoi(Value); #endif @@ -60,6 +62,8 @@ cStreamdevClientMenuSetupPage::cStreamdevClientMenuSetupPage(cPluginStreamdevCli Add(new cMenuEditIntItem (tr("Remote Port"), &m_NewSetup.RemotePort, 0, 65535)); Add(new cMenuEditIntItem (tr("Timeout (s)"), &m_NewSetup.Timeout, 1, 15)); Add(new cMenuEditBoolItem(tr("Filter Streaming"), &m_NewSetup.StreamFilters)); + if(m_NewSetup.StreamFilters) + Add(new cMenuEditIntItem (tr("Filter SockBufSize"), &m_NewSetup.FilterSockBufSize, 0, 8192000)); Add(new cMenuEditIntItem (tr("Live TV Priority"), &m_NewSetup.LivePriority, MINPRIORITY, MAXPRIORITY)); Add(new cMenuEditIntItem (tr("Minimum Priority"), &m_NewSetup.MinPriority, MINPRIORITY, MAXPRIORITY)); Add(new cMenuEditIntItem (tr("Maximum Priority"), &m_NewSetup.MaxPriority, MINPRIORITY, MAXPRIORITY)); @@ -90,6 +94,7 @@ void cStreamdevClientMenuSetupPage::Store(void) { #if APIVERSNUM >= 10700 SetupStore("NumProvidedSystems", m_NewSetup.NumProvidedSystems); #endif + SetupStore("FilterSockBufSize", m_NewSetup.FilterSockBufSize); StreamdevClientSetup = m_NewSetup; diff --git a/client/setup.h b/client/setup.h index 5401271..e9c172d 100644 --- a/client/setup.h +++ b/client/setup.h @@ -17,6 +17,7 @@ struct cStreamdevClientSetup { int RemotePort; int Timeout; int StreamFilters; + int FilterSockBufSize; int HideMenuEntry; int LivePriority; int MinPriority; |