mirror of
https://projects.vdr-developer.org/git/vdr-plugin-streamdev.git
synced 2023-10-10 19:16:51 +02:00
- changed location of streamdevhosts.conf to VDRCONFDIR/plugins/streamdev
- changed externremux.sh's default location to VDRCONFDIR/plugins/streamdev - added sample externremux.sh from http://www.vdr-wiki.de/ - stop providing channels after client has been disabled at runtime - added logging of the client device's card index - changed default suspend mode to "Always suspended" - added "Hide Mainmenu Entry" setup option on client
This commit is contained in:
parent
89735cbd95
commit
9c60fb4e42
@ -24,6 +24,7 @@ Rolf Ahrenberg
|
|||||||
for suggesting a fix of the Makefile's default target
|
for suggesting a fix of the Makefile's default target
|
||||||
for a TS PAT repacker based on Petri Laine's VDR TS recording patch
|
for a TS PAT repacker based on Petri Laine's VDR TS recording patch
|
||||||
for making it possible to pass parameters to externremux.sh
|
for making it possible to pass parameters to externremux.sh
|
||||||
|
for removing pre VDR 1.4 legacy code
|
||||||
|
|
||||||
Rantanen Teemu
|
Rantanen Teemu
|
||||||
for providing vdr-incompletesections.diff
|
for providing vdr-incompletesections.diff
|
||||||
@ -70,3 +71,6 @@ Olli Lammi
|
|||||||
|
|
||||||
Joerg Pulz
|
Joerg Pulz
|
||||||
for his FreeBSD compatibility patch
|
for his FreeBSD compatibility patch
|
||||||
|
|
||||||
|
tobi
|
||||||
|
for pointing to unused files in the libdvbmpeg directory
|
||||||
|
16
HISTORY
16
HISTORY
@ -1,6 +1,22 @@
|
|||||||
VDR Plugin 'streamdev' Revision History
|
VDR Plugin 'streamdev' Revision History
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
|
||||||
|
2008-04-07: Branched v0_4
|
||||||
|
|
||||||
|
- changed location of streamdevhosts.conf to VDRCONFDIR/plugins/streamdev
|
||||||
|
- changed externremux.sh's default location to VDRCONFDIR/plugins/streamdev
|
||||||
|
- added sample externremux.sh from http://www.vdr-wiki.de/
|
||||||
|
- stop providing channels after client has been disabled at runtime
|
||||||
|
- added logging of the client device's card index
|
||||||
|
- changed default suspend mode to "Always suspended"
|
||||||
|
- added "Hide Mainmenu Entry" setup option on client
|
||||||
|
- resurrected clients "Suspend Server" menu item as its mainmenu entry
|
||||||
|
- dropped unused code for remote timers/recordings on client side
|
||||||
|
- dropped unused files client/{assembler,menu,remote}.[hc]
|
||||||
|
- dropped unused files in libdvbmpeg (reported by tobi)
|
||||||
|
- dropped patches for pre VDR 1.4
|
||||||
|
- removed legacy code for pre VDR 1.4 (thanks to Rolf Ahrenberg)
|
||||||
|
|
||||||
2008-03-31: Version 0.3.4
|
2008-03-31: Version 0.3.4
|
||||||
|
|
||||||
- added possibility to pass parameter to externremux.sh (thanks to Rolf
|
- added possibility to pass parameter to externremux.sh (thanks to Rolf
|
||||||
|
4
Makefile
4
Makefile
@ -1,7 +1,7 @@
|
|||||||
#
|
#
|
||||||
# Makefile for a Video Disk Recorder plugin
|
# Makefile for a Video Disk Recorder plugin
|
||||||
#
|
#
|
||||||
# $Id: Makefile,v 1.14 2008/04/07 14:40:39 schmirl Exp $
|
# $Id: Makefile,v 1.15 2008/04/07 14:50:32 schmirl Exp $
|
||||||
|
|
||||||
# The official name of this plugin.
|
# The official name of this plugin.
|
||||||
# This name will be used in the '-P...' option of VDR to load the plugin.
|
# This name will be used in the '-P...' option of VDR to load the plugin.
|
||||||
@ -41,7 +41,7 @@ PACKAGE = vdr-$(ARCHIVE)
|
|||||||
|
|
||||||
INCLUDES += -I$(VDRDIR)/include -I.
|
INCLUDES += -I$(VDRDIR)/include -I.
|
||||||
|
|
||||||
DEFINES += -D_GNU_SOURCE
|
DEFINES += -D_GNU_SOURCE -DPLUGIN_NAME_I18N='"$(PLUGIN)"'
|
||||||
|
|
||||||
### The object files (add further files here):
|
### The object files (add further files here):
|
||||||
|
|
||||||
|
98
README
98
README
@ -15,13 +15,17 @@ Contents:
|
|||||||
|
|
||||||
1. Description
|
1. Description
|
||||||
2. Installation
|
2. Installation
|
||||||
2.1 VDR 1.2.X
|
2.1 VDR 1.3.X and older
|
||||||
2.2 VDR 1.3.X and above
|
2.2 VDR 1.4.X and above
|
||||||
|
2.3 Updating from streamdev 0.3.x
|
||||||
3. Usage
|
3. Usage
|
||||||
3.1 Usage HTTP server
|
3.1 Usage HTTP server
|
||||||
3.2 Usage VDR-to-VDR server
|
3.2 Usage VDR-to-VDR server
|
||||||
3.3 Usage VDR-to-VDR client
|
3.3 Usage VDR-to-VDR client
|
||||||
4. Other useful Plugins
|
4. Other useful Plugins
|
||||||
|
4.1 Plugins for VDR-to-VDR clients
|
||||||
|
4.2 Plugins for Server
|
||||||
|
4.3 Alternatives
|
||||||
5. Known Problems
|
5. Known Problems
|
||||||
|
|
||||||
|
|
||||||
@ -57,7 +61,7 @@ the PROTOCOL file.
|
|||||||
2. Installation:
|
2. Installation:
|
||||||
----------------
|
----------------
|
||||||
|
|
||||||
Let's say streamdev's version is 0.3.1 and vdr's version is 1.X.X. If you
|
Let's say streamdev's version is 0.4.0 and vdr's version is 1.X.X. If you
|
||||||
use anything else please exchange the version numbers appropriately (this
|
use anything else please exchange the version numbers appropriately (this
|
||||||
way I don't have to update this section all the times;) ).
|
way I don't have to update this section all the times;) ).
|
||||||
|
|
||||||
@ -68,48 +72,62 @@ command line.
|
|||||||
What's important is that the client requests a channel using its Unique Channel
|
What's important is that the client requests a channel using its Unique Channel
|
||||||
ID. So, in order to find the channel at the server, it must have the same ID
|
ID. So, in order to find the channel at the server, it must have the same ID
|
||||||
that is used on the client. You can achieve this by putting the server's
|
that is used on the client. You can achieve this by putting the server's
|
||||||
channels.conf on the client, preferably after scanning (in case you use 1.2.X
|
channels.conf on the client, preferably after scanning.
|
||||||
with AutoPID or 1.3.X).
|
|
||||||
|
|
||||||
If you want to drive additional Input-Devices (with different sources) on the
|
If you want to drive additional Input-Devices (with different sources) on the
|
||||||
client, you can merge the channels.conf files. VDR will detect if the local
|
client, you can merge the channels.conf files. VDR will detect if the local
|
||||||
device or the network device can receive the channels.
|
device or the network device can receive the channels.
|
||||||
|
|
||||||
Last, but not least you have to put the provided streamdevhosts.conf.example
|
Last, but not least you have to copy the streamdev folder into the
|
||||||
into the "plugins" subfolder of your config-directory (which is equal to your
|
"plugins/streamdev" subfolder of VDR's config-directory (which is equal to your
|
||||||
video-directory if not specified otherwise), rename it to streamdevhosts.conf
|
video-directory if not specified otherwise). For example, if you didn't specify
|
||||||
and adjust it to your needs. The syntax is the same as for svdrphosts.conf, so
|
a separate config-directory, and specified your video directory as "/video0",
|
||||||
please consult VDR's documentation on how to fill that file, if you can't do
|
the directory has to be copied to /video0/plugins/streamdev.
|
||||||
it on-the-fly. For example, if you didn't specify a separate config-directory,
|
|
||||||
and specified your video directory as "/video0", the file has to be put to
|
The directory contains a file named streamdevhosts.conf which you must adjust
|
||||||
/video0/plugins/streamdevhosts.conf.
|
to your needs. The syntax is the same as for svdrphosts.conf, so please consult
|
||||||
|
VDR's documentation on how to fill that file, if you can't do it on-the-fly.
|
||||||
|
|
||||||
|
There's also a sample externremux.sh script in this directory. It is used by
|
||||||
|
streamdev's external remux feature. The sample script uses mencoder. Please
|
||||||
|
check the script for further information. You can specify a different script
|
||||||
|
location with the -r parameter. The VDR commandline would then include a
|
||||||
|
"-P 'streamdev-server -r /usr/local/bin/remux.sh'". Note the additional quotes,
|
||||||
|
as otherwise -r will be passed to VDR and not to streamdev.
|
||||||
|
|
||||||
|
|
||||||
2.1 VDR 1.2.X:
|
2.1 VDR 1.3.X and older:
|
||||||
--------------
|
------------------------
|
||||||
|
|
||||||
It is recommended that you apply a patch to VDR that improves thread
|
This version is not compatible to VDR releases older than 1.4.0. You will
|
||||||
cancellation. You can work without it, but you _might_ have delays in switching
|
probably need one of the streamdev-0.3.x releases.
|
||||||
(especially when using VDR-to-VDR streaming) that are around three seconds.
|
|
||||||
|
|
||||||
cd vdr-1.X.X/PLUGINS/src
|
2.2 VDR 1.4.X and above:
|
||||||
tar xvfz vdr-streamdev-0.3.1.tgz
|
|
||||||
ln -s streamdev-0.3.1 streamdev
|
|
||||||
cd ../..
|
|
||||||
patch -p1 <PLUGINS/src/streamdev/patches/thread.c.diff
|
|
||||||
make [options, if necessary] vdr
|
|
||||||
make [options, if necessary] plugins
|
|
||||||
|
|
||||||
2.2 VDR 1.3.X and above:
|
|
||||||
------------------------
|
------------------------
|
||||||
|
|
||||||
cd vdr-1.X.X/PLUGINS/src
|
cd vdr-1.X.X/PLUGINS/src
|
||||||
tar xvfz vdr-streamdev-0.3.1.tgz
|
tar xvfz vdr-streamdev-0.4.0.tgz
|
||||||
ln -s streamdev-0.3.1 streamdev
|
ln -s streamdev-0.4.0 streamdev
|
||||||
|
cp -r streamdev/streamdev VDRCONFDIR/plugins/
|
||||||
cd ../..
|
cd ../..
|
||||||
make [options, if necessary] vdr
|
make [options, if necessary] vdr
|
||||||
make [options, if necessary] plugins
|
make [options, if necessary] plugins
|
||||||
|
|
||||||
|
2.3 Updating from streamdev 0.3.x
|
||||||
|
----------------------------------
|
||||||
|
|
||||||
|
Starting with streamdev 0.4.0, all additional files are kept in a directory
|
||||||
|
called "streamdev" inside VDR's plugin config directory. This affects in
|
||||||
|
particular the file "streamdevhosts.conf". You will have to move it to its
|
||||||
|
new location:
|
||||||
|
|
||||||
|
mv VDRCONFDIR/plugins/streamdevhosts.conf VDRCONFDIR/plugins/streamdev/
|
||||||
|
|
||||||
|
(Directory VDRCONFDIR/plugins/streamdev already exists, as you copied the
|
||||||
|
whole folder from the sources directory as suggested above, right?)
|
||||||
|
|
||||||
|
The new default location for externremux.sh is also in this directory.
|
||||||
|
|
||||||
|
|
||||||
3. Usage:
|
3. Usage:
|
||||||
---------
|
---------
|
||||||
@ -120,12 +138,12 @@ can run in one VDR instance, if necessary.
|
|||||||
|
|
||||||
The parameter "Suspend behaviour" allows you to specify how the server should
|
The parameter "Suspend behaviour" allows you to specify how the server should
|
||||||
react in case the client requests a channel that would require switching the
|
react in case the client requests a channel that would require switching the
|
||||||
primary device (i.e. disrupt live-tv). If set to "Offer suspend mode" (the
|
primary device (i.e. disrupt live-tv). If set to "Offer suspend mode", you will
|
||||||
default), you will have a new entry in the main menu. Activating that will put
|
have a new entry in the main menu. Activating that will put the server into
|
||||||
the server into "Suspend Mode" (a picture is displayed on TV). Then, a client
|
"Suspend Mode" (a picture is displayed on TV). Then, a client may switch the
|
||||||
may switch the primary card to wherever it likes to. While watching TV (Suspend
|
primary card to wherever it likes to. While watching TV (Suspend deactivated),
|
||||||
deactivated), the client may not switch the transponder on the primary device.
|
the client may not switch the transponder on the primary device. If you set
|
||||||
If you set the behaviour to "Always suspended", there will be normal live-tv
|
the behaviour to "Always suspended" (the default), there will be normal live-tv
|
||||||
on the server, but whenever a client decides to switch the transponder, the
|
on the server, but whenever a client decides to switch the transponder, the
|
||||||
server will lose it's live-tv. Set to "Never suspended", the server always
|
server will lose it's live-tv. Set to "Never suspended", the server always
|
||||||
prevents the client from switching transponders. If you set "Client may
|
prevents the client from switching transponders. If you set "Client may
|
||||||
@ -198,6 +216,11 @@ no need to restart VDR.
|
|||||||
3.3 Usage VDR-to-VDR client:
|
3.3 Usage VDR-to-VDR client:
|
||||||
----------------------------
|
----------------------------
|
||||||
|
|
||||||
|
Streamdev-client adds a "Suspend Server" item to VDR's mainmenu. With the
|
||||||
|
setup parameter "Hide Mainmenu Entry" you can hide this menu item if you don't
|
||||||
|
need it. "Suspend Server" is only useful if the server runs in "Offer suspend
|
||||||
|
mode" with "Client may suspend" enabled.
|
||||||
|
|
||||||
The parameter "Remote IP" uses an IP-Adress-Editor, where you can just enter
|
The parameter "Remote IP" uses an IP-Adress-Editor, where you can just enter
|
||||||
the IP number with the number keys on your remote. After three digits (or if
|
the IP number with the number keys on your remote. After three digits (or if
|
||||||
the next digit would result in an invalid IP adress, or if the first digit is
|
the next digit would result in an invalid IP adress, or if the first digit is
|
||||||
@ -214,8 +237,9 @@ setting "Start Client" to yes. It is disabled by default, because it wouldn't
|
|||||||
make much sense to start the client without specifying a server anyway. The
|
make much sense to start the client without specifying a server anyway. The
|
||||||
client is activated after you push the OK button, so there's no need to restart
|
client is activated after you push the OK button, so there's no need to restart
|
||||||
VDR. Deactivation on-the-fly is not possible, so in order to deactivate the
|
VDR. Deactivation on-the-fly is not possible, so in order to deactivate the
|
||||||
client, you will have to restart VDR. All other settings can be changed without
|
client, you will have to restart VDR. However requests to switch channels will
|
||||||
restarting VDR.
|
be refused by streamdev-client once it has been deactivated. All other settings
|
||||||
|
can be changed without restarting VDR.
|
||||||
|
|
||||||
The client will try to connect to the server (in case it isn't yet) whenever
|
The client will try to connect to the server (in case it isn't yet) whenever
|
||||||
a remote channel is requested. Just activate the client and switch to a
|
a remote channel is requested. Just activate the client and switch to a
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: device.c,v 1.17 2008/04/07 14:40:39 schmirl Exp $
|
* $Id: device.c,v 1.18 2008/04/07 14:50:32 schmirl Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "client/device.h"
|
#include "client/device.h"
|
||||||
@ -28,6 +28,7 @@ cStreamdevDevice::cStreamdevDevice(void) {
|
|||||||
|
|
||||||
m_Filters = new cStreamdevFilters;
|
m_Filters = new cStreamdevFilters;
|
||||||
StartSectionHandler();
|
StartSectionHandler();
|
||||||
|
isyslog("streamdev-client: got device number %d", CardIndex() + 1);
|
||||||
|
|
||||||
m_Device = this;
|
m_Device = this;
|
||||||
m_Pids = 0;
|
m_Pids = 0;
|
||||||
@ -78,6 +79,10 @@ bool cStreamdevDevice::ProvidesChannel(const cChannel *Channel, int Priority,
|
|||||||
bool res = false;
|
bool res = false;
|
||||||
bool prio = Priority < 0 || Priority > this->Priority();
|
bool prio = Priority < 0 || Priority > this->Priority();
|
||||||
bool ndr = false;
|
bool ndr = false;
|
||||||
|
|
||||||
|
if (!StreamdevClientSetup.StartClient)
|
||||||
|
return false;
|
||||||
|
|
||||||
Dprintf("ProvidesChannel, Channel=%s, Prio=%d\n", Channel->Name(), Priority);
|
Dprintf("ProvidesChannel, Channel=%s, Prio=%d\n", Channel->Name(), Priority);
|
||||||
|
|
||||||
if (ClientSocket.DataSocket(siLive) != NULL
|
if (ClientSocket.DataSocket(siLive) != NULL
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: setup.c,v 1.4 2008/04/07 14:40:40 schmirl Exp $
|
* $Id: setup.c,v 1.5 2008/04/07 14:50:32 schmirl Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <vdr/menuitems.h>
|
#include <vdr/menuitems.h>
|
||||||
@ -15,6 +15,7 @@ cStreamdevClientSetup::cStreamdevClientSetup(void) {
|
|||||||
RemotePort = 2004;
|
RemotePort = 2004;
|
||||||
StreamFilters = false;
|
StreamFilters = false;
|
||||||
SyncEPG = false;
|
SyncEPG = false;
|
||||||
|
HideMenuEntry = false;
|
||||||
strcpy(RemoteIp, "");
|
strcpy(RemoteIp, "");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -29,6 +30,7 @@ bool cStreamdevClientSetup::SetupParse(const char *Name, const char *Value) {
|
|||||||
else if (strcmp(Name, "RemotePort") == 0) RemotePort = atoi(Value);
|
else if (strcmp(Name, "RemotePort") == 0) RemotePort = atoi(Value);
|
||||||
else if (strcmp(Name, "StreamFilters") == 0) StreamFilters = atoi(Value);
|
else if (strcmp(Name, "StreamFilters") == 0) StreamFilters = atoi(Value);
|
||||||
else if (strcmp(Name, "SyncEPG") == 0) SyncEPG = atoi(Value);
|
else if (strcmp(Name, "SyncEPG") == 0) SyncEPG = atoi(Value);
|
||||||
|
else if (strcmp(Name, "HideMenuEntry") == 0) HideMenuEntry = atoi(Value);
|
||||||
else return false;
|
else return false;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -36,6 +38,7 @@ bool cStreamdevClientSetup::SetupParse(const char *Name, const char *Value) {
|
|||||||
cStreamdevClientMenuSetupPage::cStreamdevClientMenuSetupPage(void) {
|
cStreamdevClientMenuSetupPage::cStreamdevClientMenuSetupPage(void) {
|
||||||
m_NewSetup = StreamdevClientSetup;
|
m_NewSetup = StreamdevClientSetup;
|
||||||
|
|
||||||
|
AddBoolEdit (tr("Hide Mainmenu Entry"),m_NewSetup.HideMenuEntry);
|
||||||
AddBoolEdit (tr("Start Client"), m_NewSetup.StartClient);
|
AddBoolEdit (tr("Start Client"), m_NewSetup.StartClient);
|
||||||
AddIpEdit (tr("Remote IP"), m_NewSetup.RemoteIp);
|
AddIpEdit (tr("Remote IP"), m_NewSetup.RemoteIp);
|
||||||
AddShortEdit(tr("Remote Port"), m_NewSetup.RemotePort);
|
AddShortEdit(tr("Remote Port"), m_NewSetup.RemotePort);
|
||||||
@ -51,8 +54,6 @@ void cStreamdevClientMenuSetupPage::Store(void) {
|
|||||||
if (m_NewSetup.StartClient != StreamdevClientSetup.StartClient) {
|
if (m_NewSetup.StartClient != StreamdevClientSetup.StartClient) {
|
||||||
if (m_NewSetup.StartClient)
|
if (m_NewSetup.StartClient)
|
||||||
cStreamdevDevice::Init();
|
cStreamdevDevice::Init();
|
||||||
else
|
|
||||||
Skins.Message(mtInfo, tr("Please restart VDR to activate changes"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SetupStore("StartClient", m_NewSetup.StartClient);
|
SetupStore("StartClient", m_NewSetup.StartClient);
|
||||||
@ -63,6 +64,7 @@ void cStreamdevClientMenuSetupPage::Store(void) {
|
|||||||
SetupStore("RemotePort", m_NewSetup.RemotePort);
|
SetupStore("RemotePort", m_NewSetup.RemotePort);
|
||||||
SetupStore("StreamFilters", m_NewSetup.StreamFilters);
|
SetupStore("StreamFilters", m_NewSetup.StreamFilters);
|
||||||
SetupStore("SyncEPG", m_NewSetup.SyncEPG);
|
SetupStore("SyncEPG", m_NewSetup.SyncEPG);
|
||||||
|
SetupStore("HideMenuEntry", m_NewSetup.HideMenuEntry);
|
||||||
|
|
||||||
StreamdevClientSetup = m_NewSetup;
|
StreamdevClientSetup = m_NewSetup;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: setup.h,v 1.3 2008/04/07 14:27:28 schmirl Exp $
|
* $Id: setup.h,v 1.4 2008/04/07 14:50:32 schmirl Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef VDR_STREAMDEV_SETUPCLIENT_H
|
#ifndef VDR_STREAMDEV_SETUPCLIENT_H
|
||||||
@ -17,6 +17,7 @@ struct cStreamdevClientSetup {
|
|||||||
int RemotePort;
|
int RemotePort;
|
||||||
int StreamFilters;
|
int StreamFilters;
|
||||||
int SyncEPG;
|
int SyncEPG;
|
||||||
|
int HideMenuEntry;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern cStreamdevClientSetup StreamdevClientSetup;
|
extern cStreamdevClientSetup StreamdevClientSetup;
|
||||||
|
297
i18n.c
297
i18n.c
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: i18n.c,v 1.7 2008/04/07 14:40:39 schmirl Exp $
|
* $Id: i18n.c,v 1.8 2008/04/07 14:50:32 schmirl Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "i18n.h"
|
#include "i18n.h"
|
||||||
@ -23,7 +23,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "VTP Streaming Client", // English
|
{ "VTP Streaming Client", // English
|
||||||
"VTP Streaming Client", // Deutsch
|
"VTP Streaming Client", // Deutsch
|
||||||
@ -41,7 +48,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Start VDR-to-VDR Server", // English
|
{ "Start VDR-to-VDR Server", // English
|
||||||
"VDR-zu-VDR Server starten", // Deutsch
|
"VDR-zu-VDR Server starten", // Deutsch
|
||||||
@ -59,7 +73,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Start HTTP Server", // English
|
{ "Start HTTP Server", // English
|
||||||
"HTTP Server starten", // Deutsch
|
"HTTP Server starten", // Deutsch
|
||||||
@ -77,7 +98,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "HTTP Streamtype", // English
|
{ "HTTP Streamtype", // English
|
||||||
"HTTP Streamtyp", // Deutsch
|
"HTTP Streamtyp", // Deutsch
|
||||||
@ -95,7 +123,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Start Client", // English
|
{ "Start Client", // English
|
||||||
"Client starten", // Deutsch
|
"Client starten", // Deutsch
|
||||||
@ -113,7 +148,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "VDR-to-VDR Server Port", // English
|
{ "VDR-to-VDR Server Port", // English
|
||||||
"Port des VDR-zu-VDR Servers", // Deutsch
|
"Port des VDR-zu-VDR Servers", // Deutsch
|
||||||
@ -131,7 +173,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "HTTP Server Port", // English
|
{ "HTTP Server Port", // English
|
||||||
"Port des HTTP Servers", // Deutsch
|
"Port des HTTP Servers", // Deutsch
|
||||||
@ -149,7 +198,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Maximum Number of Clients", // English
|
{ "Maximum Number of Clients", // English
|
||||||
"Maximalanzahl an Clients", // Deutsch
|
"Maximalanzahl an Clients", // Deutsch
|
||||||
@ -167,7 +223,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Remote IP", // English
|
{ "Remote IP", // English
|
||||||
"IP der Gegenseite", // Deutsch
|
"IP der Gegenseite", // Deutsch
|
||||||
@ -185,7 +248,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Remote Port", // English
|
{ "Remote Port", // English
|
||||||
"Port der Gegenseite", // Deutsch
|
"Port der Gegenseite", // Deutsch
|
||||||
@ -203,7 +273,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Remote Streamtype", // English
|
{ "Remote Streamtype", // English
|
||||||
"Streamtyp von Gegenseite", // Deutsch
|
"Streamtyp von Gegenseite", // Deutsch
|
||||||
@ -221,7 +298,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Common Settings", // English
|
{ "Common Settings", // English
|
||||||
"Allgemeines", // Deutsch
|
"Allgemeines", // Deutsch
|
||||||
@ -239,7 +323,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "VDR-to-VDR Server", // English
|
{ "VDR-to-VDR Server", // English
|
||||||
"VDR-zu-VDR Server", // Deutsch
|
"VDR-zu-VDR Server", // Deutsch
|
||||||
@ -257,7 +348,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "HTTP Server", // English
|
{ "HTTP Server", // English
|
||||||
"HTTP Server", // Deutsch
|
"HTTP Server", // Deutsch
|
||||||
@ -275,7 +373,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "VDR-to-VDR Client", // English
|
{ "VDR-to-VDR Client", // English
|
||||||
"VDR-zu-VDR Client", // Deutsch
|
"VDR-zu-VDR Client", // Deutsch
|
||||||
@ -293,7 +398,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Please restart VDR to activate changes", // English
|
{ "Please restart VDR to activate changes", // English
|
||||||
"Bitte starten Sie für die Änderungen VDR neu", // Deutsch
|
"Bitte starten Sie für die Änderungen VDR neu", // Deutsch
|
||||||
@ -311,7 +423,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Synchronize EPG", // English
|
{ "Synchronize EPG", // English
|
||||||
"EPG synchronisieren", // Deutsch
|
"EPG synchronisieren", // Deutsch
|
||||||
@ -329,7 +448,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Suspend Live TV", // English
|
{ "Suspend Live TV", // English
|
||||||
"Live-TV pausieren", // Deutsch
|
"Live-TV pausieren", // Deutsch
|
||||||
@ -347,7 +473,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Suspend behaviour", // English
|
{ "Suspend behaviour", // English
|
||||||
"Pausierverhalten", // Deutsch
|
"Pausierverhalten", // Deutsch
|
||||||
@ -365,7 +498,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Offer suspend mode", // English
|
{ "Offer suspend mode", // English
|
||||||
"Pausieren anbieten", // Deutsch
|
"Pausieren anbieten", // Deutsch
|
||||||
@ -383,7 +523,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Always suspended", // English
|
{ "Always suspended", // English
|
||||||
"Immer pausiert", // Deutsch
|
"Immer pausiert", // Deutsch
|
||||||
@ -401,7 +548,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Never suspended", // English
|
{ "Never suspended", // English
|
||||||
"Nie pausiert", // Deutsch
|
"Nie pausiert", // Deutsch
|
||||||
@ -419,7 +573,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Suspend Server", // English
|
{ "Suspend Server", // English
|
||||||
"Server pausieren", // Deutsch
|
"Server pausieren", // Deutsch
|
||||||
@ -437,7 +598,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Server is suspended", // English
|
{ "Server is suspended", // English
|
||||||
"Server ist pausiert", // Deutsch
|
"Server ist pausiert", // Deutsch
|
||||||
@ -455,7 +623,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Couldn't suspend Server!", // English
|
{ "Couldn't suspend Server!", // English
|
||||||
"Konnte Server nicht pausieren!", // Deutsch
|
"Konnte Server nicht pausieren!", // Deutsch
|
||||||
@ -473,7 +648,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Client may suspend", // English
|
{ "Client may suspend", // English
|
||||||
"Client darf pausieren", // Deutsch
|
"Client darf pausieren", // Deutsch
|
||||||
@ -491,7 +673,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Bind to IP", // English
|
{ "Bind to IP", // English
|
||||||
"", // Deutsch
|
"", // Deutsch
|
||||||
@ -509,7 +698,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Filter Streaming", // English
|
{ "Filter Streaming", // English
|
||||||
"", // Deutsch
|
"", // Deutsch
|
||||||
@ -527,7 +723,14 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ "Streaming active", // English
|
{ "Streaming active", // English
|
||||||
"Streamen im Gange", // Deutsch
|
"Streamen im Gange", // Deutsch
|
||||||
@ -545,7 +748,39 @@ const tI18nPhrase Phrases[] = {
|
|||||||
"", // Romaneste
|
"", // Romaneste
|
||||||
"", // Magyar
|
"", // Magyar
|
||||||
"", // Catala
|
"", // Catala
|
||||||
"" // Russian
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
|
},
|
||||||
|
{ "Hide Mainmenu Entry", // English
|
||||||
|
"Hauptmenüeintrag verstecken", // Deutsch
|
||||||
|
"", // Slovenski
|
||||||
|
"", // Italiano
|
||||||
|
"", // Nederlands
|
||||||
|
"", // Português
|
||||||
|
"", // Français
|
||||||
|
"", // Norsk
|
||||||
|
"Piilota valinta päävalikosta", // suomi
|
||||||
|
"", // Polski
|
||||||
|
"", // Español
|
||||||
|
"", // Ellinika
|
||||||
|
"", // Svenska
|
||||||
|
"", // Romaneste
|
||||||
|
"", // Magyar
|
||||||
|
"", // Catala
|
||||||
|
"", // Russian
|
||||||
|
"", // Hrvatski
|
||||||
|
"", // Eesti
|
||||||
|
"", // Dansk
|
||||||
|
"", // Czech
|
||||||
|
#if VDRVERSNUM >= 10502
|
||||||
|
"", // Türkçe
|
||||||
|
#endif
|
||||||
},
|
},
|
||||||
{ NULL }
|
{ NULL }
|
||||||
};
|
};
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#include "remux/extern.h"
|
#include "remux/extern.h"
|
||||||
|
#include "server/server.h"
|
||||||
#include "server/streamer.h"
|
#include "server/streamer.h"
|
||||||
#include <vdr/tools.h>
|
#include <vdr/tools.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
@ -6,7 +7,7 @@
|
|||||||
#include <signal.h>
|
#include <signal.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
|
|
||||||
const char *g_ExternRemux = "/root/externremux.sh";
|
const char *g_ExternRemux = EXTERNREMUXPATH;
|
||||||
|
|
||||||
class cTSExt: public cThread {
|
class cTSExt: public cThread {
|
||||||
private:
|
private:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: server.h,v 1.2 2005/05/09 20:22:29 lordjaxom Exp $
|
* $Id: server.h,v 1.3 2008/04/07 14:50:33 schmirl Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef VDR_STREAMDEV_SERVER_H
|
#ifndef VDR_STREAMDEV_SERVER_H
|
||||||
@ -10,7 +10,8 @@
|
|||||||
#include "server/component.h"
|
#include "server/component.h"
|
||||||
#include "server/connection.h"
|
#include "server/connection.h"
|
||||||
|
|
||||||
#define STREAMDEVHOSTSPATH (*AddDirectory(cPlugin::ConfigDirectory(), "streamdevhosts.conf"))
|
#define EXTERNREMUXPATH (*AddDirectory(cPlugin::ConfigDirectory(PLUGIN_NAME_I18N), "externremux.sh"))
|
||||||
|
#define STREAMDEVHOSTSPATH (*AddDirectory(cPlugin::ConfigDirectory(PLUGIN_NAME_I18N), "streamdevhosts.conf"))
|
||||||
|
|
||||||
class cStreamdevServer: public cThread {
|
class cStreamdevServer: public cThread {
|
||||||
private:
|
private:
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
/*
|
/*
|
||||||
* $Id: setup.c,v 1.2 2005/05/09 20:22:29 lordjaxom Exp $
|
* $Id: setup.c,v 1.3 2008/04/07 14:50:33 schmirl Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <vdr/menuitems.h>
|
#include <vdr/menuitems.h>
|
||||||
@ -17,7 +17,7 @@ cStreamdevServerSetup::cStreamdevServerSetup(void) {
|
|||||||
StartHTTPServer = true;
|
StartHTTPServer = true;
|
||||||
HTTPServerPort = 3000;
|
HTTPServerPort = 3000;
|
||||||
HTTPStreamType = stPES;
|
HTTPStreamType = stPES;
|
||||||
SuspendMode = smOffer;
|
SuspendMode = smAlways;
|
||||||
AllowSuspend = false;
|
AllowSuspend = false;
|
||||||
strcpy(VTPBindIP, "0.0.0.0");
|
strcpy(VTPBindIP, "0.0.0.0");
|
||||||
strcpy(HTTPBindIP, "0.0.0.0");
|
strcpy(HTTPBindIP, "0.0.0.0");
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* See the README file for copyright information and how to reach the author.
|
* See the README file for copyright information and how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: streamdev-client.c,v 1.4 2008/04/07 14:40:39 schmirl Exp $
|
* $Id: streamdev-client.c,v 1.5 2008/04/07 14:50:32 schmirl Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "streamdev-client.h"
|
#include "streamdev-client.h"
|
||||||
@ -42,7 +42,7 @@ void cPluginStreamdevClient::Housekeeping(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const char *cPluginStreamdevClient::MainMenuEntry(void) {
|
const char *cPluginStreamdevClient::MainMenuEntry(void) {
|
||||||
return StreamdevClientSetup.StartClient ? tr("Suspend Server") : NULL;
|
return StreamdevClientSetup.StartClient && !StreamdevClientSetup.HideMenuEntry ? tr("Suspend Server") : NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
cOsdObject *cPluginStreamdevClient::MainMenuAction(void) {
|
cOsdObject *cPluginStreamdevClient::MainMenuAction(void) {
|
||||||
|
48
streamdev/externremux.sh
Executable file
48
streamdev/externremux.sh
Executable file
@ -0,0 +1,48 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# externremux.sh - sample remux script using mencoder for remuxing.
|
||||||
|
#
|
||||||
|
# Install this script as VDRCONFDIR/plugins/streamdev/externremux.sh
|
||||||
|
#
|
||||||
|
# The parameter STREAMQUALITY selects the default remux parameters. Adjust
|
||||||
|
# to your needs and point your web browser to http://servername:3000/extern/
|
||||||
|
# To select different remux parameters on the fly, insert a semicolon and
|
||||||
|
# the name of the requested quality: http://servername:3000/extern;WLAN11/
|
||||||
|
|
||||||
|
# CONFIG START
|
||||||
|
STREAMQUALITY="DSL6000" # DSL{1,2,3,6}000, LAN10, WLAN{11,54}, IPAQ
|
||||||
|
TMP=/tmp/externremux-${RANDOM:-$$}
|
||||||
|
MENCODER=mencoder
|
||||||
|
# CONFIG END
|
||||||
|
|
||||||
|
mkdir -p $TMP
|
||||||
|
mkfifo $TMP/out.avi
|
||||||
|
(trap "rm -rf $TMP" EXIT HUP INT TERM ABRT; cat $TMP/out.avi) &
|
||||||
|
|
||||||
|
case ${1:-$STREAMQUALITY} in
|
||||||
|
DSL1000) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=100 \
|
||||||
|
-oac mp3lame -lameopts preset=15:mode=3 -vf scale=160:104 \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
DSL2000) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=128 \
|
||||||
|
-oac mp3lame -lameopts preset=15:mode=3 -vf scale=160:104 \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
DSL3000) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=250 \
|
||||||
|
-oac mp3lame -lameopts preset=15:mode=3 -vf scale=320:208 \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
DSL6000) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350 \
|
||||||
|
-oac mp3lame -lameopts preset=15:mode=3 -vf scale=320:208 \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
LAN10) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=4096 \
|
||||||
|
-oac mp3lame -lameopts preset=standard \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
WLAN11) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=768 \
|
||||||
|
-oac mp3lame -lameopts preset=standard -vf scale=640:408 \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
WLAN54) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=2048 \
|
||||||
|
-oac mp3lame -lameopts preset=standard \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
IPAQ) exec $MENCODER -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=350 \
|
||||||
|
-oac mp3lame -lameopts preset=15:mode=3 -vf scale=320:208 \
|
||||||
|
-o $TMP/out.avi -- - &>$TMP/out.log ;;
|
||||||
|
*) touch $TMP/out.avi ;;
|
||||||
|
esac
|
Loading…
Reference in New Issue
Block a user