Jump to content


Photo

EPG with GStreamer (ServiceMP3)

epg gstreamer servicemp3

  • Please log in to reply
56 replies to this topic

Re: EPG with GStreamer (ServiceMP3) #41 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 12 December 2013 - 18:39

Hello,


eServiceMP3::getInfoString didn't return info for sServiceref.

Without sServiceref Picons for GStreamer services cannot rendered cause sServiceref was empty.

I wrote two patches, please commit what you think is better :)

First patch uses only if.
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -1083,6 +1083,14 @@ int eServiceMP3::getInfo(int w)
 
 std::string eServiceMP3::getInfoString(int w)
 {
+	if ( m_sourceinfo.is_streaming && w == sServiceref )
+	{
+		eServiceReference ref(m_ref);
+		ref.type = eServiceFactoryMP3::id;
+		ref.path.clear();
+		return ref.toString();
+	}
+
 	if ( !m_stream_tags && w < sUser && w > 26 )
 		return "";
 	const gchar *tag = 0;
Attached File  0001-ServiceMP3-Handle-sServiceref-on-getInfoString1.patch.txt   933bytes   3 downloads


Second patch uses tries to be more "generic". Also returns "Internet" for sProvider.
--- a/lib/service/servicemp3.cpp
+++ b/lib/service/servicemp3.cpp
@@ -1083,6 +1083,25 @@ int eServiceMP3::getInfo(int w)
 
 std::string eServiceMP3::getInfoString(int w)
 {
+	if ( m_sourceinfo.is_streaming )
+	{
+		switch (w)
+		{
+		case sProvider:
+			return "Internet";
+		case sServiceref:
+		{
+			eServiceReference ref(m_ref);
+			ref.type = eServiceFactoryMP3::id;
+			ref.path.clear();
+			return ref.toString();
+		}
+		default:
+			break;
+		}
+		return iServiceInformation::getInfoString(w);
+	}
+
 	if ( !m_stream_tags && w < sUser && w > 26 )
 		return "";
 	const gchar *tag = 0;
Attached File  0001-ServiceMP3-Handle-sServiceref-on-getInfoString2.patch.txt   1.06KB   5 downloads

Thanks!
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: EPG with GStreamer (ServiceMP3) #42 littlesat

  • PLi® Core member
  • 57,184 posts

+699
Excellent

Posted 12 December 2013 - 18:48

So two patches for the same????


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


Re: EPG with GStreamer (ServiceMP3) #43 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 12 December 2013 - 18:52

Commit what you think is better.

Second patch also returns data sProvider (not sure where it is used and if it is required for GStreamer).

Edited by athoik, 12 December 2013 - 18:53.

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: EPG with GStreamer (ServiceMP3) #44 doubledip

  • Senior Member
  • 334 posts

+7
Neutral

Posted 21 December 2013 - 18:15

Does it work with rtmp streams?

Re: EPG with GStreamer (ServiceMP3) #45 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 21 December 2013 - 18:27

Protocol doen't matter. All services that make use of ServiceMP3 it is possible to get EPG (using Xmltvimport).


Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: EPG with GStreamer (ServiceMP3) #46 doubledip

  • Senior Member
  • 334 posts

+7
Neutral

Posted 21 December 2013 - 18:53

Is this example correkt, because it didnt work for me.


<channel id="channel.id">1:0:1:1000:1000:0:0:0:0:0:rtmp%3a//example.com playpath=... swfUrl=http%3a//... pageUrl=http%3a//... live=1</channel> <!--channel-->

 

#SERVICE 4097:0:1:1000:1000:0:0:0:0:0:rtmp%3a//example.com playpath=... swfUrl=http%3a//... pageUrl=http%3a//... live=1:channel

 

 

Thank You



Re: EPG with GStreamer (ServiceMP3) #47 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 21 December 2013 - 19:18

Just use: http://example.com in xmltvimport like this:

 

 

<channel id="channel.id">1:0:1:1000:1000:0:0:0:0:0:http%3a//example.com</channel> <!--channel-->

 

In channel list use the actual url.


Edited by athoik, 21 December 2013 - 19:19.

Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: EPG with GStreamer (ServiceMP3) #48 doubledip

  • Senior Member
  • 334 posts

+7
Neutral

Posted 21 December 2013 - 20:23

So everything behind http is not important?

 

I tired it with ocko tv rtmp stream, but couldnt get an epg. I changed the channel id to a random channel and got epg from the random channel for the ocko stream. It seems the epg from ocko was the problem.

 

Thanks again

 

Great work!



Re: EPG with GStreamer (ServiceMP3) #49 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 22 December 2013 - 07:15

Xmltvimport needs the http%3a// (whatever) just to start a fake recording and then to import EPG.

But almost every piece of code had small issues (even the fake recording).

Now all issues gone (most probably), what is missing is some real examples in Xmltvimport as a quide, cause many users have the same questions as you.
Wavefield T90: 0.8W - 1.9E - 4.8E - 13E - 16E - 19.2E - 23.5E - 26E - 33E - 39E - 42E - 45E on EMP Centauri DiseqC 16/1
Unamed: 13E Quattro - 9E Quattro on IKUSI MS-0916

Re: EPG with GStreamer (ServiceMP3) #50 doglover

  • Rytec EPG Team
  • 17,407 posts

+658
Excellent

Posted 22 December 2013 - 09:35

Here is a working example.

 

http://openpli.org/f...t-xmltv-import/

 

Pls. correct if there are misinterpretations (but the example works on a et-9500 with OpenPli 4.0)

 

Willy


~~Rytec Team~~
Maxytec Multibox SE OpenPli (used as mediaplayer)
Mutant HD2400 OpenPli
Vu+ Duo OpenPli (backup)

Synology NAS

Sat: 13E, 19.2E, 23.5E and 28.2E
*Pli/Rytec EPG POWERED*


Re: EPG with GStreamer (ServiceMP3) #51 theparasol

  • Senior Member
  • 4,157 posts

+198
Excellent

Posted 19 January 2014 - 20:49

Yesterday and today I did some rework on Shoutcast after a message that mp3 tags didnt get parsed any longer.

 

Right now on mp3 streams from the net I face this behaviour:

 

[SHOUTcast] cover visible 0 self.hide
playing 4097:0:0:0:0:0:0:0:0:0:http%3a//178.19.116.250%3a7062
[servicelist] search for service in userbouquets
main thread is non-idle! display spinner!
[servicelist] service not found in any userbouquets
eServiceMP3::construct!
getResolvedKey config.mediaplayer.extraHeaders failed !! (Typo??)

the servicelist entries are new for me, it takes additional 10~15 seconds before attempt is done to start fetching the mp3 stream from the net.

Lost time if you ask me.... Same thing happens with uitzending gemist.

Somehow the code of updating the epg needs additional conditions to narrow it down only to iptv streams that have epg.

Like its now its applied on all kind of streams even onces that obvious have no epg data.

 

Is it an idea to move the specific video & epgupdate code to a later point and adding additional condition?

 

if ( m_sourceinfo.is_video = TRUE )
    {
        CONNECT(m_subtitle_sync_timer->timeout, eServiceMP3::pushSubtitles);
        CONNECT(m_pump.recv_msg, eServiceMP3::gstPoll);
        CONNECT(m_nownext_timer->timeout, eServiceMP3::updateEpgCacheNowNext);
    }
    eDebug("eServiceMP3::playbin uri=%s", uri);
#if GST_VERSION_MAJOR < 1
    m_gst_playbin = gst_element_factory_make("playbin2", "playbin");

 

I hope this way at least the mp3 streams aren't affected any longer.

Perhaps someone knows another fine trick to apply it just on video streams that have epg, right now uitzendinggemist streams are affected too.


@Camping: ZGemma H.2S, Technisat Multytenne 4-in-1 @Home: Edision Mini 4K, Wave Frontier T55, EMP Centauri EMP DiSEqC 8/1 switch, 4x Inverto Ultra Black single LNB


Re: EPG with GStreamer (ServiceMP3) #52 theparasol

  • Senior Member
  • 4,157 posts

+198
Excellent

Posted 19 January 2014 - 20:58

update: if ( m_sourceinfo.is_video = TRUE ) has to be if ( m_sourceinfo.is_video == TRUE )        ;)


@Camping: ZGemma H.2S, Technisat Multytenne 4-in-1 @Home: Edision Mini 4K, Wave Frontier T55, EMP Centauri EMP DiSEqC 8/1 switch, 4x Inverto Ultra Black single LNB


Re: EPG with GStreamer (ServiceMP3) #53 pieterg

  • PLi® Core member
  • 32,766 posts

+245
Excellent

Posted 20 January 2014 - 19:20

I don't think 'is_video' is a good condition to check for.
Also, you always need the pump signal.
And the subtitle sync signal does not hurt, because it does not do anything when there are no subtitles.

It's just the epg poll timer you're after I think?
Perhaps use the serviceref? I believe the epgcache only works if sid/tsid/onid are valid?
In all other cases, the epgcache should return 'no event' rather quickly, should not take 10-15s.

Re: EPG with GStreamer (ServiceMP3) #54 theparasol

  • Senior Member
  • 4,157 posts

+198
Excellent

Posted 20 January 2014 - 19:29

I haven't stopwatched it, but the spinners appear and box is burning several seconds of time on things it shouldn't do at that point.

If the user presses ok on a certain radio stream from the web it should starting to get streamdata to play not wasting time to see if there is an EPG update.

I'm not sure if sid/tsid/onid are invalid, But on other hand it isnt set either if you ask me, if its considered valid its merely a lucky positive hit.

mp3 stream is started like this:

 

sref = eServiceReference("4097:0:0:0:0:0:0:0:0:0:%s" % url.replace(':', '%3a'))

self.session.nav.playService(sref)


@Camping: ZGemma H.2S, Technisat Multytenne 4-in-1 @Home: Edision Mini 4K, Wave Frontier T55, EMP Centauri EMP DiSEqC 8/1 switch, 4x Inverto Ultra Black single LNB


Re: EPG with GStreamer (ServiceMP3) #55 theparasol

  • Senior Member
  • 4,157 posts

+198
Excellent

Posted 20 January 2014 - 23:01

I see strange things in this log, its always like this on mp3 streams...

 

Infobar wants to apply cuts?! (on live mp3 stream....)

EPG search even if mp3 stream should be played?

 

I dont care for logs, but before stream is playing several seconds of silence are wasted accompanied with spinners

 

playing 4097:0:1:0:0:0:0:0:0:0:http%3a//88.198.3.15%3a11950

[servicelist] search for service in userbouquets

main thread is non-idle! display spinner!

[servicelist] service not found in any userbouquets

eServiceMP3::construct!

getResolvedKey config.mediaplayer.extraHeaders failed !! (Typo??)

eServiceMP3::playbin uri=http://88.198.3.15:11950

eServiceMP3::starting pipeline

resolved to PLAY

gst_element_query_position failed in getPlayPosition

resolved to PLAY

gst_element_query_position failed in getPlayPosition

resolved to PLAY

gst_element_query_position failed in getPlayPosition

new service started! trying to download cuts!

download failed, no cuesheet interface

RemovePopup, id = ZapError

[SHOUTcast] EVENT ==> 0

main thread is non-idle! display spinner!

eServiceMP3::state transition NULL -> READY

 

And the now normal buffering log flooding?

 

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 2 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 0 percent done

[SHOUTcast] EVENT ==> 18

Buffering 1 percent done

[SHOUTcast] EVENT ==> 18

Buffering 2 percent done

[SHOUTcast] EVENT ==> 18

 

 

Attached Files


@Camping: ZGemma H.2S, Technisat Multytenne 4-in-1 @Home: Edision Mini 4K, Wave Frontier T55, EMP Centauri EMP DiSEqC 8/1 switch, 4x Inverto Ultra Black single LNB


Re: EPG with GStreamer (ServiceMP3) #56 technic

  • Senior Member
  • 81 posts

+9
Neutral

Posted 10 February 2015 - 00:44

Hi!

I am really glad to see these changes. But I have a question. In case I want to implement own service with custom serviceID, but with epg from EPGCache the following line obstructs me.
http://sourceforge.n...cache.cpp#l2471

Why only special serviceIDs are allowed to query from EPGCache?



Re: EPG with GStreamer (ServiceMP3) #57 osicam

  • Member
  • 15 posts

0
Neutral

Posted 17 June 2016 - 09:41

Hello I am a bit lost with all the discussions here lol

Can someone just tell me  if there is a solution to display epg on channel list (current and next) with service 5002 (exteplayer3) ?

 

Thanks for your help





Also tagged with one or more of these keywords: epg, gstreamer, servicemp3

3 user(s) are reading this topic

0 members, 3 guests, 0 anonymous users