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

Pat357
16th January 2012, 14:22
Nev,
I noticed a cosmeric bug : the Lav-splitter out-pin and the video-in and -out pin from Lavvideo report 6fps instead of 60fps
(In DXVA mode on my GTX 570)
I use LAVFilters-0.44-fc517a9
Filter : LAV Video Decoder - CLSID : {EE30215D-164F-4A92-A4EB-9D4C13390F9F}

- Connected to:
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Filter: LAV Splitter Source
Pin: Video

- Connection media type:
Video: MPEG4 Video (H264) 1920x1080 6fps 20897kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31435641-0000-0010-8000-00AA00389B71}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 162

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 20897898
dwBitErrorRate: 0
AvgTimePerFrame: 166667

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 30
dwProfile: 0x0000004d
dwLevel: 0x0000002a
dwFlags: 0x00000004

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 24
biCompression: AVC1
biSizeImage: 6220800
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

PS: it seems independent from the choosen vid mode : softw, CUVID en DXVA all report the same (Lav-splitter is sending 6 fps this downstream)
50 fps is reported as 5fps, 25fps is OK.

nevcairiel
16th January 2012, 14:27
There is nothing wrong with the media type.

AvgTimePerFrame defines the FPS, and 166667 (in 100ns units) is 16.6667ms, which is 60fps.
For comparison, 24p is 417084

MPC-HC must be messing it up.

rack04
16th January 2012, 14:36
Where is the best place to download the latest IntelQuickSyncDecoder.dll?

It appears that these (http://xhmikosr.1f0.de/index.php?folder=bGF2ZmlsdGVycw==) builds don't include the dll.

nevcairiel
16th January 2012, 14:38
I would generally recommend to stick with the official versions, they come out pretty regularly.
Most people that run inbetween versions either build them themselves, or use the ones i post for testing specific features. :)

On the specific question, there is no official place to download that dll.

blexley
16th January 2012, 14:49
Where is the best place to download the latest IntelQuickSyncDecoder.dll?

It appears that these (http://xhmikosr.1f0.de/index.php?folder=bGF2ZmlsdGVycw==) builds don't include the dll.

I would generally recommend to stick with the official versions, they come out pretty regularly.
Most people that run inbetween versions either build them themselves, or use the ones i post for testing specific features. :)

On the specific question, there is no official place to download that dll.


What about the poor chap that i pointed out that nobody thanked. ?

http://forum.doom9.org/showpost.php?p=1551632&postcount=8205

http://forum.doom9.org/showthread.php?p=1551632#post1551632

egur
QuickSync Decoder author

Eric Gur, Processor Client Application Engineer
Intel QuickSync Decoder author
Intel Corp.

http://sourceforge.net/projects/qsdecoder/

rack04
16th January 2012, 15:10
What about the poor chap that i pointed out that nobody thanked. ?

http://forum.doom9.org/showpost.php?p=1551632&postcount=8205

http://forum.doom9.org/showthread.php?p=1551632#post1551632

egur
QuickSync Decoder author
__________________
Eric Gur, Processor Client Application Engineer
Intel QuickSync Decoder author
Intel Corp.

http://sourceforge.net/projects/qsdecoder/

I'll take the higher road and not say what I was thinking.

BTW, I don't want to install ffdshow just to get the dll.

Pat357
16th January 2012, 15:11
There is nothing wrong with the media type.

AvgTimePerFrame defines the FPS, and 166667 (in 100ns units) is 16.6667ms, which is 60fps.
For comparison, 24p is 417084
MPC-HC must be messing it up.
I know there is nothing wrong in the way that it works wouthout any problems.
I did not know that the FPS rate reported at the pins is done by the player ; I really thought it was the filter that sets this fps value.
Now I have learned something new ; thanks Nev for your patience !

Any news (good or bad) about the corruption in DXVA-copy-back mode at the beginning at some samples ?
It seems that properly cut samples (starting with I frame - closed GOP) don't have this corruption.
Is this corruption shown only with samples that start with open GOP ?

nevcairiel
16th January 2012, 15:28
What about the poor chap that i pointed out that nobody thanked. ?

