Welcome Guest ( Log In | Register )


Important

The forums will be closing permanently the weekend of March 15th. Please see the notice in the announcements forum for details.

Pages: (5) 1 [2] 3 4 ... Last » ( Go to first unread post )
New AAC ACM Codec, Decode AAC in VirtualDub
« Next Oldest | Next Newest » Track this topic | Email this topic | Print this topic
Jam One
Posted: Feb 26 2011, 07:27 PM


Advanced Member


Group: Members
Posts: 580
Member No.: 25518
Joined: 8-May 09



God bless you, fccHandler!
 
     Top
ale5000
Posted: Feb 26 2011, 08:57 PM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



Edit: Post removed.

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
v0lt
  Posted: Feb 27 2011, 05:56 AM


Advanced Member


Group: Members
Posts: 119
Member No.: 26125
Joined: 5-September 09



[Manhole-Fansubs]Test_Your_5.1_[AC3].[AAC].mkv
AC3 track - normal
AAC track - moos sad.gif

More:
http://samples.mplayerhq.hu/A-codecs/AAC/f.../faad2-fail.mkv
across_the universe_sample.mkv (listen at the end of the sample)
 
     Top
fccHandler
Posted: Feb 27 2011, 06:35 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



I noticed the Manhole problem as well. I don't know yet why it happens. Thank you for posting the others; I will look into those.


--------------------
May the FOURCC be with you...
 
     Top
fccHandler
Posted: Feb 27 2011, 06:47 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



Well I know what's happening and it's pretty bad.

What these files all have in common is multichannel audio. AACACM (being based on AC3ACM) was not checking the channel count on acmStreamOpen. This was fine for AC3ACM because it can internally convert any number of channels to any other, but AACACM cannot!

Therefore I added a check to ensure that the output number of channels equals the input, but now all multichannel audio fails. What I see in the debugger is that VirtualDub makes exactly one query with source channels = 6 and destination channels = 2. This query fails (as expected) but VirtualDub makes no other attempts and just gives up.

I seem to remember some support for WAVE_FORMAT_EXTENSIBLE in VirtualDub's source code so it's possible he's making extensible queries as well, but currently AACACM doesn't support that.

To make a long story short, what you are hearing is 6 channel PCM incorrectly being played back as 2 channel PCM. I am going to have to think about how best to resolve this...

Note that faad2-fail.mkv hangs during loading because it is cut off in the middle. This however is an easy fix which will be in the next release of the Matroska plugin.


--------------------
May the FOURCC be with you...
 
     Top
phaeron
Posted: Feb 27 2011, 10:59 PM


Virtualdub Developer


Group: Administrator
Posts: 7773
Member No.: 61
Joined: 30-July 02



VirtualDub doesn't have logic for downmixing 5.1 or 7.1 audio to stereo and relies on the codec to do so. It does support WAVEFORMATEXTENSIBLE to some extent, but that won't let you bypass a channel count mismatch.

IIRC, there were some nasty ambiguities when passing 5.1 through WAVEFORMATEX since there were at least two common channel orderings in use; I think WAVEFORMATEXTENSIBLE has support for specifying the mapping so that might be more doable.
 
    Top
Dstruct
Posted: Feb 28 2011, 01:46 PM


Advanced Member


Group: Members
Posts: 257
Member No.: 24005
Joined: 8-August 08



AAC ACM 1.2


If both (AC-3 ACM and AAC ACM) are installed, you get the configuration dialog of the AC-3 ACM codec also for the AAC ACM codec. No chance to view the AAC ACM config dialog in this case!


Second bug: Uninstallation via Control Panel not working (XP SP3)! FIXED (1.3)
 
    Top
ale5000
Posted: Feb 28 2011, 01:52 PM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



QUOTE (Dstruct @ Feb 28 2011, 02:46 PM)
If both (AC-3 ACM and AAC ACM) are installed, you get the configuration dialog of the AC-3 ACM codec also for the AAC ACM codec. No chance to view the AAC ACM config dialog in this case!

This is a windows bug and cannot be fixed, noone has found a way to workaround it yet (maybe).

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
ale5000
Posted: Feb 28 2011, 08:30 PM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



The inf of acm codecs seems to set HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaResources\msacm
but windows seems to read HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\MediaResources\acm

I have used regmon and I have discovered that windows really does a infinite number of useless registry read and it has a lot of buffer overflow.

