Log in

View Full Version : Media Player Classic Home Cinema (MPC-HC) - DXVA!


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

G_M_C
1st August 2011, 21:52
Can I throw a wrinkle in that discussion? :D LAV CUVID offloads the decoding to the GPU and supports hardware deinterlacing. For a lot of people that's ideal because it allows you to use any renderer you want including madVR. And is great for older CPU's that may not have the power to handle 1080p decoding plus the other tasks necessary for post processing, etc. Just something to consider. :)

You forget to mention that that only goes for people using a Nvidia GPU....

VipZ
1st August 2011, 22:12
Can I throw a wrinkle in that discussion? :D LAV CUVID offloads the decoding to the GPU and supports hardware deinterlacing. For a lot of people that's ideal because it allows you to use any renderer you want including madVR. And is great for older CPU's that may not have the power to handle 1080p decoding plus the other tasks necessary for post processing, etc. Just something to consider. :)

Do you any tests for how efficient LAV CUVID is? I haven't had a Nvidia graphics card for ages, but am interested to try this one day.

You forget to mention that that only goes for people using a Nvidia GPU....

Hehe, where is my LAV StreamVID :)

SamuriHL
1st August 2011, 22:27
You forget to mention that that only goes for people using a Nvidia GPU....

Yes, quite true.

SamuriHL
1st August 2011, 22:29
Do you any tests for how efficient LAV CUVID is? I haven't had a Nvidia graphics card for ages, but am interested to try this one day.


I don't. I have anecdotal evidence from my own personal experience. I have a very ancient AMD X2 4200+ machine that can't really do CPU decoding all that well. Certainly not for madVR. I dropped that 450 in place, loaded up LAV CUVID, and am now able to use madVR no problem on that machine. With full deinterlacing which is awesome.


Hehe, where is my LAV StreamVID :)

GLWT. Not going to happen. :) You get Cyberlink Video Decoder in HAM mode. Being both AMD and nVidia in my house, I've been through this already. ;)

Hera
1st August 2011, 23:40
EDIT: Does the power argument hold ground for a case of low-end GPU vs. high-end CPU?

Can I throw a wrinkle in that discussion? :D LAV CUVID offloads the decoding to the GPU and supports hardware deinterlacing. For a lot of people that's ideal because it allows you to use any renderer you want including madVR. And is great for older CPU's that may not have the power to handle 1080p decoding plus the other tasks necessary for post processing, etc. Just something to consider. :)

LAV CUVID seems to require more CPU power than the internal MPC h264 codec.
Tested on 1080p h264 source with animated subtitles using Tester Build of MPC using exclusive fullscreen mode and HFPP.
Using LAV CUVID (regardless of settings) caused frame dropping during the subtitle animation. Buffered frames went down to 1, graph drew a montain range and video stuttered.
Using default codec caused no such thing. Buffered frames remained at 3 and video did not stutter.

EDIT: But, free and works with non-EVR renderers is a good thing
EDIT2: Error resistant too while MPC's codec many times corrupts with Haali Splitter.... >.> PLEASE FIX THIS.

Eliminateur
1st August 2011, 23:54
i see there's a commit to support exporting settings, yet i fail to find a button or menu option to do such thing, where should i be looking?

Also, since hi10p content is starting to spread, is there a way for you to add a checkbox so that hi10p content bypasses DXVA?, just like the "bypass for SD content" a "bypass for not compliant"?
or the level check does that already?

Underground78
2nd August 2011, 07:36
i see there's a commit to support exporting settings, yet i fail to find a button or menu option to do such thing, where should i be looking?

In the "Misc" page of the options dialog.

Also, since hi10p content is starting to spread, is there a way for you to add a checkbox so that hi10p content bypasses DXVA?, just like the "bypass for SD content" a "bypass for not compliant"?
or the level check does that already?

Hmm I thought it was already the case but maybe that was for 4:4:4.

Edit: Looks like 10-bit samples I have just fall-back to software decoding.

G_M_C
2nd August 2011, 08:35
I don't. I have anecdotal evidence from my own personal experience. I have a very ancient AMD X2 4200+ machine that can't really do CPU decoding all that well. Certainly not for madVR. I dropped that 450 in place, loaded up LAV CUVID, and am now able to use madVR no problem on that machine. With full deinterlacing which is awesome.
[...]

That can be, but in JanWillems 'expirimental renderer' thread i read that no current Nv card does 10bit output. If that's true, Ati is the way to go imho. I've got a HD5770, and can do all the things you use MadVR for too. But when i go with Ati's driver-deinterlacing etc. i can also use JanWillems full floating point chroma upsampling and 10bit out.

All-in-all i'd say thare are tings going for and against both big Video-card brands. And the bottom line is that if you buy a current mid-to-high range card, either brand will do fine.

nevcairiel
2nd August 2011, 09:38
10bit output is seriously overrated. You won't see a difference in the image between 10bit and 8bit+dithering, because like 99.9% of all screens internally work with 8bit or even less.

The point is, you want madVR + GPU deinterlacing, then NVIDIA is currently the only way to go. EVR will never be a replacement for madVR, no matter how long JanWillem works on it - the basic architecture is just limited.
Anyway, what good is 10-bit Output if EVR doesn't even support 10-bit Input? :)

bozek
2nd August 2011, 10:27
madFlac doesnt work with x64 MPC-HC, right?

betaking
2nd August 2011, 13:21
madFlac doesnt work with x64 MPC-HC, right?

x64 MPC-HC only use x64 filters! and madflac have no x64 verson! you can use lav filters x64!

rahzel
2nd August 2011, 19:48
madFlac doesnt work with x64 MPC-HC, right?
just use the 32-bit version.

Eliminateur
2nd August 2011, 23:22
In the "Misc" page of the options dialog.



Hmm I thought it was already the case but maybe that was for 4:4:4.

Edit: Looks like 10-bit samples I have just fall-back to software decoding.

feh turns out i xvidvideo hadn't compiled that verison, i downloaded 3522 and confused myself reading backwards in time, just downloaded 3838 and it's there.

on the 10bit output, yeah, even with skip level check it skips the renderer(i need to open a case in ffdshow because ffd dxva still load even on 10bit with all checks in place, at least ont he pre-10bit rev i have)

clsid
2nd August 2011, 23:30
Latest ffdshow properly falls back to software decoding for 10bit stuff.

JohnLai
3rd August 2011, 09:15
Underground 78, ignore the PM I sent earlier, I think I might found the issue, key and command stuff...........

First, for 'exit' command, set 'modifier' to none and 'key' to nothing. Set the 'mouse' to 'Left double click'.

Second, make sure mouse setting for 'fullscreen' command is set to 'none'.

Now, play any video file with D3D mode enabled and left double click to exit. The crash will happen.

Underground78
3rd August 2011, 10:44
I can reproduce now but only with the non-debug build which makes debuging a bit tricky ...

Ayukawa
4th August 2011, 00:12
Ok so that's r2928 which breaks it, I'm quite sure of that but I'm not sure how to fix it. This rev disables DXVA for some Intel chips like Sandy Bridge as it made MPC-HC crash. I will ask Casimir about that.
Any updates/thoughts on this, Underground78? I've been trying out 1.5.0.2827 with DXVA on a Sandy Bridge machine, and I've not had any crashes. Thanks.

Fadeout
4th August 2011, 07:18
Latest ffdshow properly falls back to software decoding for 10bit stuff.

When will it go right into MPC-HC build?

Underground78
4th August 2011, 08:35
Any updates/thoughts on this, Underground78? I've been trying out 1.5.0.2827 with DXVA on a Sandy Bridge machine, and I've not had any crashes. Thanks.

No news from Casimir so far but I think the latest build which doesn't include this fix is r2825.

When will it go right into MPC-HC build?

It's already done. If you think it's not, you will have to give me a sample because I can't reproduce with any 4:4:4 / 10-bit sample I have.

ForceX
4th August 2011, 09:17
I think he meant 10 bit H.264 support in MPC-HC's internal H.264 decoder.

Underground78
4th August 2011, 09:37
I think he meant 10 bit H.264 support in MPC-HC's internal H.264 decoder.

Oh maybe, it's planed, it will normally be added the "ffmpegupdate" branch.

tetsuo55
4th August 2011, 10:24
Underground 78, ignore the PM I sent earlier, I think I might found the issue, key and command stuff...........

First, for 'exit' command, set 'modifier' to none and 'key' to nothing. Set the 'mouse' to 'Left double click'.

Second, make sure mouse setting for 'fullscreen' command is set to 'none'.

Now, play any video file with D3D mode enabled and left double click to exit. The crash will happen.Impressive detective work! Looks like you found a way to make 2 commands overlap resulting in a crash.

Aleksoid1978
4th August 2011, 11:35
Upload 10 bit H.264 sample for test anybody.

v0lt
4th August 2011, 14:00
2JanWillem32
Changeset 3564
-"23.976Hz (24P)"
-"29.97Hz (NTSC)"
+"24/1.001Hz (NTSC24)"
+"30/1.001Hz (NTSC30)"
WTF?

Why not?
"23.976Hz (NTSC24)"
"29.97Hz (NTSC30)"

Ordinary people also use the player.

JanWillem32
4th August 2011, 14:58
After converting about a hundred of those truncated numbers, I probably was pretty anal about converting them all, including some strings. (It's been a few months since I changed those.)
I do like how uniform it looks now, with the reference to NTSC and the actual slowdown value. But it's indeed a bit more technical.
Will "ordinary people" that can't read x/1.001Hz actually use the display frame rate changer? (That's what those strings are for.) It's a rather advanced feature, I believe.

v0lt
4th August 2011, 15:31
After converting about a hundred of those truncated numbers, I probably was pretty anal about converting them all, including some strings.
This is plain text which read eyes or not? Is it parsed?

Underground78
4th August 2011, 18:09
@JanWilliem32: I think too that you should keep the truncated numbers from strings.

@v0lt: Don't worry, those changes are still in a branch, not in the trunk.

CruNcher
4th August 2011, 20:34
Upload 10 bit H.264 sample for test anybody.

http://forum.doom9.org/showpost.php?p=1491609&postcount=185

pgase
5th August 2011, 02:43
Video Renderer error...
Audio Ok

.mkv

