Log in

View Full Version : HOWTO: running eac3to under wine with Arcsoft TotalMedia Theater for DTS-HD decoding


Tack
6th August 2009, 20:46
I wasted a bit of time trying to get this working, so I thought I'd provide a brief overview of how I accomplished this in the hope that it may benefit others. Hopefully I've listed all the relevant keywords in the title to help people find this post.

What you'll get:

A copy of eac3to armed with DTS-HD decoding capabilities that can be run on your favorite operating system using an absolutely minimalist install of "Windows" under wine.


Things you'll need:

A Linux installation (I use Ubuntu Hardy) and some Linux know-how.
A recent copy of eac3to: fetch it from the eac3to thread (http://forum.doom9.org/showthread.php?t=125966).
A very recent installation of wine; I use 1.1.26 available at winehq.org (http://www.winehq.org/download/), which installs trivially under Ubuntu. A very recent version is needed otherwise you'll have problems reading files larger than 4G (and in the HD world, that's most of them).
Your legally obtained copy of ArcSoft TotalMedia Theater. I have read that the most recent versions don't work so well, but cannot confirm. Please follow up with which versions work and which don't. Version 2.1.6.113 works.
A copy of msvcp60.dll and msvcp71.dll, which you might well already have, otherwise can be fetched (legally, I'm reasonably sure) at dll-files.com (http://www.dll-files.com/).
Minimal deductive reasoning skills to adapt the instructions in this howto to your own environment.


Installation pre-checks:

Wine is installed, works, and is recent:
$ wine --version
wine-1.1.26
A clean "install" of eac3to exists in ~/eac3to/ (just unzip it there, if not).
You're not doing any of this as root, right?


Steps:

If, like me, you use wine exclusively for eac3to, then feel free to blow away your wine data:
$ rm -rf ~/.wine
Or, if you have stuff you want to keep, then back it up, because we're going to get it messy:
$ cp -a ~/.wine ~/.wine.bak
Pop your ArcSoft TotalMedia Theater CD in and start the setup:
$ cd /media/cdrom
$ wine Setup.exe
Then the usual next/next/next/finish dance of Windows installations. If you get errors that regsvr32.exe has crashed, or "Sorry, this application cannot run under a Virtual Machine," you can (apparently) safely ignore these. This is life under Wine.


After the installation is complete, don't bother running it. We're just going to cannibalize the installation for some files. These ones, specifically:

ASAudioHD.ax
checkactivate.dll
DtsDec.dll
dtsdecoderdll.dll
MagCore.dll
MagPCMac.dll
MagUIEngine.dll
MagUIInter.dll


They're in different locations:
$ cd ~/.wine/drive_c/Program*/Common*/ArcSoft/MPEG*
$ cp ASAudioHD.ax checkactivate.dll DtsDec.dll dtsdecoderdll.dll ~/eac3to
$ cd ~/.wine/drive_c/Program*/ArcSoft*/Total*
$ cp MagCore.dll MagPCMac.dll MagUIEngine.dll MagUIInter.dll ~/eac3to
That's all we need. Now wipe out ~/.wine again:
$ rm -rf ~/.wine
If you backed up your previous copy, restore it now (but remember to execute the above command):
$ mv ~/.wine.bak ~/.wine
Register the decoder:
$ wine regsvr32.exe ~/eac3to/ASAudioHD.ax
Doing this will recreate a nice, pristine ~/.wine (if necessary).


Copy msvcp60.dll and msvcr71.dll (which were listed in "Things You'll Need") into wine tree; supposing you put them in ~, then:
cp ~/msvcp60.dll ~/msvcp71.dll ~/.wine/drive_c/windows/system32/
You should be good to go. Verify it's working:
$ wine ~/eac3to/eac3to.exe -test
Wine does tend to spew debugging, warnings, or even errors, some of which can generally be ignored. Look for this in the output:
Decoded audio will be stored in the following files:
file_L_R.wav for front left channel and front right channel
file_C_LFE1.wav for center channel and LFE channel
file_Ls_Rs.wav for srrd left channel and srrd right channel
ArcSoft DTS Decoder (1.1.0.0) works fine
Now give it a try on some real content, e.g. (assuming of course track 3 is DTS-HD):
$ cd /some/place/with/a/bd/rip/BDMV/
$ wine ~/eac3to/eac3to.exe PLAYLIST 1\) 3: audio.flac


Lastly, many thanks to the developers and contributors of eac3to.

Good luck!

stanjr
12th August 2009, 00:41
Thanks for this! It totally worked for me...now I'm trying to get the Nero dll's to be recognized. Have any idea on that?

Tack
16th August 2009, 17:59
Sorry, I've not tried the Nero dlls. If I get a chance I'll give it a shot and update this thread.

880
17th August 2009, 23:05
Thanks! I had been using a virtual machine, but I am glad to be rid of it.

ragboy
7th January 2010, 20:14
Anyone have any luck with the nero 7 decoder in wine? Which dlls to move and register, is it even possible? I haven't had any luck.

gravos
16th October 2010, 04:53
To get this to work under 64-bit linux I had to install some vc++ runtime libraries... loading the msvcr dll's like described above didn't work.

Here's a shortcut:

wget http://www.kegel.com/wine/winetricks
winetricks vcrun2005sp1

parent5446
10th January 2012, 02:43
It seems these instructions (including the latest comment) have stopped working on 64-bit Linux. Registering the filter gives an error about CLSID 28c52b68-23d6-44ce-b923-b6e51ff47db2 not existing. Any ideas?

EDIT: Never mind. Was missing the checkactivate DLL.

ramicio
12th June 2012, 14:13
It doesn't work for me. No matter what I do it says "Please specify the source and dest files first and then the options. <ERROR>" I don't even get an output, this is just put in the log.

frumble
18th March 2014, 01:27
Thank you VERY MUCH! Still works with wine 1.7.14 on Arch Linux (with newer eac3to and newer Arcsoft decoder files but basically still the same process).

Just want to let anybody know: Today you need with a 64-bit kernel:
lib32-mpg123
lib32-lcms2


My setup with HdBrStreamExtractor UI:
Get it from https://code.google.com/p/hdbrstreamextractor/ and place it into eac3to's directory.

# Create a 32-bit wine prefix, cancel Mono setup:
WINEPREFIX=$HOME/.wine-32 WINEARCH='win32' wine 'wineboot'

# Install "winetricks" for your distribution.

# Install msxml3 and dotnet35sp1 for HdBrStreamExtractor:
WINEPREFIX=$HOME/.wine-32 WINEARCH='win32' winetricks msxml3 dotnet35sp1

# Install dotnet40 and corefonts for HdBrStreamExtractor:
WINEPREFIX=$HOME/.wine-32 WINEARCH='win32' winetricks dotnet40 corefonts

# In the eac3to directory, run:
WINEPREFIX=$HOME/.wine-32 WINEARCH='win32' wine regsvr32.exe ASAudioHD.ax

# Register the DLLs msvcp60.dll and msvcp71.dll (see first post; copy them into your ./wine-32/drive_c/windows/system32/, not ./wine…) as "Native" with this tool:
WINEPREFIX=$HOME/.wine-32 WINEARCH='win32' winecfg

# Test it!
WINEPREFIX=$HOME/.wine-32 WINEARCH='win32' wine eac3to.exe -test

# Run the pretty UI and convert/decode/encode like there's no tomorrow!
WINEPREFIX=$HOME/.wine-32 WINEARCH='win32' wine HdBrStreamExtractor.exe

Info: Your source path must be on a partition with "exec" enabled in /etc/fstab otherwise HdBrStreamExtractor won't show any titles.

verysofttoiletpaper
10th May 2014, 18:09
Hi, trying to use this on Mac OS X and it prints the streams fine.


$ wine eac3to.exe /Volumes/My\ Passport/MyBluray/BDMV
fixme:msg:ChangeWindowMessageFilter 400 00000001
1) 00800.mpls, 00300.m2ts+00301.m2ts, 2:04:45
- Chapters, 50 chapters
- h264/AVC, 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- DTS, Japanese, multi-channel, 48kHz
- AC3, Thai, multi-channel, 48kHz
- AC3, English, stereo, 48kHz
- AC3, English, stereo, 48kHz

2) 00801.mpls (angle 2), 00302.m2ts+00301.m2ts, 2:04:45
- Chapters, 50 chapters
- h264/AVC, 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- DTS, Japanese, multi-channel, 48kHz
- AC3, Thai, multi-channel, 48kHz
- AC3, English, stereo, 48kHz
- AC3, English, stereo, 48kHz

