Disabled PS remuxer which is said to produce anything but PS

This commit is contained in:
Frank Schmirler 2013-11-17 11:20:42 +01:00
parent 1439b016b3
commit c18f7d47e7
8 changed files with 24 additions and 7 deletions

View File

@ -1,6 +1,7 @@
VDR Plugin 'streamdev' Revision History VDR Plugin 'streamdev' Revision History
--------------------------------------- ---------------------------------------
- Disabled PS remuxer which is said to produce anything but PS
- The patches intcamdevices and ignore_missing_cam are no longer required - The patches intcamdevices and ignore_missing_cam are no longer required
on VDR >= 1.7.30. The localchannelprovide patch became obsolete with VDR on VDR >= 1.7.30. The localchannelprovide patch became obsolete with VDR
1.7.21. 1.7.21.

7
README
View File

@ -240,7 +240,6 @@ has been requested in the URL (see below). The supported stream types are:
TS Transport Stream (i.e. a dump from the device) TS Transport Stream (i.e. a dump from the device)
PES Packetized Elemetary Stream (VDR's native recording format) PES Packetized Elemetary Stream (VDR's native recording format)
PS Program Stream (SVCD, DVD like stream)
ES Elementary Stream (only Video, if available, otherwise only Audio) ES Elementary Stream (only Video, if available, otherwise only Audio)
EXT Pass stream through external script (e.g. for converting with mencoder) EXT Pass stream through external script (e.g. for converting with mencoder)
@ -267,9 +266,9 @@ In addition, you can specify the desired stream type as a path to the channel.
http://hostname:3000/PES/S19.2E-0-12480-898 http://hostname:3000/PES/S19.2E-0-12480-898
The first one would deliver the stream in TS, the second one in PES format. The first one would deliver the stream in TS, the second one in PES format.
Possible values are 'PES', 'TS', 'PS', 'ES' and 'EXT'. You need to specify Possible values are 'PES', 'TS', 'ES' and 'EXT'. You need to specify the ES
the ES format explicitly if you want to listen to radio channels. Play them format explicitly if you want to listen to radio channels. Play them back i.e.
back i.e. with mpg123. with mpg123.
mpg123 http://hostname:3000/ES/200 mpg123 http://hostname:3000/ES/200

View File

@ -1,3 +1,5 @@
#ifdef STREAMDEV_PS
#include "remux/ts2ps.h" #include "remux/ts2ps.h"
#include "server/streamer.h" #include "server/streamer.h"
#include <vdr/channels.h> #include <vdr/channels.h>
@ -216,3 +218,4 @@ uchar *cTS2PSRemux::Get(int &Count)
return resultData; return resultData;
} }
#endif

View File

@ -1,3 +1,5 @@
#ifdef STREAMDEV_PS
#ifndef VDR_STREAMDEV_TS2PSREMUX_H #ifndef VDR_STREAMDEV_TS2PSREMUX_H
#define VDR_STREAMDEV_TS2PSREMUX_H #define VDR_STREAMDEV_TS2PSREMUX_H
@ -34,3 +36,5 @@ public:
} // namespace Streamdev } // namespace Streamdev
#endif // VDR_STREAMDEV_TS2PSREMUX_H #endif // VDR_STREAMDEV_TS2PSREMUX_H
#endif

View File

