summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorFrank Schmirler <vdr@schmirler.de>2014-05-18 15:24:24 +0200
committerFrank Schmirler <vdr@schmirler.de>2014-05-18 15:24:24 +0200
commit2cdf160648b9666bb870e5b3157619920476d76d (patch)
treecdba11275e26dac365bde6b72674151ea178ed90 /server
parent54440cb08027f88c2913bb6b417de89423c5531c (diff)
downloadvdr-plugin-streamdev-2cdf160648b9666bb870e5b3157619920476d76d.tar.gz
vdr-plugin-streamdev-2cdf160648b9666bb870e5b3157619920476d76d.tar.bz2
Configurable buffer for live TV
Diffstat (limited to 'server')
-rw-r--r--server/livestreamer.c16
-rw-r--r--server/livestreamer.h1
-rw-r--r--server/po/de_DE.po6
-rw-r--r--server/po/es_ES.po16
-rw-r--r--server/po/fi_FI.po11
-rw-r--r--server/po/fr_FR.po16
-rw-r--r--server/po/it_IT.po18
-rw-r--r--server/po/lt_LT.po16
-rw-r--r--server/po/ru_RU.po16
-rwxr-xr-xserver/po/sk_SK.po6
-rw-r--r--server/setup.c4
-rw-r--r--server/setup.h1
-rw-r--r--server/streamer.c1
13 files changed, 93 insertions, 35 deletions
diff --git a/server/livestreamer.c b/server/livestreamer.c
index 07f7273..c06710a 100644
--- a/server/livestreamer.c
+++ b/server/livestreamer.c
@@ -11,6 +11,7 @@
#include <vdr/ringbuffer.h>
#include "server/livestreamer.h"
+#include "server/setup.h"
#include "common.h"
using namespace Streamdev;
@@ -534,6 +535,21 @@ void cStreamdevLiveStreamer::Receive(uchar *Data, int Length)
m_ReceiveBuffer->ReportOverflow(Length - p);
}
+void cStreamdevLiveStreamer::Action(void)
+{
+ if (StreamdevServerSetup.LiveBufferMs) {
+ // wait for first data block
+ int count = 0;
+ while (Running()) {
+ if (m_ReceiveBuffer->Get(count) != NULL) {
+ cCondWait::SleepMs(StreamdevServerSetup.LiveBufferMs);
+ break;
+ }
+ }
+ }
+ cStreamdevStreamer::Action();
+}
+
int cStreamdevLiveStreamer::Put(const uchar *Data, int Count)
{
// insert si data
diff --git a/server/livestreamer.h b/server/livestreamer.h
index db546ec..b83bb99 100644
--- a/server/livestreamer.h
+++ b/server/livestreamer.h
@@ -38,6 +38,7 @@ protected:
virtual void DelFromReceiver(int Count) { m_ReceiveBuffer->Del(Count); }
virtual int Put(const uchar *Data, int Count);
+ virtual void Action(void);
public:
cStreamdevLiveStreamer(int Priority, const cServerConnection *Connection);
diff --git a/server/po/de_DE.po b/server/po/de_DE.po
index 0c9387c..770886a 100644
--- a/server/po/de_DE.po
+++ b/server/po/de_DE.po
@@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: streamdev\n"
"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n"
-"POT-Creation-Date: 2013-11-02 16:55+0100\n"
+"POT-Creation-Date: 2014-05-05 22:46+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"
@@ -40,6 +40,9 @@ msgstr "Live-TV beim Start pausieren"
msgid "Maximum Number of Clients"
msgstr "Maximalanzahl an Clients"
+msgid "Live TV buffer delay (ms)"
+msgstr "Live-TV Pufferdauer (ms)"
+
msgid "VDR-to-VDR Server"
msgstr "VDR-zu-VDR Server"
@@ -90,4 +93,3 @@ msgstr "Multicast Streamtyp"
msgid "VDR Streaming Server"
msgstr "VDR Streaming Server"
-
diff --git a/server/po/es_ES.po b/server/po/es_ES.po
index 28842c6..fe84242 100644
--- a/server/po/es_ES.po
+++ b/server/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: 2012-03-31 15:06+0200\n"
+"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n"
+"POT-Creation-Date: 2014-05-05 22:46+0200\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,9 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "VDR Streaming Server"
-msgstr "Servidor de transmisiones del VDR"
-
msgid "Streaming active"
msgstr "Trasmisin activa"
@@ -37,9 +34,15 @@ msgstr "Configuracin comn"
msgid "Hide Mainmenu Entry"
msgstr ""
+msgid "Start with Live TV suspended"
+msgstr ""
+
msgid "Maximum Number of Clients"
msgstr "Numero mximo de clientes"
+msgid "Live TV buffer delay (ms)"
+msgstr ""
+
msgid "VDR-to-VDR Server"
msgstr "Servidor VDR-a-VDR"
@@ -87,3 +90,6 @@ msgstr "Puerto del Cliente Multicast"
msgid "Multicast Streamtype"
msgstr "Tipo de flujo Multicast"
+
+msgid "VDR Streaming Server"
+msgstr "Servidor de transmisiones del VDR"
diff --git a/server/po/fi_FI.po b/server/po/fi_FI.po
index 697f8a0..0607967 100644
--- a/server/po/fi_FI.po
+++ b/server/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: 2012-03-31 15:06+0200\n"
+"POT-Creation-Date: 2014-05-05 22:46+0200\n"
"PO-Revision-Date: 2008-03-30 02:11+0200\n"
"Last-Translator: Rolf Ahrenberg\n"
"Language-Team: Finnish <vdr@linuxtv.org>\n"
@@ -16,9 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "VDR Streaming Server"
-msgstr "VDR-suoratoistopalvelin"
-
msgid "Streaming active"
msgstr "Suoratoistopalvelin aktiivinen"
@@ -43,6 +40,9 @@ msgstr "Käynnistä Live-katselu pysäytettynä"
msgid "Maximum Number of Clients"
msgstr "Suurin sallittu asiakkaiden määrä"
+msgid "Live TV buffer delay (ms)"
+msgstr ""
+
msgid "VDR-to-VDR Server"
msgstr "VDR-palvelin"
@@ -90,3 +90,6 @@ msgstr "Multicast-portti"
msgid "Multicast Streamtype"
msgstr "Multicast-lähetysmuoto"
+
+msgid "VDR Streaming Server"
+msgstr "VDR-suoratoistopalvelin"
diff --git a/server/po/fr_FR.po b/server/po/fr_FR.po
index 7d9128b..20e58bd 100644
--- a/server/po/fr_FR.po
+++ b/server/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: 2012-03-31 15:06+0200\n"
+"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n"
+"POT-Creation-Date: 2014-05-05 22:46+0200\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,9 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-15\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "VDR Streaming Server"
-msgstr "Serveur de streaming VDR"
-
msgid "Streaming active"
msgstr "Streaming actif"
@@ -37,9 +34,15 @@ msgstr "Paramtres communs"
msgid "Hide Mainmenu Entry"
msgstr ""
+msgid "Start with Live TV suspended"
+msgstr ""
+
msgid "Maximum Number of Clients"
msgstr "Nombre maximun de clients"
+msgid "Live TV buffer delay (ms)"
+msgstr ""
+
msgid "VDR-to-VDR Server"
msgstr "VDR-to-VDR Serveur"
@@ -87,3 +90,6 @@ msgstr ""
msgid "Multicast Streamtype"
msgstr ""
+
+msgid "VDR Streaming Server"
+msgstr "Serveur de streaming VDR"
diff --git a/server/po/it_IT.po b/server/po/it_IT.po
index dc68082..b6447a1 100644
--- a/server/po/it_IT.po
+++ b/server/po/it_IT.po
@@ -8,18 +8,15 @@
msgid ""
msgstr ""
"Project-Id-Version: streamdev 0.5.0\n"
-"Report-Msgid-Bugs-To: <http://www.vdr-developer.org/mantisbt/>\n"
-"POT-Creation-Date: 2012-06-13 08:51+0200\n"
+"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n"
+"POT-Creation-Date: 2014-05-05 22:46+0200\n"
"PO-Revision-Date: 2012-06-12 19:57+0100\n"
"Last-Translator: Diego Pierotto <vdr-italian@tiscali.it>\n"
"Language-Team: Italian <vdr@linuxtv.org>\n"
+"Language: it\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"
-"Language: it\n"
-
-msgid "VDR Streaming Server"
-msgstr "Server trasmissione VDR"
msgid "Streaming active"
msgstr "Trasmissione attiva"
@@ -39,9 +36,15 @@ msgstr "Impostazioni comuni"
msgid "Hide Mainmenu Entry"
msgstr "Nascondi voce menu principale"
+msgid "Start with Live TV suspended"
+msgstr ""
+
msgid "Maximum Number of Clients"
msgstr "Numero massimo di Client"
+msgid "Live TV buffer delay (ms)"
+msgstr ""
+
msgid "VDR-to-VDR Server"
msgstr "Server VDR-a-VDR"
@@ -89,3 +92,6 @@ msgstr "Porta Client Multicast"
msgid "Multicast Streamtype"
msgstr "Tipo flusso Multicast"
+
+msgid "VDR Streaming Server"
+msgstr "Server trasmissione VDR"
diff --git a/server/po/lt_LT.po b/server/po/lt_LT.po
index 1af7c75..7ff021e 100644
--- a/server/po/lt_LT.po
+++ b/server/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: 2012-03-31 15:06+0200\n"
+"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n"
+"POT-Creation-Date: 2014-05-05 22:46+0200\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,9 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "VDR Streaming Server"
-msgstr "VDR transliavimo serveris"
-
msgid "Streaming active"
msgstr "Transliavimas vyksta"
@@ -37,9 +34,15 @@ msgstr "Bendri nustatymai"
msgid "Hide Mainmenu Entry"
msgstr ""
+msgid "Start with Live TV suspended"
+msgstr ""
+
msgid "Maximum Number of Clients"
msgstr "Maksimalus klientų skaičius"
+msgid "Live TV buffer delay (ms)"
+msgstr ""
+
msgid "VDR-to-VDR Server"
msgstr "VDR-su-VDR Serveris"
@@ -87,3 +90,6 @@ msgstr "Multicast kliento portas"
msgid "Multicast Streamtype"
msgstr "Multicast transliavimo tipas"
+
+msgid "VDR Streaming Server"
+msgstr "VDR transliavimo serveris"
diff --git a/server/po/ru_RU.po b/server/po/ru_RU.po
index 3fdf5c7..a1e710c 100644
--- a/server/po/ru_RU.po
+++ b/server/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: 2012-03-31 15:06+0200\n"
+"Report-Msgid-Bugs-To: <vdrdev@schmirler.de>\n"
+"POT-Creation-Date: 2014-05-05 22:46+0200\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,9 +16,6 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-5\n"
"Content-Transfer-Encoding: 8bit\n"
-msgid "VDR Streaming Server"
-msgstr "VDR Streaming "
-
msgid "Streaming active"
msgstr " "
@@ -37,9 +34,15 @@ msgstr ""
msgid "Hide Mainmenu Entry"
msgstr ""
+msgid "Start with Live TV suspended"
+msgstr ""
+
msgid "Maximum Number of Clients"
msgstr ". "
+msgid "Live TV buffer delay (ms)"
+msgstr ""
+
msgid "VDR-to-VDR Server"
msgstr "VDR-to-VDR "
@@ -87,3 +90,6 @@ msgstr ""
msgid "Multicast Streamtype"
msgstr ""
+
+msgid "VDR Streaming Server"
+msgstr "VDR Streaming "
diff --git a/server/po/sk_SK.po b/server/po/sk_SK.po
index 7fb8ba8..24a7cf1 100755
--- a/server/po/sk_SK.po
+++ b/server/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-11-22 23:07+0100\n"
+"POT-Creation-Date: 2014-05-05 22:46+0200\n"
"PO-Revision-Date: 2013-11-22 23:39+0100\n"
"Last-Translator: Milan Hrala <hrala.milan@gmail.com>\n"
"Language-Team: Slovak <hrala.milan@gmail.com>\n"
@@ -42,6 +42,9 @@ msgstr "Pozastavi Live TV pri tarte"
msgid "Maximum Number of Clients"
msgstr "Maximly poet klientov"
+msgid "Live TV buffer delay (ms)"
+msgstr ""
+
msgid "VDR-to-VDR Server"
msgstr "Prenos z VDR do VDR"
@@ -92,4 +95,3 @@ msgstr "Typ Multicast streamu"
msgid "VDR Streaming Server"
msgstr "VDR server streamovania"
-
diff --git a/server/setup.c b/server/setup.c
index b3d23d4..37d1b45 100644
--- a/server/setup.c
+++ b/server/setup.c
@@ -13,6 +13,7 @@ cStreamdevServerSetup::cStreamdevServerSetup(void) {
HideMenuEntry = false;
MaxClients = 5;
StartSuspended = ssAuto;
+ LiveBufferMs = 0;
StartVTPServer = true;
VTPServerPort = 2004;
VTPPriority = 0;
@@ -35,6 +36,7 @@ bool cStreamdevServerSetup::SetupParse(const char *Name, const char *Value) {
if (strcmp(Name, "HideMenuEntry") == 0) HideMenuEntry = atoi(Value);
else if (strcmp(Name, "MaxClients") == 0) MaxClients = atoi(Value);
else if (strcmp(Name, "StartSuspended") == 0) StartSuspended = atoi(Value);
+ else if (strcmp(Name, "LiveBufferMs") == 0) LiveBufferMs = atoi(Value);
else if (strcmp(Name, "StartServer") == 0) StartVTPServer = atoi(Value);
else if (strcmp(Name, "ServerPort") == 0) VTPServerPort = atoi(Value);
else if (strcmp(Name, "VTPPriority") == 0) VTPPriority = atoi(Value);
@@ -86,6 +88,7 @@ void cStreamdevServerMenuSetupPage::Set(void) {
Add(new cMenuEditBoolItem(tr("Hide Mainmenu Entry"), &m_NewSetup.HideMenuEntry));
Add(new cMenuEditStraItem(tr("Start with Live TV suspended"), &m_NewSetup.StartSuspended, ss_Count, StartSuspendedItems));
Add(new cMenuEditIntItem (tr("Maximum Number of Clients"), &m_NewSetup.MaxClients, 0, 100));
+ Add(new cMenuEditIntItem (tr("Live TV buffer delay (ms)"), &m_NewSetup.LiveBufferMs, 0, 1500));
AddCategory (tr("VDR-to-VDR Server"));
@@ -142,6 +145,7 @@ void cStreamdevServerMenuSetupPage::Store(void) {
SetupStore("HideMenuEntry", m_NewSetup.HideMenuEntry);
SetupStore("MaxClients", m_NewSetup.MaxClients);
SetupStore("StartSuspended", m_NewSetup.StartSuspended);
+ SetupStore("LiveBufferMs", m_NewSetup.LiveBufferMs);
SetupStore("StartServer", m_NewSetup.StartVTPServer);
SetupStore("ServerPort", m_NewSetup.VTPServerPort);
SetupStore("VTPBindIP", m_NewSetup.VTPBindIP);
diff --git a/server/setup.h b/server/setup.h
index 8358a4f..f464137 100644
--- a/server/setup.h
+++ b/server/setup.h
@@ -22,6 +22,7 @@ struct cStreamdevServerSetup {
int HideMenuEntry;
int MaxClients;
int StartSuspended;
+ int LiveBufferMs;
int StartVTPServer;
int VTPServerPort;
char VTPBindIP[20];
diff --git a/server/streamer.c b/server/streamer.c
index ad4dcc5..16411ed 100644
--- a/server/streamer.c
+++ b/server/streamer.c
@@ -9,7 +9,6 @@
#include "server/streamer.h"
#include "server/suspend.h"
-#include "server/setup.h"
#include "tools/socket.h"
#include "tools/select.h"
#include "common.h"