View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
PhantomF
11th February 2018, 18:16
The DXVA video decoder has no control over the GPU clocks, the hardware driver is responsible for that. Here's how you can confirm: with MPC-HC, go to Options => Internal Filters => Transform Filters, and uncheck H264/AVC. Then go to External Filters => Add Filter => Microsoft DTV-DVD Video Decoder, and click Prefer. Open a file with H264 video, make sure the Microsoft decoder is used (right click => Filters) and check your clocks again. If the same thing happens, then it's an AMD driver bug.
You're correct it does it using the Microsoft DTV-DVD Video Decoder as well. Wonder if this affects all AMD video cards or just a bug with mine. Like I said I have tried different drivers. Thanks!
Megalith
11th February 2018, 19:37
It does nothing of that sort. It only reduces the mixing coefficients to avoid any potential of clipping - ie. it reduces the overall volume, the dynamic range remains untouched.
I understand. It was the tool-tip description that was confusing me: it says that the feature ensures a consistent volume level and that the volume level in one file will not change, so I assumed that the dynamics were affected in some way.
takenori
12th February 2018, 01:33
thanks for the input.
so i try a few things and apparently, i still use x86 mpc-hc.
after switching to x64, all 4k and 4khdr works with dxd11cb.
pson80
12th February 2018, 15:53
Sorry for being a total noob about this and sorry again if I'm posting my question at the wrong place.
But all of a sudden and without any changes on my part mp4-files have issues with the sound. When opening the file in MPC-HC all I get is this warning that says I don't have the right codec installed. The files have worked before but could it be some stupid update to Win10 that has changed things?
I have Win10 build 16299 and when the problem was noticed I ran MPC-HC x64 1.7.13 with LAV 0.70.2.88 and tried with a clean install without change and then tried MPC-HC 1.7.14 with no change.
The text in the warning window is this if it's to any help.
LAV Splitter Source (internal)::Audio
LAV Audio Decoder (internal)::Output
Audio Switcher::Out
Media Type 0:
--------------------------
Audio: IEEE Float 44100Hz stereo 2822kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Audio {73647561-0000-0010-8000-00AA00389B71}
subtype: MEDIASUBTYPE_IEEE_FLOAT {00000003-0000-0010-8000-00AA00389B71}
formattype: FORMAT_WaveFormatEx {05589F81-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 8
cbFormat: 18
WAVEFORMATEX:
wFormatTag: 0x0003
nChannels: 2
nSamplesPerSec: 44100
nAvgBytesPerSec: 352800
nBlockAlign: 8
wBitsPerSample: 32
cbSize: 0 (extra bytes)
pbFormat:
0000: 03 00 02 00 44 ac 00 00 20 62 05 00 08 00 20 00 ....D¬.. b.... .
0010: 00 00 ..
Media Type 1:
--------------------------
Audio: PCM 44100Hz stereo 1411kbps
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: 4
cbFormat: 18
WAVEFORMATEX:
wFormatTag: 0x0001
nChannels: 2
nSamplesPerSec: 44100
nAvgBytesPerSec: 176400
nBlockAlign: 4
wBitsPerSample: 16
cbSize: 0 (extra bytes)
pbFormat:
0000: 01 00 02 00 44 ac 00 00 10 b1 02 00 04 00 10 00 ....D¬...±......
0010: 00 00 ..
And this is what MediaInfo says about the file
Audio
ID : 2
Format : AAC
Format/Info : Advanced Audio Codec
Format profile : LC
Codec ID : mp4a-40-2
Duration : 4 min 52 s
Bit rate mode : Constant
Bit rate : 126 kb/s
Channel(s) : 2 channels
Channel positions : Front: L R
Sampling rate : 44.1 kHz
Frame rate : 43.066 FPS (1024 SPF)
Compression mode : Lossy
Stream size : 4.38 MiB (9%)
Default : Yes
Alternate group : 1
clsid
12th February 2018, 16:09
You need to re-install your sound driver.
pson80
12th February 2018, 16:52
Guess I could have tried that but didn't think that was the problem since sound worked in general, it was just MPC-HC.
What gave it away that this was what was needed? Cause it worked so thanks for that :)
clsid
12th February 2018, 17:36
Based on the error message and lots of experience. Decoding was working ok, it was connection to audio renderer that failed.
Ironclad
12th February 2018, 18:31
Is there any interest in adding plugin support for external video manipulation such as Vapoursynth? All development of ffdshow has basically discontinued in favor of LAV, but this is one feature that I haven't been able to find a new solution for.
NikosD
14th February 2018, 09:51
I'm using latest DXVA Checker v4.0.0 with Windows 7 x64 SP1 with all updates installed.
My CPU/GPU is a SandyBridge Core i3-2100 - latest driver v4229- and using the MF64 Microsoft's H264 MFT decoder, the app allows me to benchmark the "Decoding Performance" using D3D11.
Playback mode for MS MFT D3D11 is disabled and all the other decoders like MS DS/LAV/Intel MFT can't be used with D3D11 even in "Decode Performance" mode.
So, only Ms MFT decoder can leverage D3D11 and only in "Decode" mode but:
How is that possible using Windows 7 ?
nevcairiel
14th February 2018, 09:55
It probably uses DXGI_FORMAT_420_OPAQUE, which is the only supported D3D11 decoder output format on Windows 7, but you can't really do much with it. You can decode it, and display it somehow (although I dont think EVR itself even supports that), but you cannot access the data "untouched", as such it really doesn't work well for what LAV wants to do with it.
The problem on Windows 7 is not that the decoder doesn't work, because it technically does - the problem is that NV12/P010 are not supported in D3D11. You need Windows 8 for that. But without NV12/P010, the decoder is mostly useless for most use-cases.
nevcairiel
15th February 2018, 16:39
LAV Filters 0.71
General
- LAV Filters now requires Windows Vista or newer, Windows XP is no longer supported
LAV Splitter
- NEW: Preliminary support for UHD Blu-ray parsing
LAV Video
- NEW: D3D11 hardware accelerated decoding (native mode with madVR, Copy-Back otherwise)
- Fixed: HDR metadata was not properly communicated to madVR in DXVA2-Native mode
- Fixed: Anamorphic WMV9/VC-1 videos were not being played back with the correct aspect ratio in all cases
- Fixed: Changing certain settings while playback was paused could result in a deadlock
- Fixed: Playing severly corrupted HEVC streams with hardware decoding could result in playback failing entirely, instead of skipping over the corruption
LAV Audio
- NEW: Basic support for AAC 960 streams (common in DVB radio streams)
Download: Installer (both x86/x64) (https://files.1f0.de/lavf/LAVFilters-0.71.exe) -- Zips: 32-bit (https://files.1f0.de/lavf/LAVFilters-0.71.zip) & 64-bit (https://files.1f0.de/lavf/LAVFilters-0.71-x64.zip)
Its been long overdue to release this, so I can start working on some new things without breaking the release!
D3D11 Decoding
The main motivation behind offering D3D11 decoding is the ability to be able to process the resulting image on the GPU without any loss - something that was not always possible on DXVA2.
To be able to actually leverage this, you'll need a renderer which also supports D3D11 input from a decoder - currently this is only madVR. This allows full performance on-GPU decoding and processing without any quality loss.
D3D11 also offers a Copy-Back mode, however it should probably be quite similar in performance then DXVA2.
Note that the way you select Native/Copy-Back for D3D11 is different than DXVA2. D3D11 will use Native-mode when its set to "Automatic" device choice, and the renderer supports Native mode. If you select a specific device, that forces Copy-Back mode (because for Native to work, the renderer basically selects the device).
There are still a few limitations on using D3D11-Native with madVR, most notably deinterlacing is not supported yet. This is a feature madVR will have to implement in the future.
Schwartz
15th February 2018, 16:52
Thanks for the update!
Native D3D11 caused a 'driver stopped responding' error for me. Using a R9 270X and the 18.2.2 drivers released 2 days ago. I assume this is a driver issue? I also didn't change any settings in madVR or disable deinterlacing.
D3D11 CB mode works fine and the load looks similar to DXVA2.
manolito
15th February 2018, 18:54
LAV Filters now requires Windows Vista or newer, Windows XP is no longer supported
Can somebody please tell me which is the latest 0.70.2 nightly version which still supports Win XP?
Cheers
manolito
LigH
15th February 2018, 19:09
Just as "anchor":
Officially, the last stable release supporting XP was v0.70.2 (https://forum.doom9.org/showthread.php?p=1811365#post1811365)...
There was a link to Aleksoid1978's diff to 0.70.2.1 (https://forum.doom9.org/showthread.php?p=1812127#post1812127) with experimental CUVID H.265 10-bit decoding.
And clsid published MPC-HC 1.7.13.1 incl. a patched LAV Filters 0.70.2.3 (https://forum.doom9.org/showthread.php?p=1812899#post1812899).
From there, the thread kept derailing over and over.
lvqcl
15th February 2018, 19:15
I just searched for "WinXP" in this thread and the result is:
For people who still like WinXP - last working version of subj is LAVFilters-0.70.2-16 [...]
Next installer LAVFilters-0.70.2-29.exe says "This program does not support the version of Windows your computer is running."
LigH
15th February 2018, 19:17
Well, knowing the perfect search term matters... :o
manolito
15th February 2018, 21:01
Thanks guys... :thanks:
lvqcl
15th February 2018, 21:19
on the other hand...
I have a problem since version: LAVFilters-0.70.2-10
DTS Bitstreaming results in very choppy playback, MadVR says suddenly clock derivation 30 - 50% and it's visibility dropping frames every second. Installing LAVFilters-0.70.2-8 or previous everything works fine
...0.70.2-16 can have some problems.
jaju123
16th February 2018, 10:10
Hi all,
So if I'm using LAV filters with MadVR, would it make more sense to use D3D11 or CUVID mode? I'm struggling to figure out the differences or find any documentation.
Thanks!
ryrynz
16th February 2018, 12:17
Short answer D3D11, CUVID is basically dead.
PCU
16th February 2018, 19:44
why when i select d3d11 decoder, hardware deinterlacing is inactive? is deinterlacing is auto in d3d11 mode?
el Filou
16th February 2018, 19:48
madVR doesn't support D3D11 deinterlacing yet, it's in the release notes.
PCU
16th February 2018, 19:51
i forgot to say: i'm using evr-cp (mpc-hc).
nevcairiel
16th February 2018, 20:03
With any other renderer you would get the same deinterlacing as you would with any other decoder. Its not performed by LAV.
strumf666
16th February 2018, 21:09
Thanks for the update!
Native D3D11 caused a 'driver stopped responding' error for me. Using a R9 270X and the 18.2.2 drivers released 2 days ago. I assume this is a driver issue? I also didn't change any settings in madVR or disable deinterlacing.
D3D11 CB mode works fine and the load looks similar to DXVA2.
Same with vega64, probably broken amd drivers.
Sebastiii
17th February 2018, 13:51
Thanks :)
Zulithe
17th February 2018, 14:54
D3D11 broken in latest nightly? (LAVFilters-0.71.0-5.exe)
*edit* if you select a specific device it works, automatic shows no video for me
sneaker_ger
17th February 2018, 15:01
And native D3D11 works if you go back to 0.71.0 (stable)?
Note that the way you select Native/Copy-Back for D3D11 is different than DXVA2. D3D11 will use Native-mode when its set to "Automatic" device choice, and the renderer supports Native mode. If you select a specific device, that forces Copy-Back mode (because for Native to work, the renderer basically selects the device).
nevcairiel
17th February 2018, 16:14
I would expect more things to be broken in the current nightly. Unless you have a reason to, one really shouldn't use in-development versions on a daily basis. :)
DragonQ
17th February 2018, 18:28
Two questions:
1) Is there a reason 0.71 isn't listed in the first post of this thread?
2) Does D3D11 mode support deinterlacing yet?
Thanks.
sneaker_ger
17th February 2018, 18:35
2) Not with native.
There are still a few limitations on using D3D11-Native with madVR, most notably deinterlacing is not supported yet. This is a feature madVR will have to implement in the future.
amayra
17th February 2018, 18:45
D3S11 give me incorrect colors in native mode only in my IGPU but copypack mod work fine
el Filou
18th February 2018, 12:47
Does that happen with DXVA2 Native too? If yes then it could be some video image 'enhancements' of the graphics driver haven't been turned off.
amayra
18th February 2018, 20:51
only in D3D11 i try to reset graphics driver with "Display Driver Uninstaller " but didnt help
Ironclad
19th February 2018, 03:18
Hi nevcairiel!
1. D3D11 doesn't work with the nVidia Optimus on Intel GPU if in the control panel nVidia selected GPU nVidia.
http://i99.fastpic.ru/big/2018/0117/f4/a1bdb331af6c6d7538b483fb41dc2bf4.jpg
DXVA Checker shows that d3d11 enable on Intel GPU if in the control panel nvidia selected GPU nVidia.
http://i99.fastpic.ru/big/2018/0117/1e/bf52f2ca8fc9e36416f5de8582c9261e.jpg
2. nVidia CUVID doesn't work with the nVidia Optimus if in the control panel nvidia selected any GPU.
3. After install LAV 0.70.2.88 mvc (software mode) doesn't work with the nVidia Optimus if in the control panel nvidia selected any GPU.
Windows 10 1709, Intel i5-4200M, Intel(R) HD Graphics 4600 (20.19.15.4835), NVIDIA GeForce 840M (23.21.13.9065)
I know a couple workarounds for Optimus to get some programs running on your preferred GPU, but Optimus is a nightmare so I can't guarantee it working well. You can use Inspector to force render device for applications but that's glitchy and resets whenever drivers update. Easier solution is to create a copy of your video player .exe and assign your preferred render device in your graphics control panel. That's the Nvidia Control Panel under Manage 3D Settings and Program settings. On my own Optimus laptop I can assign my video player to use my preferred GPU (GTX 860m) this way and when I select HW acceleration the iGPU is not listed and QuickSync is unavailable, the 860m is listed as connected for DXVA2 (copy-back) and CUVID is supported even though this laptop connects the display directly through the iGPU.
http://codecs.forumotion.net/t1692-how-to-play-using-nvidia
http://www.guru3d.com/files-details/nvidia-inspector-download.html
Also, D3D11 is currently supported on Windows 8 or newer. Are there any big limitations preventing Windows 7 from being supported? Madvr supports Windows 7 for D3D11.
huhn
19th February 2018, 06:22
the d3d11 version of windows 7 doesn't support the needed surface to make this work.
directx 11 is at version 11.3 and most new feature are not backported to windows 7 or even 8.
ajp_anton
19th February 2018, 15:11
About LAV Splitter's subtitle selection... Is it possible to remove unnecessary subtitle languages, and to re-order the ones left? Or to just remove everything except the chosen language? Just asking because Jriver doesn't care what subtitle LAV chooses, and their support won't answer my question, so I'm looking for a workaround.
steakhutzeee
19th February 2018, 17:50
I use lav audio video and splitter. Is possible to use lav splitter reproducing a DVD disc?
Why instead is running DVD Navigator?
And, also, why that Audio Switcher is loaded? I should use lav audio or splitter instead.
All my internal filters are disabled. https://uploads.tapatalk-cdn.com/20180219/20c81792303a370891c3563d37df4a23.jpg
clsid
19th February 2018, 18:00
DVD Navigator is required for parsing the DVD content and handling menus. It is not possible to change that.
Audio Switcher can be disabled in MPC-HC settings. It is not a decoding filter and does not interfere with LAV Audio. It is a processing filter that offers some optional extra functionality, such as volume normalization.
steakhutzeee
19th February 2018, 18:27
DVD Navigator is required for parsing the DVD content and handling menus. It is not possible to change that.
Audio Switcher can be disabled in MPC-HC settings. It is not a decoding filter and does not interfere with LAV Audio. It is a processing filter that offers some optional extra functionality, such as volume normalization.Thanks [emoji5]
So lav splitter is not loaded because dvd use dvd navigator?
I use mpc be, where I can disable audio switcher? All my internal filters are disabled [emoji848]
LigH
19th February 2018, 19:12
If you talk about a "DVD Video media", you always have to know the whole structure of the \VIDEO_TS directory content, most of all, the logical structure defined by the content of all IFO files. This goes beyond the purpose of LAV Splitter. Be glad the MS DVD Navigator does it.
el Filou
20th February 2018, 00:59
@nevcairiel Could you tell me what you think about this behaviour with DVD: https://forum.doom9.org/showthread.php?p=1834170#post1834170 ?
To summarize: LAV Video apparently does not change the interlace output flag to progressive when it changes during playback.
If I start playing a (PAL) DVD that has interlaced flag at the beginning of the feature (e.g. a studio logo clip) it doesn't switch to progressive afterwards, but if I stop playback and use the resume function of MediaPortal to play from where I left, LAV then correctly flags the output as progressive.
I split the start of the 1st VOB of Zodiac in two files of 20 MB to illustrate: https://drive.google.com/open?id=1dJ5Cw3-Bev7UAEt85WoybMefNuisQ0NU
001_(interlaced-then-progressive).VOB : MediaInfo says interlaced, playback starts as interlaced but it should switch to progressive after the Warner Home Video clip but it doesn't
002_(progressive).VOB : this is the next segment, MediaInfo says progressive and LAV correctly plays as progressive because the stream is progressive from the start
huhn says LAV is using Microsoft's decoder for DVD, does that have an impact here? Is it LAV that detects the frame flags, or the MS decoder?
I know DVD is old and it's a niche issue, but thanks anyway if you can have a quick look some time. :o
LigH
20th February 2018, 01:10
huhn says LAV is using Microsoft's decoder for DVD, does that have an impact here? Is it LAV that detects the frame flags, or the MS decoder?
Not decoder, but source filter. The MS DVD Navigator is responsible for understanding the logical DVD structure by reading the set of IFO files in a DVD Video media structure. It is responsible for following the logical "red thread" through the DVD navigation, from the Video Manager domain through the VTS Menus and Video Titlesets.
Decoding MPEG-2 video and AC3 or MPEG-2 or LPCM audio can be forwarded to LAV Filters' video and audio decoders. But signalling the decoder that the attributes of the video may change when switching between domains or title sets is indeed an interesting part of playing DVD Video content properly... :rolleyes:
el Filou
20th February 2018, 01:25
But interlace/progressive flags are in the MPEG2 video stream itself, not in the title set files, right?
Because if I play VOB files directly, LAV switches the interlaced/progressive output type depending on the type of frame detected at the start, as reported by MediaInfo too. It only fails to do that when the frame flags change during playback.
nevcairiel
20th February 2018, 13:39
To summarize: LAV Video apparently does not change the interlace output flag to progressive when it changes during playback.
The important thing to know is that the global setting in the type is only of secondary importance, every single frame is accurately marked as interlaced or progressive when it leaves LAV.
Now, most streams do not contain a flag if they are all progressive or all interlaced. MPEG-2 actually has a flag called "progressive_sequence" which would indicate an all-progressive stream, but its rarely set on DVDs because it can often switch between interlaced and progressive. Without such flags, its impossible to know if a stream would keep switching between progressive or interlaced all the time, and changing the output type can disrupt fluid play. So as a consequence, LAV will only switch to a full progressive type when "progressive_sequence" is set, not everytime a single progressive frame is observed.
If we look at DirectShow, the flags for interlaced that LAV uses actually don't necessarily mean "the stream is always interlaced":
https://msdn.microsoft.com/en-us/library/windows/desktop/dd407326(v=vs.85).aspx (See Remarks at the bottom)
There is a specific combination of flags thats officially documented as follows:
"The video stream varies between progressive and interlaced content. Each media sample contains either a progressive frame or two video fields. Flags on the media sample indicate the correct way to display the contents."
And thats what LAV does if it cannot be sure a stream is full progressive, which it just cannot be sure of on a DVD.
mkver
20th February 2018, 19:15
I have some DVDs that are actually progressive, but use interlaced encoding. With default settings they would be deinterlaced by the renderer so I tried to remux them to Matroska and set them to progressive via Matroska's header elements in order to override the information at the stream level. ffmpeg shows that it is progressive in its list of streams, but LAVFilters still flags the samples as interlaced. The description "Auto: Frame flags are used to determine content type" says that this is intentional. Is it? Is there really no way to let LAV flag such content as progressive other than flagging everything as progressive?
el Filou
20th February 2018, 22:35
Thanks for the answer and detailed explanation nevcairiel, appreciate it!
Wackyphill
21st February 2018, 04:08
When using LAV to decode H265 video and have NVIDIA CUVID set as the hardware decoder it use the nVidia PureVideo H265 decoding capabilities of a GTX1080Ti to do decoding or just use generic hardware acceleration on the video card?
huhn
21st February 2018, 04:14
CUVID is just another way to access the hardware decoders so yes they should be all the same and avoid CUVID if possibile.
jaytrinitron
21st February 2018, 05:11
Does the new ability of LAV splitter 0.71 to parse UHD Blu-Ray mean that I can play a UHD Blu Ray in my disk drive in MPC-HC using LAV? Will I still get the HDR, Atmos/DTS:X decoding, 4k, 10 bit, etc.?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.