He doesn't provide a download of only that dll, and even if he did, i cannot guarantee that versions other then the one i bundle with my versions will work properly, so i would not recommend downloading them.


I did not know that the FPS rate reported at the pins is done by the player ; I really thought it was the filter that sets this fps value.

It is set by the filter, in form of that AvgTimePerFrame value (the FPS is just the inverse of that), the line on top that says 6fps is completely computed by MPC-HC from the values below, though.

Keiyakusha
16th January 2012, 16:34
What about the poor chap that i pointed out that nobody thanked. ?

There is specific threads for quicksync decoder. Wasn't he was thanked there? Why someone should thank him here? This is thread about LAV, here we should say thanks to nev.

ranpha
16th January 2012, 17:05
He doesn't provide a download of only that dll, and even if he did, i cannot guarantee that versions other then the one i bundle with my versions will work properly, so i would not recommend downloading them.


Whoa, don't tell me that the dll you provide in your test binaries isn't just a simple compile of what you can get from egur's repository? Did you modify it the way you do with ffmpeg/libbluray?

nevcairiel
16th January 2012, 17:13
Whoa, don't tell me that the dll you provide in your test binaries isn't just a simple compile of what you can get from egur's repository? Did you modify it the way you do with ffmpeg/libbluray?

No its a vanilla build, but not from the latest version, which has quite some changes (and i'm not sure egur aims at maintaining ABI/API compatiblity)

STaRGaZeR
16th January 2012, 17:26
I'm using the last version with no modifications to LAV's code. Of course the new options are at their default values but that's it. Works just fine. I feel like it seeks a bit faster, but since that's already difficult it may just be placebo. Have you taken a look at the corrupted frame flag it reports now?

nevcairiel
16th January 2012, 17:27
Have you taken a look at the corrupted frame flag it reports now?

That flag is not what one would expect - ie. not helpful.
It would probably help if Eric can manage to make it output the proper frame type, then i could just use that information and wait for an I frame - which is what the software and cuvid decoders also do.

STaRGaZeR
16th January 2012, 17:32
It doesn't now? That's something that should be fixed. Apps using the dll could make wrong asumptions based on wrong information.

jos99
16th January 2012, 18:08
Can you confirm whether LAV video decoder will decode WMV9 content, and whether it can use acceleration as Windows Media Player/Center can do so (possibly VLC also which has similar low CPU usage)?

nevcairiel
16th January 2012, 18:11
Can you confirm whether LAV video decoder will decode WMV9 content, and whether it can use acceleration as Windows Media Player/Center can do so (possibly VLC also which has similar low CPU usage)?

The next version will be able to decode WMV9 using a new DXVA2 decoder on AMD and NVIDIA, the current version only accelerates VC-1 (and only on NVIDIA and Intel)

Speakign of, I'm actually not sure why CUVID doesn't like WMV9, but oh well, not an important format.

jos99
16th January 2012, 18:30
The next version will be able to decode WMV9 using a new DXVA2 decoder on AMD and NVIDIA, the current version only accelerates VC-1 (and only on NVIDIA and Intel)

Speakign of, I'm actually not sure why CUVID doesn't like WMV9, but oh well, not an important format.
That is great news, thx:). Maybe CUVID/CUDA development came after VC1 was already developed? Quite a lot of sites still have HD content in WMV9 so it would be useful.

wanezhiling
16th January 2012, 18:53
nev, I found a inderlaced MPEG-4 video, use LAV CUVID with mpc-hc, it runs at 30fps as fraps shows, but 60 with PotPlayer.

Absolutely PotP is right.

So this's a mpc-hc's problem or CUVID?

