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

DragonQ
13th January 2012, 12:24
What deinterlacing does EVR use though? It famously has no options in most media players and the highest quality vector adaptive deinterlacing within CUDA is easily the best I've tried.

nevcairiel
13th January 2012, 13:16
It should use exactly the same. Its easy enough to compare with some artificial tests like the Cheese Slice test. Differences in the algorithms are clearly visible there.

wanezhiling
13th January 2012, 20:14
GT240 CUVID (http://we.pcinlife.com/data/attachment/forum/201201/14/031003e013h6sjjqyygs7c.png)
72.2765

GT240 DXVA2 (http://we.pcinlife.com/data/attachment/forum/201201/14/031003vi4bsjdnl6ot6svj.png)
71.8401

M HD4650 (http://we.pcinlife.com/data/attachment/forum/201201/13/174540sy8yaxcyy8spu84y.png)
52.3325


http://forum.doom9.org/showthread.php?p=1548287#post1548287
;)

CruNcher
13th January 2012, 20:18
It should use exactly the same. Its easy enough to compare with some artificial tests like the Cheese Slice test. Differences in the algorithms are clearly visible there.

Nev already a idea what goes wrong with dirac playback (slowmo) on the promos ?

Btw i find it nice to have now the possibility to switch between Yadif and Render Deinterlacing on the fly :) seeing the different in Realtime is cool how the GPU utilization goes up when the renderer does the deinterlacing and how it goes down when Yadif does it (and cpu therfore goes up) also comparing is cool this way doing everything Realtime now has such great possibilities for Encoding i love it :)
Though the Interface to the options is still to hard to reach some should start implementing those possibilities directly in the Player GUIs without needing to click 1000 times to get to them :P
Also using Lav Video + Av Splitter has some great potential it mostly has the same bugs though as Lav Splitter (Mp4 playback) but it allows to switch channels on the fly (.ts) and seems to work equally good with Lav Video (also it has the tray icon control many crave for, though personally i find it useless better is direct Player integration instead of this tray icon control stuff) :)

nevcairiel
13th January 2012, 22:12
Good news everyone!

I managed to implement VC-1 interlaced DXVA decoding.
That sure was a bitch, and locked up my GPU driver quite often while testing (thank god Win7 can recover from that), but now it seems to work just fine with both Frame Interlaced and Field Interlaced content!

hoborg
13th January 2012, 22:14
Nev, you rule! :D

SamuriHL
13th January 2012, 22:17
Damn, man, that's awesome. :)

Sebastiii
13th January 2012, 22:28
Yeah :) you are the best ;)

Reino
13th January 2012, 23:09
Is there a reason you skipped DXVA1 for DXVA2?

DragonQ
13th January 2012, 23:12
Well, DXVA is only useful for XP users since XP doesn't support DXVA2. Otherwise, DXVA2 is superior, so why not use it?

Supporting a ten year old OS is silly, IMO.

BatKnight
13th January 2012, 23:28
Good news everyone!

I managed to implement VC-1 interlaced DXVA decoding.
That sure was a bitch, and locked up my GPU driver quite often while testing (thank god Win7 can recover from that), but now it seems to work just fine with both Frame Interlaced and Field Interlaced content!
Nice!
Will it be possible to select DXVA for interlaced VC-1 and CUVID for H264 or MPEG-2? Now one can only select either DXVA or CUVID for everything.

Bat

wo0zy
14th January 2012, 00:50
Good news everyone!

I managed to implement VC-1 interlaced DXVA decoding.
That sure was a bitch, and locked up my GPU driver quite often while testing (thank god Win7 can recover from that), but now it seems to work just fine with both Frame Interlaced and Field Interlaced content!

Sweet!:D

I don't say it often enough so :thanks: for all your work!

This thread has everything! I follow it every day. Sometimes it makes me laugh, sometimes I cringe at the responses some people get (justified or not :) ) but mostly I feel educated by reading and look forward to testing something new!

Thanks Nev!

Wo0zy

nevcairiel
14th January 2012, 07:22
Is there a reason you skipped DXVA1 for DXVA2?

Several.

- DXVA1 doesnt allow frame copyback
- DXVA1 is only for Windows XP
- FFMPEG only supports DXVA2

nevcairiel
14th January 2012, 07:23
Nice!
Will it be possible to select DXVA for interlaced VC-1 and CUVID for H264 or MPEG-2? Now one can only select either DXVA or CUVID for everything.

Bat

Why would you want that? CUVID is superior.

