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

NikosD
5th March 2014, 09:27
I tested again my whole 600 samples collection with latest nightly MPC-HC v1.7.3.94 x64 (LAV internal 0.61.0) on Intel signature system.

I can say for sure for the first time that DXVA maturity of drivers (Intel) and developer's capabilities (FFmpeg, Nevcairiel) have done amazing things!

No artifacts at all, unbelievable flawless decoding and playback even of the most demanding 4K120 fps clips.

I can report only a minor issue with a "ghost" image appearing at the beginning of this clip, when you seek backwards to the black screen, after the initial decoding.

At normal playback without seeking, plays fine displaying a black screen.

http://www.techpowerup.com/downloads/530/hd-dvd-demo-1080p-vc-1-ddplus-5-1/mirrors

One general issue is the inability of MPC-HC to decode in HW various WMV3 and VC-1 clips for all platforms (Intel, Nvidia, AMD).
It falls back to SW.

I don't know why, all that I can say is that LAV external 0.61.0 has no such issues.

Sorry for bugging.

QS decoder nowadays has only 2 advantages.

If you have a Sandy processor, it's the only way to HW accelerate VC-1/WMV3 clips, because Intel hasn't implemented a proprietary DXVA HW decoder for those codecs in Sandy, yet.
I have reported this issue to Intel Support forums and I'm looking forward for the next driver release hoping to include it.
For Ivy/ Haswell the issue has been resolved.

The next reason that someone could use QS decoder is in case he has a dGPU as primary - for example for games - but he wants to decode/ playback movies with iGPU (Intel).
Then QS decoder is a nice solution to have both - Gaming in dGPU and playback decoding in iGPU.

For all the other cases - like for example my Haswell iGPU only configuration - go for a DXVA (native) configuration of your favorite player/ decoder.

wanezhiling
5th March 2014, 09:58
Maybe it is because MPC-HC doesn't enable WMV (http://i1.tietuku.com/ade527715d679b55.png) by default.

NikosD
5th March 2014, 10:04
Great!
Thanks, that was it.

Everything is perfect now.

Kurtnoise
6th March 2014, 11:21
why you're posting this in this thread ?

There is a news sub-forum for that...

nevcairiel
6th March 2014, 11:23
Nothing of value for LAV in there anyway.

nevcairiel
7th March 2014, 11:16
LAV Filters 0.61.1

LAV Splitter
- NEW: Support for opening "icyx://" stream URLs
- Fixed: Opening of some Blu-ray discs would take several minutes and could hang the player.

LAV Video
- Fixed: Aggressive Deinterlacing is no longer applied to soft-telecined content, which caused severe playback issues.


