Jump to content


Photo

GStreamer 1.0

gstreamer 1.0 openpli

  • Please log in to reply
2520 replies to this topic

Re: GStreamer 1.0 #2381 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 17 April 2016 - 00:39

....
We can control this from connection-speed.
 

# gst-inspect-1.0 hlsdemux
...
  connection-speed    : Network connection speed in kbps (0 = calculate from downloaded fragments)
                        flags: readable, writable
                        Unsigned Integer. Range: 0 - 4294967 Default: 0
...
When using connection-speed=4294967 on gst-launch it starts from high quality.
 
....


FYI ;)
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: GStreamer 1.0 #2382 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 17 April 2016 - 07:50

@Taapat

 

Nice idea with patch and the no concerns off bug :

 

https://bugzilla.gno...g.cgi?id=758916

 

since we act only on hlsdemux. But again a patch in source which on time could give problems when sources are changing, and works on hlsdemux are still in progress.

I well will try it out.

 

But for example setting into servicemp3 fixed connection-speed=4294967 (whitout the need off a extra parameter and or setting) limited on http in begin and m3u8 extention in link could do as well.



Re: GStreamer 1.0 #2383 Taapat

  • PLi® Core member
  • 2,345 posts

+121
Excellent

Posted 17 April 2016 - 11:07

@christophecvr firstly I into servicemp3 set max-speed connection by m3u8 in filename.
But then I discovered that a few links from youtube not contain m3u8 not in extention, not in fileneme, and therefore, it is difficult to determine that it is hls link.
Therefore, I chose to use it in gsthlsdemux, leaving possibility of set a different connection-speed.

 

 

@athoik so far, I'm not drawn a lot of attention to this, but it seems to me that the calculation from downloaded fragments not working fast and good.
I agree, that maybe it could be improved, but it seems to me, as a quick solution we can use max connection-speed.



Re: GStreamer 1.0 #2384 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 17 April 2016 - 12:38

@Taapat indeed the download speed calculation does not work that well and as a result one may end up with a caps = NULL situation in life streams , result a start off playing stream +- 2 to 10 seconds break during +- 35 till 60 seconds and then it resumes.

 

With speed set this does not happen (also it may be due to an incomplete chunk for the lowest resolution.) th tm.smil is an example of such one.



Re: GStreamer 1.0 #2385 gorski

  • Senior Member
  • 1,699 posts

+46
Good

Posted 17 April 2016 - 14:22

IPTV Player > WebSTreams > UK > Live TV > choose a player (eplayer3) > choose a channel > here IPTV Player gives you options "low" and "high" for every channel!

 

Have a look there, as it is working rather well...

 

I suggested it for TSmedia, too.

 

Great to have a choice! ;)


<span style='font-family: comic sans ms,cursive'>"Enlightenment is man's emergence from his self-incurred immaturity. Immaturity is the inability to use one's own understanding without the guidance of another. This immaturity is self-incurred if its cause is not lack of understanding, but lack of resolution and courage to use it without the guidance of another. The motto of enlightenment is therefore: Sapere aude! Have courage to use your own understanding!</span><br /> <br /><span style='font-family: comic sans ms,cursive'>Laziness and cowardice are the reasons why such a large proportion of men, even when nature has long emancipated them from alien guidance..." I. Kant, "Political writings" (1784)</span><br /> <br /><span style='font-family: comic sans ms,cursive'><a class='bbc_url' href='<a class='bbc_url' href='http://eserver.org/p...lightenment.txt'>http://eserver.org/p...ent.txt</a>'><a class='bbc_url' href='http://www.english.upenn.edu/~mgamer/Etexts/kant.html</a>'>http://www.english.upenn.edu/~mgamer/Etexts/kant.html</a></a> - the jolly text on Enlightenment, at the basis of Modernity...</span>

Re: GStreamer 1.0 #2386 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 17 April 2016 - 15:41

I would really like to select qualities using the alternative services (that Enigma2 supports).