Andy o
14th January 2012, 07:36
nev, do you know if HD MPEG2 software decoding handles errors differently than DXVA decoding? I've just started testing the 1080i and 720p wtv from OTA channels (I'm in the US so ATSC) recorded in Win 7's Media Center. They play relatively well, but with LAV Video's MPEG2 I get heavy gray blocking. With ffdshow, and the MS DTV-DVD decoder however, I don't get blocking, but I get slight color (reddish-greenish) and black level shifts. I don't get either when I just switch to EVR and a full DXVA chain, it plays just perfectly like on MC itself. So I still don't know for sure what's going on here, that's why I'm asking if errors from the capture could be the culprit, and somehow DXVA has better error resilience or something like that.

If it's not as simple as that, I could upload samples if anyone is interested to confirm.

robpdotcom
14th January 2012, 07:45
@ Andy o:

Are you using LAVSplitter? LAVvideo doesn't seem to like Microsoft's .wtv spltter (StreamBufferSource). If you use mpc-hc, block StreamBufferSource - you lose continuous live TV playback, but LAVSplitter works better for everything else, and gives you the ability to select audio streams.

Andy o
14th January 2012, 08:17
Thanks, you're right. I owe you a sandwich.

NikosD
14th January 2012, 11:34
Benchmark results - Signature system - Video clip requested - LAV 0.44 latest


GraphStudio 0.3.2/ GraphStudio Next 0.4.5.5 (same results - 0.1fps difference)

3 passes - Null Renderer


5750 50,4 fps - GPU load 48% - 50% - CPU Load Max frequency ~ 25% average

(6)750 56,2 fps - GPU load 52% - 53% - CPU Load Max frequency ~ 30% average


DXVA Checker v2.6.2


LAV Video DXVA2

(6)750 EVR 53/54/54 - GPU Load 0/33/74 - CPU load max frequency 22/23/27
(6)750 VMR 48/54/56 - GPU Load 0/33/74 - CPU load max frequency 22/24/27


MS DS (vanilla DXVA2)

A lot of artifacts - Not sure about valid speed


(6)750 EVR 58/66/69 - GPU Load 0/3/3 - CPU load LOWEST frequency@1.6 GHz 9/10/11


MS MFT(vanilla DXVA2)

Perfect decoding


(6)750 EVR 68/71/72- GPU Load 0/1/7 - CPU load LOWEST frequency@1.6 GHz 0/10/10


Nice try - I'll skip because of:

1) High GPU load

2) High CPU load

3) Low decoding performance

4) Absolutely no need for anything else than EVR renderer

Waiting for your DXVA vanilla solution.

UPDATE:
According to AMD and other sources over the Net, the only way to use Frame Copy with zero penalty is through OpenCL.
If you want to implement a fast DXVA Frame copy solution for ATI hardware, you have to use OVD API (OpenVideo Decode).
It's like NVCUVID and Intel's MSDK in its basic principle.
No other way. Sorry.

blexley
14th January 2012, 11:37
If you are running nothing but MPC-HC with LAV Filters do you only uncheck all the Transform Filters or do you uncheck all the Source Filters aswell. ?

All the guides seem to contradict each other with some even saying "Transform filters (Prefer) in 'External filters' override transform filters in 'Internal Filters' (usually). So there is no reason to disable all transform filters." :confused:

Midzuki
14th January 2012, 11:42
@ blexley:

Source Filters: use only for Audio CD and (S)VCD

Transform Filters: use none.

blexley
14th January 2012, 11:47
Awsome thanks alot Midzuki.

Think i'll just leave it as MPC-HC with LAV Filters as all this other stuff is confusing. :)

IanD
14th January 2012, 12:27
Just exploring the latest LAV package with MPC and MadVR on XP SP2, Nvidia 8400GS with 285.58 driver.

However, with HW decoding (Nvidia CUVID) enabled in the LAV Video Decoder, 720p mkv files are incredibly pixelated and torn: if I disable HW decoding, it is smooth and unpixellated. Divx avi is fine. Doesn't change if I use EVR instead of MadVR.

Is my 8400GS (the updated version, not the original) inadequate to support CUVID, or is something else wrong with my setup?

Mercury_22
14th January 2012, 12:53
@ Nev the latest x64 version ( "Revision 870a5b4451 dxva2: implement software fallback " ) it's just crashing (MPC-HC) while the x86 version it's not crashing (working with VC1i too :thanks:) but also has no DXVA just software

nevcairiel
14th January 2012, 12:55
@ Nev the latest x64 version ( "Revision 870a5b4451 dxva2: implement software fallback " ) it's just crashing (MPC-HC) while the x86 version it's not crashing (working with VC1i too :thanks:) but also has no DXVA just software

If VC1i is working, then you obviously have DXVA, because the software decoder doesn't decode it. :p
Note that MPC-HCs DXVA status display doesn't work with this decoder.

Mercury_22
14th January 2012, 12:58
If VC1i is working, then you obviously have DXVA, because the software decoder doesn't decode it. :p
Note that MPC-HCs DXVA display doesn't work with this decoder.
ok then ! waiting for the x64 fix :thanks:

