Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

DTS Express #33

Open
MarcusJohnson91 opened this issue Jun 11, 2015 · 26 comments
Open

DTS Express #33

MarcusJohnson91 opened this issue Jun 11, 2015 · 26 comments

Comments

@MarcusJohnson91
Copy link

I'm adding support for DTS Express (extension LBR), and I was wondering if anyone has a sample I could test?

@Nevcairiel
Copy link

This m2ts clip contains a DTS Express stream. Extracting it didn't work on the first try, so I'll leave that to you. ;)

http://files.1f0.de/samples/amergang.sample.m2ts

@filler56789
Copy link

Here goes a mono sample, wrapped in a .WAV container. I will share a stereo sample and a 5.1 sample A.S.A.P.

http://www.mediafire.com/download/55m0747oz85tija/moovietrackdtsxwav.zip

@filler56789
Copy link

@filler56789
Copy link

It seems the task is much more complicated than I thought.
No E.T.A. then, I'm afraid ^.^;

@MarcusJohnson91
Copy link
Author

Yes, it's far more complicated than I thought it would be, and inputting these damn tables is annoying as hell.

the guide is truly horrible, they don't even use the same variables to describe the same functionality from one page to the next.

I do have a question though, on page 192 and 193 of the white paper (version 1.4.1, idk about any other version) there are multiple tables, let's use rsdAmp for example

there's both an A and B section to rsdAmp, but I can't figure out if they're supposed to be two separate tables, or something like a 2d array, using very strange syntax?

Here's a screenshot so you can see what's going on without having to open the pdf
rsdAmp Table

@Khan2014
Copy link

Khan2014 commented Jul 4, 2015

where could i find the pdf? THANQ

@MarcusJohnson91
Copy link
Author

It's available here (PDF Warning)

@Nevcairiel
Copy link

Look at the getVariableParam function on page 159, its used to read from this table and explains how A and B are used.

In general it helps to actually check the pseudo-code on how tables are used to determine how to interpret them.

@MarcusJohnson91
Copy link
Author

Nevermind, I see it. I was looking at that code the other day, but couldn't concentrate enough to know what the hell was happening

thanks for answering.

@mstevens83
Copy link

Is there any new progress on DTS Express support?
Anyway cool thing you guys are trying!

@MarcusJohnson91
Copy link
Author

I kinda got stuck after parsing, I don't really understand how the samples are supposed to come out after you've decoded the frequency bands, and all the other organizational overhead.

Like, I just don't understand how the filter banks work.

@MarcusJohnson91
Copy link
Author

Yes, I'm almost done @mstevens83 Just having trouble passing empty tables to the getVaraibleParam function, and need to clean it up a bit more.

@MarcusJohnson91
Copy link
Author

I fixed the getVariableParam() issue, the solution is really just a bunch of if loops, but it gets the job done.

@mstevens83
Copy link

Nice work!

@filler56789
Copy link

Great news indeed THUMBS UP

@filler56789
Copy link

Maybe the news were not so great, given that the solution found has not been implemented ^.^;

@MarcusJohnson91
Copy link
Author

Yeah, I took the wrong approach with decoding it, and kinda messed the source up. I'm in the process of rewriting 70% of it.

@foo86
Copy link
Owner

foo86 commented Apr 7, 2016

There is experimental LBR decoder in master branch now, so you shouldn't waste more time on the spec (the spec is not particularly helpful for writing a working decoder).

@MarcusJohnson91
Copy link
Author

Sorry about that man, I'm just really really bad at big projects for some reason.

@MarcusJohnson91
Copy link
Author

Also, I looked over your code and it looked a bit incomplete? maybe I just didn't pay enough attention, but I'll upload my branch with my code and you can peruse it if you want.

it's in the DTS-Express branch

@foo86
Copy link
Owner

foo86 commented Apr 8, 2016

My code surely lacks some features (support for embedded downmix, 7.1 channels, etc) and is not pretty or optimized in any way yet, but is complete enough to get LBR audio working for most sample files I have.

Yours seems like a copy-paste of the spec pseudo-code, which is not really helpful, sorry. The "spec" just gets too many details wrong, the pseudo-code looks awfully convoluted and the coding style doesn't match the project.

@filler56789
Copy link

For the notes..... I've just managed to compile the latest zipball with GCC 4.9.2, after learning how to deal with the annoying "make: cc: command not found" error message o.O

Apparently the DTSX decoder is working as it should :-) But I don't understand why it thinks a mono stream is a "strange" thing... [dcadec says: 1ch (???), 48kHz, 16 bit].

Last but not least: many thanks for the good job ^_^

@Nevcairiel
Copy link

DTS Express is NOT DTS:X, don't mix those up just because Express contains an X :)

@filler56789
Copy link

Okay, thanks for the correction :-)

@Aleksoid1978
Copy link

When last changes was commit to ffmpeg ??

@jamrial
Copy link
Contributor

jamrial commented Apr 21, 2016

@Aleksoid1978 ffmpeg 3.0 has more or less the equivalent of dcadec 0.2 as an internal decoder, but you can also use the libdcadec library as an external decoder if you need the latest additions until they are ported to the former.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants