ffdshow vs LAV audio decoding questions (solved)
2 posters
Page 1 of 1
ffdshow vs LAV audio decoding questions (solved)
Okay, well, I have a problem here. I use headphones connected through my Denon receiver that uses HDMI to my PC. I noticed that LAV is now default. I need to use ffdshow processor, which is basically the decoder too?, and I am not getting what is going on with overall decoding here or what takes preference.
I used to use just ffdshow, hence libav, along with its processing. I use floating point output because the Denon has a floating point DSP at 32 bits in it, though, I have no idea if this even makes a difference. In fact, I am routinely confused as to what to use here for the output, though, I know that higher bits is usually better for processing.
Anyway, this would say input at normal FLAC cd quality with libav, and then output at PCM 32 bit float. Good enough. Easy for me to understand.
With ffdshow processing PLUS LAV I get the 16 bit integer on input and output from LAV itself, or 24 bit for high-res stuff, but it still seems like ffdshow is decoding something as well from its info. The info in ffdshow says uncompressed as input, and then outputs at whatever I put, which is normally 32 bit fp or integer. But then LAV does not say anything like this 32 bit output or input. LAV just says 16 bit input and output with integer value.
My question lol is what is going on here as I have no clue what is doing what anymore in this setup? Which comes before which and is ffdshow even decoding anything? The LAV clearly seems like it is taking the audio but then so does the ffdshow, which I marked as only the processor for use. But then again the processor seems directly connected to the decoder. So yeah, totally confusing for me. For now I switched back to ffdshow only for audio as it seems nice to have it all in one place with just the LAV splitter.
Also, if someone could answer the question about the Denon that would be sweet too. Does it matter what I sent the Denon if I process EQ in ffdshow? It does seem worthwhile to maybe send it 32 bit integer or floating point, but I have no idea if it matters in the end. It defaults to integer, but I just thought maybe since the Denon has a floating point DSP it could just more easily accept that. Thanks for any help I know that was a lot of info.
I used to use just ffdshow, hence libav, along with its processing. I use floating point output because the Denon has a floating point DSP at 32 bits in it, though, I have no idea if this even makes a difference. In fact, I am routinely confused as to what to use here for the output, though, I know that higher bits is usually better for processing.
Anyway, this would say input at normal FLAC cd quality with libav, and then output at PCM 32 bit float. Good enough. Easy for me to understand.
With ffdshow processing PLUS LAV I get the 16 bit integer on input and output from LAV itself, or 24 bit for high-res stuff, but it still seems like ffdshow is decoding something as well from its info. The info in ffdshow says uncompressed as input, and then outputs at whatever I put, which is normally 32 bit fp or integer. But then LAV does not say anything like this 32 bit output or input. LAV just says 16 bit input and output with integer value.
My question lol is what is going on here as I have no clue what is doing what anymore in this setup? Which comes before which and is ffdshow even decoding anything? The LAV clearly seems like it is taking the audio but then so does the ffdshow, which I marked as only the processor for use. But then again the processor seems directly connected to the decoder. So yeah, totally confusing for me. For now I switched back to ffdshow only for audio as it seems nice to have it all in one place with just the LAV splitter.
Also, if someone could answer the question about the Denon that would be sweet too. Does it matter what I sent the Denon if I process EQ in ffdshow? It does seem worthwhile to maybe send it 32 bit integer or floating point, but I have no idea if it matters in the end. It defaults to integer, but I just thought maybe since the Denon has a floating point DSP it could just more easily accept that. Thanks for any help I know that was a lot of info.
Last edited by Khronikos on Sun Sep 06, 2015 2:34 pm; edited 1 time in total
Khronikos- Posts : 7
Join date : 2015-03-30
Re: ffdshow vs LAV audio decoding questions (solved)
It does not really matter which output you use. Windows supports them all. Higher is better, but mostly just theoretically, as I will explain later. What your receiver uses internally is irrelevant.
ffdshow has two audio filters. One is both a decoder and a processor. The other is just the processor.
Most audio formats use just 16 bits per sample. A few (high quality) formats use 24 bits per sample. The human ear is not able to hear any differences beyond 16 bits. Using 32 bit float gives better accuracy and less rounding errors if you do additional processing. So theoretically it gives a tiny bit better quality, but you are most likely not able to hear it.
The input that LAV Audio decoder shows on its Status tab is the output it gets from the decoding library (which is libavcodec). The output value is what it sends to the next filter in the graph (for example ffdshow or the audio renderer). It is perfectly normal to see 16 or 24 bit here.
It is also normal that ffdshow shows "uncompressed" as input. That is what you get after decoding. Uncompressed if also called PCM. ffdshow isn't doing any decoding in this case. So everything is really as it should be.
32-bit float is disabled by default in ffdshow for historical reasons (buggy drivers in the past) so that is indeed the only thing you should change. All internal processing is done in 32-bit float. So by outputting 32-bit float as well, you avoid any rounding.
ffdshow has two audio filters. One is both a decoder and a processor. The other is just the processor.
Most audio formats use just 16 bits per sample. A few (high quality) formats use 24 bits per sample. The human ear is not able to hear any differences beyond 16 bits. Using 32 bit float gives better accuracy and less rounding errors if you do additional processing. So theoretically it gives a tiny bit better quality, but you are most likely not able to hear it.
The input that LAV Audio decoder shows on its Status tab is the output it gets from the decoding library (which is libavcodec). The output value is what it sends to the next filter in the graph (for example ffdshow or the audio renderer). It is perfectly normal to see 16 or 24 bit here.
It is also normal that ffdshow shows "uncompressed" as input. That is what you get after decoding. Uncompressed if also called PCM. ffdshow isn't doing any decoding in this case. So everything is really as it should be.
32-bit float is disabled by default in ffdshow for historical reasons (buggy drivers in the past) so that is indeed the only thing you should change. All internal processing is done in 32-bit float. So by outputting 32-bit float as well, you avoid any rounding.
Re: ffdshow vs LAV audio decoding questions (solved)
Doesn't your receiver have an equalizer? If so, you wouldn't need ffdshow at all.
Re: ffdshow vs LAV audio decoding questions (solved)
Hey thanks for the explanation. My Denon does not have a very good equalizer and it's a pain to use--they don't usually come with good ones anymore for two channel audio. ffdshow just works really well for me in that case.
Khronikos- Posts : 7
Join date : 2015-03-30
Page 1 of 1
Permissions in this forum:
You cannot reply to topics in this forum