Skip to main content

Notice

Please note that most of the software linked on this forum is likely to be safe to use. If you are unsure, feel free to ask in the relevant topics, or send a private message to an administrator or moderator. To help curb the problems of false positives, or in the event that you do find actual malware, you can contribute through the article linked here.
Topic: opensource MPEG Layer 1/2/3 Directshow Decoder (Read 13637 times) previous topic - next topic
0 Members and 1 Guest are viewing this topic.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #25
Unregistering l3codec.ax will cause the ACM wrapper to load for MPx audio in non-MPEG-1 containers.  Therefore, I strongly advise keeping the FhG decoder registered until the MAD Decoder can truly replace FhG in functionality.  In the interim, I'd suggest using Media Player Classic.  MPC has a great filter management system which allows you to "Prefer" a filter thereby allowing MAD to be used in place of FhG when it can.  If you so choose, you can also set the exact merit value of filters when used from MPC.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #26
guys, thanks to great toff a new version of madfilter is on its way:

madfilter 1.0.0.2 will

resolve the issue with mp3 audio in avi container
have a higher priority (merit) than the default windows filter, so it will be always used instead (no installing troubles anymore)
I know, that I know nothing (Socrates)

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #27
To change priorities of various installed audio codecs in Win XP go to:
Control Panel -> Sounds and Audio Devices -> Hardware -> Select Audio Codecs and choose Properties. Now a new window pops up where you again select Properties and there you see all the installed audio codecs. Selecting Properties for each one of them you can set their individual priority from a drop down menu.

IIRC it's very similar in Win98, except that Sounds and Audio Devices is called Multimedia there I think.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #28
Quote
To change priorities of various installed audio codecs in Win XP go to:

That is only for ACM codecs. DirectShow filter priorities are set differently.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #29
It doesn't connect with Gabest's Shoutcast reader either, but chances this and the avi one is one problem.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #30
Quote
hmmm... even I tried to disable FhG, LameACM gets in the way x)
But Moonlight Odio decoder don't have any problem and overrides FhG and LameACM...

In mpc, I block FhG, LameACM(ACMwrapper), Moonlight Odio, and set MAD to prefer, MAD still don't shows up and mpc popups an error message saying it can't find a filter to play audio

Strange, LameACM doesn't do any decoding !

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #31
Thanks to great Toff who submitted important updates, MADFilter 1.0.0.2 is out:

Changes:
- fixed problems with the AVI Container
- fixed problems with the Samplerate (now uses the WAVEFORMATEX one)