Mixer73
14th January 2012, 13:22
However, with HW decoding (Nvidia CUVID) enabled in the LAV Video Decoder, 720p mkv files are incredibly pixelated and torn: if I disable HW decoding, it is smooth and unpixellated. Divx avi is fine. Doesn't change if I use EVR instead of MadVR.

Sounds to me like your files may not have been encoded in a DXVA compliant fashion. Perhaps post up MediaInfo for an offending file to confirm.


Are you using LAVSplitter? LAVvideo doesn't seem to like Microsoft's .wtv spltter (StreamBufferSource). If you use mpc-hc, block StreamBufferSource - you lose continuous live TV playback, but LAVSplitter works better for everything else, and gives you the ability to select audio streams.

Oh man, I have this symptom too, buuuut I am using DVR-MS, in this case just with MPEG2/AC3 inside, which LAV Splitter isn't set up for.

Nev: I believe everything DVR-MS is a small subset of WTV container, is it at all possible to support DVR-MS in LAV Splitter?

IanD
14th January 2012, 13:44
Sounds to me like your files may not have been encoded in a DXVA compliant fashion. Perhaps post up MediaInfo for an offending file to confirm.
Format : Matroska
Format version : Version 2
File size : 1.28 GiB
Duration : 41mn 53s
Overall bit rate : 4 363 Kbps
Encoded date : UTC 2012-01-03 12:05:59
Writing application : mkvmerge v5.2.1 ('A Far Off Place') built on Jan 2 2012 23:21:10
Writing library : libebml v1.2.3 + libmatroska v1.3.0

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L3.1
Format settings, CABAC : No
Format settings, ReFrames : 2 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 41mn 53s
Bit rate : 3 892 Kbps
Width : 1 280 pixels
Height : 720 pixels
Display aspect ratio : 16:9
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.176
Stream size : 1.14 GiB (89%)
Language : English
Default : Yes
Forced : No
Color primaries : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics : BT.709-5, BT.1361
Matrix coefficients : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

Audio
ID : 2
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : A_AC3
Duration : 41mn 53s
Bit rate mode : Constant
Bit rate : 384 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 115 MiB (9%)
Language : English
Default : Yes
Forced : No

Also discovered it pixelates badly on Youtube flv files.

nevcairiel
14th January 2012, 13:58
ok then ! waiting for the x64 fix :thanks:

Should be fixed.

nevcairiel
14th January 2012, 14:17
Nev: I believe everything DVR-MS is a small subset of WTV container, is it at all possible to support DVR-MS in LAV Splitter?

DVR-MS works just fine with LAV Splitter, its just not a option in the installer. Just block the StreamBufferSource in MPC-HC and it should just work.

Mercury_22
14th January 2012, 14:20
Should be fixed.

Yes it is :thanks:
But maybe you can do something about the "DXVA" message cause even in the MPC-HC's stats (ctrl+J) it's saying "DXVA: Not using DXVA" ! :confused: and it's very confusing especially now with all this testing

nevcairiel
14th January 2012, 14:58
But maybe you can do something about the "DXVA" message cause even in the MPC-HC's stats (ctrl+J) it's saying "DXVA: Not using DXVA" ! :confused: and it's very confusing especially now with all this testing

I cannot.
I don't even know how that message worked, and frankly, i don't care. Complain to MPC-HC. :P

I've been thinking if i can change the name of the decoder itself in the filter list depending on which decoder is used, wonder if that would break anything.

SamuriHL
14th January 2012, 15:02
That message is notoriously unreliable.

Sent from my Xoom using Tapatalk

Kotik
14th January 2012, 15:07
Hiho,

Nev do you own an ATI card?

Cause i remember you mentioned that you don't have one.

Thanx once more for all your time.

P.S. waiting for a test build with VC-1i!!! :)

noee
14th January 2012, 15:19
I've been thinking if i can change the name of the decoder itself in the filter list depending on which decoder is used, wonder if that would break anything.

Yeah, probably, but it seems like a reasonable solution.

Running on an HD6570 here with a very underclocked/undervolted Propus, pretty solid. Though I don't have VC1i material, everything else I've thrown at it works well. I'm testing with madVR and MC17 (custom RO) and I built the latest pull.

Software fallback appears to be working fine now too.

**Edit**
Some quick and dirty power measurements, Kill-a-watt at the wall, Propus with K10Stat with P3 @ 700Mhz, .75Vcore
Machine idles at 78W (Seasonic SII 460, two HDs, HD6570 fanless, 4GB RAM, Win7 Ult)

Playback with MC17/LAV/madVR, using the same loop for each source, smooth, perfect playback all sources

LAV DXVA2

AVCHD 1080i60 (home video) madVR Deint On: 96W
MPEG2 NTSC DVD Rip Using madVR Deint On IVTC(3:2): 85W
VC1 BD rip (2001 Space Odyssey): 88W
VC1 BD rip (Blade Runner): 91W

