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 #2101 Taapat

  • PLi® Core member
  • 2,345 posts

+121
Excellent

Posted 1 December 2015 - 19:04

Sorry, my English is not good, I think that you did not understand me.

 

I do not want to say that your pull request is not required.
I think that no need for additional m_user_paused who now simply duplicates m_paused. But maybe I miss something.
I think that should be changed to:

-  ret = gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING);
+  ret = gst_element_set_state (m_gst_playbin, GST_STATE_PAUSED);

And should be used:

+   if(!m_paused)
+    gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING);


Re: GStreamer 1.0 #2102 babsy98

  • Senior Member
  • 166 posts

+18
Neutral

Posted 1 December 2015 - 19:28

need help with gst 1.6.1 this have working but with gst 1.7.0 devil i get this info

GST_DEBUG_NO_COLOR=1 GST_DEBUG=dvbvideosink:4 gst-launch-1.0 playbin uri=https://cdn.phoenix....10/video-sd.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.590088407 2882 0x2acb20 INFO dvbvideosink gstdvbvideosink.c:1954:gst_dvbvideosink_change_state:<dvbvideosink0> GST_STATE_CHANGE_NULL_TO_READY

(gst-launch-1.0:2882): GStreamer-WARNING **: adding flushing pad 'src_1' to running element 'decodebin0', you need to use gst_pad_set_active(pad,TRUE) before adding it.


and all stops

Re: GStreamer 1.0 #2103 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 1 December 2015 - 19:50

 

Sorry, my English is not good, I think that you did not understand me.

 

I do not want to say that your pull request is not required.
I think that no need for additional m_user_paused who now simply duplicates m_paused. But maybe I miss something.
I think that should be changed to:

-  ret = gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING);
+  ret = gst_element_set_state (m_gst_playbin, GST_STATE_PAUSED);

And should be used:

+   if(!m_paused)
+    gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING);

Now actually that was my previous explanation it can't be done like that. (and yes I wish it could and did tried) but already new it could not.

 

the m_paused is really used on more occasions . the m_user_paused can only happen when really the user paused the media.

 

At this time it comes to this , Now we starting the media sink in the maximum allowed state as long not all media data is known.