I thing it was mentioned before my @mx3L or @betacentauri.

So please consider implementing qualities like alternative services.
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: GStreamer 1.0 #2387 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 17 April 2016 - 19:57

@athoik

 

You just give me an idea make it all a bit more services based.

 

At this time we are using a single player in e2 called servicemp3.cpp to play so what all trough gstreamer.

 

But to make the player ok for all type off media is very difficult.

 

Like for fix media full prerol and audio,sub selection should be done before passing to play state. If done there is no need off (+- dirty work-arounds) into mediasink self.

 

Then one for the website media or actually all streamed media.

 

Then one service for the cd playing. Currently we are rid off the virtual mounting (has been deprecated in linux kernel since long) libcdio is used to make a playlist from the audio cd when the audio cd is dected now the cd is not mounted anymore.

But if a separate cpp for audio cd only is made the optimum settings can be done and instead off threading the cd track by track we will tread the cd as an entity and the jump between tracks will just be done by seek.

 

This all will be a lot of work , but once it's done the base like say e2 media player can be easily used for all .

 

But the advantage is that we have a typicall media related type player (in cpp)

 

one for cd playing

one for file media playing

one for website and live streams playing.

 

one for dvd is already present.



Re: GStreamer 1.0 #2388 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 17 April 2016 - 20:44

See how subservices work in servicedvb:
 
int eDVBServicePlay::getNumberOfSubservices()
{
        ePtr<eServiceEvent> evt;
        if (!m_event_handler.getEvent(evt, 0))
                return evt->getNumOfLinkageServices();
        return 0;
}

RESULT eDVBServicePlay::getSubservice(eServiceReference &sub, unsigned int n)
{
        ePtr<eServiceEvent> evt;
        if (!m_event_handler.getEvent(evt, 0))
        {
                if (!evt->getLinkageService(sub, m_reference, n))
                        return 0;
        }
        sub.type=eServiceReference::idInvalid;
        return -1;
}
Now imagine that getNumberOfSubservices returns the qualities available in stream (when those exists) and image that getSubservice is switching to another quality.

If you can imagine it, then make it happen ;)

Edited by athoik, 17 April 2016 - 20:45.

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: GStreamer 1.0 #2389 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 18 April 2016 - 15:25

@Taapat for the time now I'll did you're way with patch gstreamer for the max hls speed. works well.

 

I Adapted the 1.9.0.1 recipes on :

 

https://github.com/c...TREAMER-RECIPES



Re: GStreamer 1.0 #2390 peti

  • Senior Member
  • 115 posts

+1
Neutral

Posted 20 April 2016 - 19:48

GST 1.8.1 has been released


T90 | 28.2E-23.5E-19.2E-13E-9E-4.8E-0.8W-4W

Zgemma H7S | OpenPLI develop branch


Re: GStreamer 1.0 #2391 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 26 April 2016 - 16:37

Chris and mx3L, after your latest pull request for servicemp3.cpp I'm getting random segfaults when zapping iptv channels.
This is with chris' gstreamer recipes.