One core bumps up to 1100Mhz occasionally, the others stick @ 700Mhz

LAV Software

AVCHD 1080i60 (home video) madVR Deint On: 111W (2 cores at P0:2300Mhz, 2 at P3)
MPEG2 NTSC DVD Rip Using madVR Deint On IVTC(3:2): 85W (all cores at P3)
VC1 BD rip (2001 Space Odyssey): 100W (1 core at P0, the other 3 jumping around a bit)
VC1 BD rip (Blade Runner): 105W (had to lock all 4 cores at P0:2300Mhz for watchable playback)

robpdotcom
14th January 2012, 15:46
DVR-MS works just fine with LAV Splitter, its just not a option in the installer. Just block the StreamBufferSource in MPC-HC and it should just work.

I also have to block WM ASF Reader.

[ReX]
14th January 2012, 16:04
It's just crashing with my Mobile Intel GM45.
I know it's bad, but I have to stick with it. :rolleyes:


http://i.imgur.com/6x4ni.jpg

This means it supports DXVA2, right?
LAV Video say so, too.

Superb
14th January 2012, 16:44
nev: Maybe you could provide some custom interface so that MPC-HC could query the information (regarding which decoder is active) when it finds LAV Video in the graph? Or do you already provide one?

nevcairiel
14th January 2012, 16:49
There already is an interface to get that information, but i don't understand why its so important. Set it up once, and enjoy the movie.

Anyhow, i accidentally fixed the DXVA display thingy when moving some logic around, don't ask me what triggers it and what doesnt..

nevcairiel
14th January 2012, 16:56
Here is a new test version:

http://files.1f0.de/lavf/LAVFilters-0.44-dxva2-test3.zip

New is DXVA2 VC-1 interlaced support (only in DXVA, not software), software fallback should now be functional, as well as some general fixings and improvements.

Here is also a second test version for users of older Intel GPUs, it may or may not improve things when using DXVA2:
http://files.1f0.de/lavf/LAVFilters-0.44-dxva2-test-gma.zip

I'm only going by some documentation i found, i don't actually have such a GPU. :(

Mercury_22
14th January 2012, 18:06
There already is an interface to get that information, but i don't understand why its so important. Set it up once, and enjoy the movie.

Anyhow, i accidentally fixed the DXVA display thingy when moving some logic around, don't ask me what triggers it and what doesnt..

Yes the "DXVA display thingy" it's showing now for all: mpeg2, H264 and VC-1 (i&P):thanks:

Now I only need an x64 DTS-HD decoder so I can get rid of the all x86 players & decoders for good :p

BatKnight
14th January 2012, 18:47
Why would you want that? CUVID is superior.

I was guessing DXVA could handle interlaced VC-1 better than CUVID?
I still can't get smooth playback on my Nine Inch Nails - Beside You In Time Blu-ray. (It's interlaced VC-1)
Audio gets desynced after a while.

Bat

nevcairiel
14th January 2012, 18:50
A video decoder would (theoretically) only cause desync if its too slow, but that would then also show as dropped frames in the renderer.
Its possible that something else is going wrong, but who knows.

BatKnight
14th January 2012, 19:44
A video decoder would (theoretically) only cause desync if its too slow, but that would then also show as dropped frames in the renderer.
Its possible that something else is going wrong, but who knows.
I'll try to gather more data/info on this and let you know later.

Bat

[ReX]
14th January 2012, 20:19
Wow, you're fast!

It seems to work very well.
Thank you so much for this, I really appreciate it.

nevcairiel
14th January 2012, 20:20
;1551594']Wow, you're fast!

It seems to work very well.
Thank you so much for this, I really appreciate it.

You tried the normal or the special intel version?

[ReX]
14th January 2012, 20:30
You tried the normal or the special intel version?

The Intel version.
But, weirdly enough, I've just tried the new normal version from the same post and it didn't crash.

CruNcher
14th January 2012, 21:57
i get a black screen on both VC-1 test samples (nev dxva2) mc.ts as well as cd.ts with quicksync decoder it works though with the old known decoding errors on mc.ts, cd.ts is absolute fine. Arcsoft and Cyberlinks Decoder have neither problems with both (all feed from lav splitter)

nevcairiel
14th January 2012, 22:03
DXVA2 doesnt support VC-1 on Intel, their VC-1 DXVA is non-standard, and i cba to figure out whats different.

CruNcher
14th January 2012, 22:04
also

Video: DRAC 640x360 25.00fps [Video]
Audio: MPEG Audio 48000Hz stereo 256kbps [Audio]

is still crawling @ 8 fps (droping frames like crazy did you miss to compile some important asm code ?) :(

nevcairiel
14th January 2012, 22:07
Sample, mine works fine.