Jump to content


Photo

gstreamer and enigma2 player


  • Please log in to reply
18 replies to this topic

#1 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 01:09

hi,

i don't know much about enigma2, so sorry if i'm my question seems stupid or newbish.

 

but, i see on my stb (dm800se) openpli-based image (italysat image) many gst plugins installed, i assumed enigma2 player uses gstreamer to handle different codecs. now, i wanted to play WMV2 video which is not supported out of the box (for a video streaming plugin i'm helping to develop, out of the box only audio is played).

looking at enigma2 log, i found this:

 

eServiceMP3::m_errorInfo.missing_codec = video/x-wmv, wmvversion=(int)2, format=(fourcc)WMV2

 

so, i thought: why not installing gst-ffmpeg ? i managed to install it, with all the required dependencies (using simlinks on usb drive, worked like a charm).

 
as you can see, wmv should be supported now through gstreamer.
root@dm800se:~# gst-inspect-0.10 | grep wmv
typefindfunctions: video/x-ms-asf: asf, wm, wma, wmv
ffmpeg:  ffenc_wmv1: FFmpeg Windows Media Video 7 encoder
ffmpeg:  ffenc_wmv2: FFmpeg Windows Media Video 8 encoder
ffmpeg:  ffdec_wmv1: FFmpeg Windows Media Video 7 decoder
ffmpeg:  ffdec_wmv2: FFmpeg Windows Media Video 8 decoder
ffmpeg:  ffdec_wmv3: FFmpeg Windows Media Video 9 decoder
 

but the enigma2 default player still play audio only from wmv....

from its log, no more errors, but no clues:

 
ServiceMP3::state transition READY -> PAUSED
eServiceMP3::async-done - 1 video, 1 audio, 0 subtitle
AUDIO STRUCT=audio/x-wma
eServiceMP3::audio stream=0 codec=WMA Version 8 language=und
eServiceMP3::state transition PAUSED -> PLAYING
 
 

is my assumption that enigma2 player using gstreamer wrong ? am i missing something ?

 

please, do not reply "study!!!!" as in italian forums :)

 

regards,

valerio


Edited by valerino, 2 March 2014 - 01:13.


Re: gstreamer and enigma2 player #2 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 2 March 2014 - 08:26

The answer is that machine needs "drivers" in order to play video cause cpu is so poor. Although cpu is strong enough to handle some audio types using software decoding.