3) 00301.mpls, 00301.m2ts, 2:02:18
- h264/AVC, 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- DTS, Japanese, multi-channel, 48kHz
- AC3, Thai, multi-channel, 48kHz
- AC3, English, stereo, 48kHz
- AC3, English, stereo, 48kHz


However when I try to print the options for stream 1) for example it doesn't work. I've tried to specify the stream in many ways: 1\) '1)' "1)".
Also tried with shells like sh, bash and fish.

$ wine eac3to.exe /Volumes/My\ Passport/MyBluray/BDMV 1\)
fixme:msg:ChangeWindowMessageFilter 400 00000001
Please specify the source and dest files first and then the options.


$ wine eac3to.exe /Volumes/My\ Passport/MyBluray/BDMV "1)"
fixme:msg:ChangeWindowMessageFilter 400 00000001
Please specify the source and dest files first and then the options.


Any ideas?

DanielSB
30th October 2014, 14:34
I'm having problems getting this to work in WINE (via Wineskin) on Mac OS X.

To rule out WINE issues, I first got it working in Windows XP in VMware. I've tried a number of different versions of TotalMedia Theatre (3.Xs and 6.Xs), none of them giving any good results.

What finally worked was an archive I found with 8 files, dropped into the eac3to folder and the asaudiohd.ax file regsvr32'ed.

