View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
nevcairiel
19th April 2013, 22:12
thanks... potplayer dxva mode mpeg2 work....hd3650
LAV only uses full off-host bitstream acceleration (also called VLD), and the HD3650 does not support this. Partial acceleration, which the card may support, is not supported by LAV, and never will be. Way too much effort for way too little gain.
kerimcem
19th April 2013, 22:17
LAV only uses full off-host bitstream acceleration (also called VLD), and the HD3650 does not support this. Partial acceleration, which the card may support, is not supported by LAV, and never will be. Way too much effort for way too little gain.
ı understood.. :thanks:
DragonQ
19th April 2013, 23:16
No, he means what he typed out (http://en.wikipedia.org/wiki/Comparison_of_AMD_graphics_processing_units#Radeon_R600_.28HD_2xxx.2C_HD_3xxx.29_Series).
Ah right. Confusing that the short hand for both sets of cards' model numbers are the same!
Aurora13
19th April 2013, 23:24
Unless you have main speakers with very good bass response (meaning, very expensive speakers), I recommend against sending them the LFE signal, as it is likely to generate significant amounts of distortion.
Yes they can handle LFE perfectly and are indeed very expensive. Thats why I use ffdshow audio processor. But would love to have it right in LAV. Is it difficult to implement?
mindbomb
20th April 2013, 16:53
this isn't related to 0.56.2 specifically, but I have a question about lav splitter's default subtitle mode with regards to matroska container.
I noticed that it goes by language preference, then checks for forced, then checks for default. I also realize that vlc and mpc be seem to work like this as well.
What I'm wondering is, why does the default track flag have any bearing in this situation. Isn't the intent of the default track flag just to signify a preferred track, not to automatically have it played?
And if this is not the case, what do you suggest for people who are making mkv files with subtitles? To almost never use the default tag if they don't want subtitles to be displayed?
nevcairiel
20th April 2013, 16:57
Use a "default" flag if you intend the stream to be shown *by default*. Hey it even uses the same word. :)
LAV has a lot of different options to override this behaviour if you wish.
mindbomb
20th April 2013, 17:04
so, what is the distinction between forced and default?
The way I was using the two, I used forced if subtitles were absolutely essential, and I assumed the default tag was somewhat meaningless in the context of subtitles.
The muxing programs makemkv and mkvmerge seem to also throw around the default tag for the first subtitle selected. This seems at odds with how the players actually treat the tag?
nevcairiel
20th April 2013, 17:09
Obviously there is a difference, and if its only to inform the user that this track contains forced subtitles.
Who is to say that full subtitles can't be the default, and forced subtitles are not? Maybe this is what the creator wants to be the default?
The distinction is quite clear to me. Default is whatever the creator of the file wanted to be the default track to be selected, and forced identifies tracks which should always be played otherwise (if default is ignored)
Anyway, i don't make the spec, i only interpret it, this is really irrelevant for this thread.
LAV behaves like every other player in its default mode (and according to how the spec is widely understood), and it has very flexible options to control this if it doesn't suit your needs, so for me, this topic has been over for months already when it came up before.
You apparently know how it behaves, and this is how it will continue to behave, so discussing this is pointless.
If you want to make files, then make them to behave the way you want them to.
sneaker_ger
20th April 2013, 17:37
The distinction is quite clear to me. Default is whatever the creator of the file wanted to be the default track to be selected, and forced identifies tracks which should always be played otherwise (if default is ignored)
We're currently also talking about this topic in the mkvtoolnix thread, but if I'm not confused, your view is wrong from the point of view of the spec. One forced subtitle track is always to be shown. Period. So for Lord of the Rings you have two tracks: one forced track for the Elbish that is always to be shown and one track for all the rest that's already English (but not including the Elbish lines!). If you switch to the "full" English track the forced track should still be displayed. Now this is how I interpret the specs but nobody actually creates files this way, so it is debatable if following this strictly actually makes any sense.
nevcairiel
20th April 2013, 17:40
Its not like any player could actually show two subtitles anyway. :)
The way i see it, the forced track should catch on if the user says "i don't want subs" (they are forced upon him even if he says "no subs", because he is unlikely to speak elvish). If he actually wants subs, he should get whatever is "Default" or matches his language prefs (and due to technical constraints, that track should also contain the forced subs)
This is how LAV implements them as well, it may not be the strictest interpretation of the spec, but because many players lack the ability to even handle two sub streams at the same time, its the most common one.
sneaker_ger
20th April 2013, 17:57
Yes, I know nobody that strictly follows the spec in this regard and that includes myself as well for the reasons you have given. Now, the limitations of DirectShow players are of course problems of the players/framework - Matroska is not limited or connected to DirectShow in any way.
DragonQ
20th April 2013, 18:21
The way i see it, the forced track should catch on if the user says "i don't want subs" (they are forced upon him even if he says "no subs", because he is unlikely to speak elvish). If he actually wants subs, he should get whatever is "Default" or matches his language prefs (and due to technical constraints, that track should also contain the forced subs)
Yep, this is how I've always interpreted it and what makes the most sense to me. Unless it's a foreign film, most people will only want forced subtitles.
cyberbeing
20th April 2013, 20:47
Its not like any player could actually show two subtitles anyway. :)
Well, not yet. ;)
The new subtitle interface has the framework required to support this if desired, but it would require splitter support.
mindbomb
20th April 2013, 23:55
I'll make a thread about this specifically in the subtitles section
glorp
20th April 2013, 23:58
There is another use for "Default": The case where there are multiple sub streams in the same language. Example: regular full subs and SDH subs in english on a title with english audio. Forced means, "you need these even if there is audio in your preferred language". Default means, "these are the ones you want if you want subs on".
zerowalker
20th April 2013, 23:59
Is it possible to make it detect Mpeg.ts text streams?
Those streams that have this Black background, TV subtitles in other words?
I can only get those to work in VLC.
Though i am not sure where the problem lies, if itīs the subtitle filter, or if itīs the splitter etc.
Thanks
woody777
21st April 2013, 01:53
In that case EVR should be doing hardware deinterlacing for you regardless of your decoder. It's probably Windows Media Center's fault. :D
Any idea why EVR isn't doing the deinterlacing?
Qaq
21st April 2013, 07:22
Any idea why EVR isn't doing the deinterlacing?
Because deinterlacing is done already but in software?
Reino
21st April 2013, 11:29
Nev, although resolutions are displayed correctly in the end, why for these Fraps files...
Video: FPS1 640x480 25fps Video: FPS1 1280x960 25fps
... ...
BITMAPINFOHEADER: BITMAPINFOHEADER:
biWidth: 640 biWidth: 1280
...would LAV VD's output pin look like this:
Video: NV12 1024x480 (4:3) 25fps Video: NV12 2048x960 (4:3) 25fps
... ...
BITMAPINFOHEADER: BITMAPINFOHEADER:
biWidth: 1024 biWidth: 2048
nevcairiel
21st April 2013, 13:50
Thats normal, the renderer usually requests the image width to be a power of 2 (or at least aligned to 32 or 64, depending on which renderer is used)
This is done to better suit GPU needs. The concept is called Image Stride (http://msdn.microsoft.com/en-us/library/windows/desktop/aa473780(v=vs.85).aspx)
The actual image width is in rcSource/rcTarget.
Reino
21st April 2013, 14:51
We're learning every day ;). Thanks for the info.
wanezhiling
21st April 2013, 14:54
http://i.imgur.com/WsNY6Ss.png
I wonder why lav(sw/cuvid/qs/cb) outputs a number of 2048x1080 when playing a 1920x1080 file while dxva2n output 1920x1080.
Furthermore, 1440x1080 -> 1536x1080 (http://i.imgur.com/PhwpR3p.png) etc
nevcairiel
21st April 2013, 15:38
Just ignore it, its technical details that i cba to explain. I already outlined the basics of it two posts above, the renderer asks for a image stride, the decoder delivers.
Its totally irrelevant for users to care about.
wanezhiling
21st April 2013, 15:54
Im curious becasue other decoders seems no such difference.:)
Ok ignore it.
wanezhiling
22nd April 2013, 13:57
http://www.sendspace.com/file/i12hxk
Hi nev, do you have a crash too when using ArcSoft DTS decoder (dtsdecoderdll.dll)?
chano22000
23rd April 2013, 15:17
Hi Nevcairiel,
Enabling madVR requires an upgrade from my current Geforce 9300 (integrated in a nForce 730i chipset).
Windows XP does not provide DXVA2. I have therefore no other choice but to go further with Nvidia/CUVID for LAV Video to HW accelerate decoding and deinterlacing.
My HTPC enclosure requires low profile boards. There are in fact no low profile Nvidia board on the market (except a very confidential GTX 650 by Zotac only available is North America, Japan and Australia - older cards are discontinued).
On the other hand there are plenty of providers for the low profile Radeon 7750. According to various HQV 2.0 tests by Anandtech, the HW decoding and deinterlacing by Radeon is qualitatively ahead of what Geforce delivers. Latest video processor since Kepler based boards appears to reach the Radeon quality (except for image improvement features which no one uses from the driver).
It looks like AMD is now pushing Open-CL and their Open Decode API against CUDA and CUVID.
Q : Do you have plans to support Radeon HW acceleration in LAV Video (decoding and deinterlacing) the same way you do it for Nvidia (and Intel).
Thanks a lot for your work !
Kind regards.
nevcairiel
23rd April 2013, 15:57
Windows XP does not provide DXVA2. I have therefore no other choice but to go further with Nvidia/CUVID for LAV Video to HW accelerate decoding and deinterlacing.
You missed a quite obvious choice.
Upgrade to Windows 7.
There will not be any more HW decoders, DXVA2 is just fine.
DragonQ
23rd April 2013, 16:57
I'm surprised anyone would use Windows XP with an HTPC, which seems like the best candidate for the use of DXVA2.
madshi
23rd April 2013, 17:21
It looks like AMD is now pushing Open-CL and their Open Decode API against CUDA and CUVID.
IMHO the AMD Open Decode API is pretty much useless because it doesn't support D3D9 which is what DXVA is based on. So basically in order to use the AMD Open Decode API you have to use D3D10/11, and then you can't use DXVA deinterlacing, and funny enough the Open Decode API doesn't support deinterlacing, either, so as soon as you use the Open Decode API, there's no way to deinterlace anything, unless you copy the decoded frames back to CPU and then back to GPU (ouch).
Btw, does AMD even support OpenCL on XP? I thought the latest drivers dropped support for OpenCL on XP? Not sure, though. In any case, it's really time to upgrade to Windows 7, IMHO...
chano22000
23rd April 2013, 18:04
Nevcairiel, Madshi
Thanks for your both answers. My XP configuration runs so well that I have till now postponed your wise advice !
As my processor is of an older generation, is DXVA2 globally more/less efficient than CUVID in terms of CPU offload when using LAV and madVR ?
Kind regards.
wanezhiling
23rd April 2013, 18:11
DXVA2 native mode is your best choice.
mindbomb
23rd April 2013, 22:58
i have a question about lav video and mpc hc screenshots (with the evr cp renderer).
Does the output format have any bearing on the screenshots, ie, would choosing rgb output increase the quality of the screenshots?
DragonQ
23rd April 2013, 23:16
i have a question about lav video and mpc hc screenshots (with the evr cp renderer).
Does the output format have any bearing on the screenshots, ie, would choosing rgb output increase the quality of the screenshots?
It's probable that LAV Video would be better at converting YCbCr to RGB (due to higher internal bit depth and dithering) than EVR is. Whether that would be noticeable in the resulting output image is an entirely different matter depending on many factors.
Why not try it and compare?
Niyawa
24th April 2013, 00:15
I have a question that I'm almost sure was already asked, but I just need (if possible) a definitive answer. madFlac or LAV FLAC, which one would better handle FLAC itself? I've heard many things about LAV not being able to properly dowxmix FLAC audio (5.1 to 2.0) because it doesn't properly merge the channels. Many others (which I don't remember atm) that are pretty nasty. Is any of this true? The only reason I have madFlac in my guide is because AFAIK is a bug-free component making it safer for use.
cyberbeing
24th April 2013, 02:16
madFLAC is a barebones WYSIWYG implementation.
LAV Audio supports enabling extra features, and requires splitter like LAV Splitter enabled for raw FLAC playback:
Downmixing
Forcing a particular bitdepth output
Audio delay
Adaptive A/V Sync correction
Forcing channel mappings to a standardized layout
Upmixing 1.0 to 2.0 & 6.1 to 7.1
Both should decode FLAC equally well. Use whichever suits your personal preference or needs.
mindbomb
24th April 2013, 02:51
yea, I agree with cyberbeing here.
They are essentially equivalent in quality afaik, but since lav audio has all those extra goodies in terms of options, lav audio comes out on top.
cyberbeing
24th April 2013, 03:45
It really depends. If you don't need the extra features, you could argue that there is no real benefit of using LAV Audio for FLAC. I'd also give madFLAC the edge for raw FLAC playback because it has a source filter. In the past LAV Splitter had rare issues misdetecting unsupported formats as raw FLAC, but that could have long since been fixed for all I know.
jkauff
24th April 2013, 03:54
You missed a quite obvious choice.
Upgrade to Windows 7.
There will not be any more HW decoders, DXVA2 is just fine.
I really like the results I get with Eric Gur's QuickSync decoder. For those of us who can use QS, CUDA, or DXVA2, do you recommend one over another or is it mostly personal preference?
I don't often need de-interlacing, but it would be nice to have support for the QS implementation in LAV.
Niyawa
24th April 2013, 04:07
Thank you all for the answers. It really helped me out in making my decision.
nevcairiel
24th April 2013, 07:21
I've heard many things about LAV not being able to properly dowxmix FLAC audio (5.1 to 2.0) because it doesn't properly merge the channels.
I didn't know madFlac could downmix at all? Or is that argument just flawed?
In any case, downmixing of all formats is the same, its done long after decoding and the mixer doesn't care what format was originally used.
There is one small issue with raw Flac files with special channel layouts which are not handled properly right now (you get the wrong channel layout), but the issue is already in my short-term task list and will be fixed soon.
starla
24th April 2013, 08:07
IMHO the AMD Open Decode API is pretty much useless because it doesn't support D3D9 which is what DXVA is based on. So basically in order to use the AMD Open Decode API you have to use D3D10/11, and then you can't use DXVA deinterlacing, and funny enough the Open Decode API doesn't support deinterlacing, either, so as soon as you use the Open Decode API, there's no way to deinterlace anything, unless you copy the decoded frames back to CPU and then back to GPU (ouch).
You can share resources between DX9, DX10 & DX11. It will be some extra work, but it is doable.
Haven't checked in details, but I would assume there is deinterlace support for D3D11.1 based renderer (of course it is Win 8 only so not any global solution).
madshi
24th April 2013, 10:15
You can share resources between DX9, DX10 & DX11. It will be some extra work, but it is doable.
Sorry, but no, AFAIK it is not possible. You can share RGB resources, but not NV12, I believe. Which is what video decodes to.
Haven't checked in details, but I would assume there is deinterlace support for D3D11.1 based renderer (of course it is Win 8 only so not any global solution).
To my best knowledge, there is no D3D11.1 deinterlacing support. DXVA2 is based on D3D9 NV12 surfaces, which are not shareable with D3D11.1.
nevcairiel
24th April 2013, 10:25
D3D11 also has decoding and video processing support, at least in theory msdn documents it, if it works in practice i couldn't say.
You can QueryInterface a ID3D11VideoDevice from a ID3D11Device, or so MSDN claims.
Of course you can't mix it with a D3D9 DXVA2 decoder, both have to be D3D11.
madshi
24th April 2013, 10:30
Ok, that's news to me. But it seems to be limited to Windows 8? Which makes it pretty limited in usefulness.
nevcairiel
24th April 2013, 10:33
Ok, that's news to me. But it seems to be limited to Windows 8? Which makes it pretty limited in usefulness.
Yes its Windows 8 only, and DX10 seems to have skipped video support, so there is that.
madshi
24th April 2013, 10:47
I really wish Microsoft would make those DX11.1 Windows 8 improvements (3D output via HDMI 1.4, and now those new video related features) available to Windows 7, too. That would make it *SO* much easier for us developers. As it stands right now, I'm not willing to write a special rendering path just for Windows 8. If the same path would support Windows 7, too, that would be a whole different situation.
DragonQ
24th April 2013, 11:29
They might give Windows 7 DirectX 11.1 support eventually. Windows Vista got DirectX 11 via a Platform Update, after all.
Boltron
24th April 2013, 15:26
So my first generation SSD finally died on my HTPC and I need to rebuilt it. I currently run Windows 7 but am wondering maybe I should go with 8 instead. I run 8 on my main PC and everything including MC18, madVR and LAV all work fine. I use an I7 860 and a GTX660ti.
My question then is, from a playback quality perspective, does Win 8 bring anything to the table that may help LAV or madVR or even a HTPC function better? Just to add I don't care for Metro or touch screens or anything like that, I am asking purely from a platform architecture perspective for movie playback.
chuuey
24th April 2013, 15:56
So my first generation SSD finally died on my HTPC and I need to rebuilt it. I currently run Windows 7 but am wondering maybe I should go with 8 instead. I run 8 on my main PC and everything including MC18, madVR and LAV all work fine. I use an I7 860 and a GTX660ti.
My question then is, from a playback quality perspective, does Win 8 bring anything to the table that may help LAV or madVR or even a HTPC function better? Just to add I don't care for Metro or touch screens or anything like that, I am asking purely from a platform architecture perspective for movie playback.
I don't think win8 is worth installing just for movie playback, win7 is just fine. Didn't hear about any revolutiony features added to 8 which would make it a worthwile upgrade.
dukey
24th April 2013, 16:03
i really hate windows 8
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.