That is paused. (previousely they did playing but that's the wild west and cause situations where video is since long running before audio even can run ??? ).

 

servicemp3.cpp ist the application the player. guess you now that.

 

Since we now are at base starting the player in PAUSED which is the correct setting as it will take all media settings : caps,tags and tocs

after we have all the message from our respectif sinks come async done. Then we really can launch to playing. At this point actually we should have only whitout any if()

gst_element_set_state (m_gst_playbin, GST_STATE_PLAYING);

But I we now would set the media into  pause. :

 

There is a parsing off the media, there will come a new and imminent msg :

case GST_MESSAGE_ASYNC_DONE:

The result is that if the user request a pause the media will just continu playing.

 

Thats the reason of the

if(!m_user_paused)

And no you can't use m_pause for that.



Re: GStreamer 1.0 #2104 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 1 December 2015 - 20:03

Please put some debug messages and show us a case where those variables have different value, also provide the patch and the steps to reproduce it.
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 #2105 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 1 December 2015 - 20:47

need help with gst 1.6.1 this have working but with gst 1.7.0 devil i get this info

GST_DEBUG_NO_COLOR=1 GST_DEBUG=dvbvideosink:4 gst-launch-1.0 playbin uri=https://cdn.phoenix....10/video-sd.mp4
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
0:00:00.590088407 2882 0x2acb20 INFO dvbvideosink gstdvbvideosink.c:1954:gst_dvbvideosink_change_state:<dvbvideosink0> GST_STATE_CHANGE_NULL_TO_READY

(gst-launch-1.0:2882): GStreamer-WARNING **: adding flushing pad 'src_1' to running element 'decodebin0', you need to use gst_pad_set_active(pad,TRUE) before adding it.


and all stops


Can you find the commit introduces that error and create a ticket on bugzilla here? http://bugzilla.gnom...oduct=GStreamer
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 #2106 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 1 December 2015 - 21:20

Please put some debug messages and show us a case where those variables have different value, also provide the patch and the steps to reproduce it.

Well very nice.

 

But actually about the whole sequencing You have had extremely detailed logs already more then a year ago. With proves step by step. With pinpointed higliths where it wen't wrong and so ......

This exact for the start non start  problem.

 

Sorry But if you really do insist I will restart again but it's more then a full day task. And this for logs you have had more then A year ago and in detail reworked to highlight and pinpoint the differences.

If You have an archive and kept them there perhaps look for them.

 

But if you still have you're dm800se i suggest to make a, ok we are looking forward a brandnew image based on pli gst-1 branch and adapt the meta to you're needs.

 

But use for the sink :

 

well here the conf for dm

 

dreambox.inc

MACHINE_EXTRA_RRECOMMENDS = " \
	gstreamer1.0-plugin-multibox-dvbmediasink \
	ntfs-3g \
	kernel-module-cifs \

dm800se.conf

#@TYPE: Machine
#@NAME: Dreambox DM800se
#@DESCRIPTION: Machine configuration for the Dreambox DM800se

OPENPLI_FEATURES = "fan usbconsole"
MACHINE_FEATURES += "modem wlan kernelwifi externalwifi dvb-c blindscan-dvbc colorlcd hdmicec"

require conf/machine/include/dreambox-brcmnand.inc
require conf/machine/include/dreambox-nand-64mb.inc
require conf/machine/include/dreambox-part-64mb.inc
require conf/machine/include/dreambox-jffs2.inc
require conf/machine/include/dreambox-mips32el.inc

DVBMEDIASINK_CONFIG = "--with-dreambox --with-pcm --with-wma --with-wmv --with-dtsdownmix --with-eac3"

CHIPSET = "bcm7405"

# Image fails to boot if kernel exceeds some unknown limit, so make that
# explicit here. I don't know what the actual limit is, but 6416679 boots
# and 6604470 didn't.
KERNEL_IMAGE_MAXSIZE = "6500000"

 Then You will be able to test all media You're self.

 

I did add a lot off extra debug stuff in the mediasink just cause we are still in development state . That's why I used for example a lot off INFO instead off DEBUG

after You did in you're box by just run:

GST_DEBUG=dtsdownmix:4,dvbaudiosink:4,dvbvideosink:4 enigma2.sh

for example.

 

but for all media you will be able to see what is happening concerning pause unpause.

 

apart from the fact that just the dts downmix is just a imminent prove about the previous wrong working in servicemp3.cpp it does cause at own will regularly weird facts. such as jumps missing a couple of seconds off audio at media start this for every box.

 

The cause can really be followed in  my mediasink which is made for that .You can  follow state, event, changes and follow them up in function off e2 servicemp3.cpp.

 

Off course if You are convinced that gstreamer should be launched at wild and that the video is running on it's own disregarding any audio ,.... that's the case now after you're commit :

https://github.com/O...9ffaa6af62c377d

You went so what a year back in time  ???

 

So You have the choice take what I really find out and my severe error actually the use of :

if(m_paused && !m_user_paused)

Was indeed a severe error and could cause the deadlock . In rather exceptional conditions but yes it is possible.

 

The correct code is simply.

if(!m_user_paused)

Whatever log I give you You will always need more. I suggest to use my media sink or you can adapts you're own to have a bit more detailed sequencing info , just do what you wan't.



Re: GStreamer 1.0 #2107 babsy98

  • Senior Member
  • 166 posts

+18
Neutral

Posted 1 December 2015 - 22:06

create a bug : https://bugzilla.gno...g.cgi?id=758928

Re: GStreamer 1.0 #2108 babsy98

  • Senior Member
  • 166 posts

+18
Neutral

Posted 2 December 2015 - 08:42

gst-launch-1.0:2882): GStreamer-WARNING **: adding flushing pad 'src_1' to running element 'decodebin0', you need to use gst_pad_set_active(pad,TRUE) before adding it.

 


gstreamer dev say:

 

Yes, this looks like a bug in dvbvideosink which is a 3rd party element. Please report this problem to whoever provided this element.

 

 



Re: GStreamer 1.0 #2109 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 2 December 2015 - 09:09

gst-launch-1.0:2882): GStreamer-WARNING **: adding flushing pad 'src_1' to running element 'decodebin0', you need to use gst_pad_set_active(pad,TRUE) before adding it.


gstreamer dev say:

 

Yes, this looks like a bug in dvbvideosink which is a 3rd party element. Please report this problem to whoever provided this element.