Tested on zgemma h2h and dm800hd.
< 22297.714> [eDVBCAService] free service 1:0:19:4BC9:832:600:FFFF0000:0:0:0:
< 22297.744> [eTSMPEGDecoder] decoder state: play, vpid=ffffffff, apid=ffffffff
< 22297.745> [eDVBPCR0] DEMUX_STOP ok
< 22297.745> [eDVBPCR0] destroy
< 22297.745> [eDVBVideo0] DEMUX_STOP  ok
< 22297.745> [eDVBVideo0] VIDEO_STOP ok
< 22297.746> [eDVBVideo0] destroy
< 22297.747> [eDVBAudio0] AUDIO_STOP ok
< 22297.779> [eDVBAudio0] DEMUX_STOP ok
< 22297.780> [eDVBAudio0] AUDIO_CONTINUE ok
< 22297.780> [eDVBAudio0] destroy
< 22297.780> [eDVBText0] DEMUX_STOP ok
< 22297.784> [eDVBText0] destroy
< 22297.791> [eDVBResourceManager] start release channel timer
< 22297.792> [eServiceMP3] construct!
< 22297.792> [eServiceMP3] playbin uri=http://cdn.djing.com/tv/i-05.m3u8
< 22297.824> [eServiceMP3] starting pipeline
< 22299.306> [eHdmiCEC] received message 45
< 22299.308> [eServiceMP3] state transition NULL -> READY
< 22299.349> resolved to PLAY
< 22299.351> resolved to PLAY
< 22299.354> resolved to PLAY
< 22299.357> new service started! trying to download cuts!
< 22299.358> RemovePopup, id = ZapError
< 22299.714> [DVBCAHandler] no more services
< 22301.662> [eServiceMP3] state transition READY -> PAUSED
< 22301.667> [eServiceMP3] loading cuesheet
< 22301.667> [eServiceMP3] cutfile not found!
< 22301.710> [eServiceMP3] async-done - 1 video, 1 audio, 0 subtitle
< 22301.710> [eServiceMP3] AUDIO STRUCT=audio/mpeg
< 22301.711> [eServiceMP3] audio stream=0 codec=MPEG-2 AAC language=und
< 22302.060> [eServiceMP3] state transition PAUSED -> PLAYING
< 22304.396> [eDVBResourceManager] release cached channel (timer timeout)
< 22304.397> [eDVBLocalTimerHandler] remove channel 0x1e559d8
< 22304.397> [eEPGCache] remove channel 0x1e559d8
< 22304.428> [eEPGCache] abort caching events !!
< 22304.432> [eDVBResourceManager] stop release channel timer
< 22307.486> [eDVBFrontend] close frontend 1
< 22315.760> getFPVersion failed!
< 22425.966> [eHdmiCEC] received message 44 04
< 22425.987> action ->  InfobarChannelSelection keyRight
< 22425.991> playing 4097:0:0:0:0:0:0:0:0:0:http%3a//cdn.djing.com/tv/ibiza.m3u8:DJING Ibiza (CDN)
< 22425.992> [eServiceMP3] stop http://cdn.djing.com/tv/i-05.m3u8
< 22426.221> [eServiceMP3] destruct!
< 22426.224> [eServiceMP3] construct!
< 22426.224> [eServiceMP3] playbin uri=http://cdn.djing.com/tv/ibiza.m3u8
< 22426.226> [eServiceMP3] starting pipeline
< 22426.237> [eHdmiCEC] received message 45
< 22426.240> [eServiceMP3] state transition NULL -> READY
< 22426.295> resolved to PLAY
< 22426.298> resolved to PLAY
< 22426.301> resolved to PLAY
< 22426.303> new service started! trying to download cuts!
< 22426.304> RemovePopup, id = ZapError
< 22428.489> [eServiceMP3] state transition READY -> PAUSED
< 22428.492> [eServiceMP3] loading cuesheet
< 22428.492> [eServiceMP3] cutfile not found!
< 22428.584> [eServiceMP3] async-done - 1 video, 1 audio, 0 subtitle
< 22428.585> [eServiceMP3] AUDIO STRUCT=audio/mpeg
< 22428.588> [eServiceMP3] audio stream=0 codec=MPEG-2 AAC language=und
< 22428.757> [eServiceMP3] state transition PAUSED -> PLAYING
< 22431.279> PC: 7772249c
< 22431.279>     00000000 00000001 71622d18 00000000
< 22431.279>     00000010 00000001 afdbf6b4 00001466
< 22431.279>     b06cdf53 00000000 00000001 00000000
< 22431.279>     00000000 ffffffff 00000000 0000008d
< 22431.279>     71622d18 77914000 73646020 736460c8
< 22431.279>     736460d4 7480d6e0 00000000 7480d6c0
< 22431.279>     00000000 7772248c 00000000 00000000
< 22431.280>     777c1790 70e22dc0 00001466 71e49218
< 22431.280> -------FATAL SIGNAL
root@h3:/media/usb# 
It happens on all (mostly hls) streams.