I open the properties of Indeo Audio ACM (or another it doesn't matter), then when I click Cancel windows do this:
QUOTE

120.02949524 rundll32.exe:2752 OpenKey HKCU SUCCESS Access: 0x2000000 
120.02954102 rundll32.exe:2752 CreateKey HKCU\Software\Microsoft\Multimedia\Audio Compression Manager\ SUCCESS Access: 0x20006 
120.02956390 rundll32.exe:2752 CloseKey HKCU SUCCESS 
120.02960205 rundll32.exe:2752 CreateKey HKCU\Software\Microsoft\Multimedia\Audio Compression Manager\Priority v4.00 SUCCESS Access: 0x2001F 
120.02962494 rundll32.exe:2752 CloseKey HKCU\Software\Microsoft\Multimedia\Audio Compression Manager\ SUCCESS 
120.02965546 rundll32.exe:2752 QueryValue HKCU\Software\Microsoft\Multimedia\Audio Compression Manager\Priority v4.00\Priority1 NOT FOUND 
120.02968597 rundll32.exe:2752 CloseKey HKCU\Software\Microsoft\Multimedia\Audio Compression Manager\Priority v4.00 SUCCESS 
120.03001404 rundll32.exe:2752 QueryValue HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\msacm.ac3acm SUCCESS "AC3ACM.acm"
120.03010559 rundll32.exe:2752 OpenKey HKCU\Software\Freeware\AC3ACM NOT FOUND 
120.03021240 rundll32.exe:2752 QueryValue HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\msacm.aacacm SUCCESS "AACACM.acm"
120.03028107 rundll32.exe:2752 OpenKey HKCU\Software\Freeware\fccHandler\AACACM NOT FOUND 
120.03038025 rundll32.exe:2752 QueryValue HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32\msacm.ac3filter SUCCESS "ac3filter.acm"
Why it read these three acm codecs when I just closed Indeo Audio ACM?

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
fccHandler
Posted: Mar 5 2011, 08:48 PM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



I have fixed the uninstall issue on Windows XP, but nothing else so far:

http://fcchandler.home.comcast.net/AACACM

ale5000: I can't answer all of your questions, but you were right about the "MediaResources\msacm" key being misnamed! The key exists on Windows 98 as "acm" but doesn't exist at all on Windows XP. I've corrected this in the inf file. Thank you for finding it.

As for the meaning of that key? I have no idea. rolleyes.gif

--------------------
May the FOURCC be with you...
 
     Top
ale5000
Posted: Mar 6 2011, 02:35 AM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



Edit: Problem fixed

--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
fccHandler
Posted: Mar 6 2011, 04:24 AM


Administrator n00b


Group: Moderators
Posts: 3961
Member No.: 280
Joined: 13-September 02



I saw your post just in time, since I was about to upload version 1.4:

http://fcchandler.home.comcast.net/AACACM

I agree and in fact prefer "HKCU\Software\fccHandler". cool.gif

Version 1.4 will now play multichannel AAC correctly but it does so via a downmix to stereo. I don't like having to do this, but I've spent all day on it and I can't figure out how to get VirtualDub to accept multichannel PCM.

I even tried hacking VirtualDub. There is a line in the Riza project, w32audiocodec.cpp, which I thought might be responsible:

CODE
// sanitize the destination format a bit

if (mDstFormat->mChannels != 1 && mDstFormat->mChannels !=2)
   mDstFormat->mChannels = 2;


So I tried removing that line, and that did cause him to request 6 channel PCM. But when pressing play it just hangs. I can only guess that there is some other part of the audio pipeline which is not liking multichannel PCM...


--------------------
May the FOURCC be with you...
 
     Top
ale5000
Posted: Mar 6 2011, 04:43 AM


Advanced Member


Group: Members
Posts: 1114
Member No.: 22180
Joined: 30-September 07



1) Probably it can't help you since it isn't opensource but there is a multichannel mp3 acm codec: http://www.videoaudio.pl/infusions/pro_dow...load.php?did=46

2) This can help (probably):
QUOTE
Aud-X Team has prepared a special edition of VirtualDubMod. This version is capable of cooperating with 6 channel ACM audio encoders (including Aud-X ACM encoder). We hope that these changes will be included in main stream VDM editions

Download Full Project  [ 64.59 MB ]
Download Modified Files Only [ 40 kB ]

The changes concern:

(files Audio.h, Audio.cpp)

- Fixed: bool AudioCompressor::Process(), so that it processes six channel signals properly.

- Fixed: audio stream source creation, so that if no change of sampling rate or no change of channels number is selected, then satisfaction of this constraint is indeed ensured (it is enforced on ACM codec when asking about format suggestion).


(file Dub.cpp)

- Fixed: audio stream source creation


(optdlg.cpp)

- Fixed: label "no change" for channels section of options dialog, so that if source has six channels, "5.1" is shown in the adjacent brackets instead of "stereo".


--------------------
New VirtualDub forum
VirtualDub AIO (All-in-One installer for VirtualDub and plugins)
Codec Toolbox RS (A tool to read/change merit of codecs and many other things)
Input plugins for VirtualDub / ACM codecs / VFW codecs
 
     Top
v0lt
Posted: Mar 6 2011, 04:45 AM


Advanced Member


Group: Members
Posts: 119
Member No.: 26125
Joined: 5-September 09



Version 1.4 works well, my files will not moo. smile.gif
Thank you!
 
     Top
JaliM
Posted: Mar 7 2011, 02:50 PM


Member


Group: Members
Posts: 23
Member No.: 29948
Joined: 17-February 11



@fccHandler: I've been testing AAC ACM Codec 1.4 and Matroska plugin. and I've found some anomalities.... Firstly, 32 KHz, 44,1 KHz & 32 KHz MKV-LC-AAC files are supported in stereo mode only. If LC-AAC files are MONO then VirtualDub plays it at HALF-SPEED. If LC-AAC files are 5.1 then VirtualDub does not detect them (no audio info).
Note that all tests have been achieved with Matroska files with one AVC videostream and LC-ACC content, without ADTS headers. Not tested with AVIs or FLVs or with ATDS AAC streams.
 
    Top
1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
73 replies since Feb 20 2011, 11:21 PM Track this topic | Email this topic | Print this topic
Pages: (5) 1 [2] 3 4 ... Last »
<< Back to Codec Discussion