View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
Midzuki
23rd February 2012, 23:14
@ Mosu:
I now this would be just a workaround, but how about forcing Cook Audio to be muxed as "A_MS/ACM" ? :confused:
FWIW, I only know the trick does work for ATRAC streams --- one year ago, the resulting MKVs played 100%-fine with both ffdshow and Mplayer. :cool:
Mosu
23rd February 2012, 23:16
mkvmerge doesn't support muxing as A_MS/ACM at all, and I'm not about to add it.
wanezhiling
24th February 2012, 05:04
Yeah I dunno who's at fault, but it's definitely weird and only happens when Lav Splitter Source is doing the splitting. If I change it to the built-in MP4 splitter it passes through the audio codec information. I also tried different audio decoders with Lav Splitter (ffdshow audio, built-in), and always the information being passed is:
0x4441
When I use the built-in MP4 splitter it passes:
AAC(0xaac0)
Its a workaround according to korean developer.
Use "an old PotPlayer + LAV Splitter" for AAC, cannot works..
No problem with built-in, Haali, AV Splitter.
I had exchanged 4 emails about this several momths ago, finally they found a workaround:0x4441
GollyJer
24th February 2012, 06:17
"Bitstreaming" usually refers to passing the compressed formats to an external decoder. Its also called SPDIF Passthrough (or maybe HDMI Passthrough).
Anyway, to do this, the audio needs to be in a certain format, specifically packed in a IEC 61937 format.
This is a special format with a few headers that identify which format is being send, and all that stuff. Someone has to take the compressed audio and format it in this manner - that is usually the audio decoder. The audio itself remains untouched, but the data stream needs to be modified to be able to bitstream it.
PCM on the other hand cannot be "bitstreamed" like that. IEC 61937 is only for compressed formats like AC3, DTS, DTS-HD and TrueHD.
PCM is PCM is PCM. All the decoder does is decode the audio to PCM, and send it to the renderer. There is nothing else it can possibly do.
The renderer then has to decide how it sends the audio to the hardware. Usually there are two options - shared or exclusive mode. In shared mode, it sends it through the Windows Mixer, mixed with all other audio sources, and then send to the hardware. This is not an "untouched" process (it may however be lossless, depending on the source and the "shared" output configuration). In exclusive mode, the audio renderer blocks the audio device, so that only it can send audio, and circumvents the Windows Mixer, so you can get "untouched" audio (assuming the audio renderer itself doesn't modify it)
Sadly the only usable Exclusive Mode renderer is right now ReClock, so you don't get around using it (unless you use a player which ships its own renderer)
MPC-HCs audio renderer supports exclusive mode, however the renderer lacks quite a lot of features and i would never recommend using it to anyone. It'll most likely cause audio glitches in many cases.This is awesome. I'm starting to understand better. Thanks.
Let me see if I can repeat what I'm learning.
If audio passes through the Windows Mixer it will be downsampled to the mixers default format. However, it will allow safe untouched passage to IEC 61937 formatted packets.
So...
To bit-exact, "bitstream", compressed audio the packets must in IEC 61937 format.
To bit-exact, "passthrough", uncompressed audio, aka PCM, WASAPI Exclusive must be used to bypass the Windows Mixer. This is because PCM can not physically be IEC 61937 formatted thus providing no way for safe passage through the Windows Mixer.
My first intuition was "Why aren't compressed formats already IEC 61937 formatted?" Pretty quickly I realized the error in that thinking as I sit and type on a laptop that has stereo speakers. The Windows Mixer has to downsample (I'm not sure downsample is the right term) in many situations. e.g.- A 5.1 movie playing on a 2.0 laptop.
But here's the part I still don't get... If PCM is PCM is PCM, what is the audio decoder decoding? Isn't it simply passing the bits as-is to the renderer which, if using WASAPI Exclusive mode, passes them as-is to the AV Receiver which converts them from digital to analog, then passes them to the amplifier which passes them to the speakers which passes them to our ears? :p
Thanks.
nevcairiel
24th February 2012, 06:28
But here's the part I still don't get... If PCM is PCM is PCM, what is the audio decoder decoding? Isn't it simply passing the bits as-is to the renderer which, if using WASAPI Exclusive mode, passes them as-is to the AV Receiver which converts them from digital to analog, then passes them to the amplifier which passes them to the speakers which passes them to our ears? :p
Most of the time audio doesn't start out as PCM, but rather as a compressed format.
In the cases where it does start out as PCM (like on a Blu-ray with a LPCM track), the audio decoder still has some small work to do. Blu-ray PCM is in a slightly different format then "normal" raw PCM. It contains some embedded headers with information about channel layout, sample rate and such things. The Audio Decoder has to extract that information and only send the PCM itself without the headers to the renderer.
BetA13
24th February 2012, 07:11
Sorry, you will need to use a modified inf file with strings for other GPU's.
Extract the driver, then overwrite the existing inf with the new one, then run the installer.
http://www.mediafire.com/?7j1wcck1febbsj0
http://forums.guru3d.com/showthread.php?p=4252344#post4252344
I personally found they tend to be geared more towards stability and image quality, rather than speed and game optimisations.
Could be a placebo effect though lol.
:D yoooo, nice to see u here also Redemption80 :)
its me BetA hehe...
THX for the Heads up..so they finally did an 295 series Quadro Driver...hmmm i must download hehe...
THX to S†v0r @ Guru3d for teh modded INF ;)
andybkma
24th February 2012, 11:15
Win 7 SP 1, Zoom Player 8.11 Max, LAV Filters .47
Need to ask this... am seeing a lot of dropped frames when decoding AVC/H264 content in fullscreen when using mVR as my renderer (FSE turned off) with either LAV Filters (CUVID turned on and available) or LAV CUVID decoder. All things being equal (haali splitter, audio decoder etc) when I select CoreAVC as my AVC decoder (CUVID turned on) I don't get all the dropped frames as reported by mVR. What could account for this disparity? I even rolled back to LAV Filters .46 and still all the dropped frames only with LAV Filters when CUVID is selected and turned on. Thanks for any advice
PS - With mVR FSE turned on I don't get all the dropped frames. But that doesn't explain why LAV Filters' CUVID would be doing this frame dropping with FSE turned off since CoreAVC doesn't do it. Note: LAV Filters and CoreAVC settings are the default ones.
DragonQ
24th February 2012, 11:17
Just did a bit of a power consumption test on my HTPC using LAV in MediaPortal. Here's my results:
CUVID, 576i25: 61 W
CUVID, 1080i25: 65 W
DXVA2 Native, 576i25: 48 W (deinterlacing is poor)
DXVA2 Native, 1080i25: 54 W (playback is broken, picture freezes then catches up every second or two)
...
Since DXVA2 playback is broken for me (and even if it wasn't, the deinterlacing isn't good enough), I guess I have no way of reducing the power usage :(. It's already fairly low but it would have been nice to reduce it anyway!
Hmm, someone on the MediaPortal forum just repeated this test and found that DXVA2 mode worked fine for him. He's using the same software, renderer (presumably, since there's only one option in Vista/7), decoder, GPU and channels as me!
What could be different in my setup that causes DXVA2 playback to be all over the place??
CruNcher
24th February 2012, 11:58
Lavs DXVA is a very early implementation depending on Hardware and different Bitstreams it might fail
Mpeg-2 seems pretty stable though :) except 1 issue so far on Intel which can force a crash
pururin
24th February 2012, 12:01
Nev, I notice a problem.
When I open any clips with QS active
then if I open mpc-hc Options>External Filters>LAV Video Decoder properties window
the video becomes hang and convulsive while audio plays on just fine.
Even I stop playback before accessing that window but when I get out and start playback again
the video simply keep repeating at the very first few frames over and over.
This seems to happen only with QS active. Version 0.45 get the same too(didn't test older ones).
Only tested with h264 stuffs(didn't have vc-1 or else now) with either mkv and mp4 container.
Tried with both haali and lav splitter. MadVR, EVR CP, EVR renderer all suffer the same.
JFYI I have Intel sandyb with HD3000 gpu, using XhmikosR's latest mpc-hc build, Intel latest driver .2559, Win 7 sp1 32bit.
p.s. Any chance LAV audio will get a Swap channels feature? :thanks:
It makes video freeze here, just by only access that Lav video property window. :(
(didn't even touch anything , just open that window as I described)
Anyone?
nevcairiel
24th February 2012, 14:03
It makes video freeze here, just by only access that Lav video property window. :(
(didn't even touch anything , just open that window as I described)
Anyone?
I don't know why you would start fiddling around with the external filter settings when you're trying to watch something, but in any case it might be fixed in the next version.
Hi nev, http://www.gokuai.com/f/78Jy98y7s07e0pF9
LAV Splitter 0.47 failed to get video parts.
The file is odd, mediainfo says its progressive but a interlaced one, and seems that only Haali could deal with well.
Fixed
aufkrawall
24th February 2012, 14:27
I've been told that Nvidia is aware of the MPEG-4 ASP bug of 295.73, so there may be a good chance that it gets fixed with one of the upcoming driver versions.
nevcairiel
24th February 2012, 14:58
LAV Filters 0.48
LAV Splitter
- Improved Video/Audio stream detection in some MPEG-TS files
LAV Video
- Fixed a potential crash with native DXVA2 when the software fallback was used
Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.48.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.48.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.48-x64.zip)
Nothing big in this version, just a crash fix and some other minor changes that didn't even warrant a changelog entry.
Have a nice weekend.
dukey
24th February 2012, 14:59
Thanks nevcairiel, keep up the great work.
Midzuki
24th February 2012, 15:56
LAV Filters 0.48
LAV Splitter
- Improved Video/Audio stream detection in some MPEG-TS files
LAV Video
- Fixed a potential crash with native DXVA2 when the software fallback was used
...
Have a nice weekend.
Thanks :thanks: , BUT
on 2012-Feb-27 AT 00:00:00.000001 GMT...
You have been warned ;) :p :D
fastplayer
24th February 2012, 15:56
Have a nice weekend.
Thanks, you too! :)
wanezhiling
24th February 2012, 16:04
Fixed
:thanks:New 0.48, great work.
pururin
24th February 2012, 16:54
I don't know why you would start fiddling around with the external filter settings when you're trying to watch something, but in any case it might be fixed in the next version.
It's not fiddling around with the external filter settings (even real fiddling around filters still can't make any of this happen)
It's a way to open the 'lav video property page' (to config something like enable deinterlacing, etc.) and people doing like this isn't all that strange.
Say by just open a program's property page (in a way) to config something make it's functionality fail, isn't it strange?
Anyway, thx for taking this into account :)
nevcairiel
24th February 2012, 16:59
It's not fiddling around with the external filter settings (even real fiddling around filters still can't make any of this happen)
It's a way to open the 'lav video property page' (to config something like enable deinterlacing, etc.) and people doing like this isn't all that strange.
Say by just open a program's property page (in a way) to config something make it's functionality fail, isn't it strange?
Anyway, thx for taking this into account :)
The correct way would be to use the Play -> Filters menu and click LAV Video Decoder there, that way you directly access the one thats currently being used for playback. :p
wanezhiling
24th February 2012, 17:04
nev, since lav0.46 you recommended to use the installer, so what about lav 0.48 and later?
nevcairiel
24th February 2012, 17:06
nev, since lav0.46 you recommended to use the installer, so what about lav 0.48 and later?
"since 0.46" applys for anything later, too. :p
Why would that change again? The installer just works and ensures that LAV get setup properly. Use the zips and manually register the filters at your own risk.
pururin
24th February 2012, 17:23
The correct way would be to use the Play -> Filters menu and click LAV Video Decoder there, that way you directly access the one thats currently being used for playback. :p
Right. I'll tell guys/gals around me to avoid that problematic way, especially gals. :D
(some of them are quite inflexible when it comes to these things - read from how-to guides and then remember just that)
Keep up the good work! :thanks:
wanezhiling
24th February 2012, 17:26
"since 0.46" applys for anything later, too. :p
Why would that change again? The installer just works and ensures that LAV get setup properly. Use the zips and manually register the filters at your own risk.
For me I always use the installer, your answer is important for the members of Chinese PotPlayer forum, thanks nev.:D
fairchild
24th February 2012, 19:26
I just watched a blu-ray with the new 0.48 version and glad to report no problems. Whole movie ran with no dropped frames or glitches with setup in my sig. (used DXVA2 copy back) :thanks: Movie was Whiteout and it uses VC-1. (not the best movie but it was a blind buy)
cengizhan
24th February 2012, 20:15
Latest Lav filters stopped working with some dvb applications like dvbdream and smartdvb.
nevcairiel
24th February 2012, 20:37
Latest Lav filters stopped working with some dvb applications like dvbdream and smartdvb.
I tried SmartDVB, and it works fine.
I had to delete the LAV decoder from its built-in list and re-add it again, otherwise it wouldn't work, but thats failure in the application.
dukey
24th February 2012, 22:08
Have a feature request.
Add the IPinFlowControl interface to the audio output pin. To allow for dynamic reconnection.
http://msdn.microsoft.com/en-us/library/windows/desktop/dd390403%28v=vs.85%29.aspx
Disconnecting the audio render removes the 2.0 rate restriction .. so we can have uncapped fast forward speeds in DShow ;p You probably notice most directshow players are stuck at a maximum rate of 2.
Xaurus
24th February 2012, 22:30
nevcairiel,
There is something strange going on when I play The Pillars of the Earth bluray with CUVID.
Mediainfo says the file is 25.000 fps, progressive:
http://home.halden.net/mordor/mediainfo.png
So, CUVID is set to "aggressive deinterlacing" since I have a few DVDs still. Anyway, why does it seem to deinterlace (source filter says 50.000fps) this bluray?
Is actually some frames flagged as interlaced? I can see no reason otherwise nor do I know how to check. See screenshot:
http://home.halden.net/mordor/cuvid_decoding.png
This is with using software decoding (source filter says 25.000):
http://home.halden.net/mordor/software_decoding.png
I used mkvtools to make an unaltered (I hope) sample clip for you to check:
http://home.halden.net/mordor/tpote.zip
Software used: mpc-hc build 1.6.1.4090, madvr 0.80 and lavfilters 0.48.
nevcairiel
24th February 2012, 22:52
Is actually some frames flagged as interlaced? I can see no reason otherwise nor do I know how to check
I don't know where MediaInfo pulls its values from, but the H264 SPS does not specify that the content is pure progressive. In that case, aggressive deinterlacing will catch on and start deinterlacing everything.
For the record, i would recommend to not use 25Hz, and instead try to use 50Hz if your sceen allows for it, even for 25Hz content - it makes that problem magically go away and doesn't add any new ones.
Xaurus
24th February 2012, 23:22
I don't know where MediaInfo pulls its values from, but the H264 SPS does not specify that the content is pure progressive. In that case, aggressive deinterlacing will catch on and start deinterlacing everything.
For the record, i would recommend to not use 25Hz, and instead try to use 50Hz if your sceen allows for it, even for 25Hz content - it makes that problem magically go away and doesn't add any new ones.
Thanks, I'll use 50 instead of 25 for the screen, that's no problem.
Have you ever encountered this "problem" before with blurays?
nevcairiel
24th February 2012, 23:40
Oh its a Blu-ray source? I missed that in the previous post.
Blu-ray has no official profile for 25p, only 50i, so some people "fake" 25p by just putting progressive frames in there (called fake interlaced)
DragonQ
25th February 2012, 00:53
Yep, you need to use 25PsF (progressively segmented frames) on BD since there's no actual 25p support. Players should recognise this and output as progressive though, so for all intents and purposes 25p is supported by BD.
25PsF is used all the time on SD TV (576i25) for dramas, films, etc. BBC One HD and BBC HD gained the ability to transmit true 1080p25 with the encoder change a year or two ago.
chuuey
25th February 2012, 01:35
thanks for the new version, LAV rocks :D
Pat357
25th February 2012, 03:06
I have a very anoying problem with LAV-splitter together with CoreAVC decoder lately.
In MPC-HC, I set Lav-splitter-source + CoreAVC + Lav-audio as preferred, disable all internal MPC splitters and decoders.
When I try to open any container (MKV, MP4, MOV, M2TS with AVC1/H264 content, obviously), MPC-HC stalls and stops responding. I have to close it with the taskman.
I did the same test by setting file (async) + Lav-splitter + CoreAVC + Lav-Audio --> same results, MPC has to be closed by taskman.
However, if I don't use lav-splitter and enable the MPC internal splitters, the same H264 files open with no problems !
On top of that, in graphstudio, both LAV-splitter-source and Lav-splitter + file (async) work with CoreAVC !
I've tried uninstalling and reinstalling CoreAVC, but no avail.
I just installed LAV v0.48 and took a look in my registry :
for example the key for MKV :
[HKEY_CLASSES_ROOT\Wow6432Node\Media Type\Extensions\.mkv]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
"Media Type"="{E436EB83-524F-11CE-9F53-0020AF0BA770}"
"SubType"="{1AC0BEBD-4D2B-45ad-BCEB-F2C41C5E3788}"
I'm very sure there used to be only the line "source Filter" for LAV-splitter-source like this :
[HKEY_CLASSES_ROOT\Wow6432Node\Media Type\Extensions\.mkv]
"Source Filter"="{B98D13E7-55DB-4385-A33D-09FD1BA26338}"
Is the "new" installer writing these lines to the reg ?
Why are the lines with "Media Type" and "SubType" needed ? They haven't been always there....
I looked them up : the first is "MEDIATYPE_Stream" and the second is MEDIASUBTYPE_Matroska .....
I don't know where it's going wrong : could be LAV-spliiter, MPC internal graph-builder, CoreAVC or even some other filter on my system..
Any idea how to track down the source of the problem ?
The problem is only there when LAV is installed, if I remove LAV, CoreAVC plays again with MPC-HC.
nevcairiel
25th February 2012, 07:35
Is the "new" installer writing these lines to the reg ?
Why are the lines with "Media Type" and "SubType" needed ? They haven't been always there....
I looked them up : the first is "MEDIATYPE_Stream" and the second is MEDIASUBTYPE_Matroska .....
Those lines are indeed new. They are not strictly required, but they do help some players to properly identify the source format. For MPC-HC, it doesn't make a bit of difference. I highly doubt those would cause your problems.
Considering everything works in GraphStudio, i would assume that MPC-HC is possibly loading some filter into the graph that doesn't play nice.
I assume you already tried clean reinstalls of all involved components? The splitter really hasn't changed much lately except a few harmless bug fixes.
Sebastiii
25th February 2012, 08:12
I would like to thanks you nev again from helping me with my Nvidia 9600GT (from my DEV pc).
In fact this card and surely old one need to set some option to make it work correctly at least for VC1i movies.
We need to uncheck YV12 and NV12 from LAV Video Decoder otherwise, video was slow and desync (tested on 290.36 and the latest 295.73 WHQL).
Now it run perfectly on this NVidia card.
We assume that old card need to do that or all card under VP4. see this on http://en.wikipedia.org/wiki/Nvidia_PureVideo.
Thanks again and thanks for 0.48 :)
cengizhan
25th February 2012, 09:43
I tried SmartDVB, and it works fine.
I had to delete the LAV decoder from its built-in list and re-add it again, otherwise it wouldn't work, but that's failure in the application.
i had tried that already. The thing is after changing channels a few times, smartdvb freezes and dvbdream crashes with avcodec-lav-54.dll.
both applications work ok with Microsoft dtv decoder.
Snowknight26
25th February 2012, 10:42
Small suggestion: 1080p60 H.264 content should not be allowed to be hardware accelerated on ATI/Intel GPUs. They can't handle it and make the GUI of the player extremely unresponsive.
NikosD
25th February 2012, 10:45
Small suggestion: 1080p60 H.264 content should not be allowed to be hardware accelerated on ATI/Intel GPUs. They can't handle it and make the GUI of the player extremely unresponsive.
Are you sure ?
Look at my signature's link.
madshi
25th February 2012, 10:57
Well, at least "copy back" DXVA for 60p content should probably be disabled on all ATI GPUs, except maybe for the new 7xxx series (not sure).
wanezhiling
25th February 2012, 11:20
Are you sure ?
Look at my signature's link.
NikosD, only your frankenstein card could reach 60fps in the world, you know that.
RBG
25th February 2012, 12:18
Small suggestion: 1080p60 H.264 content should not be allowed to be hardware accelerated on ATI/Intel GPUs. They can't handle it and make the GUI of the player extremely unresponsive.
Intel SB graphics can easily handle 60p material.
Well, at least "copy back" DXVA for 60p content should probably be disabled on all ATI GPUs, except maybe for the new 7xxx series (not sure).
It is better to leave decision to enable or disable any option to end-user.
madshi
25th February 2012, 12:37
It is better to leave decision to enable or disable any option to end-user.
Just imagine for a second that you had an AMD 6xxx (or older) GPU and wanted to use "DXVA copyback". Furthermore imagine you have both 24p and 60p videos. What will happen now? If you enable "DXVA copyback", 24p playback will be smooth, but 60p playback will stutter. That's not a good solution for the average user.
red5goahead
25th February 2012, 12:46
is it possibile to have a correct information about hw decoding.
I use Lav codec with Visualsubsync. due filter in chain and vmr9 under Vista is not possibile dvxa2 was active but that is the message.
Thanks a lot.
http://www.pchs.it/image-hosting/out.php/t7025_1.png (http://www.pchs.it/image-hosting/out.php/i7025_1.png)
nevcairiel
25th February 2012, 12:48
I use Lav codec with Visualsubsync. due filter in chain and vmr9 under Vista is not possibile dvxa2 was active but that is the message
DXVA2 Copy Back always works, it doesn't have the same limitations as native DXVA. The message is correct.
red5goahead
25th February 2012, 12:57
Ah ok. good to know.
another question I use lav codec without registration using CreateFilterFromFile to load the filter in the graph .
But it doesn't work the properties page . doesn't appear.
no problem if the filter is registrated. in the AX folder I copy all files including the dlls.
nevcairiel
25th February 2012, 13:18
Ah ok. good to know.
another question I use lav codec without registration using CreateFilterFromFile to load the filter in the graph .
But it doesn't work the properties page . doesn't appear.
no problem if the filter is registrated. in the AX folder I copy all files including the dlls.
Thats just how property pages work, they need to be registered.
noee
25th February 2012, 13:49
Well, at least "copy back" DXVA for 60p content should probably be disabled on all ATI GPUs, except maybe for the new 7xxx series (not sure).
Are you guys sure about this? I just tested Birds_1080p60fps.mp4 (from the link with the benches) in LAV, both DXVA2 CopyBack and Native, in jRiver Media Center with EVR and it works flawlessly with both and the GUI acts just normal. Using HD6570, CCC 12.2 pre-cert.
nevcairiel
25th February 2012, 13:54
In any case, if the GUI starts breaking because the decoder is too slow, its a bug in the player. :p
madshi
25th February 2012, 13:56
Are you guys sure about this? I just tested Birds_1080p60fps.mp4 (from the link with the benches) in LAV, both DXVA2 CopyBack and Native, in jRiver Media Center with EVR and it works flawlessly with both and the GUI acts just normal. Using HD6570, CCC 12.2 pre-cert.
Well, I've not tested it myself, tbh, but the reports I've read led me to believe it 60p DXVA copyback wouldn't work fast enough on 6xxx (and older) AMD GPUs. Maybe it depends on the GPU, OS, drivers, mainboard and what not, don't really know.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.