Media Type 0:
--------------------------
Video: RealVideo 4 720x536 25.00fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {30345652-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo2 {F72A76A0-EB0A-11D0-ACE4-0000C0CC16BA}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 146

VIDEOINFOHEADER:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 400000

VIDEOINFOHEADER2:
dwInterlaceFlags: 0x00000000
dwCopyProtectFlags: 0x00000000
dwPictAspectRatioX: 90
dwPictAspectRatioY: 67
dwControlFlags: 0x00000000
dwReserved2: 0x00000000

BITMAPINFOHEADER:
biSize: 40
biWidth: 720
biHeight: 536
biPlanes: 0
biBitCount: 0
biCompression: RV40
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 1a 06 00 00 00 00 00 ........€.......
0030: 00 00 00 00 00 00 00 00 5a 00 00 00 43 00 00 00 ........Z...C...
0040: 00 00 00 00 00 00 00 00 28 00 00 00 d0 02 00 00 ........(...Ð...
0050: 18 02 00 00 00 00 00 00 52 56 34 30 00 00 00 00 ........RV40....
0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0070:|00 00 00 22 56 49 44 4f 52 56 34 30 02 d0 02 18 ..."VIDORV40.Ð..
0080: 00 0c 00 00 00 00 00 19 00 00 01 48 10 20 40 00 ...........H. @.
0090: 80 00 €.


Media Type 1:
--------------------------
Video: RealVideo 4 720x536 25.00fps

AM_MEDIA_TYPE:
majortype: MEDIATYPE_Video {73646976-0000-0010-8000-00AA00389B71}
subtype: Unknown GUID Name {30345652-0000-0010-8000-00AA00389B71}
formattype: FORMAT_VideoInfo {05589F80-C356-11CE-BF01-00AA0055595A}
bFixedSizeSamples: 1
bTemporalCompression: 0
lSampleSize: 1
cbFormat: 122

VIDEOINFOHEADER:
rcSource: (0,0)-(0,0)
rcTarget: (0,0)-(0,0)
dwBitRate: 0
dwBitErrorRate: 0
AvgTimePerFrame: 400000

BITMAPINFOHEADER:
biSize: 40
biWidth: 720
biHeight: 536
biPlanes: 0
biBitCount: 0
biCompression: RV40
biSizeImage: 0
biXPelsPerMeter: 0
biYPelsPerMeter: 0
biClrUsed: 0
biClrImportant: 0

pbFormat:
0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................
0020: 00 00 00 00 00 00 00 00 80 1a 06 00 00 00 00 00 ........€.......
0030: 28 00 00 00 d0 02 00 00 18 02 00 00 00 00 00 00 (...Ð...........
0040: 52 56 34 30 00 00 00 00 00 00 00 00 00 00 00 00 RV40............
0050: 00 00 00 00 00 00 00 00|00 00 00 22 56 49 44 4f ..........."VIDO
0060: 52 56 34 30 02 d0 02 18 00 0c 00 00 00 00 00 19 RV40.Ð..........
0070: 00 00 01 48 10 20 40 00 80 00 ...H. @.€.

JanWillem32
5th August 2011, 10:52
@JanWilliem32: I think too that you should keep the truncated numbers from stringsThat's okay by me, I'll replace them. Notations of 23.(976023) Hz and 29.(970029) Hz seem mathematically correct and readable. http://en.wikipedia.org/wiki/Repeating_decimal

I remember why I put it in there again. Someone asked why the stats screen showed some different numbers than the expected exact 23.976 Hz:
-average frame rate fluctuating a bit near the expected frame rate
-reference frame rate as 23.97604 Hz
-detected frame rate as 23.97602 Hz when locked
-detected screen refresh rate as 23.97602 Hz

The actual targets are by specification 24/1.001, due to an audio engineering problem from the 1953 color TV standard. (I won't complain about archaic video standards this time...)
Average frame rates are subject to changes in synchronization throughout the renderer chain and different clock properties of the various components. You would need to link up everything to an atomic clock to get a very stable clock for rendering.
The reference frame rate is often noted in units of 100 ns, so it's often rounded.
The detection parts can correct a reference frame rate a bit, if it's near 24/1.001, 24, 25, 30/1.001 30, 48/1.001, 48, 50, 60/1.001 or 60 Hz.

madshi
5th August 2011, 11:01
I'd suggest using "23.976" and "29.970" because that's what is usually used by everyone.

Google hit table:
23.976: 124000000 hits
23.976023: 112000 hits
24/1.001: 20500 hits

Personally, I prefer "24/1.001" (and that's also what eac3to outputs, btw), but I understand that "23.976" is what everybody knows and understands.

Underground78
5th August 2011, 11:09
I'd suggest using "23.976" and "29.970" because that's what is usually used by everyone.

I agree with that, some users might be puzzled by the unusual bracket notation (although it's mathematically correct).

v0lt
5th August 2011, 16:35
If need to calculate, it is preferable to use fractions. In this case, it is not necessary.

bur
5th August 2011, 21:58
When you remove the menu and window bar (by pressing Ctrl+0) you can't move the window anymore. Maybe you could make it so, that the window can be dragged&dropped by clicking and holding the video? I'm not sure that's possible in Windows though.

Another related idea: An option so that after a time of inactivity MPC automatically removes all elements like seek bar, menu, etc and shows them again when the cursor is moved inside the window.

Underground78
6th August 2011, 08:44
When you remove the menu and window bar (by pressing Ctrl+0) you can't move the window anymore. Maybe you could make it so, that the window can be dragged&dropped by clicking and holding the video? I'm not sure that's possible in Windows though.

We are currently working on fixing that.

v0lt
6th August 2011, 20:37
Changeset 3587
Add the ability to use different mouse button bindings in windowed and fullscreen modes. Patch mostly by taemun.
Why? Why do so difficult? :confused:

JarrettH
7th August 2011, 02:22
Discovered a bug I think!

- Core i3 2100 (Intel HD Graphics 2000)
- ASUS P8H67 EVO
- 4GB DDR3
- Realtek integrated audio

Basically, VMR9 and plain EVR work, but when I switch to EVR-CP I get audio and the window resizes as if it were playing back video (both normal), but no video displays. Any clue as to why this is?

Another problem I'm encountering is using plain EVR with DVDs I can't disable subtitles. Something is rendering them and I don't know what it is (I can enable original DVD subtitles under navigate, but they overlap). I unticked the auto-load subtitles option and it still happens. There's no vobsub or ffdshow in the background. Is there a filter I should be blocking?

I may just blame both problems on the Intel graphics. :p

ForceX
7th August 2011, 06:15
Update your graphics driver to the latest, disable 10 bit RGB input and output option, disable any Floating Point Processing option from the Renderer Settings menu.

v0lt
7th August 2011, 06:16
Another problem I'm encountering is using plain EVR with DVDs I can't disable subtitles. Something is rendering them and I don't know what it is (I can enable original DVD subtitles under navigate, but they overlap).
Which DVD is this happening? Take a screenshot of this subtitles.

What video decoder do you use? Take a screenshot of the settings decoder.

Underground78
7th August 2011, 09:23
Why? Why do so difficult? :confused:

I don't see how this is difficult. People who don't need this feature can just assign the same binding to both windowed and fullscreen modes and really that's not difficult.

Speaking of key bindings, does someone use the ASCII type (I think it's of no use and broken anyway but I want to be sure) and/or need to know the numeric ID ?

v0lt
7th August 2011, 10:48
People who don't need this feature can just assign the same binding to both windowed and fullscreen modes and really that's not difficult.
Why set up the same thing twice?
For keys will be the same? :eek:

Underground78
7th August 2011, 10:55
Why set up the same thing twice?
For keys will be the same? :eek:

Because it's the only way to let people use different key bindings for windowed and fullscreen modes... Setting up the same button twice is not a big deal as most important mouse bindings are already set up by default. One thing we could do is to put by default something like "Use windowed binding" for fullscreen bindings but I'm not sure it's worth it.

v0lt
7th August 2011, 11:27
Because it's the only way to let people use different key bindings for windowed and fullscreen modes...
New feature gives this possibility. But who really needs it? About how many percent?

bur
7th August 2011, 11:30
When you remove the menu and window bar (by pressing Ctrl+0) you can't move the window anymore. Maybe you could make it so, that the window can be dragged&dropped by clicking and holding the video? I'm not sure that's possible in Windows though.

We are currently working on fixing that.I also found a way to handle it in the meantime. When you allow the status bar to be shown you can drag&drop the window using it.

betaking
7th August 2011, 11:30
New feature gives this possibility. But who really needs it? About how many percent?

You do not need, does not mean that other users do not need!
PS:I know you do not like adding some new features, such as the last time I mentioned channel switching. However, MPC-HC is not a person you develop, if the whole idea as you do. As to what open source is not it!
PPS:to Underground78, big thanks for you!
Revision 3548 - Directory Listing
Modified Tue Aug 2 16:05:47 2011 UTC (4 days, 18 hours ago) by underground78Make all message boxes translatable.
This commit fixes ticket #1610.
This change makes me a better translation of these messages out to allow more Chinese users some problems to find a good solution!

v0lt
7th August 2011, 11:37
You do not need, does not mean that other users do not need!
With such a worldview player to replace the browser, text editor and explorer. Because someone needs it. :(

Underground78
7th August 2011, 12:56
With such a worldview player to replace the browser, text editor and explorer. Because someone needs it. :(

Don't exaggerate... I know most people (like me) probably won't be using this feature but those people also probably won't change the mouse bindings as default settings will be fine for them. But as I told you if it really puzzles you, I'm not against adding a new default behavior for the fullscreen bindings which would be "default to windowed binding" so that users don't have to set up the binding twice.

@betaking: When you have an updated translation ready, don't forget to send us the updated translation file so that we can commit it. :)

betaking
7th August 2011, 13:08
Don't exaggerate... I know most people (like me) probably won't be using this feature but those people also probably won't change the mouse bindings as default settings will be fine for them. But as I told you if it really puzzles you, I'm not against adding a new default behavior for the fullscreen bindings which would be "default to windowed binding" so that users don't have to set up the binding twice.

@betaking: When you have an updated translation ready, don't forget to send us the updated translation file so that we can commit it. :)

OK! can you make this word to translatable?
PPageAccelTbl.cpp
m_list.InsertColumn(COL_RMCMD, _T("RemoteCmd"), LVCFMT_LEFT, 80);
to
m_list.InsertColumn(COL_RMCMD, ResStr(IDS_AG_REMOTECMD), LVCFMT_LEFT, 80); :)

JanWillem32
7th August 2011, 14:56
If we really want to translate all strings, I think the translators will have will have quite a handful on the ErrBox messages I already made (I'm going to add a lot more, too): http://sourceforge.net/apps/trac/mpc-hc/browser/branches/renderer_fixes/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp .

Underground78
7th August 2011, 15:08
OK! can you make this word to translatable?
PPageAccelTbl.cpp
m_list.InsertColumn(COL_RMCMD, _T("RemoteCmd"), LVCFMT_LEFT, 80);
to
m_list.InsertColumn(COL_RMCMD, ResStr(IDS_AG_REMOTECMD), LVCFMT_LEFT, 80); :)

It's not really high priority but it will probably be done.

If we really want to translate all strings, I think the translators will have will have quite a handful on the ErrBox messages I already made (I'm going to add a lot more, too): http://sourceforge.net/apps/trac/mpc-hc/browser/branches/renderer_fixes/src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp .

We usually don't translate things until they get into the trunk I think.