View Full Version : ffdshow tryouts project: Discussion & Development
tetsuo55
12th August 2009, 09:01
Those commercial players only allow untouched bitstreaming over protected path(which requires a special soundcard and software).
Adding this to ffdshow might enable bitstreaming for everyone.
Also i think the best feature would be bitstreaming of formats not fully supported by ffdshow, i'm interested in all of these:
DTS, DTS-ES, DTS 96/24, DTS-HD (MA)
Dolby Digital, Dolby Digital Surround EX, Dolby Digital Plus, Dolby TrueHD
albain
12th August 2009, 09:32
Indeed, that's what I've read : radeon (even 4xxx) and nvidia cards hold protected video path but not audio, so commercial players downgrade the LPCM signals to DVD quality and won't bitstream HD compressed signals.
Only the xonar with the TMT holds this protected media path.
The solution is anydvd which removes the AACS protection so the protected path, but commercial players also downgrade in that case.
What to do next : implementing bitstream of TrueHD, DTS-HD, and EAC3 to the numeric output.
*EDIT* : the issue here is also how to send the compressed stream directly to the renderer ?
For AC3, there are 2 mediatypes, AC3 and AC3_SPDIF to use when we want to do passthrough
There is only one for TrueHD, DTSHD...
Fizick
12th August 2009, 20:25
It seems, I found a bug in ffdshow porting of Yadif to SSE2
http://sourceforge.net/tracker/?func=detail&aid=2836414&group_id=173941&atid=867362
Output of SSE2(SSE3) is not the same as C(and SSEMMX)
Please check - I do not have SSE2 CPU now :)
STaRGaZeR
12th August 2009, 21:14
It seems, I found a bug in ffdshow porting of Yadif to SSE2
http://sourceforge.net/tracker/?func=detail&aid=2836414&group_id=173941&atid=867362
Output of SSE2(SSE3) is not the same as C(and SSEMMX)
Please check - I do not have SSE2 CPU now :)
This would produce any visible errors?
albain
13th August 2009, 12:11
I have made a development build for TrueHD/DTSHD/EAC3 passthrough.
I have no idea if it will work because I don't have the equipment.
Requirements :
Windows 7 (I don't think it will work on Vista, unless DirectShow is updated with upcoming WMP12)
A HDMI 1.3 output : Asus xonar, azuentech XFI Home theater HD, Radeon HD4xxxx
A HT system which supports HDMI 1.3 and the decoding of EAC3/TrueHD/DTSHD
M2TS samples with one of the following formats (it won't work on commercial players I guess).
MPC HC
FFDShow configured as followed : in the output section, there are new checkboxes for passthrough. Tick the formats that fit to your equipment
How it works : a new structure is provided in output so that the stream should be passed directly to the audio renderer.
FFDShow does nothing on the stream, it simply adds the correct information in output. MPC-HC will have no idea of this new structure (and does not recognize the new mediatypes yet), and it will pass the audio stream to the renderer with no moditification too.
I think that EAC3 passthrough should work on a SPDIF output (but I am not sure), but for the 2 others HDMI 1.3 is required to transport the audio.
Here is the URL :
http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871
To do next :
1/Make it work
2/Implement PCM/LPCM passthrough too (to avoid OS interfer too)
tetsuo55
13th August 2009, 13:01
I changed everything to "libavcodec"
I checked all the passthrough formats
I have 4770 and onkyo 607
First results are in:
-Dolby Digital works fine (Display on reciever changes to Dolby D)
-Dolby Digital EX works fine (Display on reciever changes to Dolby D EX)
-Dobly Digital Plus is not being sent, only silence. (Display on reciever changes to Dolby D)
-TrueHD is not being sent, only silence. (DDisplay on reciever changes to Dolby D)
-DTS works fine (Display changes to DTS)
-DTS-HD gets it's core sent as DTS (Display changes to DTS)
please let me know which details you need.
albain
13th August 2009, 13:48
I changed everything to "libavcodec"
I checked all the passthrough formats
I have 4770 and onkyo 607
First results are in:
-Dolby Digital works fine (Display on reciever changes to Dolby D)
-Dolby Digital EX works fine (Display on reciever changes to Dolby D EX)
-Dobly Digital Plus is not being sent, only silence. (Display on reciever changes to Dolby D)
-TrueHD is not being sent, only silence. (DDisplay on reciever changes to Dolby D)
-DTS works fine (Display changes to DTS)
-DTS-HD gets it's core sent as DTS (Display changes to DTS)
please let me know which details you need.
Have you tried to disable internal audio switcher of MPC-HC ?
Otherwise, could you tell me the input PIN information received by the audio renderer (right click/Filters/<sound device>) ?
Normally you should get the following for EAC3 :
subtype: Unknown GUID Name {0000000A-0CEA-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
Otherwise, the problem may come from MPC itself that won't propagate the new structure (or change it by a legacy one) to the audio renderer.
The alternate test it to make it work from WMP12, but I don't know any way to play TrueHD/DTSHD/EAC3 stream through WMP
Thanks for your tests
tetsuo55
13th August 2009, 13:58
With stream switcher disabled, EAC3 and TrueHD now show PCM stereo on the reciever.
With stream switcher disabled DTS-HD no longer works, still showing DTS on the reciever
eac3
Filter : Realtek HDMI Output (ATI HDMI A - CLSID : {E30629D1-27E5-11CE-875D-00608CB78066}
- Connected to:
CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Filter: ffdshow Audio Decoder
Pin: Out
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 0:
Audio
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
EDIT:
With stream switcher disabled all bitstream formats are broken
tetsuo55
13th August 2009, 14:49
DTS 24/96 doesnt work, the reciever sees PCM stereo
albain
13th August 2009, 14:52
Weird, I also get PCM in the pin input of the audio render but not in the pin output of FFDShow
FFDShow audio (EAC3)------->(PCM) Audio renderer
I thought this was due to my sound adapter that won't support EAC3 bitstream
Here is the result I get from graphedit :
http://damienbt.free.fr/EAC3.jpg
As I said maybe the problem comes from MPC that won't propagate the structure
*EDIT* : can you test with the following build also ? (with and without the internal switcher) ?
FFDShow audio bitstream beta 2 (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)
Thanks
PS : the real question for directshow experts and that is not answered by MSDN doc (http://msdn.microsoft.com/en-us/library/dd316761%28VS.85%29.aspx) is : how to fill CMediaType.subtype ? with MEDIASUBTYPE_PCM or with the same value as
WAVEFORMATEXTENSIBLE_IEC61937.FormatExt.SubFormat=WAVEFORMATEXTENSIBLE.SubFormat= KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_DIGITAL_PLUS for EAC3, KSDATAFORMAT_SUBTYPE_IEC61937_DTS_HD for DTS HD, KSDATAFORMAT_SUBTYPE_IEC61937_DOLBY_MLP for TrueHD ...
Maybe clsid or Haruhiko have clues on this subject.
Also if someone know how to play HD audio streams within WMP12....
albain
13th August 2009, 15:35
Okay, this is my fault, I mixed media subtype and format tags which are 2 different notions
It should be better with the following :
FFDShow bitstream beta 3 (http://www.mediafire.com/file/0nmttl5jkye/ffdshow_rev3054_20090803_dbt_beta3.exe)
tetsuo55
13th August 2009, 15:49
still not working
eac3
Filter : Realtek HDMI Output (ATI HDMI A - CLSID : {E30629D1-27E5-11CE-875D-00608CB78066}
- Connected to:
CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Out
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 0:
Audio
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
TrueHD
Filter : Realtek HDMI Output (ATI HDMI A - CLSID : {E30629D1-27E5-11CE-875D-00608CB78066}
- Connected to:
CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Out
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 0:
Audio
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
DTS-HD
Filter : Realtek HDMI Output (ATI HDMI A - CLSID : {E30629D1-27E5-11CE-875D-00608CB78066}
- Connected to:
CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Out
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 0:
Audio
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
Edit:
and this is without the audio switcher, disabling it breaks all streams including regular dts and ac3
DTS-HD
Filter : Realtek HDMI Output (ATI HDMI A - CLSID : {E30629D1-27E5-11CE-875D-00608CB78066}
- Connected to:
CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Filter: ffdshow Audio Decoder
Pin: Out
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 0:
Audio
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
albain
13th August 2009, 16:22
Some more work needs to be done then
Lastly, could you try the following sample with WMP12 : its a MKV so it should play fine in it
MKV Sample with EAC3 (http://www.mediafire.com/file/g0jztyyhioy/Battle.Of.The.Bulge.1965.HD-DVD.Re.x264.720P.EAC3-C@SiLU-Sample.mkv)
@developers
Here is the patch to work on. I followed MS guidelines from the MSDN link above, but maybe something is wrong with the stream itself (does it need to be swabbed or reformated ?)
Patch of source code of bitstream (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)
tetsuo55
13th August 2009, 16:31
Some more work needs to be done then
Lastly, could you try the following sample with WMP12 : its a MKV so it should play fine in it
MKV Sample with EAC3 (http://www.mediafire.com/file/g0jztyyhioy/Battle.Of.The.Bulge.1965.HD-DVD.Re.x264.720P.EAC3-C@SiLU-Sample.mkv)
@developers
Here is the patch to work on. I followed MS guidelines from the MSDN link above, but maybe something is wrong with the stream itself (does it need to be swabbed or reformated ?)
Patch of source code of bitstream (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)WMP only wants to use its own codecs on win7
nm
13th August 2009, 16:40
WMP only wants to use its own codecs on win7
Not with MKV.
tetsuo55
13th August 2009, 17:01
the sample refuses to play in wmp, hangs at 0 seconds, first frame is visable.
Does play in MPC-HC, but audio is silent
------
EDIT:
Maybe it requires a wasapi audio renderer?
albain
13th August 2009, 18:09
Indeed I suspect the audio renderer to be failing.
In WMP the correct renderer should be used, I don't understand. Maybe a problem with the audio drivers
In the doc I have it is said that the KSDATARANGE_AUDIO structure should be supported by the driver with the new driver model (the one from vista or 7 I don't know).
If I don't find the answer I will try to post this issue in MSDN forums, but we are in advance or the only one interested by this implementation : commercial applications have their own audio renderer I guess (to work with vista).
tetsuo55
13th August 2009, 18:13
Indeed I suspect the audio renderer to be failing.
In WMP the correct renderer should be used, I don't understand. Maybe a problem with the audio drivers
In the doc I have it is said that the KSDATARANGE_AUDIO structure should be supported by the driver with the new driver model (the one from vista or 7 I don't know).
If I don't find the answer I will try to post this issue in MSDN forums, but we are in advance or the only one interested by this implementation : commercial applications have their own audio renderer I guess (to work with vista).Yeah, i will look into hacking wmp with clsid's tool.
The commercial players have licences and documentation required for implementing these codecs.
Also there is only 1 player that does true bitstreaming.
tetsuo55
13th August 2009, 21:37
I tested with graphedit, still no sound.
The problem is not related to MPC-HC
albain
14th August 2009, 08:43
Yes, this is "normal" because WMP has the same behaviour.
Actually, the problem could come from FFDShow, because I forgot an important step : reconnect the output pin with the new media type
Here is the new build :
FFDShow dev build - bitstream beta 4 (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)
Also, another issue that I am not sure about, about EAC3 : normally EAC3 can be bitstreamed over AC3 (it is called AC3+).
So, I see 2 possibilities :
1/ If you have SPDIF output, EAC3 must be encoded into AC3 (it will still be EAC3 but embedded into an AC3 structure)
2/ If you have HDMI, EAC3 should be sent with no modification
tetsuo55
14th August 2009, 09:03
allright,
Its still not working, TrueHD and eac3 is silent, DTS-HD still gets stripped to core.
FFdshow in
Filter : ffdshow Audio Decoder - CLSID : {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
- Connected to:
CLSID: {1365BE7A-C86A-473C-9A41-C0A6E82C9FA3}
Filter: C:\Users\HTPC\Documents\Downloads\TEST_7.1_DDPLUS.m2ts
Pin: Audio
- Connection media type:
Audio: Dolby AC3 48000Hz 6ch 640Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_DOLBY_AC3 {E06D802C-DB46-11CF-B4D1-00805F6CBBEA}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 18
WAVEFORMATEX:
wFormatTag: 0x2000
nChannels: 6
nSamplesPerSec: 48000
nAvgBytesPerSec: 80000
nBlockAlign: 2560
wBitsPerSample: 0
cbSize: 0 (extra bytes)
pbFormat:
0000: 00 20 06 00 80 bb 00 00 80 38 01 00 00 0a 00 00 . ..€»..€8......
0010: 00 00 ..
Ffdshow out:
Filter : ffdshow Audio Decoder - CLSID : {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
- Connected to:
CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: TEST_7.1_DDPLUS.m2ts / Audio
- Connection media type:
Audio: WAVE_FORMAT_EXTENSIBLE 48000Hz 4ch 3072Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {A7FB87AF-2D02-42FB-A4D4-05CD93843BDD}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 92
WAVEFORMATEX:
wFormatTag: 0xfffe
nChannels: 4
nSamplesPerSec: 48000
nAvgBytesPerSec: 384000
nBlockAlign: 8
wBitsPerSample: 16
cbSize: 34 (extra bytes)
pbFormat:
0000: fe ff 04 00 80 bb 00 00 00 dc 05 00 08 00 10 00 þÿ..€»...Ü......
0010: 22 00|10 00 33 00 00 00 0a 00 00 00 ea 0c 10 00 "...3.......ê...
0020: 80 00 00 aa 00 38 9b 71 80 bb 00 00 04 00 00 00 €..ª.8›q€»......
0030: 00 00 00 00 61 75 64 73 00 00 10 00 80 00 00 aa ....auds....€..ª
0040: 00 38 9b 71 af 87 fb a7 02 2d fb 42 a4 d4 05 cd .8›q¯‡û§.-ûB¤Ô.Í
0050: 93 84 3b dd 01 00 00 00 00 00 00 00 “„;Ý........
- Enumerated media type 0:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 1:
Unknown
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: MEDIASUBTYPE_None {E436EB8E-524F-11CE-9F53-0020AF0BA770}
formattype: FORMAT_None {0F6417D6-C318-11D0-A43F-00A0C9223196}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 307200
cbFormat: 0
audio switcher in:
Filter : Audio Switcher - CLSID : {18C16B08-6497-420E-AD14-22D21C2CEAB7}
- Connected to:
CLSID: {0F40E1E5-4F79-4988-B1A9-CC98794E6B55}
Filter: ffdshow Audio Decoder
Pin: Out
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
audio switcher out:
Filter : Audio Switcher - CLSID : {18C16B08-6497-420E-AD14-22D21C2CEAB7}
- Connected to:
CLSID: {E30629D1-27E5-11CE-875D-00608CB78066}
Filter: Realtek HDMI Output (ATI HDMI A
Pin: Audio Input pin (rendered)
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 0:
Set as the current media type
- Enumerated media type 1:
Unknown
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Stream {E436EB83-524F-11CE-9F53-0020AF0BA770}
subtype: MEDIASUBTYPE_None {E436EB8E-524F-11CE-9F53-0020AF0BA770}
formattype: FORMAT_None {0F6417D6-C318-11D0-A43F-00A0C9223196}
bFixedSizeSamples: 0
bTemporalCompression: 0
lSampleSize: 307200
cbFormat: 0
aduio renderer in:
Filter : Realtek HDMI Output (ATI HDMI A - CLSID : {E30629D1-27E5-11CE-875D-00608CB78066}
- Connected to:
CLSID: {18C16B08-6497-420E-AD14-22D21C2CEAB7}
Filter: Audio Switcher
Pin: Out
- Connection media type:
Audio: 0x0092 48000Hz stereo 1536Kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_PCM {00000001-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 58
WAVEFORMATEX:
wFormatTag: 0x0092
nChannels: 2
nSamplesPerSec: 48000
nAvgBytesPerSec: 192000
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 92 00 02 00 80 bb 00 00 00 ee 02 00 04 00 10 00 ’...€»...î......
0010: 00 00|00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 bb 00 00 02 00 00 00 ........€»......
0030: 00 00 00 00 61 75 64 73 00 00 ....auds..
- Enumerated media type 0:
Audio
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
formattype: TIME_FORMAT_NONE {00000000-0000-0000-0000-000000000000}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 0
EDIT:
with this new version battle of the buldge samples gets played twice as fast with loud static
albain
14th August 2009, 09:21
Okay, do you have the debug messages trace ? I added a trace which says "TffdshowDecAudioInputPin::Receive : the output sample format (compressed stream to bitstream) %d is not accepted by the renderer" which is raised when the connection is refused.
I guess that this is the case. I don't know how yet but if the connection is refused, something should be done (remove ffdshow out of the graph, for example).
I will submit the problem to MSDN.
Could you also try with WMP and the EAC3 mkv ?
Thanks
tetsuo55
14th August 2009, 09:26
Okay, do you have the debug messages trace ? I added a trace which says "TffdshowDecAudioInputPin::Receive : the output sample format (compressed stream to bitstream) %d is not accepted by the renderer" which is raised when the connection is refused.
I guess that this is the case. I don't know how yet but if the connection is refused, something should be done (remove ffdshow out of the graph, for example).
I will submit the problem to MSDN.
Could you also try with WMP and the EAC3 mkv ?
ThanksSame result as MPC, it plays 2x as fast with loud static.
My system is:
Windows 7 RC1 x64
ATI 4770
Onkyo 607
I do not see that debug error. where can i find it?
albain
14th August 2009, 11:03
Ok thank your for your tests.
I have submitted the problem to MSDN forums : here is the link (http://social.msdn.microsoft.com/Forums/en/windowsdirectshowdevelopment/thread/e6603225-4f1a-49a9-9ce9-68919e9264e1)
I think that the problem comes from the audio renderer (wrong renderer used or incompatible audio driver)
clsid
14th August 2009, 11:28
You can view the debug trace with a tool called "DebugView".
albain
14th August 2009, 11:38
You can view the debug trace with a tool called "DebugView".
You have to launch this tool while you play the video, and prior you have to enable debug traces by editing the following registry key :
HKEY_CURRENT_USER\Software\GNU\ffdshow\allowDPRINTF => 1
tetsuo55
14th August 2009, 12:16
I don't think this works for windows 7 X64.
albain
14th August 2009, 13:05
With windows 64 bits the registry key is slightly different but my builds are for 32 bits only so this should be this one
You made the tests with the 32 bits versions of MPC & WMP ?
*EDIT* : I have made a new build, which is a little different (it disconnects then reconnects to the audio renderer)
Also, if it detects that the audio renderer won't accept the media type it will switch to decode mode (EAC3/TrueHD... will be decoded instead of being sent compressed), of course the corresponding decoders must be enabled.
FFDShow bitstream beta 5 (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)
Patch of the source code : FFDShow bitstream source patch (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)
Revgen
15th August 2009, 02:18
If someone has a 7.1 E-AC-3 file other than the one I have, which is just a channel test stream, please send it my way. I'm not going to use my time trying to implement something that has no practical benefit, so until I get a report of a real-world sample, FFmpeg will only support 6-channel E-AC-3...unless someone other than myself decides to do it.
You don't need to do DD+ 7.1.
But DTS-HD would be nice. :D
tetsuo55
15th August 2009, 08:06
With windows 64 bits the registry key is slightly different but my builds are for 32 bits only so this should be this one
You made the tests with the 32 bits versions of MPC & WMP ?
*EDIT* : I have made a new build, which is a little different (it disconnects then reconnects to the audio renderer)
Also, if it detects that the audio renderer won't accept the media type it will switch to decode mode (EAC3/TrueHD... will be decoded instead of being sent compressed), of course the corresponding decoders must be enabled.
FFDShow bitstream beta 5 (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)
Patch of the source code : FFDShow bitstream source patch (http://www.mediafire.com/?sharekey=05fb19b4b2e4495ee7c82ed4b8f0c380e04e75f6e8ebb871)I only use 32bit player/filters.
With the new build:
-EAC3 gets decoded by ffdshow
-TrueHD gets decoder by ffdshow, the video/audio is played back ar half speed
-DTS-HD still gets stripped to DTS-Core and sent over spdif
-AC3/DTS still get send over spdif
So i guess that means we need a new audio renderer??
albain
15th August 2009, 10:16
Yes as long as the audio renderer will refuse the new structures, the stream will be decoded by ffdshow (the new security I added to avoid no sound).
But I expect MS to give a valuable answer on this : they wouldn't have added this for nothing
clsid
15th August 2009, 11:06
Yes as long as the audio renderer will refuse the new structures, the stream will be decoded by ffdshow (the new security I added to avoid no sound).I assume that this also useful for the 'old' code in the current SVN trunk? If so, you could already commit that part.
tetsuo55
15th August 2009, 15:50
Nothing appears to be broken on the surface, everything works like it did before the patch.
I never tested TrueHD with a pre-patch build.
Thunderbolt8
16th August 2009, 21:24
is it possible that ffdshow looks quite a bit inferior compared to progs like powerdvd or arcsoft tmt when it comes to 1080i 29.97fps stuff (blu-ray content)? the picture has a more "noisy" look, which is not so much present with those 2 other programs. apart from that, it also feels a bit like that powerdvd & tmt present a little more smooth picture, though this could be hardware related.
nm
16th August 2009, 22:12
is it possible that ffdshow looks quite a bit inferior compared to progs like powerdvd or arcsoft tmt when it comes to 1080i 29.97fps stuff (blu-ray content)? the picture has a more "noisy" look, which is not so much present with those 2 other programs.
Most likely those programs are using hardware deinterlacing and denoising. What do you use in ffdshow?
Thunderbolt8
16th August 2009, 22:25
(codec is AVC btw.)
either ffmpeg or yadif deinterlacer. denoising could be possible, since in some scenes theres a tiny amount of sharpness lost, but thats not really as bad as that little noise is anoying. especially since it always 'shakes' a little from left to right like a minimal shaking of the camera although its not moving, just the noise shifts minimally 'back and forth' at the same place.
nm
17th August 2009, 00:11
Upload a sample clip to MediaFire so we can take a look at it. Have you tried using hardware deinterlacing with ffdshow?
leeperry
17th August 2009, 01:33
BTW, I see some coders are working on ffdshow audio...would that be possible that the "number of channels" autoload condition works w/ AC3Filter please? it works w/ madflac :o
I made a bug report here: http://sourceforge.net/tracker/index.php?func=detail&aid=2725991&group_id=173941&atid=867360
maybe AC3Filter is at fault?! I know it likes to give BSOD's w/ the C-Media drivers(Asus Xonar mainly)....so maybe all the problems related to this decoder are not everyone's else fault after all :confused:
ffdshow uses the same AC3/DTS routines as AC3Filter? I couldn't find what librairies this thing uses...and it seems that ffdshow decodes AC3 in 32float, but not DTS :o
STaRGaZeR
17th August 2009, 01:35
(codec is AVC btw.)
All H.264 decoders must have bit-exact output. If two decoded streams are different it implies postprocessing (different deinterlacers or other filters) or a faulty decoder.
Thunderbolt8
17th August 2009, 03:08
Upload a sample clip to MediaFire so we can take a look at it. Have you tried using hardware deinterlacing with ffdshow?
hm how can I do that, using hardware deinterlacing with ffdshow?
and how can I cut a sample and be sure it will still play with those commercial progs?
Thunderbolt8
17th August 2009, 04:58
Upload a sample clip to MediaFire so we can take a look at it.heres a sample: http://www.sendspace.com/file/u83a49
albain
17th August 2009, 09:39
I assume that this also useful for the 'old' code in the current SVN trunk? If so, you could already commit that part.
I am currently making a cleaner code and removing the non working part.
Then I will commit it
nm
17th August 2009, 10:43
hm how can I do that, using hardware deinterlacing with ffdshow?
Go to "Output (http://ffdshow-tryout.sourceforge.net/wiki/video:output)" page in ffdshow video decoder configuration,
Select "Set interlace flag in output media type" and Method: "Bob"
Select NV12 colorspace and unselect all other colorspaces.
Remove all filters (deinterlacers, resizing, ...) that you were using.
If hardware deinterlacing and denoising doesn't work after these settings, try different renderers.
heres a sample: http://www.sendspace.com/file/u83a49
Yes, the problem of jumping texture/noise patterns is in the video and the only way to reduce it during realtime playback seems to be heavy denoising that destroys fine details. Not all videos need such filtering, so I'd rather re-encode this problematic movie with some AviSynth filtering or set up a playback filtering chain separate from the one that I normally use.
Thunderbolt8
17th August 2009, 12:10
hardware deinterlacing works now that way, thanks. playback is quite a bit faster now and also had noise problem got somewhat better due to that. not as good as with powerdvd, but still better than all those software renderers.
only remaining problem seems to be that when I activate sharpening and the camera moves then the sharpened layer also seems to jump as well :S
btw. is it still possible to use (.ass) subs with hardware deinterlacing?
clsid
17th August 2009, 12:17
If you use the internal subtitle renderer of MPC then it should work.
Thunderbolt8
17th August 2009, 12:26
whats actually the purpose of directvobsub/vsfilter then if the internal filter already should work?
tetsuo55
17th August 2009, 12:49
whats actually the purpose of directvobsub/vsfilter then if the internal filter already should work?All filters are available for "other" directshow video players like windows media player.
Vsfilter is also interesting for mpc-hc use, some bugs that are in the internal splitter are not in vsfilter and vice versa (this has to do with the way the subs are drawn to the screen)
nm
17th August 2009, 13:33
only remaining problem seems to be that when I activate sharpening and the camera moves then the sharpened layer also seems to jump as well :S
What sharpening? If you sharpen with ffdshow before hardware deinterlacing, serious artifacting is certainly expected.
Thunderbolt8
17th August 2009, 16:19
I sharpen with ffdshow, yes (needed for downscaling in order not to have a too blury picture). but how 'before hardware deinterlacing', can I influence the order which of these comes first?
DarkZell666
17th August 2009, 16:58
I sharpen with ffdshow, yes (needed for downscaling in order not to have a too blury picture). but how 'before hardware deinterlacing', can I influence the order which of these comes first?
Hardware de-interlacing comes last no matter what, so ... you can't =) Either use a sharpener that supports interlaced input, or separate fields + sharpen + weave.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.