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

XhmikosR
18th August 2010, 14:36
@tetsuo55: it shouldn't matter any more if the playlist is docked or not. But MPC-HTPC and GTPVHD have to figure out what's causing the crashes if it's a setting.

GTPVHD
18th August 2010, 14:36
No difference, still crashes on Athlon XP even after deleting the whole Gabest registry key. MSVC2008 2267 works fine.

Application exception occurred:
Exception number: c000001d (illegal instruction)

MPC-HTPC
18th August 2010, 14:36
GTPVHD, try deleting all the ini and registry settings, and make sure the playlist and shaderlist are docked in their default positions

After reinstalling the MSVC2010 build of r2267 and telling the installer to reset settings this build is working fine for me!

Dreamhacker
18th August 2010, 14:38
That was unexpected, i see he asked microsoft and they gave the solution :D, and how deceptively simple to solve too.

Things aren't always as they appear in MFC, so it took a bit of time and a comment from a MVP before I understood what actually was going on and what was the error. :p

XhmikosR
18th August 2010, 14:40
After reinstalling the MSVC2010 build of r2267 and telling the installer to reset settings this build is working fine for me!

@GTPVHD: can you confirm this?

GTPVHD
18th August 2010, 14:41
I don't use the installer, I only use the 7z archive. I guess MSVC2010 doesn't like Athlon XP CPU.

XhmikosR
18th August 2010, 14:42
You do not have to use the installer, just delete HKEY_CURRENT_USER\Software\Gabest

GTPVHD
18th August 2010, 14:43
I did that already, deleted the whole Gabest registry key, no difference. It still crashes on my Athlon XP trying to playback any videos.

madshi
18th August 2010, 14:45
Does your ffmpeg patch make it behave exactly like this?
Yes, but only for those decoders which eac3to is using:

(1) AC3, E-AC3 and DTS decoding are patched to output floating point.
(2) TrueHD decoding is patched to output 24bit. Or was it 32bit? Don't remember. If it's 32bit then the lowest 8bit are zeroed out and eac3to simply removes those 8bit again to get back to the orginal 24bit.
(3) The latest ffmpeg offers an official floating point MP1/2/3 decoder, so I don't have to patch that, anymore.

XhmikosR
18th August 2010, 14:45
I did that already, deleted the whole Gabest registry key, no difference. It still crashes on my Athlon XP trying to playback any videos.

I'll post a test build soon for you to test.

tetsuo55
18th August 2010, 14:45
Can you try the installer anyway?

If that works we will know something is messing up with .exe replace updates.

MPC-HTPC
18th August 2010, 14:50
I tried a little bit more to find the reason for the crash. Therefore I reinstalled the r2223 MSVC 2008 build with the option to reset my settings enabled and then just changed one setting back from my old setup, then I reinstalled r2267 MSVC 2010 build and tried to play a file.
If the file played, I would again reinstall r2223 MSVC 2008 build with resetting my settings enabled and then again just change one setting and then reinstalling r2267 MSVC 2010. I hope I could make my point here.

Nevertheless, the only settings where I could reproduce the error is, when r2223 MSVC 2008 was set to use EVR Custom Presenter or EVR Sync as renderer and then r2267 MSVC 2010 was installed. I hope this helps!

P.S.: I also have an AthlonXP-CPU in my setup here.

GTPVHD
18th August 2010, 14:51
It's not an exe replacement problem I think, I can start the MSVC2010 build just fine, it works and doesn't crash, only when I try to playback any videos then it crashes.