Can you find the commit introduces that error and create a ticket on bugzilla here? http://bugzilla.gnom...oduct=GStreamer


You need to find the commit that introduces the error.
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 #2110 mx3L

  • Senior Member
  • 616 posts

+79
Good

Posted 2 December 2015 - 14:20

http://forums.openpl...ndpost&p=516079

solved - https://bugzilla.gno...g.cgi?id=758946



Re: GStreamer 1.0 #2111 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 2 December 2015 - 16:15

mx3L, that's great.

Thanks!

Building now :)



Re: GStreamer 1.0 #2112 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 2 December 2015 - 19:53

meta-dream: fix framerate and video size

Dreamboxes use different way of receiving events for framerate and video size in their dvbmediasink.

It seems that drivers do not send VIDEO_EVENT for VIDEO_EVENT_FRAME_RATE_CHANGED and VIDEO_EVENT_PROGRESSIVE_CHANGED.

So use the same way as in dreambox dvbmediasink for receiving events.
https://github.com/a...ca76b241846fc92

Please cherry pick into gst-1 branch.
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 #2113 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 2 December 2015 - 20:08

Chris, can you please check this into your multibox sink as well?

Re: GStreamer 1.0 #2114 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 2 December 2015 - 20:19

Just make it apply once you build with --with-dreambox :-)



Re: GStreamer 1.0 #2115 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 3 December 2015 - 02:04

There have been some changes to the hlsdemux: http://cgit.freedesk...lugins-bad/log/

When building master git the fragmented plugin has been renamed to hls.

So you now need to include: gstreamer1.0-plugins-bad-hls

 

On enigma2 I applied christophecvr's pull request from here: https://github.com/c...2e4d13c5abb2a1f

(the one with m_user_paused)

 

On christophecvr's multibox-dvbmediasink I've applied athoik's patch (I've attached it here).

With a bbappend:

SRC_URI += " ${@base_contains("MACHINE_FEATURES", "dreambox", "file://multibox-dreambox.patch;patch=1", "", d)}"

Quick test on my ancient dm800hd receiver (yes it's old and it should die).

Much improvement!

Even the broken Cielo and Sky TG 24 (which crash my VLC player due to broken mpeg-ts) will keep on playing now, only audio drops out.

My multibitrate Tech N9ne HLS Video:

#SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//wildhitz.rr.kpnstreaming.nl/b2b/vod/wildhitz/mp4s/Tech_N9ne_-_Strangeulation_Cypher/index.ism/index.m3u8:Tech N9ne HLS

#DESCRIPTION Tech N9ne HLS

It doesn't skip a shitload of frames anymore  when switching to another bitrate, very nice!

Funny thing is, that the dm800hd is not fast enougn to play the 1080p 4mbit stream (at least not fragmented).

So it seems it switches back to 720p based on cpu load :-)

However it tries to switch back to 1080p every 5 or 10 seconds which the receiver can't handle (probably based on connection speed).

Great success!

 

Todo:

Test the same setup and streams on my DM800Se and see if I can now pause my mkv movie with dts downmix turned on (m_user_paused :P )

 

 

Attached Files



Re: GStreamer 1.0 #2116 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 3 December 2015 - 14:51

There have been some changes to the hlsdemux: http://cgit.freedesk...lugins-bad/log/

When building master git the fragmented plugin has been renamed to hls.

So you now need to include: gstreamer1.0-plugins-bad-hls

 

On enigma2 I applied christophecvr's pull request from here: https://github.com/c...2e4d13c5abb2a1f

(the one with m_user_paused)

 

On christophecvr's multibox-dvbmediasink I've applied athoik's patch (I've attached it here).

With a bbappend:

SRC_URI += " ${@base_contains("MACHINE_FEATURES", "dreambox", "file://multibox-dreambox.patch;patch=1", "", d)}"