@ -585,10 +585,12 @@ bool cConnectionHTTP::ProcessURI(const std::string& PathInfo)
// Streamtype with leading / stripped off // Streamtype with leading / stripped off
std::string type = PathInfo.substr(1, PathInfo.find_first_of("/;", 1) - 1); std::string type = PathInfo.substr(1, PathInfo.find_first_of("/;", 1) - 1);
const char* pType = type.c_str(); const char* pType = type.c_str();
if (strcasecmp(pType, "PS") == 0) { if (strcasecmp(pType, "PES") == 0) {
m_StreamType = stPS;
} else if (strcasecmp(pType, "PES") == 0) {
m_StreamType = stPES; m_StreamType = stPES;
#ifdef STREAMDEV_PS
} else if (strcasecmp(pType, "PS") == 0) {
m_StreamType = stPS;
#endif
} else if (strcasecmp(pType, "TS") == 0) { } else if (strcasecmp(pType, "TS") == 0) {
m_StreamType = stTS; m_StreamType = stTS;
} else if (strcasecmp(pType, "ES") == 0) { } else if (strcasecmp(pType, "ES") == 0) {

View File

@ -872,10 +872,12 @@ bool cConnectionVTP::CmdCAPS(char *Opts)
return Respond(220, "Capability \"%s\" accepted", Opts); return Respond(220, "Capability \"%s\" accepted", Opts);
} }
#ifdef STREAMDEV_PS
if (strcasecmp(Opts, "PS") == 0) { if (strcasecmp(Opts, "PS") == 0) {
m_StreamType = stPS; m_StreamType = stPS;
return Respond(220, "Capability \"%s\" accepted", Opts); return Respond(220, "Capability \"%s\" accepted", Opts);
} }
#endif
if (strcasecmp(Opts, "PES") == 0) { if (strcasecmp(Opts, "PES") == 0) {
m_StreamType = stPES; m_StreamType = stPES;

View File

@ -496,9 +496,11 @@ bool cStreamdevLiveStreamer::SetChannel(const cChannel *Channel, eStreamType Str
m_Remux = new cTS2PESRemux(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids()); m_Remux = new cTS2PESRemux(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids());
return SetPids(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids()); return SetPids(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids());
#ifdef STREAMDEV_PS
case stPS: case stPS:
m_Remux = new cTS2PSRemux(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids()); m_Remux = new cTS2PSRemux(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids());
return SetPids(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids()); return SetPids(m_Channel->Vpid(), Apids, Dpids, m_Channel->Spids());
#endif
case stEXT: case stEXT:
m_Remux = new cExternRemux(Connection(), m_Channel, Apids, Dpids); m_Remux = new cExternRemux(Connection(), m_Channel, Apids, Dpids);

View File

@ -260,8 +260,10 @@ std::string cHtmlMenuList::StreamTypeMenu()
std::string typeMenu; std::string typeMenu;
typeMenu += (streamType == stTS ? (std::string) "[TS] " : typeMenu += (streamType == stTS ? (std::string) "[TS] " :
(std::string) "[<a href=\"/TS/" + self + "\">TS</a>] "); (std::string) "[<a href=\"/TS/" + self + "\">TS</a>] ");
#ifdef STREAMDEV_PS
typeMenu += (streamType == stPS ? (std::string) "[PS] " : typeMenu += (streamType == stPS ? (std::string) "[PS] " :
(std::string) "[<a href=\"/PS/" + self + "\">PS</a>] "); (std::string) "[<a href=\"/PS/" + self + "\">PS</a>] ");
#endif
typeMenu += (streamType == stPES ? (std::string) "[PES] " : typeMenu += (streamType == stPES ? (std::string) "[PES] " :
(std::string) "[<a href=\"/PES/" + self + "\">PES</a>] "); (std::string) "[<a href=\"/PES/" + self + "\">PES</a>] ");
typeMenu += (streamType == stES ? (std::string) "[ES] " : typeMenu += (streamType == stES ? (std::string) "[ES] " :
@ -402,7 +404,9 @@ std::string cHtmlMenuList::ItemText()
switch (streamType) { switch (streamType) {
case stTS: suffix = (std::string) ".ts"; break; case stTS: suffix = (std::string) ".ts"; break;
#ifdef STREAMDEV_PS
case stPS: suffix = (std::string) ".vob"; break; case stPS: suffix = (std::string) ".vob"; break;
#endif
// for Network Media Tank // for Network Media Tank
case stPES: suffix = (std::string) ".vdr"; break; case stPES: suffix = (std::string) ".vdr"; break;
default: suffix = ""; default: suffix = "";