So either ask for drivers (and don't expect something soon or ever) or ask the stream provider to switch to something that is supported.
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 and enigma2 player #3 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 09:55

sorry, but isnt fffmpeg able to do software decoding aswell, even if the result is poor/slow/unacceptable ?

that's what puzzles me .... you're talking about drivers (with the term driver i understand hardware drivers, like drivers for a video card, audio card, etc.....). this seems to me more a software issue, ffmpeg is already a "driver" in the sense you mean, has everything to decode almost any format. can you explain more in detail ?

 

regards,

valeio



Re: gstreamer and enigma2 player #4 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

Posted 2 March 2014 - 10:08

You don't understand. Video decoding on a set-top-box is done by a piece of dedicated hardware. The CPU is nowere near fast enough to decode any media stream, it's not even "slow" or "poor", it simply can't be done, period. That's how it works on STB. The cpu is for the user interface, the video decoder decodes the video.

 

What codecs are supported depends on the hardware of the video decoder and what codecs are enabled by the drivers (closed source), because for every enabled codec the manufacturer must pay a licensing fee. So not all STB have all codecs enabled, even if the SoC is capable.

 

So either way, if a codec is not supported, blame the manufacturer (or yourself) that it thinks you do not need / do not want to pay for a certain codec.

 

There is a reason, that STB's are advertised as supporting codecs such and such, you know. You should check before buying.


* 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 and enigma2 player #5 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 10:19

i'm just testing hypothesis, i don't care much of decoding wmv2 or any other format .... i just wanted to dig deeply when i found it doesn't work :)

 

you're saying : 

What codecs are supported depends on the hardware of the video decoder and what codecs are enabled by the drivers (closed source), because for every enabled codec the manufacturer must pay a licensing fee. So not all STB have all codecs enabled, even if the SoC is capable.

 

so, again, it could be possible that wmv2 or other formats are disabled intentionally by the closed source hardware drivers ? again, ffmpeg should be able to read all the format it supports in software mode, even in a slow/crappy way.


Edited by valerino, 2 March 2014 - 10:21.


Re: gstreamer and enigma2 player #6 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

Posted 2 March 2014 - 10:26

Read what I said. The cpu is "not even nearly fast" enough.  And yes, sometimes hardware codecs are disabled intentionally the manufacturer, like I wrote.


* 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 and enigma2 player #7 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 2 March 2014 - 10:30

I think the problem is that the pipeline is not complete. I mean gstreamer wants to decode your wmv via software decoder but don't know how to display the decoded data on the TV screen.
There a special gstreamer element which sends the undecoded streams to the Stb hardware. The hardware decodes the streams and show the result on the TV screen. It could be that this element is not able to handle decoded data.
Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: gstreamer and enigma2 player #8 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 10:32

yep, infact i've read. even if the cpu is not fast enough, ffmpeg should atleast try to decode the format it supports by software, with obviously unacceptable result. that's not the point. so, i'm starting to think, and you confirm this, that some formats are disabled intentionally, possibly without any other reason that commercial. this is not good :)



Re: gstreamer and enigma2 player #9 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 10:34

I think the problem is that the pipeline is not complete. I mean gstreamer wants to decode your wmv via software decoder but don't know how to display the decoded data on the TV screen.
There a special gstreamer element which sends the undecoded streams to the Stb hardware. The hardware decodes the streams and show the result on the TV screen. It could be that this element is not able to handle decoded data. 

is there a way i can verify this ?



Re: gstreamer and enigma2 player #10 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

Posted 2 March 2014 - 10:34

.

Edited by Erik Slagter, 2 March 2014 - 10:35.

* 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 and enigma2 player #11 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

Posted 2 March 2014 - 10:35

yep, infact i've read. even if the cpu is not fast enough, ffmpeg should atleast try to decode the format it supports by software, with obviously unacceptable result. that's not the point. so, i'm starting to think, and you confirm this, that some formats are disabled intentionally, possibly without any other reason that commercial. this is not good :)

No it's not that. The gstreamer pipeline is setup as to not allow software decoding, simply because there is no point in it. The manufacturer controls what hardware codecs can be used in their closed source drivers, that has nothing to do with gstreamer.

Edited by Erik Slagter, 2 March 2014 - 10:35.

* 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 and enigma2 player #12 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 10:46

ok, grepping around for strings such h264, divx, etc... i found that the soc hw driver should be bcm7405.ko (for dmm800se). i'm going to load it in IDA and try to understand how it works.


Edited by valerino, 2 March 2014 - 10:48.


Re: gstreamer and enigma2 player #13 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

Posted 2 March 2014 - 10:49

sigh... divx is not a video codec. bcm7405 is a driver, you can never use that in any other receiver than the one it's intended for. I would be surprised if you have a mipsel disassembler and also would be able to make sense of mipsel assembly...

* 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 and enigma2 player #14 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 10:52

google valerino kernel xoanino (my old nickname) :)

anyway ... that's not the point, again. i just want to understand if its possible to patch the driver to allow other formats (even if they play crappy due to software decoding).



Re: gstreamer and enigma2 player #15 Erik Slagter

  • PLi® Core member
  • 46,951 posts

+541
Excellent

Posted 2 March 2014 - 10:54

Theoretically - yes. But the driver code is very probably signed, no use...

* 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 and enigma2 player #16 betacentauri

  • PLi® Core member
  • 7,185 posts

+323
Excellent

Posted 2 March 2014 - 10:54

Here is the code of the "special" gstreamer element: http://sourceforge.n...tdvbvideosink.c

There you find the supported codecs...
Xtrend ET-9200, ET-8000, ET-10000, OpenPliPC on Ubuntu 12.04

Re: gstreamer and enigma2 player #17 athoik

  • PLi® Core member
  • 8,458 posts

+327
Excellent

Posted 2 March 2014 - 10:57

Here is also the same for dreamboxes : https://schwerkraft....k.git;a=summary


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 and enigma2 player #18 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 10:58

Theoretically - yes. But the driver code is very probably signed, no use... 

i doubt the os checks signatures.... anyway, easy to test, just change a byte in a driver module and reboot.....

 

i'm going to look at those src, thanks!


Edited by valerino, 2 March 2014 - 10:59.


Re: gstreamer and enigma2 player #19 valerino

  • Member
  • 9 posts

0
Neutral

Posted 2 March 2014 - 11:15

 

#ifdef HAVE_WMV

    "video/x-wmv, "
        VIDEO_CAPS ", wmvversion = (int) 3; "
#endif

grepping into soc driver infact results in

 

root@dm800se:/lib/modules/3.2-dm800se/extra# grep 'WMV' *
bcm7405.ko:set VC1 SimpleMain (WMV3)
this is just a string .... i've still to look in ida.
 
now .... i've to study how gstreamer works, for first. then i can attempt something......

Edited by valerino, 2 March 2014 - 11:18.



0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users