XhmikosR
18th August 2010, 14:54
Try this build (http://xhmikosr.1f0.de/zzzother/mpc-hc.exe.7z).

nevcairiel
18th August 2010, 14:54
The problem sounds like the .exe was compiled with SSE2 (or even something higher), and Athlon XP doesn't support this. So when you try to run it, you get "illegal instruction", as the SIMD optimized code is only in the audio/video decoders and possibly renderers.

GTPVHD
18th August 2010, 14:59
Yes, I can confirm what nevcairiel wrote. I tested on my Core 2 and Core i5 PCs and no crashes, so it must be SSE2. I'm not too worried about that though, the Athlon XP PC is only for testing purposes.

Try this build (http://xhmikosr.1f0.de/zzzother/mpc-hc.exe.7z).

This build works fine on Athlon XP. Thanks for the test build.

MPC-HTPC
18th August 2010, 15:00
In addition to my previous post I have to add, that r2267 MSVC 2010 always crashes for me when trying to play a file as soon as I activate EVR Custom Presenter or EVR Sync as renderer.

Everything is working absolutely fine when using the test build XhmikosR just posted.

tetsuo55
18th August 2010, 15:14
thats strange, SSE2 compiled should give you a 0xxxxc5 error.

sansnom05
18th August 2010, 15:18
Hi, XhmikosR,

I've just got a VS2010 license, now I'm trying to build MPC-HC by myself. Do you have an updated version of Guide for compiling MPC-HC using MSVC2010, like what update should I install, or just using vanilla MSVC2010 will do?

And thanks for all your great works. Keep up. :)

nevcairiel
18th August 2010, 16:42
thats strange, SSE2 compiled should give you a 0xxxxc5 error.

Illegal Instruction is the proper error to get.
c5 is a generic access violation, which can also happen, depending on how the assembly is used first.

XhmikosR
18th August 2010, 16:51
The situation is the following: something is wrong with that Athlon XP, cause we only use SSE which is supposed to be supported by that CPU. And SSE is enabled in both VS2008 and VS2010 builds. Maybe something was broken in VS2008 and didn't apply it right and VS2010 applies the SSE correctly. But that's what I changed in that build that works for GTPVHD; I removed the SSE switch. Also even if the gain is minimal personally I'm not going to remove the SSE switch.

Hi, XhmikosR,

I've just got a VS2010 license, now I'm trying to build MPC-HC by myself. Do you have an updated version of Guide for compiling MPC-HC using MSVC2010, like what update should I install, or just using vanilla MSVC2010 will do?

And thanks for all your great works. Keep up. :)

Right now the guide is the same as VS2008 builds except that you do not need SDK 7.1. This maybe change in the future though. You should use the mingw/gcc package linked in the wiki (4.5.1) cause with the previous mingw/gcc I had problems when linking mpc-hc with VS2010.

MPC-HTPC
18th August 2010, 16:58
For me it would be fine to keep the SSE switch, since my PCs that I use for video playback support SSE and your r2267 MSVC 2010 build from the FTP-Server is working fine on them (except the strange problem for the AthlonXP, but this is just my workstation).

How do you think about it GTPVHD?

XhmikosR
18th August 2010, 17:00
Like I said, I'm not going to remove the SSE switch. We decided to enable it and we are not going to remove it unless you can prove that it hurts performance.

GTPVHD
18th August 2010, 17:02
I only use the Athlon XP for testing and catching bugs like this, I don't really care since I don't think many people use Athlon XP anymore(way too slow for HD playback). Besides the MSVC2008 SP1 builds works on Athlon XP, so it's no big issue.

sansnom05
18th August 2010, 17:08
Right now the guide is the same as VS2008 builds except that you do not need SDK 7.1. This maybe change in the future though. You should use the mingw/gcc package linked in the wiki (4.5.1) cause with the previous mingw/gcc I had problems when linking mpc-hc with VS2010.

So install SDK7.1 won't hurt, right? :) And I assume we don't need the VC2008 ATL update either, and can go ahead just using your vs2010 solution file. And I downloaded your MSYS-GCC 4.5.1 package from your site, so no problem here I guess.

Thanks for your reply. :thanks:

SamuriHL
18th August 2010, 17:09
Can I get a link to the MPC-HC build guide? One of these days I'm gong to get my HTPC set up for building ffdshow and mpc-hc so I can do my own builds. Thanks!

XhmikosR
18th August 2010, 17:12
So install SDK7.1 won't hurt, right? :) And I assume we don't need the VC2008 ATL update either, and can go ahead just using your vs2010 solution file. And I downloaded your MSYS-GCC 4.5.1 package from your site, so no problem here I guess.

Thanks for your reply. :thanks:

I don't see something wrong with the SDK VS2010 ships with (v7.0A) except for the warning when embedding the manifest file which doesn't happen if I specify Windows7.1SDK in the Platform Toolset in the mpc-hc project.

Can I get a link to the MPC-HC build guide? One of these days I'm gong to get my HTPC set up for building ffdshow and mpc-hc so I can do my own builds. Thanks!

For up to date instructions on how to compile mpc-hc visit the wiki page:

http://sourceforge.net/apps/trac/mpc-hc/wiki/How_to_compile_the_MPC

MPC-HTPC
18th August 2010, 17:12
Like I said, I'm not going to remove the SSE switch. We decided to enable it and we are not going to remove it unless you can prove that it hurts performance.

I understand that decision and fully support it. Like GTPVHD said, if anyone with an AthlonXP really wants to use MPC-HC he can still rely on the MSVC 2008 builds.
Thanks for all your effort, I really appreciate it!

And for SamuriHL:

Here is the link for how to compile MPC-HC:

