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

Damien147
31st March 2011, 13:28
@bobdynlan
Working fine so far !


+1

..but I'm using ffdshow:o

As I said I get nv12 output with everything when using ffdshow,is it ok to use YV12 chroma upsampling shader for now?Any drawbacks?I like to keep things ''pure''.Changing renderer is not an option for me because I need color management.

v0lt
31st March 2011, 14:10
Test-drive this build (http://cid-d561cc7d122f3f32.office.live.com/browse.aspx/Shared/MPCHC%5E_SWSCALER%5E_MOD) featuring some new internal software decoder options.
Need a reset button. :)

clsid
31st March 2011, 14:40
Test-drive this build (http://cid-d561cc7d122f3f32.office.live.com/browse.aspx/Shared/MPCHC%5E_SWSCALER%5E_MOD) featuring some new internal software decoder options.
More info in the readme. Also see ticket 719 (http://sourceforge.net/apps/trac/mpc-hc/ticket/719).

http://public.sn2.livefilestore.com/y1p0zCeMT3iqjbz83hAB4ctETpL_fM5vaUJt1gG6NT7lowch9VgTX8vj1X5mNUtmFzzXNADVagu0ayI2Hbag1lvUg/whatsnew.png?psid=1
I would suggest removing the error resilience and idct options. Normal users should never need to change those.
Threads option is also pretty pointless since all ffmpeg decoders used by MPC are single-threaded.
Default input levels should be 16-235. Only formats like Fraps are 0-255, and that isn't even supported by the internal decoder.

bobdynlan
31st March 2011, 15:11
Threads option is also pretty pointless since all ffmpeg decoders used by MPC are single-threaded.
Default input levels should be 16-235. Only formats like Fraps are 0-255, and that isn't even supported by the internal decoder. I've only added what's on the right side. Threads option now works at least for swscaler, it will slice the image horizontally into n=nr. of threads, creating n swscontexts. And color defaults are on Auto = 16-235. The 0-255 option is there for some bad authored sources or broken renderers.

khagaroth
31st March 2011, 18:12
It would be probably a good idea to nuke all the RGB options (except RGB32). They did that in ffdshow too and I really don't see the point for them, or is there something that uses it.

mindbomb
1st April 2011, 01:24
I have a few questions:
The option for maximum texture resolution for subtitles - does this effect text based subtitles, image based, or both?
And why is it best to set it to desktop, aren't the resolution of subtitles considerably lower than that?

And about the yv12 chroma upsampling shader, if im using a dxva filter, there should already be hardware chroma upsampling, so i shouldnt need this in general, right?

mikleemy
1st April 2011, 03:01
Could something explaine the 'Jitter' mean ?
I got jitter 0 in MadVR but 8 for output setting to EVR ( custom preset ).

betaking
1st April 2011, 04:13
is this a bug?
http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc/trunk/src/apps/mplayerc/res/mplayerc.rc2?r1=3002&r2=3001&pathrev=3002
Based on the original Media Player Classic v6.4.9.0 (C) Gabest
Based on the original Media Player Classic v6.4.9.0 � Gabest
Copyright (C) 2002-2011 see AUTHORS file
Copyright � 2002-2011 all contributors, see AUTHORS file

madshi
1st April 2011, 15:51
Just a note for those who requested it: I've just re-added the "D3D Fullscreen" option for madVR (use revision 1.5.2.3005 or newer).

HoP
1st April 2011, 19:44
i unchecked "Keep history of recently opened files"
but mpc remember the last file...why?
my mpc version:mpc-homecinema.1.5.2.3004_(x64)_msvc2010
i didn't have this problem with old versions
http://www.pixelz.fr/1/4/4/fe1f95cda03d396b907dcf019a78b.jpg

oddball
1st April 2011, 22:54
Just a note for those who requested it: I've just re-added the "D3D Fullscreen" option for madVR (use revision 1.5.2.3005 or newer).

I have HUUUUUGE problems now with MadVR .47 and your latest build.

The problem is since MPC-HC added subs support to work alongside MadVR's subs support it's alll gone to hell. MPC-HC builds prior to the supported builds playback video in D3D perfectly on my Nvidia G210. The only snag is. No subtitle support.

So I installed a later build prioer to 3005 that supports the subtitles. Only I can't have D3D. If I force fullscreen on my plasma TV it tears like crazy.

If I install 3005 it plays correctly but it seems like it's dropping frames all over the places and I cannot pause it, stop it, access any of the menus on the MPC window etc. I can drag the window about on the primary monitor and I can press the escape key (which I have mapped to exit) to exit the player.

What gives?

pdanpdan
1st April 2011, 23:21
@madshi
Thank you. Now it's very usable in my setup. :)
Now the bad thing - with D3D Fullscreen active and automatic exclusive mode active the same thing oddball just reported happens.
With automatic exclusive mode inactive everything is fine.
Edit: And with D3D Fullscreen + automatic exclusive mode I get no seek bar on bottom.

@oddball
Try to disable automatic exclusive mode

oddball
1st April 2011, 23:26
@madshi
Thank you. Now it's very usable in my setup. :)
Now the bad thing - with D3D Fullscreen active and automatic exclusive mode active the same thing oddball just reported happens.
With automatic exclusive mode inactive everything is fine.

@oddball
Try to disable automatic exclusive mode


I just tried that and it's back to tearing and dropping tons of frames. I do get the menu's back though. But it still does not let me pause playback. It stops momentarily then carries on playing. If I leave it with exclusive mode it plays back smooth as silk even with subs (But drops frames when animated subs is enabled so I usually disable that). But I lose access to the player window controls. Keyboard shortcuts work fine however (apart from the aformentioned pausing problem).

Is a fix on the way? Or is it not doable while in exclusive mode?

Also I cannot turn subs off with the 'w' key. :(

pdanpdan
1st April 2011, 23:36
It's funny:
1. D3D + auto exclusive mode + delay 3 seconds
2. start play (payer interface on display 1, fullscreen on display 2)
3. right-click on movie (display 2) and leave the menu visible
4. now you can use the controls on the player interface on display 1
5. when the movie returns in exclusive mode, no buttons again

oddball
1st April 2011, 23:46
It's funny:
1. D3D + auto exclusive mode + delay 3 seconds
2. start play (payer interface on display 1, fullscreen on display 2)
3. right-click on movie (display 2) and leave the menu visible
4. now you can use the controls on the player interface on display 1
5. when the movie returns in exclusive mode, no buttons again

That's because when you right click display 2 it's switching back to windowed mode.

EDIT: At least I can right click the MadVR icon and pause, etc there.

madshi
2nd April 2011, 07:27
I have HUUUUUGE problems now with MadVR .47 and your latest build.

The problem is since MPC-HC added subs support to work alongside MadVR's subs support it's alll gone to hell. MPC-HC builds prior to the supported builds playback video in D3D perfectly on my Nvidia G210. The only snag is. No subtitle support.

So I installed a later build prioer to 3005 that supports the subtitles. Only I can't have D3D. If I force fullscreen on my plasma TV it tears like crazy.

If I install 3005 it plays correctly but it seems like it's dropping frames all over the places and I cannot pause it, stop it, access any of the menus on the MPC window etc. I can drag the window about on the primary monitor and I can press the escape key (which I have mapped to exit) to exit the player.
I didn't do anything in 3005 except restoring what I removed in 2988. If you have new problems with 3005 then they are probably caused by other changes done by other devs somewhere between 2988 and 3005, I'd guess.

"Only I can't have D3D". Why not?

Now the bad thing - with D3D Fullscreen active and automatic exclusive mode active the same thing oddball just reported happens.
With automatic exclusive mode inactive everything is fine.
Edit: And with D3D Fullscreen + automatic exclusive mode I get no seek bar on bottom.
Is that different or identical to how things were with older MPC-HC builds?

It's funny:
1. D3D + auto exclusive mode + delay 3 seconds
2. start play (payer interface on display 1, fullscreen on display 2)
3. right-click on movie (display 2) and leave the menu visible
4. now you can use the controls on the player interface on display 1
5. when the movie returns in exclusive mode, no buttons again
Was that different with builds older than 2988?

pdanpdan
2nd April 2011, 16:02
I don't remember (to tell the truth). What I remember is that with older MadVR+MPC-HC it was crashing and often not working, and now it's working, so it's much better.
Just a question - if I use VMR/EVR+D3D Fullscreen I can see the OSD seekbar interface on the second display, and I can pause the movie by dblclick on movie image (dblclick set as pause/play).
With MadVR+D3D Fullscreen (exclusive or non-exclusive - doesn't matter) I cannot pause by dblclick on screen.
Is this by design?

madshi
2nd April 2011, 18:04
Look, I do not want to officially support this "D3D Fullscreen" switch. I understand some of you guys "misuse" this switch to move playback to the secondary monitor while having the MPC-HC window on the primary monitor. But that's really not what this switch was originally made for. I removed this switch because it doesn't really make sense, from a logical point of view, since madVR switches to "D3D Fullscreen" (which is just another word for "exclusive mode") on the fly whenever it makes sense - no matter how this MPC-HC "D3D Fullscreen" option is configured. So really, logically, this option should be removed for madVR. So that's what I did in revision 2988. But then several people complained, so I brought the option back because I don't want to make things worse for you. But other than that, I'm not really willing to chase bugs that occur when using this switch. If it works as well (or as bad) as it used to in older versions, that's all you will get. However, if it works worse now than it did in older versions then *maybe* you can motivate me to check why it's worse now. But other than that I will not spend any time in the future working on this.

Thunderbolt8
2nd April 2011, 20:41
there seems to be a problem with directvobsub and the current mpc build (3008; mpc-hc internal subtitle renderer -> enabled unticked). subs often dont get loaded depending on movie codec and renderer.

with madvr, in case of 4 out of 5 mpeg2 hdtv remuxes, madvr doesnt load and all 4 have added subs inside the .mkv file, while the one which does play has none.

in case of haali and evr, in none of all these cases the subs appeared. direcvobsub doesnt load up at all when using haali or evc with these mpeg2 hdtv source remuxes.

in addition, directvobsub doesnt load up with haali at all, while it does at least with evr for (avc) blu-ray remuxes.


edit: in case of madvr, that 1 movie in which case madvr loads is YV12, while the other ones are YUV12.

edit²: set output colour space of dscaler decoder to YV12, now its all fine with madvr and evr. directvobsub still doenst load with haali though, dont know whether this is normal or not.

JanWillem32
2nd April 2011, 23:37
Some time ago I mentioned the sampling method for the 3D LUT of the color management. I forgot to post the gradient shader later on.
// color gradients
// This shader should be run as a screen space pixel shader.
// This shader requires compiling with ps_2_0, but higher is better, see http://en.wikipedia.org/wiki/Pixel_shader to look up what PS version your video card supports.
// If possible, avoid compiling with the software emulation modes (ps_?_sw). Pixel shaders require a lot of processing power to run in real-time software mode.
// This shader will create color gradients.

// fractions, either decimal or not, are allowed
// ColorTopLeft, ColorTopRight, ColorBottomLeft and ColorBottomRight, assign colors in a linear float4(Red, Green, Blue, Alpha) format
#define ColorTopLeft float4(.015625, 0, 0, 1)
#define ColorTopRight float4(.015625, .00390625, .00390625, 1)
#define ColorBottomLeft float4(0, 0, 0, 1)
#define ColorBottomRight float4(0, 0, 0, 1)
// ProcessingGamma, the gamma value used by the color management system, the display gamma value can be used as an alternative
#define ProcessingGamma 1

float4 main(float2 tex : TEXCOORD0) : COLOR
{
return pow(lerp(lerp(ColorTopLeft, ColorTopRight, tex.x), lerp(ColorBottomLeft, ColorBottomRight, tex.x), tex.y), 1/ProcessingGamma);
}The differences are minor, and the most difficult colors are brown and rich, dark blue tints. Of course, it's worst with the 64³ points 3D LUT with a linear input. Don't forget to disable dithering when testing in either 8- or 10-bit mode.
For me, most of the banding problems with the color management were solved by making an accurate calibration (non-bt.709 with a gamma of 2.6). It's rather dark to use with other software that can't do color management (so I changed my desktop image). Luckily, most graphical programs usually feature at least a simple brightness, contrast or gamma setting.
I'm quite happy with the improvements and the only banding issues I still have are caused by (unfortunately common) 8-bit source images.

I've made optimizations on the internal scaling, the color management and the dithering pixel shaders. The VSync problems are difficult to solve, but it's a lot of code, and it contains quite a lot of math and general programming errors. It will take time to get those corrected. The main item that's affected by it is the mostly broken VSync offset function.

oddball
2nd April 2011, 23:46
Look, I do not want to officially support this "D3D Fullscreen" switch. I understand some of you guys "misuse" this switch to move playback to the secondary monitor while having the MPC-HC window on the primary monitor. But that's really not what this switch was originally made for. I removed this switch because it doesn't really make sense, from a logical point of view, since madVR switches to "D3D Fullscreen" (which is just another word for "exclusive mode") on the fly whenever it makes sense - no matter how this MPC-HC "D3D Fullscreen" option is configured. So really, logically, this option should be removed for madVR. So that's what I did in revision 2988. But then several people complained, so I brought the option back because I don't want to make things worse for you. But other than that, I'm not really willing to chase bugs that occur when using this switch. If it works as well (or as bad) as it used to in older versions, that's all you will get. However, if it works worse now than it did in older versions then *maybe* you can motivate me to check why it's worse now. But other than that I will not spend any time in the future working on this.

I feel that's a little unfair to use as a blanket statement. I understand your reasons but many people use the D3D option in order to get smooth playback and for using on a secondary display. If I simply turn off D3D I get horrible tearing and framedrops using MadVR. If I go back to an earlier build I lose subs in MadVR. I want to be able to use MadVR in order to get the best image quality. I also want to be able to use MPC-HC's high quality subs. I don't see what the problem is with fixing the interface but then I do not know how to program so if it's a technical limitation then so be it. Many people need to be able to operate the video from a different display and keep D3D. DJ's in clubs for instance is one application that comes to mind. I tried builds without D3D support and MadVR does not work for me for some reason. My Nvidia G210 chokes on it when 'windowed' but fullscreen on my Panasonic G20 plasma HDTV. The reasons for this I do not fully comprehend. All I know is that D3D gives me smooth playback with 24P.

BTW I do not get any seek bar on the secondary display and I am unable to seek while in D3D other than using keyboard FF or MadVR's move backwards and forwards by 30 mins, 5 mins etc.

By developing MadVR and MPC-HC to work with each other surely it's in everyones interest to make them work as smoothly as possible with as many of the previous playback options as possible? What you have achieved here is fantastic and I applaud you for it. So please don't feel sour about us asking for such things. I know we can be a very demanding lot so please forgive us for our wants and whims :thanks:

mark0077
3rd April 2011, 04:41
Hi. Just wondering can mpc when it crashes can it report the cause of the crash.

madshi
3rd April 2011, 07:01
Some time ago I mentioned the sampling method for the 3D LUT of the color management. I forgot to post the gradient shader later on.

[...]

The differences are minor, and the most difficult colors are brown and rich, dark blue tints. Of course, it's worst with the 64³ points 3D LUT with a linear input.
So this shader allows to reproduce the banding problems you were seeing with the 3D LUTs earlier?

Don't forget to disable dithering when testing in either 8- or 10-bit mode.
Why?

I understand your reasons but many people use the D3D option in order to get smooth playback and for using on a secondary display. If I simply turn off D3D I get horrible tearing and framedrops using MadVR.
I think there's a misunderstanding here. Tearing is a problem which can occur in windowed mode. Exclusive mode fixes that. The "D3D Fullscreen" option in MPC-HC has *nothing* to do with windowed vs. exclusive mode, when using madVR. madVR automatically switches between windowed <-> exclusive mode, whenever it makes sense. E.g. right click on the video to get a context menu and madVR will switch to windowed mode (you'll get an OSD message saying "windowed"). Once the context menu is gone, after 3 seconds madVR switches back to exclusive mode (you'll get an OSD message saying "exclusive"). All of this should work fine with or without the MPC-HC "D3D Fullscreen" option. So while the MPC-HC "D3D Fullscreen" option does fix tearing with VMR/EVR, the situation is different with madVR. When using madVR, the "D3D Fullscreen" option should have zero effect on windowed <-> exclusive mode, and thus zero effect on tearing.

I don't see what the problem is with fixing the interface
The problem is that I don't know the MPC-HC code and fixing bugs in unknown code is a very frustrating and extremely time consuming experience.

Look: There were no complaints about how the "D3D Fullscreen" option worked with madVR before I removed it in 2988. So I'm wondering: Why are there suddenly complaints how it works now that I brought it back?? Does the "D3D Fullscreen" option not work as well as it did before? That's the information I'm trying to squeeze out of you guys in the last couple of posts. But so far nobody has bothered to comment on that.

Many people need to be able to operate the video from a different display and keep D3D.
And you can do so with madVR without needing the "D3D Fullscreen" option. Just start MPC-HC, move it to the secondary monitor, then load the video file and go into fullscreen mode (Alt+Enter). Now madVR should go into exclusive mode on your secondary display. This should work with all media players, including MPC-HC, without the "D3D Fullscreen" option.

My Nvidia G210 chokes on it when 'windowed' but fullscreen on my Panasonic G20 plasma HDTV. The reasons for this I do not fully comprehend. All I know is that D3D gives me smooth playback with 24P.
So madVR does not go into exclusive mode for you without using the MPC-HC "D3D Fullscreen" option? If so, please post this as a problem in the madVR thread and we'll analyze the problem there.

BTW I do not get any seek bar on the secondary display and I am unable to seek while in D3D other than using keyboard FF or MadVR's move backwards and forwards by 30 mins, 5 mins etc.
Did this work with builds older than 2988?

Again, let me repeat: If 3005 (and newer) work worse than builds older than 2988 then I might be willing to look into it. However, if 3005 (and newer) builds work the same way as older builds did, in other words: If things are just the way they used to be before I removed the D3D Fullscreen option in 2988 then I'm not willing to debug any problems with the D3D Fullscreen option.

oddball
3rd April 2011, 07:26
I have no problems with MadVR playing in exclusive mode. My issue is I cannot use the interface the same way I did previously because I am unable to view the menu options on the secondary display at the distance I watch my TV from even on a 50" display. My PC is situated further back than the sofa (behind it) and simply saying to right click on the secondary display means I have to lean over and squint to see the options (I like to check filter properties and such). It was ideal when the player controls were on my main monitor and the video on the secondary display. It meant I could see EXACTLY what options to click on.
It was also a bit easier to exit because when you click on the icon on the taskbar in it's current form you sometimes end up minimizing the fullscreen to windowed as it's not always easy to tell if you already had it as the forground window. It's one of the things that made MPC-HC great being able to use the player controls with the mouse and not just key shortcuts (which there are not all shortcuts for) on one display whilst having the video play fullscreen on the other. I already got annoyed with Nvidia pulling that stunt by removing overlay mode from S-Video out on older cards in their later drivers. Now this is causing a similar issue. Like I said. It's not just me being awkward. It's a really useful feature. Especially for people like club DJ's who DO NOT wish for people to see the mouse cursor and popup menu's on a projection.

I hope this makes sense now.

EDIT: To answer your questions fullscreen exclusive works just fine and dandy in build 3005. MadVR .47 also worked fine and dandy in builds prior to MPC-HC supporting MadVR subs (But there were no subs obviously). The builds in between removed D3D support and I did not notice this until I got back to my home setup where I use multiple displays. Build 3005 added D3D in again but in the process has broken the seperate controller interface. If you decide not to work on that then that's obviously your decision and all I can do is work around the limitations as best I can. But I may just have to go back to EVR as it's easier to handle (Plus I can do screencaps but that's no biggie to switch back to that renderer just for that purpose).

I guess this is what happens when you have 2 different things going on in seperate fields. MPC-HC devs doing their own thing and you doing your own thing with your renderer.

madshi
3rd April 2011, 07:43
I have no problems with MadVR playing in exclusive mode.
You're confusing the hell out of me. In your previous post you were talking about tearing problems. Now you say you have no problems with madVR playing in exclusive mode. Now which is it? You can't have it both. Either you have tearing or you don't. If you do, then madVR is not in exclusive mode.

My issue is I cannot use the interface the same way I did previously because I am unable to view the menu options on the secondary display at the distance I watch my TV from even on a 50" display.
But in MPC-HC build 3005 I brought the "D3D Fullscreen" option back. So you should be able to use the interface the same way you did previously.

:confused:

JanWillem32
3rd April 2011, 08:39
So this shader allows to reproduce the banding problems you were seeing with the 3D LUTs earlier?This shader is quite good at creating perfect gradients. That includes the types that give horrible banding purely due to the 8- or 10-bit RGB output color quantization (source banding of near black colors isn't a big problem with floating-point surfaces). It's quite a good test to see what color management does to a certain gradient. On top of that, it should show the difference the different types of dithering can make. I can see some uneven distribution between the color bands in some transitions with linear interpolation. With better interpolation the bands are spaced more evenly. It's a minor thing, because even the most basic dithering will mask the minor deviations from true curves in the linear interpolation due to the noise.

oddball
3rd April 2011, 09:43
You're confusing the hell out of me. In your previous post you were talking about tearing problems. Now you say you have no problems with madVR playing in exclusive mode. Now which is it? You can't have it both. Either you have tearing or you don't. If you do, then madVR is not in exclusive mode.


But in MPC-HC build 3005 I brought the "D3D Fullscreen" option back. So you should be able to use the interface the same way you did previously.

:confused:

My bad. I was only experiencing tearing issues when in windowed mode. Sorry for the confusion (I was confused myself because when I made that post I did not know anything about exclusive mode). In build 3005 I can no longer use the player window on the main display when D3D is enabled. The menu options are greyed and if I click on anything nothing works. No pause. No stop. I cannot even click on the exit icon in the top right corner. I mean they click down but nothing actually happens. In builds prior to sub support for MadVR this was not an issue even with D3D ticked. However I can use most keyboard shortcuts and MadVR's right click options for MPC-HC.

madshi
3rd April 2011, 10:23
My bad. I was only experiencing tearing issues when in windowed mode. Sorry for the confusion (I was confused myself because when I made that post I did not know anything about exclusive mode). In build 3005 I can no longer use the player window on the main display when D3D is enabled. The menu options are greyed and if I click on anything nothing works. No pause. No stop. I cannot even click on the exit icon in the top right corner. I mean they click down but nothing actually happens. In builds prior to sub support for MadVR this was not an issue even with D3D ticked. However I can use most keyboard shortcuts and MadVR's right click options for MPC-HC.
Ok, so to sum up. In the following situation:

- "D3D Fullscreen" mode active
- video playback on secondary monitor
- MPC-HC main window is still on primary monitor

In this situation the MPC-HC main window user interface (play, stop, exit etc) does not work, anymore. Is that correct? Please double check the same problem with EVR and VMR. Does it occur with those renderers, too? Or does this problem only occur with madVR?

pdanpdan
3rd April 2011, 11:05
Ok, so to sum up. In the following situation:

- "D3D Fullscreen" mode active
- video playback on secondary monitor
- MPC-HC main window is still on primary monitor

In this situation the MPC-HC main window user interface (play, stop, exit etc) does not work, anymore. Is that correct? Please double check the same problem with EVR and VMR. Does it occur with those renderers, too? Or does this problem only occur with madVR?

1. + MadVR with exclusive mode ON + 3 seconds ON => MPC-HC interface does not work in exclusive mode,MPC-HC interface does work in non-exclusive mode, OSD seek bar(MadVR) does not show
2. + MadVR with exclusive mode ON + 3 seconds OFF => MPC-HC interface does not work, OSD seek bar(MadVR) does not show
3. + MadVR with exclusive mode OFF => MPC-HC interface does work, OSD seek bar(MadVR) does not show

4. + EVR-CP => MPC-HC interface does work, OSD seek bar(MPC) does show

madshi
3rd April 2011, 11:12
Ok, and how does that compare to older MPC-HC builds? There everything worked with madVR, too? That's important for me to know.

And even more important is with which revision the problem started. Can you please try the various older builds from here:

http://xhmikosr.1f0.de/index.php?folder=bXBjLWhjL29sZC94ODY=

And tell me up to which exact revision it still worked and with which revision it broke?

Thanks!

pdanpdan
3rd April 2011, 11:53
MPC interface: with 2987 it's working, from 2988 to 3007 there is no D3D, 3008 - not working.
MadVR OSD seekbar: not working in any version, so no change in there.

madshi
3rd April 2011, 12:44
Ok, I think it must be v0lt's change in revision 2991 then:

http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=revision&revision=2991

CruNcher
3rd April 2011, 15:31
Wow just tried http://www.mediafire.com/download.php?7hddy3klaxz9kyf with current MPC-HC TS Parser and it works absolutely flawless (no jitter 0-1ms no drops absolutely flawless) with Cyberlinks Decoder and DXVA (frame interlaced + progressive) (some time ago it jittered like crazy)


WOW WOW WOW

http://img27.imageshack.us/img27/6083/cyberlinkvc1frameinterl.png

http://www.mediafire.com/download.php?46xvi8z0q9vxtvf still no Video Connection to Cyberlinks Decoder, V0lt could you take a look @ that its field interlaced :(

http://img832.imageshack.us/img832/7673/fieldinterlacedvc1ts.png

not sure what for a nonsense the splitter detects here the ID is correct but Audio ?

General
ID : 1 (0x1)
Complete name : C:\mediadatabase\VC1\TS\MC.ts
Format : MPEG-TS
File size : 56.4 MiB
Duration : 17s 664ms
Overall bit rate : 26.7 Mbps
Maximum Overall bit rate : 35.5 Mbps

Video
ID : 4113 (0x1011)
Menu ID : 1 (0x1)
Format : VC-1
Format profile : AP@L3
Codec ID : 234
Duration : 17s 117ms
Bit rate : 24.8 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate : 29.970 fps
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.399
Stream size : 50.5 MiB (90%)

Audio
ID : 4352 (0x1100)
Menu ID : 1 (0x1)
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Codec ID : 129
Duration : 17s 664ms
Bit rate mode : Constant
Bit rate : 640 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
Video delay : -63ms
Stream size : 1.35 MiB (2%)


using Arcsoft Demuxer + Video Decoder it works flawless

http://img225.imageshack.us/img225/2796/arcsoftplaybackvc1field.png

v0lt
3rd April 2011, 16:02
Ok, I think it must be v0lt's change in revision 2991 then:

http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=revision&revision=2991
D3DFullscreen is incompatible with worker thread.
http://msdn.microsoft.com/en-us/library/bb174313(v=vs.85).aspx
This method should not be run during the handling of WM_CREATE. An application should never pass a window handle to Direct3D while handling WM_CREATE. Any call to create, release, or reset the device must be done using the same thread as the window procedure of the focus window.
There was a very nasty bug. Sometimes after closing the file (Ctrl+C), everything freezes except the taskbar.
If we do not use a worker thread, then everything is fine.

madshi
3rd April 2011, 16:31
D3DFullscreen is incompatible with worker thread.
No, it is not.

http://msdn.microsoft.com/en-us/library/bb174313(v=vs.85).aspx

Any call to create, release, or reset the device must be done using the same thread as the window procedure of the focus window.
Yeah, correct. But that doesn't mean that you can't use a worker thread. You just need to do device reset / release on the worker thread, too. That would be the proper bug fix.

If we do not use a worker thread, then everything is fine.
That's a cheap way to "fix" the problem. And it breaks D3D Fullscreen with madVR. So no, not everything is fine.

v0lt
3rd April 2011, 17:22
Yeah, correct. But that doesn't mean that you can't use a worker thread. You just need to do device reset / release on the worker thread, too. That would be the proper bug fix.
We tried. It does not help.

Changeset 3011 (http://sourceforge.net/apps/trac/mpc-hc/changeset/3011/)
update for commit 2991: don't use a worker thread in D3DFullscreen mode except madVR

madshi
3rd April 2011, 17:24
Thanks, v0lt, I appreciate that.

BTW, what I don't understand: CreateDevice, DeviceReset and release is all needed for windowed mode, too. So why do the problems with the worker thread only occcur with D3D Fullscreen mode? Anyway...

So, to those madVR users who want to use D3D Fullscreen mode: It should work as it used to with build 3011 and newer.

pdanpdan
3rd April 2011, 18:12
@Madhi / @v0lt
Thank you

janos666
3rd April 2011, 18:33
Does anybody have problems with subtitles and r3010 (I am using xhmikosr's MSVC'10 x86 build).

v0lt
3rd April 2011, 18:35
@JanWillem32
I was asked to report:
If the Catalyst Control Center is not installed on your system, then the driver does not allow to derive NV12 (which works renderer EVR CP in recent versions). Only RGB32 gives. That is bad for DXVA and get the black screen.

sneaker_ger
3rd April 2011, 18:37
Does anybody have problems with subtitles and r3010 (I am using xhmikosr's MSVC'10 x86 build).

No problem here using that exact same build. (win 7 x64)

janos666
3rd April 2011, 18:41
AMD drivers are unable to operate properly without CCC. It also applies for any D3D or OpenGL softwares, not only for video decoding.
Their WDDM drivers are simply useless without the CCC application. (If you want to do anything else than running the Windows Aero and other basic stuffs without hardware acceleration.)

janos666
3rd April 2011, 18:50
No problem here using that exact same build. (win 7 x64)

Thanks. It works again after I deleted my settings from the registry and reconfigured.

SamuriHL
3rd April 2011, 18:50
Does anybody have problems with subtitles and r3010 (I am using xhmikosr's MSVC'10 x86 build).

Just tested it. Working fine for me. madVR 0.49 and 3010 MSVC 2010 x86 build.

oddball
3rd April 2011, 18:59
Thanks guys for listening. I'll let you know how I get on with 3011 when it hits your site.

pirlouy
3rd April 2011, 23:01
AMD drivers are unable to operate properly without CCC. It also applies for any D3D or OpenGL softwares, not only for video decoding.
Their WDDM drivers are simply useless without the CCC application. (If you want to do anything else than running the Windows Aero and other basic stuffs without hardware acceleration.)
Ah ??
CCC is not started for me, and I don't have problems, in games or when watching videos for example...

janos666
3rd April 2011, 23:22
I lost the subtitles again after I changed the font size of the default style, and nothing else brings it back except the registry cleaning.

Ah ??
CCC is not started for me, and I don't have problems, in games or when watching videos for example...

CCC sets the proper driver configuration for the 3D applications (loads the application profiles to ensure compatibility with the given software).
You don't need to run the GUI itself all the time but you need it to be installed and you shouldn't kill it's backgroung processes (AMD External Events Service/Client Module...).

Of course, you can live without it, as you can live without the driver itself but you are only asking for trouble because it is needed for full functionality.

ryrynz
4th April 2011, 00:21
D3D Fullscreen option gives us automatic fullscreen on playback which I find useful in MPC (I don't have to push the fullscreen button on my remote after I press play) Is it possible to provide us this this feature aside from using this? Launch files in fullscreen does the trick when I launch a file in explorer but if I have files in the playlist it won't enter fullscreen mode.

Ger
4th April 2011, 00:37
@JanWillem
Tried tester build 3008. No change in A=-0.60 and A=-0.75 resizers. A=-1.00 is still OK.

FYI:
Desktop ATI 5770 -> DVI -> Dell2790W@1920x1200 = broken.
Laptop Nvidia 9600M GT -> HDMI -> same Dell2790W@1920x1200 = working.


Also tested the chroma upsampling issue (blocky reds (http://i.imgur.com/1k7SI.png)) with that Nvidia laptop and the same monitor connected via HDMI, and it's not affected at all, so that is apparently also (still) an ATI-only issue.

For the people who were asking questions about this issue earlier, a summary of what I've tested:
- ATI + EVR-CP affected (11.2 and 11.3 drivers tested).
- Trunk r2833 OK.
- Trunk r2840 and later affected (issue started in r2834-r2840 range).
- Official 2903 from SorceForge OK (this is not a standard 2903 trunk build).
- JanW mods (-3008) and bobdynlan/BE mods (-3010) also affected.
- Colorspace output by decoder does not seem to matter (exception is RGB32 with HQ conversion done in decoder).
- DXVA or not does not matter (except the issue is much harder to spot in HD material, which is normally what you'd use DXVA for I assume). The improvement by the YV12 shader can still be spotted in HD material played with DXVA, but it's easier to see if you zoom in as much as possible.
- Nvidia OK.
- EVR Sync and other renderers OK.

Workarounds include:
1. The included "YV12 Chroma Upsampling" shader by Leak. The name of the shader does not mean that the decoder's ouput colorspace has to be YV12. It works well with different colorspaces and with both integer and fp surfaces. This is probably the easiest and most flexible workaround. I've not seen this break anything in any situation (may add a slight blur compared to no shaders in old unaffected builds or EVR Sync if you really stare at it).

2. JanWillem's shaders available in his shader packs. The optimized fp path worked for me with NV12 and fp, but also needs to be properly matched to your config or the result can get worse.

3. Perform high quality RGB conversion in the decoder and feed RGB32 to EVR-CP. Warning: This will break ATI's Vector Adaptive hardware deinterlacing (requires NV12) and will obviously not work with DXVA (requires NV12 as well):
a) ffdshow: Set to output RGB32 with "High quality YV12 to RGB conversion checked (unchecking NV12 on the output page is enough to accomplish that on ATI+EVR with the default settings in latest ffdshow builds).
b) bobdynlan's swscaler mod (also included in the Black Edition mods available from xvidvideo.ru). "Chroma to RGB" must be set to "Full" ("High" is not enough) in the MPC Video decoder properties. RGB32 must be moved to the top of the list if the others are still checked. These options are not currently available for the MPEG-2 decoder or in regular trunk builds.

4. Use official 2903 build or trunk r2833 or earlier.

5. Use another video renderer or Nvidia. :p

I'm hoping this can eventually be fixed in EVR-CP by JanWillem or someone else, to get it on par with the old behavior and EVR Sync. In the meantime the first workaround, the "YV12 chroma upsampling shader", is a quick and easy solution for affected ATI/EVR-CP users.

This was all written (and sometimes tested) rather quickly, so there may be some mistakes or erroneous assumptions. Feel free to correct me if that's the case. I hope it answers most of the questions that were asked from a user's perspective. If you want technical details from a dev's perspective, I'm not the guy to ask.

oddball
4th April 2011, 01:19
Build 3011 does indeed bring back the menu's etc using D3D option but it broke something in the process. I have a greeny orange seek bar stuck at the bottom on the secondary display showing the video and playback is jerky. I'll investigate further with some default settings in a while to make sure it's not some filter/codec combination causing it (watching a movie at the moment).