Finally, "ArcSoft DTS Decoder (1.1.0.9) works fine" from eac3to -test.

Trouble is, this doesn't work in WINE. I keep getting "ArcSoft DTS Decoder doesn't seem to be installed".

For the VC++ redistributable DLLs, I've tried both getting them from the dll download site (none would register), and installing them via Winetricks, which seems to work... I've also added overrides for them in winecfg, preferring native over built-in.

No donut.

I've tried winetricking all the VC++ DLLs offered there, to no avail. I've tried installing IE8 and WMP9 and 10, although with not much success.

Once the asaudiohd.ax file has been regsvr32'ed, I can definitely tell that eac3to -test is doing something with it, as there's a lag before it says it's not installed which wasn't there before.

It would seem that it has a dependency that I haven't met with my WINE install, I just don't know which...

Any ideas?

TIA,
Daniel

DanielSB
30th October 2014, 14:50
HA!!!!

This was rubberducking 101.

It occurred to me while writing that I hadn't actually seen any log files, so I fired up "eac3to -test" with logging, and just before reporting ArcSoft DTS Decoder as not being installed, WINE reported errors concerning mscms.dll.

It appears to be a library that has to do with graphics, so I'm not sure why it's being referenced here (perhaps because the DTS decoder is just a subset of a much larger library that deals with video decoding)...

Anyway, I copied it from my Windows XP machine, and set it in winecfg to be preferred over the built-in version, and voilá!!! IT NOW WORKS!!! YAAAAAAAYYYY :D

Overall, MeGUI works pretty awesome in WINE :)