With mpc-hc (http://i.imgur.com/CusQR.png)
With PotPlayer (http://i.imgur.com/79dXM.png)

Sample is here: http://www.gokuai.com/f/dP8EPZ6P8I3S8F7E

nevcairiel
16th January 2012, 19:30
nev, I found a inderlaced MPEG-4 video, use LAV CUVID with mpc-hc, it runs at 30fps as fraps shows, but 60 with PotPlayer

I see the problem, its a timestamp issue, i'll try to fix it. Stupid MPEG4 reports wrong framerate.

NikosD
16th January 2012, 19:54
The next version will be able to decode WMV9 using a new DXVA2 decoder on AMD and NVIDIA, the current version only accelerates VC-1 (and only on NVIDIA and Intel)


Just to inform you that your current version is able to DXVA decode WMV9 (both WMV3 and VC-1 advanced profile) on ATI's hardware.

I can see it in front of my eyes!

nevcairiel
16th January 2012, 20:14
I see the problem, its a timestamp issue, i'll try to fix it. Stupid MPEG4 reports wrong framerate.

Fixed

wanezhiling
16th January 2012, 20:39
Fixed

Good job.:thanks:

Thunderbolt8
16th January 2012, 20:39
The next version will be able to decode WMV9 using a new DXVA2 decoder on AMD and NVIDIA, the current version only accelerates VC-1 (and only on NVIDIA and Intel)
will it be possible to play interlaced (BBC) VC-1 stuff via decoding with WMV9 then using ATI? I only remember that you can choose between vc-1 and wmv9 with ffdshow decoder, but I guess it wouldnt work, would it?

nevcairiel
16th January 2012, 20:43
will it be possible to play interlaced (BBC) VC-1 stuff via decoding with WMV9 then using ATI? I only remember that you can choose between vc-1 and wmv9 with ffdshow decoder, but I guess it wouldnt work, would it?

VC-1 is fully supported as well, not only WMV9.
The question was about wmv9.

NikosD
16th January 2012, 21:02
Just FYI there is a common misconception regarding WMV9.
Microsoft's WMV9 is the implementation of the whole VC-1 standard.
The VC-1 Simple and Main profiles are fully compliant with WMV3.
The VC-1 Advanced profile is the "pure" VC-1 format (FourCC=WVC1) not included in the initial WMV9 family before the standardization of VC-1, but it was added after.
So WMV9 includes all three profiles of VC-1.

nevcairiel
16th January 2012, 21:13
the 7-9 and 1-3 names are used all around randomly, WMV8=WMV2, WMV9=WMV3 .. WMV9 Advanced Profile = WVC1 .. its a whole mess of things. :p

NikosD
16th January 2012, 21:34
Yes indeed.
Because VC-1 was based on WMV9, adding essentially only one profile (advanced) the WVC1, but Microsoft had already an advanced profile called WMVA which is not VC-1 compliant and it's now deprecated.

The old WMV9 with WMV3 and WMVA etc was kept with same name WMV9, adding VC-1 advanced profile WVC1 in order to support the whole VC-1 (simple, main, advanced) profile.
The simple and main profiles of VC-1 are essentially WMV3.

I hope it's clear now :D

PeQuE
16th January 2012, 21:35
Is it my fault, or Dolby Digital Plus (EAC3) bitstreaming in Lav Audio is broken in 0.44?

In Graphstudio I can connect Lav Splitter audio pin to Lav Audio, but then it refuses to connect to audio renderer.

EDIT: it only affects if bitstreaming is selected... If not, no problem

Could anyone using similar config confirm or not this bug?

I could provide some sample files if needed...

Thanks a lot...

nevcairiel
16th January 2012, 21:36
If the audio renderer doesnt want to connect to E-AC3, then it usually means it thinks your hardware doesn't support it.

VipZ
16th January 2012, 21:44
Nev, are you planning to add MPEG4 for DXVA? not that its really needed, but cool to have anyway if it doesn't require much work to add :)

I may be missing something here, but does AMD support WMV9 via DXVA2?

http://dl.dropbox.com/u/19338638/7970.JPG

nevcairiel
16th January 2012, 21:47
WMV9/3 is handled by the VC-1 decoder in DXVA2

I'll possibly add MPEG4-ASP to DXVA some day, but ffmpeg doesnt have support for it yet, so it is a bit more effort.

VipZ
16th January 2012, 21:56
Thanks :)

With this sample, CrowdRun_2160p50.x264.CRF24.mkv. Its to be expected not to decode properly on any hardware with DXVA copy-back? When I test its very slow and 1/2 the screen is green (GPU load is always under 20% and CPU under 5%)

nevcairiel
16th January 2012, 22:05
If the hardware claims it supports such a resolution, it'll most certainly try to decode it.
Sadly i don't have any hardware to test this on (yet), mine just blocks the attempt at using DXVA

jos99
16th January 2012, 22:57
Just FYI there is a common misconception regarding WMV9.
Microsoft's WMV9 is the implementation of the whole VC-1 standard.
The VC-1 Simple and Main profiles are fully compliant with WMV3.
The VC-1 Advanced profile is the "pure" VC-1 format (FourCC=WVC1) not included in the initial WMV9 family before the standardization of VC-1, but it was added after.
So WMV9 includes all three profiles of VC-1.
Confusingly, the mediainfo from my HD wmv clip says VC-1 and WMV3- I thought WMV3 was older standard?

Video
ID : 2
Format : VC-1
Format profile : MP
Codec ID : WMV3
Codec ID/Info : Windows Media Video 9
Codec ID/Hint : WMV3
Description of the codec : Windows Media Video V9 - 1920 x 1080, 29.96 fps, Q=90 (VBR)

nevcairiel
16th January 2012, 22:58
VC-1 Main Profile (MP) is 100% compliant with WMV3. Only Advanced Profile is new in VC-1

jos99
16th January 2012, 23:29
VC-1 Main Profile (MP) is 100% compliant with WMV3. Only Advanced Profile is new in VC-1
I see, thanks, so should this be accelerated with NVidia 9800GT on the current version or on the next LAV version? DXVA Checker lists

ModeVC1_IDCT: DXVA1/2, 720x480 / 1280x720 / 1920x1080
ModeWMV9_IDCT: DXVA1/2, 720x480 / 1280x720 / 1920x1080

nevcairiel
16th January 2012, 23:37
The CUVID decoder should be able to use that, yes.
Its only partial acceleration, but better then nothing.

jos99
17th January 2012, 01:25
The CUVID decoder should be able to use that, yes.
Its only partial acceleration, but better then nothing.
So are you saying CUVID works now but in the next version DXVA will be better:o? I just found this document searching for diff between VC1_IDCT and VC1_VLD, dunno if this is any use to you

http://download.microsoft.com/download/5/d/c/5dc91455-0a8c-4d57-8975-0afe1cfaf0dd/DXVA_WMV.pdf

mindbomb
17th January 2012, 04:06
possible problem.
my friend was playing an mkv, and within the folder that the mkv was in was an mka with the same file name.

This caused another instance of lav splitter to open, which caused another lav audio to open, and he had multiple audios playing at the same time.

I believe the audio was AAC in both files, but I'm not certain.

the player used was mpc hc v1.5.2.3456, lav audio .44 and lav splitter .44.

Andy o
17th January 2012, 06:54
That's likely a feature for playing video and audio streams from separate files, same as you can do with subs. Just change the file name or put it in another folder. (mka is matroska's audio container just in case.)

