View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
NikosD
25th April 2015, 08:13
OK...Maybe Stax76 has an older Nvidia driver.
What about EVR-CP ? Can that renderer handle P010/P016 ?
nevcairiel
25th April 2015, 08:53
Its still EVR. CP just means "Custom Presenter", which is the last part of EVR, ie. the part that actually displays things on the screen.
The limiting factor here is however the EVR allocator/frontend and/or the mixer, which none of the players claiming a "EVR-CP" ever touch.
So in short, no.
NikosD
25th April 2015, 09:17
Thanks for the thorough reply but look at the Stax76's reply:
Thanks for testing, problem was normal EVR, custom works (I use a self coded player using EVR), is this a LAV Filters or a EVR problem? I'm on Win 7 with GTX 960.
He says that EVR-CP works.
Also MPC-BE has enabled HEVC DXVA native using EVR-CP for 10bit HEVC clips.
stax76
25th April 2015, 09:29
Updating the driver did not help, I can play a 10-Bit video with normal EVR only when I disable P010, I'm not really understanding the nature of the problem but then it don't seem important so no problem.
nevcairiel
25th April 2015, 09:57
He says that EVR-CP works.
EVR-CP just blacklists P010, so it automatically falls back to NV12. Thats some kind of "working", I guess.
Also MPC-BE has enabled HEVC DXVA native using EVR-CP for 10bit HEVC clips.
That works by accident, not by design. They pretend to send NV12 and then actually send P010, which is something you can do with DXVA2-Native, however if you try that on vanilla EVR, MPC-HCs EVR-CP, or madVR, you either get crashes (EVR, EVR-CP), or entirely broken images (madVR)
LAV is capable of doing that, but I decided against an output mode that fails in 90% of the cases.
NikosD
25th April 2015, 10:12
Now it's clarified a lot for me.
Waiting for Intel's driver fix, then.
But using MPC-HC with EVR-CP and P010/P016 enabled, I still get black image.
MPC-BE crashes with EVR, but plays fine with EVR custom.
huhn
25th April 2015, 10:18
looks like they haven't blacklisted it.
nevcairiel
25th April 2015, 10:41
I think MPC-HC only blacklisted P010 while Intel bugs out on P016, or something.
NikosD
25th April 2015, 10:44
Is it technically difficult or impossible to blacklist P010/P016 using plain EVR, just like EVR custom ?
Because both MPC-HC, MPC-BE crash with plain EVR.
huhn
25th April 2015, 10:53
Is it technically difficult or impossible to blacklist P010/P016 using plain EVR, just like EVR custom ?
Because both MPC-HC, MPC-BE crash with plain EVR.
should be possible to block p010 and p016 when EVR is selected don't see a reason why this shouldn't be possible.
we are not talking about native DXVA right?
NikosD
25th April 2015, 10:58
Right, I was talking in general.
For example 10 bit H.264 decoding doesn't have a HW decoder but suffers from the same problem.
kasper93
25th April 2015, 12:06
It will be fixed in next nightly. The patch is ready, just hasn't been committed yet.
NikosD
25th April 2015, 12:10
Of course, IMO the one that has created the issue (Nvidia, Intel) should fix the bug in their drivers.
But till then, hopefully soon, a workaround is an intermediate solution.
Neeto
25th April 2015, 12:39
How to change Output Speaker Configuration form 5.1 to 2.0 with a key press?
I'm trying to have a button on my remote to toggle between two sound cards, one for 5.1 playback to the power amp and another sound card (built in on the motherboard) to playback to my headphones.
I've got a script that will move from one sound card to another using nircmd.exe, but I need to down mix everything to 2.0 for the headphones - unfortunately the drivers for the in built sound card won't do it.
I can use ffdshow to do it using registry loading, but this seems to be introducing too much delay in processing.
I like to do it in lav audio, but can't find a documented way to change the mixer tab settings i.e. Output Speaker Configuration using profiles or registry settings.
Any clues?
huhn
25th April 2015, 12:43
Of course, IMO the one that has created the issue (Nvidia, Intel) should fix the bug in their drivers.
But till then, hopefully soon, a workaround is an intermediate solution.
maybe EVR for MF can do this so this is maybe not even a clear bug.
dude2012
25th April 2015, 15:42
How to change Output Speaker Configuration form 5.1 to 2.0 with a key press?
I'm trying to have a button on my remote to toggle between two sound cards, one for 5.1 playback to the power amp and another sound card (built in on the motherboard) to playback to my headphones.
I've got a script that will move from one sound card to another using nircmd.exe, but I need to down mix everything to 2.0 for the headphones - unfortunately the drivers for the in built sound card won't do it.
Not sure if this is what you mean but I use this in my system http://theitbros.com/hotkey-to-switch-audio-devices/
ashlar42
26th April 2015, 01:22
To get full support for stuff like segmented linking or ordered chapters in MKVs, does one still need AV Splitter or latest LAV filters take care of that stuff too?
vivan
26th April 2015, 01:32
LAV supports them since 0.56.0 - which was released 2 years ago.
sneaker_ger
26th April 2015, 11:21
Lavfilters seem to be the de facto splitter e.g. mpc hc, mpdn, mpc be etc. Now why is it that WMV seeking is not fixed? Is it too complex of an issue to fix? I am just wondering because all other apps out there do it well e.g. vlc, mpc built in splitters, mpc be splitters, default wmv. So what exactly is the coding issue that the team is facing?
Don't get me wrong, the only reason I raise this is because lavfilters is awesome for everything else (just not WMV).
Any insights anyone?
It could also help to provide sample files which don't seek properly (but do seek in other applications).
Here is such a sample:
http://217.160.126.132/lav_wmv_slow_seek.wmv
https://mega.co.nz/#!NwUjES4A!KIUvBy8IUSp9J3Usrvk_7evUxsXLdPgExt6g9vvcdlk (mirror)
Playback halts for a few seconds using LAV splitter. Seeking and playback is instant using Microsoft splitter or VLC.
theoneofgod
26th April 2015, 13:08
Here is such a sample:
http://217.160.126.132/lav_wmv_slow_seek.wmv
https://mega.co.nz/#!NwUjES4A!KIUvBy8IUSp9J3Usrvk_7evUxsXLdPgExt6g9vvcdlk (mirror)
Playback halts for a few seconds using LAV splitter. Seeking and playback is instant using Microsoft splitter or VLC.
+1
I see the pause too. MPC-HC is set by default to not use LAV Filters for WMV files also so I had to check that to see the problem.
tahaa7
26th April 2015, 23:01
I was just wondering, where is LAV Filters network stream cache/buffer located?
nevcairiel
27th April 2015, 07:37
I was just wondering, where is LAV Filters network stream cache/buffer located?
It does not cache on disc, only in memory.
vuquanghai
27th April 2015, 09:02
Can i install lav filters on Linux OS, eg. Ubuntu?
LigH
27th April 2015, 09:11
They are DirectShow filters for Windows. I don't know if they would work in Wine(X), but they don't seem to be available for typical Linux media frameworks.
There are cross-platform applications based on the same libraries, like ffplay in the ffmpeg package, or mplayer.
andyvt
27th April 2015, 09:15
Can i install lav filters on Linux OS, eg. Ubuntu?
LAV Filters only work on Windows OSs with the DirectShow framework enabled.
tahaa7
27th April 2015, 12:13
It does not cache on disc, only in memory.
Oh ok, thanks. Is there a way to change the allowed cache size/duration?
meetajhu
27th April 2015, 23:15
Why does center-channel only mono audio upmix to stereo on 5.1 systems(Mixing is disabled and my soundcard upmix is also disabled)? Pin status shows Channel : 1/0x4.
meetajhu
27th April 2015, 23:20
Does the DTS HD decoder work on x64? How did they manage to write a DTS HD decoder? Or is it the Arcsoft one?
captainadamo
28th April 2015, 01:48
Does the DTS HD decoder work on x64?
Yes.
How did they manage to write a DTS HD decoder?
They read the specs (http://www.etsi.org/deliver/etsi_ts/102100_102199/102114/01.04.01_60/ts_102114v010401p.pdf)?
Or is it the Arcsoft one?
No, it's not.
meetajhu
28th April 2015, 19:54
Yes.
They read the specs (http://www.etsi.org/deliver/etsi_ts/102100_102199/102114/01.04.01_60/ts_102114v010401p.pdf)?
No, it's not.
Thanks
GodRealm
29th April 2015, 14:07
It would be nice if the LAV Audio there was a volume setting as well as in ffdshow audio decoder.
Gleb Egorych
29th April 2015, 18:36
Hi, nevcairiel!
Nice addition of dcadec! Since it does bit exact decoding of DTS-HD I suppose it decodes lossy DTS bit exactly to ArcSoft decoder. Am I right?
nevcairiel
29th April 2015, 20:28
The bitexact fixed-point mode is only used for DTS-HD MA streams. Decoding the lossy core uses a floating point mode, which gives slightly higher quality. I don't expect it to be perfectly bitexact in lossy mode to ArcSoft, but it doesn't have to be!
Gleb Egorych
29th April 2015, 20:49
nevcairiel, that's strange because I removed dtsdecoderdll.dll from LAV directory and tried my files with lossy DTS streams. LAV Audio status said the codec was "dts" and the format was "24bit Integer".
sneaker_ger
29th April 2015, 20:51
Then you either have float unticked from the LAV audio formats or your audio renderer doesn't accept it.
Gleb Egorych
29th April 2015, 21:00
sneaker_ger, it's not about renderer, output is float, input is integer. For AC3 input is float, for DTS input is 24bit integer with or without dtsdecoderdll.dll.
nevcairiel
29th April 2015, 21:01
The decoder always outputs 24-bit int for lossy core, thats totally unrelated to the internal processing.
Gleb Egorych
29th April 2015, 21:25
OK, thanks, that's clear now.
foxyshadis
30th April 2015, 07:09
How to change Output Speaker Configuration form 5.1 to 2.0 with a key press?
I'm trying to have a button on my remote to toggle between two sound cards, one for 5.1 playback to the power amp and another sound card (built in on the motherboard) to playback to my headphones.
I've got a script that will move from one sound card to another using nircmd.exe, but I need to down mix everything to 2.0 for the headphones - unfortunately the drivers for the in built sound card won't do it.
I can use ffdshow to do it using registry loading, but this seems to be introducing too much delay in processing.
I like to do it in lav audio, but can't find a documented way to change the mixer tab settings i.e. Output Speaker Configuration using profiles or registry settings.
Any clues?
SetStereo.bat:
@echo off
REM Set your paths.
set nir=C:\sys\nirsoft\nircmd.exe
set lav=C:\av\tools\LAV Filters\x86\LAVAudio.ax
if not "%1"=="" (set StereoMode=%1) else (set StereoMode=1)
"%nir%" exec hide C:\windows\system32\rundll32.exe "%lav%",OpenConfiguration
for /f "usebackq tokens=1 skip=1" %%i in (`wmic process where ^(Name like "%%rundll32%%" and CommandLine like "%%LAVAudio%%"^) get ProcessID ^| findstr /v /r "^$"`) do set process=%%i
REM In the below line, change 1 to 3 for "5.1".
"%nir%" win child process /%process% postmsg id 0x454 0x14E %StereoMode% 0
"%nir%" win child process /%process% postmsg id 1 0xF5 0 0
Call as: SetStereo 1 for Stereo, SetStereo 3 for 5.1, and so on for the rest of the list, counting from Mono=0. Defaults to Stereo. Should take effect ASAP.
The last two lines directly control the value and OK out, instead of the usual lame way of sending keys to the application. Reg editing will take the value for next time, but won't take effect immediately. Sorry about the messy wmic line, it's literally the only way I could get the process ID of a command with a comma in it in cmd.
NikosD
6th May 2015, 09:47
I've just realized that LAV x64 0.65 QS decoder uses SW fallback for VC-1/ WMV3 (!)
For the other formats (H.264, MPEG2) LAV x64 QS decoder works OK.
Also LAV x86 0.65 QS decoder works OK for all formats (H.264, MPEG2, VC-1/WMV3).
nevcairiel
6th May 2015, 09:50
The QuickSync decoder is a third party component, not controlled by LAV.
Personally, I don't recommend using it at all, and have been thinking about removing it in the future, in favor of the DXVA2 decoders. The QS decoders has a few annoying bugs, and I don't want to try to fix yet another decoder which offers no tangible advantages.
Any features it currently has (like using D3D11 to use a iGPU without a screen connected) could be implemented in the DXVA2 decoders instead.
NikosD
6th May 2015, 09:56
OK I'll post my finding to Eric's thread.
It's still useful for VC-1/WMV3 decoding for Sandybridge (no DXVA decoder for Sandy)
Also, it's useful for transcoding apps like StaxRip and others which can use only Copy-Back or QS and no native mode.
QS is usually faster than Copy-Back.
Moreover, there are clips (a few) which are compatible with QS but not DXVA which falls back to SW to decode them (mainly VC-1/WMV3)
And finally QS decode supports HW deinterlacing.
For all these reasons, I think you should keep it in LAV.
nevcairiel
6th May 2015, 10:03
Absolute speed in benchmarking is not really a big important factor to me, since no real-world use-case would ever use that.
You will always do something with the video you decode, be it display it to the user, or encode it into another format - in which case that process will be slowing down everything so much that even the decoder running at half speed will still produce frames fast enough.
And since DXVA2 Direct Mode, the difference is minimal, DXVA2 is even faster in some cases now.
I already said that missing features could be implemented, as well.
In the end, its just me that decides, so I'll do what I think is best.
QS has a bunch of bugs, some from the driver, some from Erics code, and unfortunately "normal" people think they need to use it on Intel, so they run into those bugs and have no idea what to do, so they come and report them, and I have to tell them to simply not use it, again and again.
NikosD
6th May 2015, 10:12
About your last paragraph, I agree with you, a lot of people think that way.
But about transcoding speed, your thought is wrong.
Most of the times, a slow decoder leads to a slow transcoding process although the encoding speed is more important than decoding speed.
A half speed decoder will probably lead to an almost half transcoding speed.
Even minor decoding performance differences, like those between Copy-Back and QS, give different transcoding results.
QS is most of the times faster than copy-back and gives faster transcoding speed in real life, I'm not talking about benchmarks.
Magik Mark
6th May 2015, 13:56
Which will give us a smoother video:
1, Lav Cuvid Deinterlacing on and Nvidia Deinterlacing off
2. Lav Cuvid Deinterlacing on and Nvidia Deinterlacing on
3. Lav Cuvid Deinterlacing off and Nvidia Deinterlacing on
4. DXVA2 and Nvidia Deinterlacing on
5. DXVA2 Yadiff on and Nvidia Deinterlacing on
6. DXVA2 Yadiff on and Nvidia Deinterlacing off
How come Nvidia doesn't have the option for 24/25 & 50/60 frame interpolation?
Which will give us a smoother video:
1, Lav Cuvid Deinterlacing on and Nvidia Deinterlacing off
2. Lav Cuvid Deinterlacing on and Nvidia Deinterlacing on
3. Lav Cuvid Deinterlacing off and Nvidia Deinterlacing on
4. DXVA2 and Nvidia Deinterlacing on
5. DXVA2 Yadiff on and Nvidia Deinterlacing on
6. DXVA2 Yadiff on and Nvidia Deinterlacing off
How come Nvidia doesn't have the option for 24/25 & 50/60 frame interpolation?
lav CUVID uses the same deinterlacer as DXVA they are the same.
the DXVA version always uses 50/60 and this is not an interpolation it is simply needed for interlaced material.
i think nvidia deinterlacer is better than yadif but feel free to test it your self.
About your last paragraph, I agree with you, a lot of people think that way.
But about transcoding speed, your thought is wrong.
Most of the times, a slow decoder leads to a slow transcoding process although the encoding speed is more important than decoding speed.
A half speed decoder will probably lead to an almost half transcoding speed.
Even minor decoding performance differences, like those between Copy-Back and QS, give different transcoding results.
QS is most of the times faster than copy-back and gives faster transcoding speed in real life, I'm not talking about benchmarks.
most people care about quality and don't use an hardware encoder so no this is not the case. xvid, x264, x265 are the most used encoder by far.
NikosD
6th May 2015, 14:42
most people care about quality and don't use an hardware encoder so no this is not the case. xvid, x264, x265 are the most used encoder by far.
Your answer is completely irrelevant with the subject we were talking about - which was HW decoding and not HW encoding.
I think is the 4th or 5th time that you answer at my posts, posting irrelevant replies.
Please PAY ATTENTION to what I write exactly, before you answer to me.
Thanks!
Your answer is completely irrelevant with the subject we were talking about - which was HW decoding and not HW encoding.
I think is the 4th or 5th time that you answer at my posts, posting irrelevant replies.
Please PAY ATTENTION to what I write exactly, before you answer to me.
Thanks!
only hardware encoder reach a speed where decoding speed shows a real difference. for a high quality x264 encode it is meaningless.
If you want to benchmark decoders, compare their scripts (without any filters, only pure *Source filter) with AVSmeter. Then compare their decoding frame rates with the encoder frame rate... :o
By the way, depending on the decoder chip generation, hardware decoders can be slower than multi-threaded CPU software decoders (e.g. Nvidia PureVideo V2 and V3 are quite annoyingly frame rate limited).
P.S.: This is a thread about the DirectShow versions of LAV Filters. Who would use DirectShowSource in a conversion, as long as there are native AviSynth source filters? Apparently I am just as wrong here; sorry. :o
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.