Discussion:
File Source Async filter isn't picked for .mp3 files...
(too old to reply)
dh
2007-04-30 19:30:02 UTC
Permalink
The error message stays the same: 0x80040256. "Cannot play back the sudio
stream: no audio hardware is available, or the hardware is not responding."

It happens in both cases below...

When drag n' drop a .mp3 file into GraphEdit. It seems like the File Source
Async filter is not be picked up for .mp3 file (error message like above).

In my app if it "IGraphBuilder::AddSourceFilter" with a .mp3 filename, it
gives the same error.

I checked the "Media Type" setting for .mp3 etc. in Registry, it should pick
File Source Async filter. Unfortunately, it doesn't.

However, when I manually insert File Source Async filter into GraphEdit, it
will pop up for picking a file and then I pick a .mp3 file, everything works
fine, in the sense that it can connect to MPEG-I Splitter, ffdshow Audio
Decoder, etc. Even running the graph and encoding fine!

Any ideas?

Thanks!
Alessandro Angeli
2007-04-30 22:23:02 UTC
Permalink
From: "dh"
Post by dh
The error message stays the same: 0x80040256. "Cannot
play back the sudio stream: no audio hardware is
available, or the hardware is not responding."
It happens in both cases below...
When drag n' drop a .mp3 file into GraphEdit. It seems
like the File Source Async filter is not be picked up for
.mp3 file (error message like above).
In my app if it "IGraphBuilder::AddSourceFilter" with a
.mp3 filename, it gives the same error.
I checked the "Media Type" setting for .mp3 etc. in
Registry, it should pick File Source Async filter.
Unfortunately, it doesn't.
However, when I manually insert File Source Async filter
into GraphEdit, it will pop up for picking a file and
then I pick a .mp3 file, everything works fine, in the
sense that it can connect to MPEG-I Splitter, ffdshow
Audio Decoder, etc. Even running the graph and encoding
fine!
Some (broken) third-party filters hijack MP3 parsing. If you
use automatic graph building (AddSourceFilter() or
RenderFilter()), there is nothing you can do short of
implementing IAMGraphBuilderCallback and rejecting known
broken filters in SelectedFilter(). If you know what source
filter you want, you'd better off picking it up yourself.
--
// Alessandro Angeli
// MVP :: DirectShow / MediaFoundation
// mvpnews at riseoftheants dot com
// http://www.riseoftheants.com/mmx/faq.htm
Loading...