View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
clsid
1st October 2023, 01:26
Can you also build a new mingw gcc toolchain pack?
Thanks
ryrynz
1st October 2023, 06:08
072.1.8 working fine here with DXVA, .7 previously crashed for me. Thanks.
Siso
1st October 2023, 13:03
Works fine for me.
clsid
5th October 2023, 12:14
dav1d 1.3.0 has been released
Siso
9th October 2023, 08:56
There is again problem with LAVFilters-0.77.2-16. The exe is corrupted. 3.9M only.
ryrynz
10th October 2023, 09:41
There is again problem with LAVFilters-0.77.2-16. The exe is corrupted. 3.9M only.
I think your connection might've timed out. I'm experiencing download speeds slower than what I'd get at home if I went back to 1995 :)
It timed out but I resumed and installed it okay. That server needs a rest.
clsid
13th October 2023, 23:47
Crash:
https://drdump.com/DumpGroup.aspx?DumpGroupID=2481628
Could this not be handled more gracefully by just returning error value instead of doing a hard abort?
The dump does not contain much useful information due to being in GCC compiled code. All I know it was MP4 container.
And another old one that happens a lot:
https://drdump.com/Problem.aspx?ProblemID=743788
https://drdump.com/Problem.aspx?ProblemID=887238
On the very rare occasion that I get a sample file, I can not reproduce any issues. So maybe due to driver TDRs or running out of GPU mem.
nevcairiel
14th October 2023, 00:53
The crash dumps are not public. Also, good fixes require user reports and samples. Thats why automatic crash reporting is rather lacking.
And no, you cannot "handle" crashes.
clsid
14th October 2023, 01:24
The first one "crashes" due to calling abort() in av_assert0(). Why not return an AVERROR value and stop decoding?
https://imgur.com/a/4q1dPpl
nevcairiel
14th October 2023, 01:45
asserts check conditions that are impossible, unless a decoder has a bug in its behavior. This is unrelated to the validity of the input.
Either way, I can't download the crash dump, I have no sample, or any information what decoder it even might be.
clsid
22nd October 2023, 13:29
Regression with MPEG-2 decoding. Playback is choppy due to unstable framerate.
Sample (https://www.sendspace.com/file/i7bq16)
nevcairiel
24th October 2023, 12:07
This should be fixed in the latest code.
clsid
24th October 2023, 18:22
Confirmed. Thanks.
nevcairiel
25th October 2023, 12:46
LAV Filters 0.78
LAV Splitter
- NEW: Added identification of DTS:X in DTS HD-HRA streams
- NEW: Support for various stream flags in Matroska containers (Hearing Impaired, and more)
- Changed: Text-based subtitle selection now uses case-insensitive matches (ASCII characters only)
- Fixed: Many stream titles in MP4 files weren't being read properly
LAV Video
- NEW: Support for decoding SMC video
- Fixed: HLG video streams could have their HLG flag overriden in some circumstances
LAV Audio
- Fixed: TrueHD bitstreaming of Atmos tracks could cause output timestamps to be off, confusing some audio renderers
Download: Installer (both x86/x64) (https://files.1f0.de/lavf/LAVFilters-0.78.exe) -- Zips: 32-bit (https://files.1f0.de/lavf/LAVFilters-0.78.zip) & 64-bit (https://files.1f0.de/lavf/LAVFilters-0.78-x64.zip)
The biggest change in this version is updating FFmpeg again after a long while, which included quite a few API changes that needed to be adapted to. Hopefully I got them all!
Its been a while since the last release, so updating FFmpeg, dav1d, and all other libraries was overdue.
As always, report issues and regressions, in as much detail as possible.
Sunspark
28th October 2023, 20:48
Not an issue, just something I'm wondering about from a technical perspective.
When MadVR is in D3D9 overlay renderer mode the following observations can be made.
CPU usage is the same between D3D11-Native/Automatic and DXVA2-Native.
GPU usage as measured with GPU-Z, if in DXVA2-native, the GPU load is higher compared to D3D11-native (41% vs 29% on this system).
I know for D3D9 overlay MadVR is emulating the monitor profile in 16-bit so the extra work makes sense there. Except, why wouldn't the same thing also be happening with D3D11-native decoding? It just seems like a big difference and it doesn't make sense on the surface. Why wouldn't both be the same?
DXVA2-copyback presents as 26% GPU load, lower than native in exchange for just a little bit more CPU usage which makes sense because of the increased bus traffic.
I just find it strange that copyback has the lowest GPU usage compared to native. Is this just the way the renderer works, or is it due to differences in the decoding process?
Also strange, as an experiment I set decoding to none and observed. GPU usage was the same as copy-back but CPU usage was higher. Also confusing, you'd think the GPU usage would be lower if the igpu wasn't doing the decoding..
Just curious how to make sense of these numbers. Thanks!
q1) Why does d3d9-copy-back have lower GPU load compared to d3d11-native?
q2) Why does dxva2-native have higher GPU load compared to d3d11-native?
q3) Why does none for decoding have the same GPU load as copy-back instead of lower?
Asmodian
28th October 2023, 22:47
Are you monitoring the GPU's power state (clock speed)? My GPU often stays in its lowest power state with light loads, so increasing the load slightly can cause % load to go down a lot as it clocks higher.
Sunspark
29th October 2023, 00:42
I've always had the thing set to max performance which locks it at a clock of 900 MHz and as the cpu/igpu heats up, the clock will start sawtoothing, but it doesn't dip that much when it does. So basically, it will drop, but never rises because I always have it at the top.
clsid
29th October 2023, 00:55
Create empty ShowRenderSteps folder to let Madvr show details about what is it doing.
D3D11 is actually probably running in copyback mode since you are using D3D9 presentation.
Madvr may do its own internal copyback when using DXVA2 Native, and that is less optimized than what LAV does.
Sunspark
29th October 2023, 05:01
Possible regression, unless support never was present for the DivX 5 series? I have some old XVID AVIs that I just noticed as being decoded in avcodec format.
- Connection media type:
Video: Xvid 640x480 23.976fps 759kbps
AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {44495658-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo {05589F80-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 148
VIDEOINFOHEADER:
rcSource: (0,0)-(640,480)
rcTarget: (0,0)-(640,480)
dwBitRate: 759807
dwBitErrorRate: 0
AvgTimePerFrame: 417084
BITMAPINFOHEADER:
biSize: 100
biWidth: 640
biHeight: 480
biPlanes: 1
biBitCount: 12
biCompression: XVID
biSizeImage: 460800
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0
pbFormat:
0000: 00 00 00 00 00 00 00 00 80 02 00 00 e0 01 00 00 ........€...Ã*...
0010: 00 00 00 00 00 00 00 00 80 02 00 00 e0 01 00 00 ........€...Ã*...
0020: ff 97 0b 00 00 00 00 00 3c 5d 06 00 00 00 00 00 ÿ—......<]......
0030: 64 00 00 00 80 02 00 00 e0 01 00 00 01 00 0c 00 d...€...Ã*.......
0040: 58 56 49 44 00 08 07 00 00 00 00 00 00 00 00 00 XVID............
0050: 00 00 00 00 00 00 00 00|00 00 01 b0 f5 00 00 01 ...........°õ...
0060: b5 09 00 00 01 00 00 00 01 20 08 86 87 ff ff 0a µ........ .Ââ€*‡ÿÿ.
0070: ad 8a 02 1e 0a 31 00 00 01 b2 44 69 76 58 35 30 Â*ÂÅ*...1...²DivX50
0080: 33 62 31 33 39 33 70 00 00 01 b2 58 76 69 44 30 3b1393p...²XviD0
0090: 30 34 33 43 043C
lvqcl
29th October 2023, 10:45
Possible regression, unless support never was present for the DivX 5 series? I have some old XVID AVIs that I just noticed as being decoded in avcodec format.
And why didn't you mention your settings?
clsid
29th October 2023, 14:33
Hardware decoding of MPEG4 is for CUVID only. Plus it is completely utterly pointless and retarded to use it for such "easy" to decode format.
If it fails to decode then you need to provide a sample.
Sunspark
29th October 2023, 19:57
@lvqcl: What settings? It is like this with all the drop-down decoder selections. BE's decoder doesn't do it either nor does MPV.
@clsid: CUVID only? I thought I did have hardware decoding with Microsoft's Film & TV player.. GPU load with that one fullscreened is 2%, with LAV/MPC-HC combo it's 15%. VLC does it at 5%. BE/MPC-BE (with EVR-CP) does it at 9%. MPV (which says in the HUD no hardware decoding available) does it at 3%. Looking at the MPV number, my thought that MS might have it may not be correct. Update: Changed HC's renderer to EVR-CP to compare, # dropped to 12%.
I want to be clear, I am not fretting over a few percentage points on an ancient codec. I am merely reporting a possible regression if it did have support at one time since divx3 and mpeg-4 part 2 are checkboxes in the decoder's list. Assuming it did not, then it's pretty interesting to see how different some players are at processing it since the range is from 2% to 15%.
I dug up a random sample on the web (some school talk in czech) that used the same codec version number, https://is.muni.cz/do/rect/el/nastroje/dril/dril_low.avi
lvqcl
29th October 2023, 20:59
@lvqcl: What settings? It is like this with all the drop-down decoder selections.
MPEG-4 checkbox is disabled for any decoder except "NVIDIA CUVID (old)". That is assuming that you have NVIDIA videocard. If you don't have it then maybe it's always disabled.
I am merely reporting a possible regression if it did have support at one time since divx3 and mpeg-4 part 2 are checkboxes in the decoder's list.
The checkboxes are there because LAV Video filter can decode them. By a software decoder.
Assuming it did not, then it's pretty interesting to see how different some players are at processing it since the range is from 2% to 15%.
Different upscaling algorithms, maybe?
j7n
6th November 2023, 05:41
Seems like FFMPEG have switched to the duration estimation for DTS elementary streams by the target rate instead of the frame size (actual bitrate). A stream from a DTS-CD with a bitrate of 1234.8 kbit/s and an indicated target bitrate of 1411.2 is found to be of a shorter duration in current media players based on FFMPEG (Media Player Classic Homecinema, Foobar). They play correctly past the end. The closest bitrate steps are 1152 and 1280, whereas the frame size can vary in 1 byte increments and is more precise.
max79
6th November 2023, 18:48
@nevcairiel
Hi, when using LAV Source to open "http://sochinskayatrk.ru/hdtv/hls/strc_hd/playlist.m3u8", it doesn't return any duration or duration change events (EC_LENGTH_CHANGED), preventing seeking from working properly. This problem doesn't happen with the latest version of VLC which allows you to seek within the stream.
The graph is simple, LAV Source -> LAV Audio/Video Decoders -> Audio/Video Renderers (Default DirectSound Device/EVR).
I would be happy if you could take a look at it and let me know if it can be fixed.
j7n
8th November 2023, 05:39
DTS with Open bitrate don't have any time duration displayed and can't be seeked. They come off a CD in that form in some cases. Since there are no standard DTS streams in the wild with variable bitrate, they can assume CBR and calculate the duration. The frame size is sometimes wrong, but they can already work around it by searching the next sync word since such files now play.
http://j7n.sytes.net/temp/dtssample/
Blight
10th November 2023, 10:24
Nev,
Any idea about returning duration for "http://sochinskayatrk.ru/hdtv/hls/strc_hd/playlist.m3u8"?
I tested it myself and it just returns 0 all the time.
mclingo
18th November 2023, 18:43
Hi, i'm just testing a windows 11 build for my HTPC and i'm having a bit of a blonde moment, I cant get any ATMOS height unless I use passthrough, is ATMOS not available when passthrough is not enabled, tried MPC-HC with LAV filters, only works with passthrough, tried POT player, only works with passthru enable also, I though you could get atmos heights using PCM without passthru, if so how?
mclingo
18th November 2023, 18:44
reason I prefer PCM over passthrough is I prefer to have volume control in in my player as my receiver is very slow to change volume.
Manni
18th November 2023, 20:01
Hi, i'm just testing a windows 11 build for my HTPC and i'm having a bit of a blonde moment, I cant get any ATMOS height unless I use passthrough, is ATMOS not available when passthrough is not enabled, tried MPC-HC with LAV filters, only works with passthrough, tried POT player, only works with passthru enable also, I though you could get atmos heights using PCM without passthru, if so how?
You can't get Atmos or DTS:X (or Auro-3D) without passthrough. The immersive layer is stripped out with LPCM.
mclingo
18th November 2023, 21:35
cheers
tebasuna51
19th November 2023, 12:29
You can't get Atmos or DTS:X (or Auro-3D) without passthrough. The immersive layer is stripped out with LPCM.
It is correct, but I like do some comments (I talk about MPC-HC test):
1) We haven't a free Atmos (or DTS:X) decoder included in LAV Filters.
Maybe can be added the Cavernize free EAC3 Atmos decoder (https://forum.doom9.org/showthread.php?t=184364) and, based in the speaker configuration (not only ...5.1, 7.1 but also 5.1.2, etc.), decoded to PCM with the correct channel mask.
2) But also with a wav with the correct channel mask preserved (solved now in LAV Filters) my Denon VCR 8 channels configured like FL FR FC LF SL SR TFL TFR can't play that wav correctly: the TFL TFR channels are played also in the SL SR speakers.
It is a problem of my Denon VCR or with the HDMI PCM protocol?
If I encode that wav to EAC3 (L R C LFE Ls Rs Vhl Vhr) and send it passthrough is played correctly (of course also the original Atmos)
nevcairiel
19th November 2023, 12:58
Most HDMI devices ignore any custom channel masks. Unclear if this is the GPU drivers fault or the receiver device, or even some kind of HDMI limitation. But in my experience they only really support one configuration per channel count.
And I don't believe more then 8 channel are supported, which might be a GPU limitation, as HDMI 2 should support more, although its not clear to me if that support extends to uncompressed PCM.
andybkma
19th November 2023, 14:56
W10, mpc-be 1.6.10 & PotPlayer 231102, LAV Filters .78 D3D11, MPC Video Renderer 0.6.9.2117
LAV Splitter, LAV HEVC Decoder & LAV Audio decoder all selected in MPC-BE & PotPlayer
Hi nev, I noticed tonight that when using LAV Filters for HEVC HDR video decoding with PotPlayer & MPC-BE with MPC Video Renderer and W10 OS HDR already turned on before an HDR video is played, that when starting that HDR video that my HDR-capable screen goes through a series of flashes. The flashing it seems is that something is causing the HDR to turn off (even though it was already on and supposed to stay on), then being turned on again after being turned off then finally the video plays as it should with HDR being turned on again. So basically W10 HDR is already on, start the HDR video, W10 HDR is automatically being turned off for some strange reason, then automatically being turned on again... a whole bunch of flashes.
So you're asking what does this have to do with LAV? Well, when I select the "internal" HEVC decoders in both MPC-BE and PotPlayer then all the above doesn't happen. It's only when I select LAV as the HEVC decoder with MPC Video Renderer then all the HDR screen off-on flashing happens. If I use madVR then the flashing doesn't happen either. It's the combination of LAV Video Decoder with MPC Video Renderer. Somehow it's when these two are being used together that the video players can't tell that W10 HDR is already turned on so it turns it off then on again automatically causing all the bizarre flashing...
clsid
19th November 2023, 17:51
Change the "Auto Display HDR on/off" setting in MPCVR.
j7n
19th November 2023, 23:20
Why does the Normalize matrix checkbox has no effect (always quiet) if 32-bit floating point output is unchecked? I kept it off becaue my sound card doesn't accept it. The volume should already be adjusted before leaving the player.
DVD rate DTS also runs short because of a discrepancy between 1509 and 1536. And to seek it reads the entire stream now, which is really slow. "Black Edition" with clasic DTSAC3Source.ax still works as pre-1.7 Homecinema.
https://i.imgur.com/Oq9jD36.png
nevcairiel
20th November 2023, 00:58
Put your audio files into a container, raw is useless for anything but temporary storage during muxing. Its not a format I'm going to spend much effort on, especially for whats likely an upstream issue.
j7n
20th November 2023, 05:04
It is fair to say that it's an upstream issue. I don't really know the etiquette for posting on Trac.
nevcairiel
20th November 2023, 09:37
Reproduce the issue with ffmpeg or ffprobe command-line tools, and post your findings with all the details. A sample file goes a long way too. Not much else to it.
tebasuna51
20th November 2023, 11:49
Most HDMI devices ignore any custom channel masks. Unclear if this is the GPU drivers fault or the receiver device, or even some kind of HDMI limitation.
Thanks for the answer, even if we don't know the solution.
Of course if receivers, with 8 channels, can't support the most simple Atmos decode 3D (5.1.2) include the decoder in the software player is useless.
Sunspark
20th November 2023, 18:01
Forgive my ignorance on the atmos subject, but one thing that has always puzzled me about it, when I used this netflix browser extension awhile ago https://github.com/lkmvip/netflix-4K-DDplus I was able to get playable audio that was labelled as atmos over 3.5mm. I don't understand this because I have seen it said many times that you need a physical receiver for this purpose. Does this mean the extension was software-decoding and transcoding it? Or is it just that Win10&Edge over a certain version is treated as a receiver due to DRM being present and so it worked?
nevcairiel
21st November 2023, 00:44
Labeled as Atmos where? In Netflix? Any Atmos audio has a base layer, on Blu-rays its TrueHD, on Netflix its DD+, and without bitstreaming that base layer just gets decoded, and the Atmos data ignored.
andybkma
21st November 2023, 03:43
Change the "Auto Display HDR on/off" setting in MPCVR.
Thanks for your reply and yes changing that MPC VR selection to Not Used stops all the HDR on-off-on flashing but I am confused as to why with the "external" LAV Filter decoder & MPC VR and that option set to Always it is causing the HDR off-on flashing while it doesn't happen when selecting the internal decoder.
And then with madVR and using the "external" LAV Filter the flashing also doesn't happen (while it happens with MPC VR) so wouldn't this show an underlying problem (conflict) between MPC VR and "external" LAV?
Thanks :-)
huhn
21st November 2023, 05:41
Thanks for the answer, even if we don't know the solution.
Of course if receivers, with 8 channels, can't support the most simple Atmos decode 3D (5.1.2) include the decoder in the software player is useless.
still should be useful for HRTF. but that so niche i wouldn't hold my breath.
atmos is usually also calibrated so sending the output without the calibration is not really worth it.
multi soundcard with room correction would make use of decoded atmos but even HRTF will be common compared to a setup like this.
Balling
21st November 2023, 16:27
Forgive my ignorance on the atmos subject, but one thing that has always puzzled me about it, when I used this netflix browser extension awhile ago https://github.com/lkmvip/netflix-4K-DDplus I was able to get playable audio that was labelled as atmos over 3.5mm. I don't understand this because I have seen it said many times that you need a physical receiver for this purpose. Does this mean the extension was software-decoding and transcoding it? Or is it just that Win10&Edge over a certain version is treated as a receiver due to DRM being present and so it worked?
Atmos for Headphones can be bought in Dolby Access. It decodes Atmos into binaural stereo stream.
clsid
21st November 2023, 17:42
Thanks for your reply and yes changing that MPC VR selection to Not Used stops all the HDR on-off-on flashing but I am confused as to why with the "external" LAV Filter decoder & MPC VR and that option set to Always it is causing the HDR off-on flashing while it doesn't happen when selecting the internal decoder.
And then with madVR and using the "external" LAV Filter the flashing also doesn't happen (while it happens with MPC VR) so wouldn't this show an underlying problem (conflict) between MPC VR and "external" LAV?
Madvr never turns off Windows HDR.
My guess is that the HDR metadata is missing on the initial connection between LAV and MPCVR, making the renderer think that it is getting SDR. Then the metadata comes along later with the video frames.
You need to provide a sample file to reproduce.
j7n
21st November 2023, 21:18
Is there a DirectShow video player than can hook into Dolby Headphone DLL like Foobar can to create a binaural mix out of 5.1? I think Atmos is mostly hype unless you make a studio with 11 speakers. With all the hate Dolby gets, they did good providing a perfect 5.1 in their E-AC-3.
huhn
23rd November 2023, 10:40
even ffdshow has multiply ways to do 5.1 using hrtf.
there is alot hrtf stuff for up to 8 channels.
i also had have a asus essence stx (not in a pc anymore) which could do that to every source. the dolby solution was quite buggy and liked to clip so you had to make sure that the sound card never got 100 % volume.
there was a software with a lot of hrtf option from razer and so on dolby headphone was also part of it but i can not find it. in the end you don't hook in it you just throw x channels at it and it does the rest no need for directshow.
ffmpeg has this pretty sure it had 2 hrtf version at one time but not like i follow this. https://ffmpeg.org/ffmpeg-all.html#headphone
3D audio is not hype at all and pretty old games do it for a very long time. a game with hrtf and without is day night difference in audio positioning.
in the end atmos is just a "container"/format or what ever the term is with meta data and price tag the quality depends on the people mastering it. so why do they get hate? did i miss something?
j7n
24th November 2023, 03:48
Mostly because of licensing fees Dolby charges to both produce and use the format, and expensive consumer products with dubious claims (soundbars). You can find rants about Atmos online. Surround and binaural can be done with existing free formats. I do recognize the value of HRTF hence my query.
Most simple crossfeeds color the sound. Dolby solution seems comparatively neutral to me, and uses near zero CPU in Foobar because it is so old. It does bloat the bass like you played a woofer in a bathroom and muffles the top end a little. Other products often feel like a brick wall filter. The clipping was an issue with the connection. It is 24-bit and can be fed audio at any level, unless the dev refuses to create a volume slider (cough). There is no reason to tie it to Asus or Razer if it is just a software dsp.
I have since found ToneBoosters IsoneSurround, which is sounds different but also good. Wider and with less rolling off of the highs. Being a VST, it can be patched into existing software with ASIO sends to Reaper.
I will stop with the off-topic.
Damien147
23rd December 2023, 17:08
To those with AMD GPU who watch 4k movies and use D3D11 for decoding.I get an amd driver crash sometimes while watching a 4k movie and I need system restart.Are things stable for you while you watch a 4k movie?
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.