Log in

View Full Version : DSS PCM32 audio bug in 2.5.7a3


Egh
2nd August 2006, 15:14
Don't know where to report this bug, let's try here :P

In short: i have last 2.5.7 alpha3 build, and discovered a problem with DirectShowSource().

It seems now it doesnt' accept PCM32 audio, instead it generates white noise :) I.E. if a DShow decoder forces output in PCM32 then all you hear will be white noise.

You tried and say it works? Try 48KHz audio instead of 44100 and see the difference :)

I.e. DSS() works ok with PCM16 48KHz, ok with PCM32 44100Hz, but fails if both conditions are met.

IanB
3rd August 2006, 07:10
Well this is the right place to report problems.

A DSS logfile would be handy. DirectShowSource(...., logfile="blah.log", logmask=-1) Just load it, play the first 1 second and close it (the log grows very quickly when playing).

A sample file for reproducing the problem (< 1Mb if possible)

All the usual suspects i.e. OS version, codec plus version, etc

Egh
3rd August 2006, 12:03
Well this is the right place to report problems.

A DSS logfile would be handy. DirectShowSource(...., logfile="blah.log", logmask=-1) Just load it, play the first 1 second and close it (the log grows very quickly when playing).

A sample file for reproducing the problem (< 1Mb if possible)

All the usual suspects i.e. OS version, codec plus version, etc

Hi, this logging feature is very convinient btw. If I knew it existed :) I could have researched more prior to initial report.

So, after studying the log I found out that DSS() remarkably doesn't even get 6chan PCM32 audio in this case. It only receives 16bit stereo for some strange reason. For instance playing 44.1KHz mp3 with same filtering chain will produce proper PCM32 input to DSS().

So either the filter provides bad format, or DSS() puts some wrong request (or probably doesn't properly proccess codec's response?). Note that very same filtering chain (6ch 48KHz PCM32 output) works fine when played in MPC.

http://rapidshare.de/files/28020309/dss32.zip.html

Take that 10s ac3 cut (in mkv) and log file. Remarkably it also has TWO audio format accept responses, which is wrong as well, imo.

If you can't download from rapidshare, tell me and I'll put temporarily a direct link for you.

IanB
3rd August 2006, 16:42
Yes indeed it is a bit stuffed.

ReceiveConnection() internally calls QueryAccept() which parses the MEDIA_TYPE and build the local GetSample::VideoInfo structure. The subsequent direct call to QueryAccept() overwrites the local VideoInfo but it is to late the previous values have already been copied to the global DirectShowSource::VideoInfo which is used to build the rest of the Avisynth GetAudio chain.

Also Receive() got 8192 bytes of data tagged as being 213333x100ns duration, which for 48000 samples per second is 1023.9984 samples, implying the samples are 8 bytes each, which means they are probably 2 channel 32bit PCM.

So it looks like the QueryAccept() on a connected pin implies a renegotiation of MEDIA_TYPE.

The 6 channel thing is probably something to do with the g_wszWMACHiResOutput property bag thingy needing to be set.

Got some coding to do....

And lastly which codec are you using and what is the revision and maybe where do I download it from.

Egh
3rd August 2006, 19:59
And lastly which codec are you using and what is the revision and maybe where do I download it from.

whoops, sorry.

What i have on that box is http://ac3filter.net/index.php?name=News&file=article&sid=10

Of course newer version 1.07a has just been released, but I'm not on that PC now, maybe I'll check with newer version tomorrow.

IanB
11th August 2006, 14:26
Give this version a try directshowsource.zip (http://avisynth2.sourceforge.net/directshowsource.zip), replace DirectShowSource.dll in your avisynth plugin directory with the contents of this .zip file.

Pin renegotiation should no longer screw things.

Shhhh!!! This version also has the code to set WMAudio into High Res mode, i.e 24bit samples and >2 channels :D

Please do ", logfile="blah.log", logmask=-1" and submit blah.log if reporting any problems.

IanB
29th August 2006, 02:08
Ping! (does this version work?)

Egh
29th August 2006, 16:33
Bump :)

Whoops, I forgot to report about that.

I've just tried again, seems all is ok. Used AC3Filter 1.09a with forced 32bit PCM audio output.

P.S.
I hope new alpha is coming soon :) Only if that evil CAVIStream bug could be fixed...

IanB
30th August 2006, 11:58
Only if that evil CAVIStream bug could be fixed...Which particular CAVIStream bug?

Egh
30th August 2006, 13:12
Which particular CAVIStream bug?

http://forum.doom9.org/showthread.php?t=111975 this one I guess.

IanB
30th August 2006, 13:47
Yes thats the one I thought you meant. It has hit a brickwall. We will have to wait for someone to do a bit of active detective work before I can progress it. Ping the thread to try and stir some activity.

Egh
30th August 2006, 13:52
Yes thats the one I thought you meant. It has hit a brickwall. We will have to wait for someone to do a bit of active detective work before I can progress it. Ping the thread to try and stir some activity.

I just wonder if AVS itself has such good option of debug log. Cause I have this error nearly every time I encode a minute sample (if it's encoded straight from avs with filtering, but never happens if i save filtered video as YV12 first, and then encode).