Log in

View Full Version : LAV Filters - DirectShow Media Splitter and Decoders


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 [114] 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511

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.