View Full Version : LAV Filters - DirectShow Media Splitter and Decoders
xiulet
23rd September 2011, 14:51
Their API is useless. It doesnt allow interoperability with D3D, which would be required for deinterlacing. just for decoding, its not worth implementing
uff, opencl is going to slow , cuda implementation is so far from opencl :( . may be in near future but i don't know.
ad1
nevcairiel
23rd September 2011, 14:54
I wish people would finally understand this...
It has nothing to do with CUDA or OpenCL.
The video decoder is completely separate, the API to access it is called CUVID. It just piggy-backs on CUDA so NVIDIA didn't need to invent a completely new API.
The OpenCL Standard will NEVER include a video decoder!
AMDs API does something similar, they piggy-back on the OpenCL API to expose their decoder. But its not a OpenCL Decoder! Its a AMD proprietary decoder, it has nothing to do with the OpenCL Standard.
Only AMD is to blame for not offering a video decoder interface similar to NVIDIAs. It has nothing to do with OpenCL.
mindbomb
23rd September 2011, 15:05
Since madshi brought it up before, someone explain to me again why they want wmv9 instead of using the MS decoder in the first place. :)
so, we can use lav video's rgb conversion and, in the future, lav video's yadif with it.
nevcairiel
23rd September 2011, 15:07
Converting interlaced YUV to RGB is a bad idea, it won't deinterlace properly anymore then. :)
mindbomb
23rd September 2011, 15:16
i didn't know that. kind of a downer.
Thunderbolt8
23rd September 2011, 15:48
Since madshi brought it up before, someone explain to me again why they want wmv9 instead of using the MS decoder in the first place.can the MS decoder decode really everything? somtimes, certain BBC 1080i stuff is not decoded properly on my PC, there is no picture (not sure whether this is solely due to the MS decoder or combination of LAV splitter and MS decoder or win 7 preferred filter settings (even though the MS decoder is set to be preferred there))
nevcairiel
23rd September 2011, 15:52
Its the same decoder. Everythign comes down to the WMV9 DMO. The MS decoder is just a wrapper around the exact same DMO decoder that ffdshow uses and LAV Video would use.
It may have been a bug in LAV Splitter, i fixed some things recently with some samples.
Thunderbolt8
23rd September 2011, 16:06
but if its the same decoder, why would some people prefer one or the other decoder? are there any advantages or disadvantages of that wrapper?
nevcairiel
23rd September 2011, 16:07
Thats what i am asking. :p
The only reason i can come up with is the possiblity to use future software deinterlacing in LAV Video, followed by RGB conversion. But until deinterlacing is implemented, it won't do any good.
SamuriHL
23rd September 2011, 17:49
Sooooooo, work on deinterlacing first? :D
nevcairiel
23rd September 2011, 18:05
Using ffmpegs yadif should be done in a matter of a day or so, i bet. It seems so super easy!
Anyhow, i should focus on getting this release ready, or it'll never be done.
SamuriHL
23rd September 2011, 18:09
Well, if you add YADIF to LAV Video, then we can push for LAV Video to replace ffdshow in MC16. That'd make me very happy. It's being resisted right now because of the deinterlacing issue. (Right, jmone?? :D) That would really rock.
Xaurus
23rd September 2011, 18:26
Using ffmpegs yadif should be done in a matter of a day or so, i bet. It seems so super easy!
Anyhow, i should focus on getting this release ready, or it'll never be done.
I have not really understood how Avisynth works - is it possible to implement something like QTGMC? As far as I understand it's based on YADIF?
nevcairiel
23rd September 2011, 18:39
QTGMC is too slow for real-time processing, last i checked.
Its also only available through AviSynth. I have no concrete plans to do that, maybe one day.
VipZ
23rd September 2011, 19:52
Since madshi brought it up before, someone explain to me again why they want wmv9 instead of using the MS decoder in the first place. :)
Since I think I was one of the 1st to bring it up I guess I need to take the task :)
EVO, While the MS decoder works with this, it only does so within MPC and with FTC on, and with basic EVR. With say PotPlayer and maybe Zoom Player as well, FTC option doesn't exist so EVO playback isn't possible without switch filters. I couldn't get MadVR to work with this as has same issues as with FTC off.
WMV3, I think in general ffmpeg has some issues here and there with MS formats, I assume it would work in same way as ffdshow where while it uses MS DMO, it doesn't use the post processing rubbish so it gives correct output without the need to mess around with 5yr old apps or dig in registry.
Final one is just easier to control the filter environment with only having to deal with one decoder with unified output settings, this will be mostly useful for stream switching and where an extra filter such as ffdshow raw or VSFilter is also used.
Hope that was good enough ;)
jmone
23rd September 2011, 21:51
:angry:Well, if you add YADIF to LAV Video, then we can push for LAV Video to replace ffdshow in MC16. That'd make me very happy. It's being resisted right now because of the deinterlacing issue. (Right, jmone?? :D) That would really rock.
Yup! Correct on all counts, I don't see much benefit in pushing to replace FFDSHOW with LAVVIdeo if we need to then use FFDSHOW anyway to get SW Deinterlacing.
so....Nevcairial great news on YADIF integration and I hope is is a "easy" as you say!
Xaurus
23rd September 2011, 22:08
QTGMC is too slow for real-time processing, last i checked.
Its also only available through AviSynth. I have no concrete plans to do that, maybe one day.
Maybe this can help you change your mind? :D
http://forum.doom9.org/showpost.php?p=1516459&postcount=817
CruNcher
23rd September 2011, 22:32
Ehh yeah but what do you lose changing the preset and how does the Power Consumption vs Result in the end looks like compared to Hardware ?
This is much to basic without seeing some numbers and direct compare of the efficiency to say anything, just a hey look i can peg my cores and get a result without knowing how the difference to a full Hardware setup is seems just crazy.
SEt
23rd September 2011, 22:48
CUDA is not useless in video decoding - it's the best way to readback the frame from video memory. ^_^
As for YADIF - it's so ugly I hope no one would use it. And yes, QTGMC not as slow as you think. I can get realtime even with 1440x1080 @59.94 (with "Super Fast" preset - no YADIF inside) on my not-so-new hardware (i7-930).
mzso
23rd September 2011, 23:10
Their API is useless. It doesnt allow interoperability with D3D, which would be required for deinterlacing. just for decoding, its not worth implementing
Couldn't a deinterlacer run atop OpenCL?
xiulet
23rd September 2011, 23:23
I wish people would finally understand this...
It has nothing to do with CUDA or OpenCL.
The video decoder is completely separate, the API to access it is called CUVID. It just piggy-backs on CUDA so NVIDIA didn't need to invent a completely new API.
The OpenCL Standard will NEVER include a video decoder!
AMDs API does something similar, they piggy-back on the OpenCL API to expose their decoder. But its not a OpenCL Decoder! Its a AMD proprietary decoder, it has nothing to do with the OpenCL Standard.
Only AMD is to blame for not offering a video decoder interface similar to NVIDIAs. It has nothing to do with OpenCL.
ok, i understand :)
i read that ati provide an extension to opencl called OpenVideoDecode API (http://www.rage3d.com/board/showthread.php?t=33976085) that is similar to cuvid, but may be it's not enough mature right now.
:thanks: for your explanation
ad1
ForceX
24th September 2011, 00:43
The "memory not being released upon closing a video" bug is back again in roytam's latest build, and it happens with all the renderers. :/
pirlouy
24th September 2011, 01:25
The only reason i can come up with is the possiblity to use future software deinterlacing in LAV Video, followed by RGB conversion. But until deinterlacing is implemented, it won't do any good.
I should miss something but I don't get it.
In the past, you said the MS decoder did a good job in term of deinterlacing. So why people would use MS decoder then go back to LAV for deinterlacing ??
For me, I prefer ffmpeg to do the decoding, and if it's not possible with ffmpeg for now, I'd like to use (future) LAV Yadif deinterlacing (but I've never had a interlaced video).
Portioli
24th September 2011, 02:55
i am using lav video and ffdshow raw video filter for double frames [yadif] + MAdVR, with no problem,
i dont understand why some people are still complaining?
ForceX
24th September 2011, 03:32
I should miss something but I don't get it.
In the past, you said the MS decoder did a good job in term of deinterlacing. So why people would use MS decoder then go back to LAV for deinterlacing ??
For me, I prefer ffmpeg to do the decoding, and if it's not possible with ffmpeg for now, I'd like to use (future) LAV Yadif deinterlacing (but I've never had a interlaced video).
I think he said MS decoder works best for decoding interlaced VC-1 content, not deinterlacing. MS's decoder has a basic blend deinterlacer which is basically crap, and I think disabled by default. The Adaptive deinterlacer in GPUs is virtually the best you can get in terms of quality and speed.
nevcairiel
24th September 2011, 07:48
As for YADIF - it's so ugly I hope no one would use it. And yes, QTGMC not as slow as you think. I can get realtime even with 1440x1080 @59.94 (with "Super Fast" preset - no YADIF inside) on my not-so-new hardware (i7-930).
YADIF looks better then the typical other options offered by ffdshow for example (without going into AviSynth). Personally, i haven't seen a HD capable real-time algorithm that looks better, and still runs on a non-highend CPU. I still prefer the adaptive deinterlacing in the GPU, however. This is just a software fallback when thats not available.
Anyhow, i will not implement AviSynth support any time soon.
If someone provides a standalone implementation of such an algorithm without needing avisynth (preferably as a libavfilter plugin), i would be more open to evaluate the algorithm.
Besides that, QTGMC was designed for post-processing during encoding. Like many have said, its not meant for real-time playback. It may work on HD material on your 930 or my 2600k, but those are not typical HTPC CPUs. I want to provide a setup that works on a HTPC, if you want extreme processing, you're free to use ffdshow with a full AviSynth setup (or just watch through a AviSynth script to begin with)
In the past, you said the MS decoder did a good job in term of deinterlacing. So why people would use MS decoder then go back to LAV for deinterlacing ??
I did not say anything like that. The MS decoder doesn't typically deinterlace at all (you can make it to, but even then its fairly low quality). Its good for decoding, but thats it.
nevcairiel
24th September 2011, 13:35
Hi guys,
http://files.1f0.de/lavf/LAVFilters-0.35-cuvid.zip
This is my first "official" test version of LAV Video with integrated CUVID decoder.
If you dare to test it, please report any issues you find with it, especially things that work in LAV CUVID, but don't work anymore!
This version features H264, MPEG2 and VC1 CUVID decoding. MPEG4 ASP decoding is not available at this time because i don't think its really worth it.
It should automatically fallback to software decoding if you play H264 4:4:4 or 10bit material, as well as MPEG2 4:2:2
So as always, let me know about problems you find.
PS:
Note that VC-1 is still disabled by default, and if you want to use CUVID for it, you should enable it on the Formats tab. :)
jmone
24th September 2011, 14:15
Nevcairiel - good stuff, ran through my test files using CUVID and no issues at all (using MC16 HQ + Additional Filters). Is there a way of telling what decoder is being used (eg CUVID / libavcodec)?, also for me VC-1 was enabled by default.
Thanks
Nathan
nevcairiel
24th September 2011, 14:21
There is no indicator right now. I've been thinkink about how to show one.
SamuriHL
24th September 2011, 14:22
There is no indicator right now. I've been thinkink about how to show one.
OH OH I know I know! With the tray icon color! :D No? LOL!
Xaurus
24th September 2011, 14:35
There is no indicator right now. I've been thinkink about how to show one.
Color coded systray icon like CoreAVC?
Andy2222
24th September 2011, 14:48
Hi Nevcairiel,
i wonder if u could add a "file input buffer size" option for the source-splitter filter? I use FTPDrive to map a ftpserver directly as filesystem and play, stream directly from it. Higher input buffers helps to reduce streaming problems during playback and improves seeking behavior in this case. I used sizes beetwen 2-64MB under the haali splitter and would like to switch over to LAVFilters.
thx Andy
pirlouy
24th September 2011, 15:26
OH OH I know I know! With the tray icon color! :D No? LOL!
Maybe Nevcairiel does not like tray icons, but personally, I'd love if they were a tray icon for LAV splitter, another for LAV video and another for LAV Audio.
SamuriHL
24th September 2011, 15:40
Nev already added the icons for the tray icons. That's why I was saying that sarcastically. AFAIK, that's planned. I think he was referring to doing something in a shorter term. :)
mzso
24th September 2011, 15:53
Maybe Nevcairiel does not like tray icons, but personally, I'd love if they were a tray icon for LAV splitter, another for LAV video and another for LAV Audio.
I don't think cluttering the notification area is a particularly good idea. Also I don't pay attention to the notification area while dealing with the media player. I don't think there's a way to make it as convenient as it when its a separate filter. You just pressed a key to view what filter was loaded.
nevcairiel
24th September 2011, 15:56
I just want something so that you can actually find out if its working, like to check after configuration. I'll probably add a small thing on the properties page somewhere.
If you're using EVR-CP in MPC-HC, it'll actually show DXVA in the status bar when CUVID is active, as a small indicator. Doesn't seem to show with other renderers.
mzso
24th September 2011, 20:42
Their API is useless. It doesnt allow interoperability with D3D, which would be required for deinterlacing. just for decoding, its not worth implementing
Why is that? Interlaced content is not too common for me. With LAV CUVID the decoding to the gpu things got a lot smoother. I think I got some improved seek performance. I don't have to stop something cpu intensive to watch a movie.
The only interlaced content I tried with CUVID was extras on one of the blu-rays. (I couldn't remember anything else)
I just want something so that you can actually find out if its working, like to check after configuration. I'll probably add a small thing on the properties page somewhere.
If you're using EVR-CP in MPC-HC, it'll actually show DXVA in the status bar when CUVID is active, as a small indicator. Doesn't seem to show with other renderers.
Couldn't the filter change its name that shows up when its loaded in a player?
nevcairiel
24th September 2011, 20:44
Why is that? Interlaced content is not too common for me. With LAV CUVID the decoding to the gpu things got a lot smoother. I think I got some improved seek performance. I don't have to stop something cpu intensive to watch a movie.
Well, i just won't implement it only for simple decoding. Its not worth my time, if anything. If someone else wants to contribute a decoder component, feel free.
If i should ever switch to an ATI card, i would want hardware deinterlacing, because decoding i can already do without any extra coding work, on the CPU.
Couldn't the filter change its name that shows up when its loaded in a player?
Apparently changing the name on runtime causes some other components to go bananas, because they use the name to keep track of things.
I tried it with LAV Splitter Source before, instead of showing only the filename i wanted it to show "LAV Source (filename)". Caused breakage, alot of it. :p
jmone
24th September 2011, 22:34
There is no indicator right now. I've been thinkink about how to show one.
How about adding something to the Video Stream name, that way you can see it in players without leaving playback.
jmone
24th September 2011, 22:42
FYI: DVB-T (MPEG-2) is broken when using the CUVID option in LAVideo, it does play but typically the top 1/5th of the screen is OK then some corruption, but most of the screen is black. It is fine (apart from no deinterlacing) with CUVID off.
Edit - FYI this is with TS On in MC16 so it is the "playback" of the JTV file.
jmone
24th September 2011, 22:52
I should say that the Standalone LAVCUVID has no issue, it is only broken in LAVVideo. I've posted a screen shot over in the MC16 thread
asasadad_1
25th September 2011, 04:51
some interlaced mpeg-2 files works well via LAV CUVID Decoder(0.13),but many glitches via LAV Video Decoder 0.35(CUVID adaptive 50p/60p).
here is a sample (http://uploading.com/files/em16b78d/CCTV-HD_SAMPLE.ts).
nevcairiel
25th September 2011, 07:34
Specify what you mean with "glitches"? :)
upyzl
25th September 2011, 07:36
Bug report to RV40 Playback
I find that LAV Video 0.35 couldn't play smoothly
but MPC - RealVideo Decoder could play smoothly (I use MPC-HC 1.5.3.3733; right click --> Filters can find which filters are using when playing)
settings(the only one I changed):
http://i.imgur.com/2hamZ.png
sample:
http://www.mediafire.com/?prd61h7axoh1rlo
(Please compare the cloud moves when use different decoder)
roytam1
25th September 2011, 08:31
smells to me like a bad mux.
06_taro
25th September 2011, 12:25
DivX H.264 Decoder can decode 4:2:2 AVC for both 8 bit and 10 bit.
betaking
25th September 2011, 12:37
DivX H.264 Decoder can decode 4:2:2 AVC for both 8 bit and 10 bit.
use dxva by divx h.264 Decoder?:eek:
nevcairiel
25th September 2011, 13:48
Here is another test build of the integrated CUVID decoder.
It mostly includes fixes and performance enhancements.
http://files.1f0.de/lavf/LAVFilters-0.35-cuvid2.zip
I was unable to reproduce any issues with MPEG2 with that version, let me know if problems still occur.
betaking
25th September 2011, 13:57
Here is another test build of the integrated CUVID decoder.
It mostly includes fixes and performance enhancements.
http://files.1f0.de/lavf/LAVFilters-0.35-cuvid2.zip
I was unable to reproduce any issues with MPEG2 with that version, let me know if problems still occur.
To nevcairiel,use LAV Splitter(mp4) to decoder some mpeg4 files seek not ok! but stable 0.35 is ok!
CruNcher
25th September 2011, 15:39
DivX H.264 Decoder can decode 4:2:2 AVC for both 8 bit and 10 bit.
Sure it can it's based on Mainconcepts/Elecards Core and nope it doesn't support DXVA as well no one does and this is not a question of DXVA support but Hardware Vendor support.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.