←  [EN] Third-Party Development

Forums

»

Dts downmix patch in gst-plugin-dvbmediasi...

malakudi's Photo malakudi 28 Jun 2011

What subject says ...

It seems when gst-plugin-dvbmediasink was moved from gstreamer to dreambox folder (maybe with OpenPLI 2.0 switch?), dts downmix patch (dtspatch.diff) was not reapplied. patch can be found here:
http://openpli.git.s...0c1d4f0;hb=HEAD

but is no longer available in the gst-plugin-dvbmediasink recipe in the current openembedded tree of OpenPLI 2.0, thus software dts-downmix doesn't work at all.

It needs to be added again on the recipe.
Quote

pieterg's Photo pieterg 28 Jun 2011

it is not a real solution, because the audio timestamp is lost (the patch causes the dts to be played back as pcm to the alsa device).
The plan was to make the (closed source) binary solution from dmm work. I guess we need to fix the tmp stuff, people report that it is broken.

Anyway, that's the reason why we did not apply the old dtspatch, that would have broken things.
Quote

malakudi's Photo malakudi 28 Jun 2011

I am attaching new dtspatch.diff that also enables dts downmix on DM800SE hardware (ET9000 also reports itself as dm800se)


Just add diff file to gst-plugin-dvbmediasink.bb in recipes/dreambox

Attached Files

Quote

malakudi's Photo malakudi 28 Jun 2011

it is not a real solution, because the audio timestamp is lost (the patch causes the dts to be played back as pcm to the alsa device).
The plan was to make the (closed source) binary solution from dmm work. I guess we need to fix the tmp stuff, people report that it is broken.

Anyway, that's the reason why we did not apply the old dtspatch, that would have broken things.



Well, I don't actually understand the timestamp problem you mention, but dts downmix is working with dtspatch.diff on my ET9000. It doesn't work perfect, but it works. An open source project like this shouldn't rely on closed source binaries from DMM or any other. If this solution isn't optimal, we should try to build an optimal one, that will work on all boxes (VU, ETx000 etc) and not just DMM.

I will try to improve the patch.
Quote

pieterg's Photo pieterg 28 Jun 2011

you are right, we do not like closed source 'solutions' like these.
But as dmm decided it's the preferred solution for them, we would let the dreambox users use it.
And we had the idea to make a proper fix for other platforms, some time...
Quote

pieterg's Photo pieterg 28 Jun 2011

btw. how is the audiosync?
Last time we used the patch, it was not very good.
Quote

malakudi's Photo malakudi 28 Jun 2011

btw. how is the audiosync?
Last time we used the patch, it was not very good.



audiosync is ok if the dts track is in sync with the video. Some mkvs with dts track have 0ms or very small time offset (20-30ms) with video inside mkv container. Other mkvs have 200-300ms offset. Those don't play in sync.

I can improve dtspatch diff to check for et9000/et5000/vu and only get enabled on those platforms, if you don't wish to be enabled for dm500hd/dm800se.

closed source libgstdvbaudiosinkext.so from DMM doesn't work on OpenPLI 2.0 (maybe tpm issue). It works on other images though.
Quote

littlesat's Photo littlesat 29 Jun 2011

I suggest the best way is to get the audio synchronized... but I have now idea how...
Quote

littlesat's Photo littlesat 29 Jun 2011

Officially DTS is not allowed at all on a DMM-box... see their reaction on their own forum (in German): http://www.dream-mul...readID=14679...

Therefore it is extreme strange that there exists a library for this, which also includes a tmpd check at a time (as far I know) the tmpd algorithm was unknown yet.

1. Falsches Unterforum (Fremd-Plugins wäre angemessen)
2. leider können wir das hier nicht supporten, da wohl nicht ganz sauber in Sachen Lizenz

Also bitte tatsächlich an der Quelle des Plugins fragen.

1. This is the incorrect forum (foreign plugins we could not support)
2. Sorry for the inconvenience that we could not support his were, as this is clearly a case regards licences

So please contact the source of this plugin.

Quote

malakudi's Photo malakudi 29 Jun 2011

Officially DTS is not allowed at all on a DMM-box... see their reaction on their own forum (in German): http://www.dream-mul...readID=14679...

Therefore it is extreme strange that there exists a library for this, which also includes a tmpd check at a time (as far I know) the tmpd algorithm was unknown yet.

1. Falsches Unterforum (Fremd-Plugins wäre angemessen)
2. leider können wir das hier nicht supporten, da wohl nicht ganz sauber in Sachen Lizenz

Also bitte tatsächlich an der Quelle des Plugins fragen.

1. This is the incorrect forum (foreign plugins we could not support)
2. Sorry for the inconvenience that we could not support his were, as this is clearly a case regards licences

So please contact the source of this plugin.



This is true, but the libgstdvbaudiosinkext.so is definitely from some engineer of DMM. DMM doesn't want to be related with this, since libdca maybe violates some DTS patents (maybe not). libgstdvbaudiosinkext.so uses libdca for decoding, they just implemented it better than gst-plugin-dtsdec.

If the conversion produces an elementary program stream for the dts audio track (maybe encoded to mpeg stereo audio - don't know if it is needed) , would this work better?


I think we need a gstreamer expert here ...
Quote

pieterg's Photo pieterg 29 Jun 2011

Indeed, an elementary stream would work, because the audio pts allows the hardware to maintain lipsync.
Quote

littlesat's Photo littlesat 29 Jun 2011

But why is it so difficult to keep the PTS? is this not supported by gstreamer?
Quote

malakudi's Photo malakudi 29 Jun 2011

Indeed, an elementary stream would work, because the audio pts allows the hardware to maintain lipsync.



Can we have elementary stream with PCM audio? Or should we encode to mpeg audio layer 1 or 2?
Quote

malakudi's Photo malakudi 29 Jun 2011

Some strings from libgstdvbaudiosinkext.so actually provide a hint that maybe it decodes DTS to elementary stream with LPCM.

audio/x-private1-lpcm
...
A DVB audio sink
Generic/DVBAudioSinkExt
Outputs a MPEG2 PES / ES into a DVB audio device for hardware playback
johndoe@unknown.net



In comparison, gst-plugin-dtsdec produces audio/x-raw-float
Quote

malakudi's Photo malakudi 29 Jun 2011

It seems this is the solution. if the output is ES with audio/x-private1-lpcm codec, it will bind correctly to dvb audio sink.

I will try to build such a plugin by deriving code from gst-plugin-dtsdec.
Quote

Sjaaky's Photo Sjaaky 29 Jun 2011

That would be great!
Quote

pieterg's Photo pieterg 29 Jun 2011

I think I'm halfway there already, I started working on that some time ago (just left it because of lacking time)
Let me finish it, I think it would be a pity to do double work ;)
Quote

malakudi's Photo malakudi 29 Jun 2011

I think I'm halfway there already, I started working on that some time ago (just left it because of lacking time)
Let me finish it, I think it would be a pity to do double work ;)



Nice, if you need any help or continuing your work if you lack time, please let me know.

Looking forward for it!
Quote

littlesat's Photo littlesat 19 Jul 2011

Any progression on this one? Especially while the VU has a driver solution and for some this is a showstopper (why?)
Quote

MiLo's Photo MiLo 19 Jul 2011

...since libdca maybe violates some DTS patents (maybe not)...


Remove that "maybe", libdca implements what's described in the various patents, so you can be damn sure it infringes on those patents. That's why DMM officially sort of denies its existence. But I have little doubt as to who actually built it.
Quote