Jump to content


Photo

Alternative Channels Saga, Part 1: 8001 port streaming

streaming alternative channels

  • Please log in to reply
2 replies to this topic

#1 macnuts

  • Senior Member
  • 420 posts

+14
Neutral

Posted 4 August 2012 - 01:10

Current status:
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.

Re: Alternative Channels Saga, Part 1: 8001 port streaming #2 littlesat

  • PLi® Core member
  • 56,123 posts

+685
Excellent

Posted 4 August 2012 - 09:10

I suggest the + row is pseudocode here :D

This is a change required in cpp code... for this you must compile your own enigma2 binary file.

But I think you can better solve this were you click on a link were we have now the alternative bouquet code.... and do not try to stream on an alternative bouquet. So I suggest this needs a change to e.g. the webif. There should occur a link to the best possible service (at that moment)....

So I suggest you could better merge your Saga's....

Edited by littlesat, 4 August 2012 - 09:28.

WaveFrontier 28.2E | 23.5E | 19.2E | 16E | 13E | 10/9E | 7E | 5E | 1W | 4/5W | 15W


Re: Alternative Channels Saga, Part 1: 8001 port streaming #3 macnuts

  • Senior Member
  • 420 posts

+14
Neutral

Posted 4 August 2012 - 09:28

I suggest the + row is pseudocode here :D

This is a change required in cpp code... for this you must compile your own enigma2 binary file.

But I think you can better solve this were you click on a link were we have now the alternative bouquet code.... and do not try to stream on an alternative bouquet. So I suggest this needs a change to e.g. the webif. There should occur a link to the best possible service (at that moment)....


You are totaly right here... if I only know how to make make the patch permanent (on my build system). I got familar with git, read the excellent online book, but have problems to put it together with bitbake. Any help appreciated (or point to resources). I tried to find the info on in the3rd Party development forum, but the information is scattered around. For now, I have the set-up environment to build Openpli2.1/3.0 dm8000 images.

Regards.



Also tagged with one or more of these keywords: streaming, alternative channels

1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users