- uses higher Merit than the default Filter on Windows (MADFilter is now always used -  no more problems like unregistering FhG's Filter)
- allows disabling ASM (in aag_memcpy.h) for older compiler versions
- based on MAD 0.15.0b
- updated the about window

known issues:
- still problems with alternative containers like OGM or Matroska

compiling:
- MAD 0.15.0b (multithreaded/Pentium Pro)
- MS VC++ 6.0 Standard with service pack 5 (disabled ASM)
- DirectX SDK 9.0

Enjoy
(ps: thanks for all your testing reports!!!)
I know, that I know nothing (Socrates)

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #32
Bug report:
-mono playback doesn´t work (playback too slow)
-is it based on MAD 0.25.0b?? (it is shown in about box)
-seeking is buggy (pops/clicks directly after seeking, also happens if you load another file while another is still playing (in WMP6.4) or you press stop and restart playback)

Feature request:
Please add support for not allowed bitrate/channel combination with mp2 (low-bitrate stereo, high bitrate mono). Also they are not allowed by ISO they are used sometimes, because many encoders doesn´t care about the limit.
You need to change the function "mad_layer_II" in layer12.c:
Code: [Select]
  if (header->flags & MAD_FLAG_LSF_EXT)
   index = 4;
 else {
   switch (nch == 2 ? header->bitrate / 2 : header->bitrate) {
   case 16000:
   case 24000:
   case 28000:
   case 32000:
   case 40000:
   case 48000:
     index = (header->samplerate == 32000) ? 3 : 2;
     break;

   case 56000:
   case 64000:
   case 80000:
     index = 0;
     break;

   default:
     index = (header->samplerate == 48000) ? 0 : 1;
   }
 }

There are yust some cases added in the allocation table selector, that´s all. Otherwise playback of 80kbps-stereo mp2s for example is completly screwed up.

Where is the source code of the filter? I couldn´t find it, yust the old version in CVS.

Edit: Added seeking bug

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #33
S_O
Thanks for your testing!!!
as i wrote in the first post, plz use the trackers on the sourceforge page to submit bug/feature reports, as armin (the guy who wrote the filter) isnt around here and doesnt really have time to work on the filter regularely, so when he will work on it let's say in 3 weeks it would be the best if all requests/bugs could be on the page cause he surely will not search any board
thanks

Quote
Bug report:
-is it based on MAD 0.25.0b?? (it is shown in about box)

yup, should be
why?

Quote
Feature request:
Please add support for not allowed bitrate/channel combination with mp2 (low-bitrate stereo, high bitrate mono). Also they are not allowed by ISO they are used sometimes, because many encoders doesn´t care about the limit.
You need to change the function "mad_layer_II" in layer12.c:

will see what i can do

Quote
Where is the source code of the filter? I couldn´t find it, yust the old version in CVS.

i am commiting at the moment
I know, that I know nothing (Socrates)

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #34
Quote
Quote
Bug report:
-is it based on MAD 0.25.0b?? (it is shown in about box)

yup, should be
why?

There has never been a 0.25.0b version of Mad.

Latest version is 0.15.0b

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #35
ups typo 
I know, that I know nothing (Socrates)

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #36
I got the newest CVS version, compiled and perfect, all bugs except the seeking/new-file bug (which is already posted at sf by someone else) are gone (mono / version 0.25.0b). Also my patched libmad works fine, please copy this patch into your code.
Did you optmize libmad for speed/accuracy? I´ve read somewhere that accuracy is faster than normal. speed is of course even faster.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #37
Using Gabest's AVI Splitter 1.0.0.2 and an OpenDML AVI, MADDec still won't connect to the splitter. =(

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #38
Hi Animaniac!

i now had time to test this a little bit more and the interesting point is that madfilter seems to work fine with the default windows avi splitter (which also outputs subtype "00000055-0000-0010-8000-00AA00389B71") but not with the gabest one!

i will ask gabest why this is the case...

hm, and in your case madfilter also doesnt want to connect to gabest's splitter? here connecting works...


btw. the problems with mono files are fixed (thanks to toff  )
I know, that I know nothing (Socrates)

 

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #39
Quote
Hi Animaniac!

i now had time to test this a little bit more and the interesting point is that madfilter seems to work fine with the default windows avi splitter (which also outputs subtype "00000055-0000-0010-8000-00AA00389B71") but not with the gabest one!

i will ask gabest why this is the case...

hm, and in your case madfilter also doesnt want to connect to gabest's splitter? here connecting works...


btw. the problems with mono files are fixed (thanks to toff  )

In GraphEdit, both Gabest's and the quartz.dll version of AVI Splitter and AVI Source connect to the MAD Transform Filter; however, with Gabest's the file hangs on the first frame, and with quartz.dll the first frame pops up and then a "Graph cannot change state." error appears.  Replacing MAD with the FhG filter, fixes all those problems.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #40
Hrm... dunno if this has already been mentioned here, but you can get a properly working filter using MAD (works for me at least) with latest ffdshow compile.

http://athos.leffe.dnsalias.com/

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #41
MPC 6.5.6.3 has it's own implementation of libmad now.  It seems bug free.

opensource MPEG Layer 1/2/3 Directshow Decoder

Reply #42
just a small new update:

first of all dont expect the non-mpeg container issues to be fixed,
as it looks like they will not be fixed until someone with enough time and skills will work on them 

changelog 1.0.0.3:
- fixed bug caused by mono files
- added support for non-iso conform mpeg layer2 files (thanks to S_O)

- some internal changes (cleaning up/date, time and version number is now updated automatically)


if someone wants to work on it a little bit feel free to message me
I know, that I know nothing (Socrates)