http://sourceforge.net/apps/trac/mpc-hc/wiki/How_to_compile_the_MPC

Dreamhacker
18th August 2010, 17:13
So install SDK7.1 won't hurt, right? :) And I assume we don't need the VC2008 ATL update either, and can go ahead just using your vs2010 solution file. And I downloaded your MSYS-GCC 4.5.1 package from your site, so no problem here I guess.

Thanks for your reply. :thanks:

I'm building it with Windows SDK 7.1 and MSYS-GCC 4.5.1, though I don't think it makes much difference if you use SDK 7.1 or 7.0A (except one less warning and newer is better unless it breaks it :P).

So, no, installing SDK 7.1 won't hurt. ;)

PS: After installing the SDK 7.1, remember to change the toolset property in the MPC-HC project.

SamuriHL
18th August 2010, 17:15
Thanks, guys! Appreciate it. I'm gonna upgrade to VS2010 maybe today and give it a shot.

Alexander01
18th August 2010, 17:16
Can someone confirm this:

Is it true that the colors are a little bit deeper/stronger when using the 10 bit RGB option and D3D Fullscreen Mode? I am using the 10 bit RGB option for some time now, but a few days back I also checked the D3D Fullscreen Mode option. I have the feeling the colors are a little bit deeper/stronger with D3D Fullscreen.

anyone?

tetsuo55
18th August 2010, 17:55
D3D fullscreen is really the only way to actually get 10bit to your display.

Alexander01
18th August 2010, 18:15
Ah ok. I already had deeper colors and beter blacks with the 10 bit RGB option. But the D3D Fullscreen option just has something extra :)

I only have problems when I try to exit D3D Fullscreen (CTRL+C) or when I exit MPC-HC (ALT+X). The Screen stays black and I have to do CTRL-ALT-DEL and then click Cancel to get my desktop back again. This only happens the second when I start MPC-HC after a cold boot. The first time after cool boot it I see my desktop imeddiatly when I use ALT+X. Is this a bug in MPC-HC or with the ATI display drivers? Can someone test this?

tetsuo55
18th August 2010, 19:38
I expect a patch for the 10bit mode soon, maybe that will fix it.

yesgrey
18th August 2010, 20:30
-lossy codecs should be decoded with 32bit float accuracy (this is already the case)
-Lossless PCM streams should not be touched in any way
-If any content happens to be 32bit/float it should be dithered down to 24/int
Let me add another thing that is very important.
Don't forget to include in the audio renderer the possibility of outputting as 32 bit PCM, because several soundcards drivers only accept 16 bit integer and 32 bit integer connections. So, for playing 24 bit files the audio renderer needs to pad the 24 bit PCM files to 32 bit PCM.

SamuriHL
18th August 2010, 20:46
Let me add another thing that is very important.
Don't forget to include in the audio renderer the possibility of outputting as 32 bit PCM, because several soundcards drivers only accept 16 bit integer and 32 bit integer connections. So, for playing 24 bit files the audio renderer needs to pad the 24 bit PCM files to 32 bit PCM.

Yup. The ATI HDMI driver needs 24 bit padded to 32 bit. ReClock does this for us.

madshi
18th August 2010, 21:23
Don't forget to include in the audio renderer the possibility of outputting as 32 bit PCM, because several soundcards drivers only accept 16 bit integer and 32 bit integer connections. So, for playing 24 bit files the audio renderer needs to pad the 24 bit PCM files to 32 bit PCM.
Yeah, but in that case please pad with 0, and not with dithering noise... :)

tetsuo55
18th August 2010, 21:26
GTPVHD, MPC-HTPC

Do older vs2010 builds fail for you too?

yesgrey
18th August 2010, 21:51
Yeah, but in that case please pad with 0, and not with dithering noise... :)
Yes, the drivers simply discard the lower 8 bit.

sansnom05
18th August 2010, 21:56
PS: After installing the SDK 7.1, remember to change the toolset property in the MPC-HC project.

I've noticed that there are no more manifest warning when I change the toolset property to "Windows SDK 7.1" in mpc-hc project. But there are a lot of other project still using v100 aka 7.0A shipped with vs2010. If I change the others as well, will there be any benefit? Or just leave it be cause no harm is done?

I'm using win7 x64, so I downloaded & installed SDK7.1 x64 ISO, and it installed itself in "Program Files" directory. During building the mpc-hc, except for the last step(build mpc-hc project), it still use V7.0A tools under "Programe Files(x86)". I'm thinking maybe I should use the x86 ISO file from microsoft or just install both?

:thanks:

Dreamhacker
18th August 2010, 22:47
I've noticed that there are no more manifest warning when I change the toolset property to "Windows SDK 7.1" in mpc-hc project. But there are a lot of other project still using v100 aka 7.0A shipped with vs2010. If I change the others as well, will there be any benefit? Or just leave it be cause no harm is done?

I'm using win7 x64, so I downloaded & installed SDK7.1 x64 ISO, and it installed itself in "Program Files" directory. During building the mpc-hc, except for the last step(build mpc-hc project), it still use V7.0A tools under "Programe Files(x86)". I'm thinking maybe I should use the x86 ISO file from microsoft or just install both?

:thanks:

The 7.0A SDK works fine, so you could just leave them like they are unless you wanna try remove possible warnings that could be fixed with 7.1 SDK. :)

My opinion is however to always use the latest SDK if possible. :P

blaster00
18th August 2010, 23:40
Thanks to heksesang, all known crashes with the MSVC2010 builds should be fixed in r2267 (http://mpc-hc.svn.sourceforge.net/viewvc/mpc-hc?view=rev&revision=2267).
Please everyone try the r2267 MSVC2010 builds from the link in my signature and report back.

Works great, no crash. But why still using sizecbar 2.43 not 2.45?

XhmikosR
19th August 2010, 00:13
It's on our to-do list.

Snowknight26
19th August 2010, 02:30
I see that the AC3 decoder still doesn't support E-AC3 downmixing - probably be a one line fix, too. What a shame.

sneaker_ger
19th August 2010, 08:59
I'm getting a crash on starting up MPC-HC x64 2268 when I open this file (http://www.mediafire.com/?4dntk6nwyw1kaya) (mp4, h.264, aac) via a double click. If I start MPC-HC first and then load the file the player does not crash. I tried different splitters and different renderes to no avail. If I'm using the internal H.264 filter it does not crash - it only crashes when using ffdshow (3529). :confused:
Hopefully someone can take the time to take a look at it...

MPC-HTPC
19th August 2010, 10:01
GTPVHD, MPC-HTPC

Do older vs2010 builds fail for you too?

I just did a quick test with r2220 MSVC 2010 build (checked resetting all my settings in installer) from XhmikosR and I also get a crash here, when I open a file and have VMR-9 (renderless), VMR-7 (renderless), EVR Custom Presenter or EVR Sync selected as renderer.

The specs of my workstation are:
- WinXP SP3
- AMD Athlon XP3000+
- ATI Radeon 9700

XhmikosR
19th August 2010, 10:23
Which is normal. Anyway, it's something specific to Athlon XP and VS2010 with SSE.

nevcairiel
19th August 2010, 10:43
Anyone happen to have a Intel CPU that doesn't support SSE2 for cross-testing? That would be Pentium 3 or older.
Sounds like a bug in VS2010 that generates assembly thats not supported on the Athlon XP, or it generates SSE2 code when SSE is turned on, who knows! I don't feel like digging through the generated code to see which instructions are being used, anyone else? :d

Mercury_22
19th August 2010, 11:03
Small observations for "How-to compile MPC-HC" wiki:
When you want to use SDK7.1 with only VS2010 installed Windows SDK Configuration Tool fails see http://connect.microsoft.com/VisualStudio/feedback/details/564354/winsdk-7-1-net-4-windows-sdk-configuration-tool-fails-with-only-vs2010-installed
You have to (manually) right click the project file and to choose to use the 7.1 Toolset
Also in the path from part E the "trunk" directory should be eliminate to be in accordance with the example path from the part B , since the "URL of Repository" in part C is https://mpc-hc.svn.sourceforge.net/svnroot/mpc-hc/trunk

I need some help with (building MPC-HC x64) "Building ffmpeg x64 (libavcodec) with GCC "

I followed the guide (part E) and nothing it's working!
First there is no "buildffmpeg.sh" so $ ./buildffmpeg.sh --updatemingw
sh: ./buildffmpeg.sh: No such file or directory
and using ./buildmingwlibs.sh --updatemingw --compilemingw gives me an svn.exe error The application was unable to start correctly (0xc000007b)...
and
$ ./buildmingwlibs.sh --compilemingw
Compiling MinGW64 crt and headers...
./buildmingwlibs.sh: line 87: ../mingw-w64-crt/configure: No such file or direct
ory

P.S. I can compile MPC-HC x86 with VS2010 with no problems

MPC-HTPC
19th August 2010, 11:03
I do not know yet if I can get access to it, but maybe I could test it on a PC with Pentium 3 this evening. If there is anybody else with a Pentium 3, then please go ahead! :)