Quick test on my ancient dm800hd receiver (yes it's old and it should die).

Much improvement!

Even the broken Cielo and Sky TG 24 (which crash my VLC player due to broken mpeg-ts) will keep on playing now, only audio drops out.

My multibitrate Tech N9ne HLS Video:

#SERVICE 4097:0:0:0:0:0:0:0:0:0:http%3a//wildhitz.rr.kpnstreaming.nl/b2b/vod/wildhitz/mp4s/Tech_N9ne_-_Strangeulation_Cypher/index.ism/index.m3u8:Tech N9ne HLS

#DESCRIPTION Tech N9ne HLS

It doesn't skip a shitload of frames anymore  when switching to another bitrate, very nice!

Funny thing is, that the dm800hd is not fast enougn to play the 1080p 4mbit stream (at least not fragmented).

So it seems it switches back to 720p based on cpu load :-)

However it tries to switch back to 1080p every 5 or 10 seconds which the receiver can't handle (probably based on connection speed).

Great success!

 

Todo:

Test the same setup and streams on my DM800Se and see if I can now pause my mkv movie with dts downmix turned on (m_user_paused :P )

Well

 

For vuduo2 , I actually noticed that the gstdvbmediasinks must be incitiated in sync. For other vuplus boxes I don't.

 

On the :

 

https://github.com/c...ts/experimental

 

I now set the vuplus to sync I also allowed the element again to change this setting

 

That is tested with last enigma2

gst-1.6.1 tagged same as on gst-1 branch .

 

By duo2 all media filesrc plays 100 %

Almost all live streams and http media works fine now.

 

One which still does not nice is

#SERVICE 4097:0:1:0:0:0:0:0:0:0:http%3a//skyianywhere2-i.akamaihd.net/hls/live/200275/tg24/playlist.m3u8:Sky%20TG%2024TEST
#DESCRIPTION Sky TG 24

But it does not play ok in vlc.

Into totem however it does quit ok.



Re: GStreamer 1.0 #2117 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 3 December 2015 - 15:11

About the stream above, We detect the audio as :

1:45:56.779844154  7449 0x737ebac0 INFO            dvbaudiosink gstdvbaudiosink.c:467:gst_dvbaudiosink_set_caps:<dvbaudiosink21> MIMETYPE audio/mpeg version 4(AAC-ADTS)

But it actually should be version 2 since the caps media tag info gives  (ok that meta data but gues the data must be ok)

mpeg 2.

But what I did find more looks like be  that stream  audio switches between version 2 and 4 while our runing sink's do not follow this and always play with version 4.



Re: GStreamer 1.0 #2118 MastaG

  • Senior Member
  • 1,531 posts

+118
Excellent

Posted 3 December 2015 - 16:20

I see :-)

Thanks for clearing it up.

I'll start building new public images once you have your experimental branch merged into master.



Re: GStreamer 1.0 #2119 Erik Slagter

  • PLi® Core member
  • 46,969 posts

+542
Excellent

Posted 3 December 2015 - 16:35

meta-dream: fix framerate and video size

Dreamboxes use different way of receiving events for framerate and video size in their dvbmediasink.

It seems that drivers do not send VIDEO_EVENT for VIDEO_EVENT_FRAME_RATE_CHANGED and VIDEO_EVENT_PROGRESSIVE_CHANGED.

So use the same way as in dreambox dvbmediasink for receiving events.
https://github.com/a...ca76b241846fc92

Please cherry pick into gst-1 branch.

Applied.

 

So far the "clean slate" of the drivers of DMM itself ;)


* Wavefrontier T90 with 28E/23E/19E/13E via SCR switches 2 x 2 x 6 user bands
I don't read PM -> if you have something to ask or to report, do it in the forum so others can benefit. I don't take freelance jobs.
Ik lees geen PM -> als je iets te vragen of te melden hebt, doe het op het forum, zodat anderen er ook wat aan hebben.


Re: GStreamer 1.0 #2120 christophecvr

  • Senior Member
  • 3,131 posts

+140
Excellent

Posted 3 December 2015 - 16:37

Now I did a extra test with hls service live m6 , which You posted

 

It stops playing after a while and the reason is clear we run out off data and got eos.

 

This could quit be a gstreamer hls module error self.

 

the service is:

#SERVICE 4097:0:1:0:0:0:0:0:0:0:http%3a//sslhls.m6tv.cdn.sfr.net/hls-live/livepkgr/_definst_/m6_hls_aes/m6_hls_aes_856.m3u8:mastag
#DESCRIPTION mastag

log appended it can be clearly seen where it goes wrong

 

 

 

 

Attached Files





14 user(s) are reading this topic

0 members, 14 guests, 0 anonymous users