880
2nd July 2016, 19:43
Hi, trying to use this on Mac OS X and it prints the streams fine.


$ wine eac3to.exe /Volumes/My\ Passport/MyBluray/BDMV
fixme:msg:ChangeWindowMessageFilter 400 00000001
1) 00800.mpls, 00300.m2ts+00301.m2ts, 2:04:45
- Chapters, 50 chapters
- h264/AVC, 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- DTS, Japanese, multi-channel, 48kHz
- AC3, Thai, multi-channel, 48kHz
- AC3, English, stereo, 48kHz
- AC3, English, stereo, 48kHz

2) 00801.mpls (angle 2), 00302.m2ts+00301.m2ts, 2:04:45
- Chapters, 50 chapters
- h264/AVC, 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- DTS, Japanese, multi-channel, 48kHz
- AC3, Thai, multi-channel, 48kHz
- AC3, English, stereo, 48kHz
- AC3, English, stereo, 48kHz

3) 00301.mpls, 00301.m2ts, 2:02:18
- h264/AVC, 1080p24 /1.001 (16:9)
- DTS Master Audio, English, multi-channel, 48kHz
- DTS, Japanese, multi-channel, 48kHz
- AC3, Thai, multi-channel, 48kHz
- AC3, English, stereo, 48kHz
- AC3, English, stereo, 48kHz


However when I try to print the options for stream 1) for example it doesn't work. I've tried to specify the stream in many ways: 1\) '1)' "1)".
Also tried with shells like sh, bash and fish.

$ wine eac3to.exe /Volumes/My\ Passport/MyBluray/BDMV 1\)
fixme:msg:ChangeWindowMessageFilter 400 00000001
Please specify the source and dest files first and then the options.


$ wine eac3to.exe /Volumes/My\ Passport/MyBluray/BDMV "1)"
fixme:msg:ChangeWindowMessageFilter 400 00000001
Please specify the source and dest files first and then the options.


Any ideas?

I realize this is old but if anyone else has this problem, I hope this helps. The issue is with the file paths you are feeding it. In this case, /Volumes/My\ Passport etc looks to eac3to like Windows option flags (/? /h etc) and not a file path. The solution is to use the tool winepath (https://wiki.winehq.org/Winepath). So your corrected command would look like:
$ wine eac3to.exe `winepath -w /Volumes/My\ Passport/MyBluray/BDMV` 1\) 2: `winepath -w ~/Movies/video.mkv` 3: `winepath -w ~/Movies/audio.flac`

DanielSB
19th July 2016, 09:46
Also, it's worth noticing that newer versions of MakeMKV will do lossless DTS-HD decoding if you provide it with the proper .dll (the same one as used here) — also on macOS.

tebasuna51
19th July 2016, 20:49
ArcSoft is not needed for DTS-HD decode with MakeMKV:

MakeMKV v1.9.3 ( 1.6.2015 )
DTS-HD decoding is now handled by open-source libdcadec library (dtsdecoderdll.dll is still required for DTS express only)

rockydon
30th June 2018, 05:23
As I read all the post and i find this as appropriate place to ask here my doubt,i use eac3to in wine environment,i have nothing installed on my Ubuntu based headless server but madshi eac3to.

When I try to extract any tracks I get error and extraction of tracks is not successful.

Merlincool
10th January 2024, 05:43
As I read all the post and i find this as appropriate place to ask here my doubt,i use eac3to in wine environment,i have nothing installed on my Ubuntu based headless server but madshi eac3to.

When I try to extract any tracks I get error and extraction of tracks is not successful.

What exactly the error is could you give details. I am working on headless debian and it's working absolutely fine.

tebasuna51
10th January 2024, 10:04
@Merlincool, the rockydon (last activity 3rd October 2018) problem is more than 5 years old, I doubt he still waiting to solve it.

Also the problem of this thread was solved longtime ago, without need ArcSoft, with the libdcadec.dll included in the eac3to package.