golagoda
17th January 2012, 06:57
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. :(

Thanks for this test build, I assume you're now using 0.9.x or the latest git master of ffmpeg now because this build at least in my tests has improved seeking in H.264 greatly, before when I would use LAVFilters in combination with madVR there would be a bit of a lag when you tried to seek, but now it's instantaneous and I noticed 'update ffmpeg' a few times on google code.

nevcairiel
17th January 2012, 07:46
So are you saying CUVID works now but in the next version DXVA will be better:o?[/url]

CUVID supports partial acceleration, my DXVA2 does not and will never. Only VLD in DXVA is supported.


my friend was playing an mkv, and within the folder that the mkv was in was an mka with the same file name.

This caused another instance of lav splitter to open, which caused another lav audio to open, and he had multiple audios playing at the same time

Thats a MPC-HC feature. You can either turn that feature off completely (Playback -> Auto-load audio files), or just enable the internal Audio Switcher, which will allow you to choose which file is actually output, instead of outputting both.
LAV has zero influence on this.

mindbomb
17th January 2012, 07:52
i see, thanks for clearing that up.

Aleksoid1978
17th January 2012, 07:56
Nev,
I noticed a cosmeric bug : the Lav-splitter out-pin and the video-in and -out pin from Lavvideo report 6fps instead of 60fps
(In DXVA mode on my GTX 570)
I use LAVFilters-0.44-fc517a9
Filter : LAV Video Decoder - CLSID : {EE30215D-164F-4A92-A4EB-9D4C13390F9F}

- Connected to:
CLSID: {B98D13E7-55DB-4385-A33D-09FD1BA26338}
Filter: LAV Splitter Source
Pin: Video

- Connection media type:
Video: MPEG4 Video (H264) 1920x1080 6fps 20897kbps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {31435641-0000-0010-8000-00AA00389B71}
formattype: FORMAT_MPEG2_VIDEO {E06D80E3-DB46-11CF-B4D1-00805F6CBBEA}
bFixedSizeSamples: 0
bTemporalCompression: 1
lSampleSize: 1
cbFormat: 162

VIDEOINFOHEADER:
rcSource: (0,0)-(1920,1080)
rcTarget: (0,0)-(1920,1080)
dwBitRate: 20897898
dwBitErrorRate: 0
AvgTimePerFrame: 166667

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 16
dwPictAspectRatioY: 9
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

MPEG2VIDEOINFO:
dwStartTimeCode: 0
cbSequenceHeader: 30
dwProfile: 0x0000004d
dwLevel: 0x0000002a
dwFlags: 0x00000004

BITMAPINFOHEADER:
biSize: 40
biWidth: 1920
biHeight: 1080
biPlanes: 1
biBitCount: 24
biCompression: AVC1
biSizeImage: 6220800
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

PS: it seems independent from the choosen vid mode : softw, CUVID en DXVA all report the same (Lav-splitter is sending 6 fps this downstream)
50 fps is reported as 5fps, 25fps is OK.

Can you upload a sample - for test with MPC-HC, i try to fix.

nevcairiel
17th January 2012, 08:07
Can you upload a sample - for test with MPC-HC, i try to fix.

Its in src/DSUtil/MediaTypeEx.cpp, line 72 and 82, the TrimRight will remove all extra zeros and dots, so 60.000 becomes 6 and 30.000 becomes 3.
To preserve the current functionality, do it with two TrimRights, first trim zeros (60.000 becomes 60.), then trim a dot. Don't trim both at the same time. :)

PeQuE
17th January 2012, 09:57
If the audio renderer doesnt want to connect to E-AC3, then it usually means it thinks your hardware doesn't support it.

That's what I though first... but then I realised that ffdshow is also bitstreaming EAC3 to my hardware, and audio renderer is connecting with no problem... ¿? May be ffdshow is fooling the renderer...

But ok... I'll need to investigate a little bit more. I'll try downgrading to 0.43 or lower, as I don't remember to have seen this problem before. Anyway, not a big problem disabling bitstreaming for EAC3 if that's the case.

Thanks a lot.

nevcairiel
17th January 2012, 11:19
Bitstreaming didn't change at all for quite a while, i doubt the issue goes away.

Aleksoid1978
17th January 2012, 13:20
Nev - bad playback http://www.megaupload.com/?d=2KAAU7RR VC1 1080p60. MPC-HC also bad ))

nevcairiel
17th January 2012, 13:34
Thanks for this test build, I assume you're now using 0.9.x or the latest git master of ffmpeg now because this build at least in my tests has improved seeking in H.264 greatly, before when I would use LAVFilters in combination with madVR there would be a bit of a lag when you tried to seek, but now it's instantaneous and I noticed 'update ffmpeg' a few times on google code.

I usually update quite frequently (always against master), typically at least once shortly after a LAV release (so that any bugs that might come from ffmpeg can be resolved until the next release).

nevcairiel
17th January 2012, 16:37
Nev - bad playback http://www.megaupload.com/?d=2KAAU7RR VC1 1080p60. MPC-HC also bad ))

CUVID decides to not use DXVA for that sample and call the GPU directly, who knows whats wrong with that. Maybe i have some time another day to look.