Re: GStreamer 1.0 #2392 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 26 April 2016 - 16:50

its clear there is a segfault when pass from paused to playing. the last changes have nothing to do with it,

 

For this error the media You tried to play must be passed to check  and this 100 % like it is. 



Re: GStreamer 1.0 #2393 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 26 April 2016 - 17:06

I'll just checked with :

 

last master-next

last enigma2

gstreamer 9.0.1 like on my GST recipes.

all 100 % ok no segfault or any error for the link you posted

 

link is :4097:0:0:0:0:0:0:0:0:0:http%3a//cdn.djing.com/tv/ibiza.m3u8:DJING Ibiza (CDN)



Re: GStreamer 1.0 #2394 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 26 April 2016 - 17:09

Try to put both links in the same bouquet then switch between them a few times.

Re: GStreamer 1.0 #2395 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 26 April 2016 - 17:31

Sorry no segfault.

 

Ok the stream may after so what 5 to 10 min ok playing sudden interupt and a switch to other channel is required and go back to play again. but :

with last master-next, last e2, last gstreamer   no problem. It comes from somewhere else in image



Re: GStreamer 1.0 #2396 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 26 April 2016 - 17:50

@MastaG

Try to revert those patches one by one and see if it fixes your problem. Let us know then..



Re: GStreamer 1.0 #2397 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 26 April 2016 - 17:59

Yes I will :-)
To be clear both streams are playing fine when I switch from dvb to them.
However when I switch from one stream (eg play for like 10secs) then switch to the second one, it will segfault.

I'll revert both commits but I think its chris' commit since mx3L posted his commit (the one changing "if (validposition)") a while ago in a private thread, so I was using that one already for a long time.

However, lets revert first and see.

Re: GStreamer 1.0 #2398 Taapat

  • PLi® Core member
  • 2,345 posts

+121
Excellent

Posted 26 April 2016 - 18:49

@MastaG I also have no problem with switch between them a few times.



Re: GStreamer 1.0 #2399 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 26 April 2016 - 19:49

@MastaG

I'll revert both commits but I think its chris' commit since mx3L posted his commit (the one changing "if (validposition)") a while ago in a private thread, so I was using that one already for a long time.

I very very severe error was present  on :

 

 enigma2 till version commit  :

 

https://github.com/O...6996c5dcb6514c5

 

After this commit (the already existent a/v sync issue on duo2 became from sometimes till very pronounced ) After all pretty logic. Since the user demanded media pause state , we do have a code which after the user does a change or demand ,

after this gstreamer will be set in play state and very quick back to pause state this all to have a enigma2 state update . Very nice but wrong. Ok agree enigma2 needs a state update in media paused situation but lauching gstreamer and stop it even before all required sequences into all gstreamer elements are done is wrong. This wrong issue is solved with commit :

https://github.com/O...eddb203b264c627

 

But after this change ok we do have the gst in a/v sequence. But actually better code would be to have e2 update in pause without the start and stop of gstreamer since gstreamer has all ellements up to date and they follow the new changes inclusif the new pts. e2 not but actually we must bring e2 to the state of gstreamer .



Re: GStreamer 1.0 #2400 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 26 April 2016 - 19:50

Well then it could be an upstream gstreamer commit, I'm using these recipes: https://github.com/c...TREAMER-RECIPES

But with a more recent srcrev (snapshot of this morning, but the problem was also present yesterday...)

Anyways, I'll revert the complete pull request first to see whether it fixes stuff.

For easy testing you can all wget this bouquet into your /etc/enigma2/: http://jam.japhar.co...t.favourites.tv

The DJING streams are in the beginning, zap around a bit and see whether you can get it to segfault.

If not then it must be something introduced recently in gstreamer or something else on my side.

Besides I've only tested on DM800HD (unsupported) and Zgemma H2H.





6 user(s) are reading this topic

0 members, 5 guests, 0 anonymous users


    Bing (1)