the alternative channels are not streamed from enigma2 box to the client, like DreamDroid Android application.
Where to solve:
File: enigma2/lib/service/servicedvbstream.cpp:
int eDVBServiceStream::start(const char *serviceref, int fd) { if (m_state != stateIdle) return -1; m_ref = eServiceReferenceDVB(serviceref); + check if m_ref has isGroup flag; if true: m_ref = getBestPlayableServiceReference(....) if (doPrepare() < 0) return -1; m_target_fd = fd; m_want_record = 1; return doRecord(); }
Explanations:
serviceref can be an alternative channel reference in the form like:
1:134:1:0:0:0:0:0:0:0:FROM BOUQUET "alternatives.tvp1_hd.tv" ORDER BY bouquet
The eServiceReferenceDVB constructor works in such a way that it sets the service reference path to: "FROM BOUQUET ....".
But the problem occurs in eDVBServicePMTHandler::tuneExt method (located in lib/dvb/pmt.cpp, called indirectly by doPrepare). tuneExt method assumes that the service reference with path not NULL is a reference to the file (as opposed to the reference to the channel).
Solution:
Implement the check for isGroup flag in eDVBServiceStream::start or rewrite the eDVBServicePMTHandler::tuneExt.
I would do it myself and present the patch, but I do not know yet how to patch the source of OpenPli in a way that a patch is not overwritten on build.
Regards.