Download: Installer (both x86/x64) (http://files.1f0.de/lavf/LAVFilters-0.61.1.exe) -- Zips: 32-bit (http://files.1f0.de/lavf/LAVFilters-0.61.1.zip) & 64-bit (http://files.1f0.de/lavf/LAVFilters-0.61.1-x64.zip)

Only a few more fixes that I didn't want to leave in the repository until the next major release, as they can really improve the experience in certain configurations.
In case you missed the 0.61 release from earlier this week, the notes are here (http://forum.doom9.org/showthread.php?p=1671812#post1671812).

Have fun!

P.J
7th March 2014, 21:28
Thanks for the new verison :)

Is there anyway to force LAV not to use the Hardware De-interlacing? :(

sneaker_ger
7th March 2014, 22:21
Yes, simply untick the hardware deinterlacing check box and/or enable software deinterlacing in LAV Video. If you want to force off the (renderer) deinterlacing completely set "Deinterlacing Mode" to disabled. Some renderers (madVR) have options to turn their own deinterlacing off, too.

P.J
8th March 2014, 00:40
Yes, simply untick the hardware deinterlacing check box and/or enable software deinterlacing in LAV Video. If you want to force off the (renderer) deinterlacing completely set "Deinterlacing Mode" to disabled. Some renderers (madVR) have options to turn their own deinterlacing off, too.

There's no hardware deinterlacing check box. If I enable software deinterlacing YADIF in LAV Video, it still doesn't use it.
No, I don't wanna completely disable De-interlacing Mode. In PotPlayer, I can :(

wanezhiling
8th March 2014, 00:56
1. YADIF won't work in dxva2n mode.
2. You use LAV in PotPlayer? Then disable PotPlayer's built-in video processing filter.

Nevilne
8th March 2014, 02:49
So I've installed 0.61.1, noticed that watching avisynth scripts works terrible with lav-potplayer-madvr, installed 0.60 and can't open .avs anymore??
Installing ffdshow and ticking avisynth and raw video does nothing. Ok, back to 0.61.1, installed with installer:

With 0.61.1-potplayer-madvr i have to wait 5 seconds for video to start after every unpause. But it's fine with mpc-hc and madvr or in potplayer with evr-cp.

Now, it's kinda hard to see what's the problem is out of madvr/lav/potplayer, as I updated them all at once and can't revert to previous lav version, but:

When I use mpc-hc there's a lav video decoder in filter list (lav splitter-lav video-madvr), but in potplayer it's just splitter and madvr (and yes it plays video).
After i switch to evr-cp lav video appears and 'delay after resume' is gone. after i switch back to madvr lav video stays and 'delay after resume' is still gone.
If i force lav video to 'preferred' in potplayer, it loads lav video and there's no 'delay after resume'.

Also, potplayer uses async source+lav splitter for avs unless I force lav splitter source, although it's configured to use lav splitter source for everything.

Don't know what to make out of all this really but I hope there's a resolution.

Asmodian
8th March 2014, 04:21
How does it work in MPC-HC? That sounds like a PotPlayer issue not LAV's.

nevcairiel
8th March 2014, 08:49
Sounds like you enabled madVR's decoders. If LAV Video isn't even used, and even more, the issue goes away when its used, its definitely not a LAV issue.

NikosD
8th March 2014, 17:02
I want to ask a little more technical question about HW de-interlacing and LAV Video options.

There is an option of HW de-interlacing activated only using QuickSync or NVCUVID, called Adaptive HW deinterlacing.

Is the algorithm used by this option, different/ better than the default HW algorithms selected automatically by EVR/ EVR-CP when using DXVAn for Nvidia and Intel HW decoders ?

The comparison should be CUVID vs DXVAn for Nvidia regarding HW deinterlacing algorithms and QS vs DXVAn for Intel.

Not Nvidia vs Intel.

nevcairiel
8th March 2014, 17:05
Its the same deinterlacing algorithm, just performed by the decoder immediately after decoding instead of the renderer later - but otherwise exactly the same GPU deinterlacing.
Both the CUVID library and Eric's QuickSync Decoder offer a simple option to turn it on, so it was trivial to add it - and it can be useful if you want to do post-processing on the image, or for transcoding.

In theory it could also be implemented for DXVA2-CB, but its quite a lot of effort and IMHO not generally worth it.
For DXVA2-Native it doesn't make any sense, since you cannot use it for post-processing or transcoding anyway, and the renderer comes immediately after the decoder.

NikosD
8th March 2014, 17:12
Thanks

P.J
8th March 2014, 19:49
1. YADIF won't work in dxva2n mode.
2. You use LAV in PotPlayer? Then disable PotPlayer's built-in video processing filter.

1. I don't use DXVA2n 2. No, I use MPC-HC with LAV.
I have no problem in PotPlayer since I can select HW/SW de-interlacing method there.
And I don't use LAV with PotPlayer. I want to have software de-interlacing with LAV+MPC-HC

NikosD
8th March 2014, 19:54
If you want SW de-interlacing you have to forget HW decoding too.

You have to use SW decoding for SW deinterlacing.

So, put in hardware decoder option "None" and then Enable YADIF.

You will have SW decoding and SW deinterlacing, although I really don't understand why you want SW deinterlacing.

All of my clips tested with HW deinterlacing look better than YADIF for all three HW decoders (Intel, Nvidia, AMD)

sneaker_ger
8th March 2014, 20:05
If you want SW de-interlacing you have to forget HW decoding too.

You have to use SW decoding for SW deinterlacing.

No, you don't. Only DXVA2 native doesn't work with sw deinterlacing in LAV Video.

NikosD
8th March 2014, 20:11
So if you select DXVA-CB or QS for Intel and NVCUVID for Nvidia you can have SW de-interlacing ?

I'll try it.

I always use DXVAn for HW decoding.

UPDATE:

Yes, SW deinterlacing works for both DXVA-CB and QS.

DragonQ
8th March 2014, 20:12
I really don't understand why you want SW deinterlacing.

All of my clips tested with HW deinterlacing look better than YADIF for all three HW decoders (Intel, Nvidia, AMD)
Depends on your hardware. I highly doubt a 5 year old nVidia/AMD/Intel card has the same deinterlacing algorithm as a current model.

Also, if you have a really crap GPU then using software deinterlacing can take offload some of the burden to the CPU. I agree that hardware deinterlacing is generally better though.

P.J
8th March 2014, 20:23
Ok, just found the issue and it's because of playing a 1080i H.264 4:2:2 video.
LAV makes MPC-HC to encode via CPU (correct) but de-interlace via GPU!
And nothing lets me to change HW de-interlacing to SW/QS de-interlacing for that file.

NikosD
8th March 2014, 20:25
Depends on your hardware. I highly doubt a 5 year old nVidia/AMD/Intel card has the same deinterlacing algorithm as a current model.


I'll check my 7 year old Radeon 3650 (UVD+) card against SW de-interlacing on some difficult H.264 and VC-1 interlaced clips and I'll tell you.

nevcairiel
8th March 2014, 20:29
Ok, just found the issue and it's because of playing a 1080i H.264 4:2:2 video.
LAV makes MPC-HC to encode via CPU (correct) but de-interlace via GPU!

Are you sure you enabled YADIF Software Deinterlacing in LAV Video? It supports deinterlacing 4:2:2 too.

P.J
8th March 2014, 20:33
Are you sure you enabled YADIF Software Deinterlacing in LAV Video? It supports deinterlacing 4:2:2 too.

Yes, no problem with MPEG2 1080i 4:2:2 but H.264 1080i 4:2:2
QS/CUDA de-interlacing methods don't work for both too.

nevcairiel
8th March 2014, 20:34
QS/CUDA only works if the hardware decoder for those is used as well, which is not compatible with 4:2:2 in general.
How do you know its not working? I just tested such a file, and it deinterlaces fine.

Note that it only deinterlaces 8-bit, if you are using 10-bit 4:2:2 videos, you're out of luck.

P.J
8th March 2014, 20:47
QS/CUDA only works if the hardware decoder for those is used as well, which is not compatible with 4:2:2 in general.
How do you know its not working? I just tested such a file, and it deinterlaces fine.

Note that it only deinterlaces 8-bit, if you are using 10-bit 4:2:2 videos, you're out of luck.

Oh yes, it's 10bit H.264 1080i 4:2:2, HW Nvidia GT640 can de-interlace it but SW YADIF can't.
Any chance to add SW Motion/Vector adaptive instead of YADIF?

nevcairiel
8th March 2014, 20:49
In theory YADIF supports those, maybe I can hook that up for a future version.
But for now, no deal.

P.J
8th March 2014, 20:50
:goodpost:

Any chance to add SW Motion/Vector adaptive instead of YADIF?

nevcairiel
8th March 2014, 20:51
If you provide a patch to do so, sure.

If you want better quality deinterlacing, let your GPU do it.

NikosD
8th March 2014, 21:00
@nev

I found out a strange behavior of DXVA today.

Using this (http://www.sendspace.com/file/fbga5a) sample with MPC-HC latest nightly (LAV internal 0.61.0) in DXVA native mode with various HW decoders from UVD2.2 up to Haswell QS3, it dropped frames after seeking - back and forth - even with Haswell!

Changing mode to DXVA-CB, even with slower decoders like VP5 or Sandy QS1, it didn't drop a lot of frames or even zero!

How is this possible ?

nevcairiel
8th March 2014, 21:04
Seeking works in mysterious ways.

(How would I know why your system does what it does? Dropped frames means the decoder did its job, but the renderer didn't like it for reasons unknown.)

NikosD
8th March 2014, 21:11
I meant if you could test it yourself and find out same results, in order to exclude my system's strange behavior.

The renderer was the default EVR-CP in all times.

I always have dropped frames in slow decoder situations, when the decoder is not fast enough for the content.

Which means DXVAn slower than DXVA-CB for the same decoder, which is not possible.

NikosD
9th March 2014, 08:55
If you still have a Sandy CPU, I tested iGPU using DXVAn under Win 8.1 using latest drivers 3347 and found out a few clips with small artifacts happening after the first second of the clips.

Two samples with artifacts:

H.264 progressive (http://www.sendspace.com/file/ma8csh)

H.264 interlaced (http://www.sendspace.com/file/pa59zq)

NikosD
9th March 2014, 14:11
Depends on your hardware. I highly doubt a 5 year old nVidia/AMD/Intel card has the same deinterlacing algorithm as a current model.


I tested my Radeon 3650 (UVD+) and it definitely looks better than YADIF in VC-1 interlaced content and very similar to Radeon 5750 (UVD2.2).

I don't know if Radeon 7000 series or Kaveri have changed their algorithms regarding DI or maybe newer drivers.

I have to admit that I had a not good experience using latest nightly of MPC-HC continuously crashing all my DTS audio samples!, so I couldn't test all of my interlaced clips.

I can't figure out why.

mhourousha
10th March 2014, 03:44
QS decoder nowadays has only 2 advantages.
If you have a Sandy processor, it's the only way to HW accelerate VC-1/WMV3 clips, because Intel hasn't implemented a proprietary DXVA HW decoder for those codecs in Sandy, yet.
I have reported this issue to Intel Support forums and I'm looking forward for the next driver release hoping to include it.
For Ivy/ Haswell the issue has been resolved.
The next reason that someone could use QS decoder is in case he has a dGPU as primary - for example for games - but he wants to decode/ playback movies with iGPU (Intel).
Then QS decoder is a nice solution to have both - Gaming in dGPU and playback decoding in iGPU.
For all the other cases - like for example my Haswell iGPU only configuration - go for a DXVA (native) configuration of your favorite player/ decoder.
My HD4000 has decode error in WMV3 too(DXVA2n).It due to some issues in the VC1_VLD2010 maybe,the QS use VC1_VLD_2_ClearVideo instead and everything is OK.

NikosD
10th March 2014, 06:40
Why don't you post a sample of the decoding error ?

mhourousha
10th March 2014, 15:37
Why don't you post a sample of the decoding error ?
error happened in all wmv3 samples I tested,for example,the'MP10 Digital Life 1080/24p-10Mbps'clip you provided.All wmv3 clips show a single-colored image only.
for VC-1,some color error or fliker occurred in the first few seconds,then everything is OK.
Driver version is 15.33.14.3412

NikosD
10th March 2014, 17:36
I have tested with signature system more than 100 samples of VC-1 (progressive & interlaced) and WMV3 clips (in .wmv and .mkv formats) and I can say for sure that the decoding is perfect.

To be honest I thought that Ivy has similar QuickSync ASIC with Haswell, I can't think of a good reason of bad decoding except faulty driver settings/ system of your side.

Unless I'm wrong and Ivy has problems with VC1_VLD2010 (I don't think so), but I don't have an Ivy to test it myself.

nevcairiel
10th March 2014, 18:02
If the driver exposes support for VC1_VLD2010, then it should work - or if it doesn't, complain to Intel to disable it. :)
I'm assuming you are using the latest version of LAV, right? A lot of stuff changed recently to fix decoding on Intel in this mode.

My laptop has a HD4000, I can probably try myself at some point.

jkauff
11th March 2014, 00:47
Speaking of the latest version of LAV, do the MPC-HC nightlies keep up with your changes pretty well, or should I download the latest and set it up as external?

mhourousha
11th March 2014, 01:18
If the driver exposes support for VC1_VLD2010, then it should work - or if it doesn't, complain to Intel to disable it. :)
I'm assuming you are using the latest version of LAV, right? A lot of stuff changed recently to fix decoding on Intel in this mode.
My laptop has a HD4000, I can probably try myself at some point.
yes, I use the latest version of LAV for testing.OS is win7
I wonder is there any chance for creating dxva device with VC1_VLD_2_ClearVideo instead of VC1_VLD2010?the DXVAChecker show that the QS use the former and everything is OK.

turbojet
11th March 2014, 06:32
Is it possible to have 2 separate 32 bit installs of lav video with different settings?

nevcairiel
11th March 2014, 07:40
I wonder is there any chance for creating dxva device with VC1_VLD_2_ClearVideo instead of VC1_VLD2010?the DXVAChecker show that the QS use the former and everything is OK.

Its impossible, it works completely differently, and its not documented how.

Is it possible to have 2 separate 32 bit installs of lav video with different settings?

There is no support for such a thing in LAV, you can of course try to hack it together manually by re-importing settings into the registry automatically or something like that.

turbojet
11th March 2014, 08:20
Originally Posted by turbojet View Post
Is it possible to have 2 separate 32 bit installs of lav video with different settings?
There is no support for such a thing in LAV, you can of course try to hack it together manually by re-importing settings into the registry automatically or something like that.

I've tried the registry hacking but that only works if there's no decoder process. The goal is to gpu decode for encoding and cpu decode for playback in potplayer, lav video is a must for playback because it's the only decoder I know that supports repeat field first. I know I could achieve this by switching to mpc-hc but would rather not. Is there a hidden way to use a non-registered lav for playback in a player?

nevcairiel
11th March 2014, 08:26
Even if its not registered, it reads its settings from the registry.

NikosD
11th March 2014, 10:37
yes, I use the latest version of LAV for testing.OS is win7
I wonder is there any chance for creating dxva device with VC1_VLD_2_ClearVideo instead of VC1_VLD2010?the DXVAChecker show that the QS use the former and everything is OK.

Did you try Microsoft's decoders or PotPlayer ?

nevcairiel
11th March 2014, 10:57
I tested LAV 0.61.1 on my Laptop with a HD4000 using the 3412 driver, and everything works perfectly.
I can only conclude that you're either using an old version of LAV, or not LAV at all, or who knows what else.

mhourousha
11th March 2014, 17:05
I tested LAV 0.61.1 on my Laptop with a HD4000 using the 3412 driver, and everything works perfectly.
I can only conclude that you're either using an old version of LAV, or not LAV at all, or who knows what else.
http://i1.tietuku.com/93262a9b708b9e1e.png
http://i1.tietuku.com/8863f27c4f71da89.png
:(

NikosD
12th March 2014, 21:43
@nev

Why do you need SSE2 as mandatory for LAV filters ?
Is this so important, or is it so much faster ?

AMD Athlons, even the most powerful ones like AthlonXP 3200+ don't have SSE2, only SSE.
AMD decided to put SSE2 in Athlon64 CPUs.

Couldn't you enable a different optimized path for SSE2, without dropping support for SSE or older ?