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

cc979
29th March 2008, 20:23
No-one has seen this problem? I use the internal filters.

the only time i get the same problem is when playing a VR-disc i think is a problem with the dvd recorder

G_M_C
29th March 2008, 21:25
I've found something that might be a bug (MPC-HC, Win XP, MPC file-date 24/2/2008, dont know build nr);

When in file-explorer and right-clicking and selecting "Play with MPC", than MPC ignores SAR in the AVI (Xvid). When i double-click the file (wich should have the same result) SAR is applied correctly.

I can replicate this with every AVI i have.

Hope this info is helpfull :)

clsid
29th March 2008, 22:16
On many DVDs in the main movie, the seeking doesn't seem to work. That is, if you click somewhere on the seekbar, nothing happens, the cursor just jumps back. Also sometimes (on the same discs?) when I change chapter, the chapter will change but the cursor on the seekbar will not move, it will stay at the beginning, so you can't see how far in the movie you are..

Is this a known bug and in that case is there a fix?
I had a similar problem on one DVD. I suspect the bug is in the DVD Navigator filter (from Microsoft).

Hittori
29th March 2008, 22:33
I had a similar problem on one DVD. I suspect the bug is in the DVD Navigator filter (from Microsoft).

Is that an internal filter in MPC or external(in the OS)? If it is an external filter, do you know how to update it? maybe I have an old version of it because I get this problem on approx 50% of my discs it seems like.

Miryan
29th March 2008, 22:33
I've found something that might be a bug (MPC-HC, Win XP, MPC file-date 24/2/2008, dont know build nr);

When in file-explorer and right-clicking and selecting "Play with MPC", than MPC ignores SAR in the AVI (Xvid). When i double-click the file (wich should have the same result) SAR is applied correctly.

I can replicate this with every AVI i have.

Hope this info is helpfull :)

Its already fixed in the latest version, please update.

CruNcher
29th March 2008, 22:46
@Casimir666

http://forum.doom9.org/showthread.php?p=1119374#post1119374

Could explain alot of problems i think :)

clsid
30th March 2008, 00:06
Is that an internal filter in MPC or external(in the OS)? If it is an external filter, do you know how to update it? maybe I have an old version of it because I get this problem on approx 50% of my discs it seems like.
It belongs to the OS and there are no updates for it.

Casimir666
30th March 2008, 11:54
@Casimir666

http://forum.doom9.org/showthread.php?p=1119374#post1119374

Could explain alot of problems i think :)

For software mode yes you are right, but DXVA decoder didn't use ffmpeg multithreading.

bwahn
31st March 2008, 02:34
using a VideoAccelerator, In MPC-hc, have a method IPinhook class. It's hooking technique.

I want to know if Hooking Technique is a only method?

In VA supported MPEG2 or H.264 codec-self such as elecard, NVidia, do they use a Hooking Technique?

Casimir666
31st March 2008, 18:41
using a VideoAccelerator, In MPC-hc, have a method IPinhook class. It's hooking technique.

I want to know if Hooking Technique is a only method?

In VA supported MPEG2 or H.264 codec-self such as elecard, NVidia, do they use a Hooking Technique?

IPinHook is only use to detect DXVA mode for third part decoder, and for debugging purpose. It's not necessary for DXVA decoding

Rille
31st March 2008, 20:23
I have a very weird problem when using DXVA with my HD3450 which i don't think have been covered before. When using DXVA i get ALOT of artifacts (also with Cyberlink decoder). However, if i rightclick in MPC so the menu shows on top the problem doesn't occour. Tried it on 2 PC's with Vista and XP in both (clean installs). See attached screens.
As no one else seems to have the problem i thought it was my 3450 that was broken but seems strange when it works when menu is on top.

Any ideas?

http://img368.imageshack.us/img368/9456/dxvagt3.th.jpg (http://img368.imageshack.us/my.php?image=dxvagt3.jpg)

http://img504.imageshack.us/img504/4727/dxva2js5.th.jpg (http://img504.imageshack.us/my.php?image=dxva2js5.jpg)

sheppaul
31st March 2008, 21:29
It probably is an issue related with crap drivers, not video card.

raynor
1st April 2008, 04:13
@ Casimir666:

Will the EVR/EVR-Custom black level issue
(washed out colors with Vista SP1 + recent nVidia drivers)
be fixed in a future release ?

Thx in advance & best wishes,
raynor

audyovydeo
1st April 2008, 15:26
SAR is supported but not all aspect ratios are DXVA compatible, seems like you are using an incompatible SAR

This is very interesting : can you tell us which are, and possibly state your sources ?

reson I'm asking is that I am using what I believe to be non-standard ratios (64:45, 32:27) and these clips get accelerated.


thanks in advance
audyovdeo

tetsuo55
1st April 2008, 17:16
This is very interesting : can you tell us which are, and possibly state your sources ?

reson I'm asking is that I am using what I believe to be non-standard ratios (64:45, 32:27) and these clips get accelerated.


thanks in advance
audyovdeo

only allowed are 1:1/4:3/5:4/16:9

http://forum.doom9.org/showthread.php?p=1097671&highlight=sar#post1097671

engene
1st April 2008, 20:38
only allowed are 1:1/4:3/5:4/16:9

http://forum.doom9.org/showthread.php?p=1097671&highlight=sar#post1097671

Thanks for reply.


1:1/4:3/5:4/16:9 are DAR,not SAR.
SAR is the same as Pixel Aspect Ratio (PAR) and it's different from Display Aspect Ratio (DAR).


Sample (or Pixel) Aspect Ratio = sample width / sample height
Display Aspect Ratio = display width / display height

To calculate the SAR starting from DAR you can use the following formula:

SAR = DAR * height / width

More info can be found here: http://trac.videolan.org/x264/browser/trunk/doc/vui.txt

shaolin95
1st April 2008, 20:46
Guys when playing a 1080p MKV of Casino Royale that I use for deinterlace testing...I noticed that the only way I can minimize the visibility of interlace related artifacts (ie stairstepping) is by using VMR9 and using the shaders deinterlace option. I have tried using ffdshow but it doesnt have the same result.
I do remember with my previous card (8800gt) I was able to completely get rid of the issues in all scenes but havent been able to recreate that cleaness with the 2600pro.
Essentially at the beggining of the movie when Bond is following that guy climbing the building under construction he climbs some sort of crane and thats pretty clean with the 2600pro but later when they guy jumps from inside the building there is a vertical rope in the background that shows bad artifacts which didnt happen with my 8800gt.
Any ideas?
Maybe pics will help you recommend a setting or something...

bwahn
2nd April 2008, 08:46
IPinHook is only use to detect DXVA mode for third part decoder, and for debugging purpose. It's not necessary for DXVA decoding

Using processing in a decoding level, so h264.ax or mpeg2.ax, May I don't use a IPinHook?
cuz don't call GetUncompSurfacesInfo function my Outputpin in decoder. of course, in filter's SetMediaType function, I coded BuildDXVAOutputFormat().

implementation like that

STDMETHODIMP CMpegDecOutputPin::GetUncompSurfacesInfo
{
...
... some routine..
...
}

ps : do you have a email address?
May I send a sample code?

appyton
2nd April 2008, 16:09
I get different black levels with:
Cyberlink codec + MPC-HC + EVR - correct (I think)
compared to
Cyberlink codec + MPH-HC + EVR custom - washed out

Especially after updating SP1 and I have tried various NVIDIA drivers (including the latest relelast 4/1/08).

Can anybody fix that? Really need EVR-custom for subtitles.

clsid
2nd April 2008, 17:04
Read the past few pages of this topic and you'll find a couple dozen posts about it.

Just be patient, I am sure Casimir will address this issue in the next final version.

appyton
3rd April 2008, 13:53
Read the past few pages of this topic and you'll find a couple dozen posts about it.

Just be patient, I am sure Casimir will address this issue in the next final version.
:thanks: Sorry and will wait

clsid
3rd April 2008, 15:52
Meanwhile you could use the "16-235 -> 0-255" shader to correct the luminance level.

leeperry
3rd April 2008, 16:55
I get different black levels with:
Cyberlink codec + MPC-HC + EVR - correct (I think)
compared to
Cyberlink codec + MPH-HC + EVR custom - washed out

Especially after updating SP1 and I have tried various NVIDIA drivers (including the latest relelast 4/1/08).

Can anybody fix that? Really need EVR-custom for subtitles.

install evrprop.dll, open the EVR settings and uncheck "draw border".

that should work.

Steveo08
3rd April 2008, 20:09
install evrprop.dll, open the EVR settings and uncheck "draw border".

that should work.


where can i download "evrprop.dll"?

Rectal Prolapse
3rd April 2008, 20:23
Steveo, if I remember right, you can get it with the .NET 3 runtime from Microsoft.

Steveo08
3rd April 2008, 20:35
Steveo, if I remember right, you can get it with the .NET 3 runtime from Microsoft.



i don't think, cause i've already installed .net3 on my computer and i can't find evrprop, just evr.

Shinigami-Sama
3rd April 2008, 21:50
dll-files.com?

appyton
4th April 2008, 02:35
install evrprop.dll, open the EVR settings and uncheck "draw border".

that should work.

Is this possible in Vista? U mean can use EVR mode for subtitles? Whr to get EVR.dll and where to find EVR settings? Some help plz.

Miryan
4th April 2008, 11:28
where can i download "evrprop.dll"?

http://dl2.usite.hu/player/EVR.Renderer.SP1.zip

This zip includes evrprop.

EricAhn
4th April 2008, 14:15
In mpc-hc,
I am writing DXVADecoderMpeg2.cpp.
But, some question about structures sometings.

Which do I use structures in dxva.h?
That's my code.

in header:
DXVA_PictureParameters m_PictureParams;
DXVA_SliceInfo m_SliceInfo;

HRESULT CDXVADecoderMPEG2::DecodeFrame (BYTE* pDataIn, long len, REFERENCE_TIME rtStart, REFERENCE_TIME rtStop)
{
HRESULT hr;
int nPictType;
int nSurfaceIndex;
CComPtr<IMediaSample> pSampleToDeliver;

nPictType = Mpeg2UpdatePictureParams (&m_PictureParams, pDataIn, len, rtStart, rtStop);

if(nPictType == 0) return S_OK;
// Wait I frame after a flush
if (m_bFlushed && ! m_PictureParams.bPicIntra)
return S_FALSE;

hr = GetFreeSurfaceIndex (nSurfaceIndex, &pSampleToDeliver, rtStart, rtStop);
if (FAILED (hr))
{
ASSERT (hr == VFW_E_NOT_COMMITTED); // Normal when stop playing
return hr;
}

CHECK_HR (BeginFrame(nSurfaceIndex, pSampleToDeliver));

TRACE ("=> %I64d Surf=%d\n", rtStart, nSurfaceIndex);

m_PictureParams.wDecodedPictureIndex = nSurfaceIndex;
m_PictureParams.wDeblockedPictureIndex = m_PictureParams.wDecodedPictureIndex;

// Manage reference picture list
//if (!m_PictureParams.bPicBackwardPrediction)
//{
// if (m_wRefPictureIndex[0] != VC1_NO_REF)
// RemoveRefFrame (m_wRefPictureIndex[0]);
// m_wRefPictureIndex[0] = m_wRefPictureIndex[1];
// m_wRefPictureIndex[1] = nSurfaceIndex;
//}
//m_PictureParams.wForwardRefPictureIndex = (m_PictureParams.bPicIntra == 0) ? m_wRefPictureIndex[0] : VC1_NO_REF;
//m_PictureParams.wBackwardRefPictureIndex = (m_PictureParams.bPicBackwardPrediction == 1) ? m_wRefPictureIndex[1] : VC1_NO_REF;
//m_PictureParams.bPicScanMethod++; // Use for status reporting sections 3.8.1 and 3.8.2

// Send picture params to accelerator
m_PictureParams.wDecodedPictureIndex = nSurfaceIndex;
CHECK_HR (AddExecuteBuffer (DXVA2_PictureParametersBufferType, sizeof(m_PictureParams), &m_PictureParams));
CHECK_HR (Execute());


// Send bitstream to accelerator
m_SliceInfo.wQuantizerScaleCode = 1; // TODO : 1->31 ???
UINT nSize = len;
CHECK_HR (AddExecuteBuffer (DXVA2_BitStreamDateBufferType, nSize, pDataIn, &nSize));
m_SliceInfo.dwSliceBitsInBuffer = nSize * 8;
CHECK_HR (AddExecuteBuffer (DXVA2_SliceControlBufferType, sizeof (m_SliceInfo), &m_SliceInfo));

// Decode frame
CHECK_HR (Execute());
CHECK_HR (EndFrame(nSurfaceIndex));

//// Re-order B frames
//if (m_pFilter->ReorderBFrame())
//{
// if (m_PictureParams.bPicBackwardPrediction == 1)
// {
// SwapRT (rtStart, m_rtStartDelayed);
// SwapRT (rtStop, m_rtStopDelayed);
// }
// else
// {
// // Save I or P reference time (swap later)
// if (!m_bFlushed)
// {
// if (m_nDelayedSurfaceIndex != -1)
// UpdateStore (m_nDelayedSurfaceIndex, m_rtStartDelayed, m_rtStopDelayed);
// m_rtStartDelayed = m_rtStopDelayed = _I64_MAX;
// SwapRT (rtStart, m_rtStartDelayed);
// SwapRT (rtStop, m_rtStopDelayed);
// m_nDelayedSurfaceIndex = nSurfaceIndex;
// }
// }
//}

AddToStore (nSurfaceIndex, pSampleToDeliver, (m_PictureParams.bPicBackwardPrediction != 1), rtStart, rtStop);
m_bFlushed = false;

return S_OK;//DisplayNextFrame();
}


Mpeg2UpdatePictureParams () is
that get a slice.

appyton
4th April 2008, 16:43
install evrprop.dll, open the EVR settings and uncheck "draw border".

that should work.
I did download and then go to EVR settings.
Under EVR Custom, I can use Vobsub to see subtitles, however its still washed out.
Under MPC-HC (revision 485) shaders - I cannot find the option to fix level, need some help there.

Under EVR (plain), Vobsub works, image is not washed out, however there is no DXVA.

_xxl
5th April 2008, 14:57
mpc-hc r488:
http://rapidshare.com/files/105064218/mplayerc.7z.html

wyrd
5th April 2008, 15:20
mpc-hc r488:
http://rapidshare.com/files/105064218/mplayerc.7z.html

:thanks: _xxl, mirrored here. (http://tirnanog.fate.jp/mirror/Misc%20(not%20by%20celtic_druid)/MPC-Homecinema%20SVN/)

Miryan
5th April 2008, 17:31
:thanks: _xxl, mirrored here. (http://tirnanog.fate.jp/mirror/Misc%20(not%20by%20celtic_druid)/MPC-Homecinema%20SVN/)

And here: http://dl2.usite.hu/player/Media.Player.Classic.Homecinema-1.1.0.2.488.zip

TEB
5th April 2008, 18:50
Hi. sorry to be newbish here, but i have trouble getting deinterlacing to work in the r.488 build.
The shader section is off (greyed out)
In addition the player crashes on 720p50/p60 files AVC

Vista32bit
Geforce 8800GT 174.x Drivers
VMR mode

Leak
5th April 2008, 19:02
Hi. sorry to be newbish here, but i have trouble getting deinterlacing to work in the r.488 build.
The shader section is off (greyed out)
In addition the player crashes on 720p50/p60 files AVC
It's probably linked to a newer Direct3D DLL - D3DX9_35.dll, to be exact.

Updating your DirectX installation (http://www.microsoft.com/downloads/details.aspx?FamilyID=2da43d38-db71-4c1b-bc6a-9b6652cd92a3&DisplayLang=en) should do the trick then...

np: Joy Division - Dead Souls (Best Of)

Pheon
5th April 2008, 22:16
Yay, just updated to r488 and found the shader option for 16-235->0-255. This completely solved my not so black blacks problem with EVR custom pres. It also made all the other colours look nicer too :)

tmoore
5th April 2008, 23:38
hi guys i am hopping you can help.

When trying to play WVC1 files with MPC HC i just get a black screen. if i disable the internal filter and use 'WMVideo Decoder DMO' the video plays OK but not that smoothly. Any idea why MPC HC would not be able to play the file?

I have attached a screen shot of the detials of the file.

many thanks


Tony

Lys
6th April 2008, 05:52
I have just bought a Geforce 8600GT, and am trying to use DXVA. I use the latest public build, and the internal AAC/h264 filters. It freezes immediately, with a green screen.

File that I am trying to play:
http://www.jpl.nasa.gov/videos/dawn/dawn20070626/dawn062607-1280-i.m4v

Tery
6th April 2008, 18:09
I can't find the shader option for 16-235->0-255, what's it's name ?

Casimir666
6th April 2008, 18:51
In mpc-hc,
I am writing DXVADecoderMpeg2.cpp.
But, some question about structures sometings.

Which do I use structures in dxva.h?
That's my code.



I think it should be the same structure as VC1, so DXVA_PictureParameters and DXVA_SliceInfo should be sufficiant.

For Mpeg2 specifics detail you should look in this document : http://www.microsoft.com/whdc/device/stream/DirectX_VA/default.mspx

By the way, what is you video card i have never seen card capable of bitstream Mpeg2 decoding?

burfadel
6th April 2008, 21:16
With 488 DXVA now works perfectly for me, the CPU usage is extremely low when playing h264 files. There are a couple of extra settings I'd like to see though (possibly as shader options)? I use a few settings under ffdshow to improve perceived picture quality. They are:
- Deband (adjustable threshold, I use 1.6)
- Noise. Not the default settings, just around 8 of luminance mplayer noise only in 640x352 resolution for example. For 1920x1080 a higher noise value is better.
- Picture properties. That is, gamma, etc.

These settings would be great to see in MPC, along with anything else people might fight useful. This would be particularly useful as shader options.

The other good thing could be different shader settings for different source material. So for example, h264 files you use one set of shader settings, and different settings for DVD's etc. Maybe even just the option to have 'generalised settings', then specific settings where required for different source types.

Just an idea :)

ADude
7th April 2008, 00:59
With 488 DXVA now works perfectly for me, the CPU usage is extremely low when playing h264 files. There are a couple of extra settings I'd like to see though (possibly as shader options)? I use a few settings under ffdshow to improve perceived picture quality.

Any such settings imply that the encoder did not do his work properly. While this may be true at times, there should not be any reason for extra processing with quality video files.

IIRC, you can use ffdshow to post-process after using another decoder - in which case, it would simply be a duplication to add post-processing to MPC's decoders...

Delerue
7th April 2008, 02:44
With 488 DXVA now works perfectly for me

I'm not so lucky. I still got the half-image problem with my 9600GT + XP SP2:
http://img.photobucket.com/albums/v256/Delerue/MPC488half-size.jpg

Here's the decoder dialog:
http://img.photobucket.com/albums/v256/Delerue/MPC488half-size01.jpg

The video tested:
http://www.apple.com/quicktime/guide/hd/animusic_rc.html

EricAhn
7th April 2008, 03:08
I think it should be the same structure as VC1, so DXVA_PictureParameters and DXVA_SliceInfo should be sufficiant.

For Mpeg2 specifics detail you should look in this document : http://www.microsoft.com/whdc/device/stream/DirectX_VA/default.mspx

By the way, what is you video card i have never seen card capable of bitstream Mpeg2 decoding?

I'm using of
NVIDIA GeForce 8500 GT video card and Dual Monitor is TopSync OR2200W 22 inch, 1680x1050.
OS is XP-SP2.

I was using this mpeg2 codec.
Elecard MPEG-2 Decoder&Streaming Plug-in for WMP 3.5.71225.exe

It's good work.

thansk your help.

foxyshadis
7th April 2008, 03:12
A deband shader IS something that I'd like to see. I skimp on encoding all the time because I use debanding to cover things up a bit. =p But shaders aren't that easy to write, unfortunately.

G_M_C
7th April 2008, 09:05
Talking about shaders, i've wondered sometimes if it were able to "decouple" the MPC-HC shader/filters, so that you could envoke them in AviSynth. Cause some of these shader-filters would be nice to use wile encoding ("sharpen-complex" for instance).

Is there anyway that could be done ?

PS: Sorry for the "off-topic" and/or only "related" question.

EricAhn
7th April 2008, 16:02
Casimir666, It's dxva mpeg2 interface for mpc.

http://pastebin.com/m132c4cc

how can I connect vmr9 renderless pin?

someone help me..

os : xp sp2
video card : NVidia GeForce 8500GT

mpeg2 -> vmr9
0x80040217 : 0x80040207 - The owner SID on a per-user subscription doesn't exist
why can't connect output filter?

Xin-Hong
7th April 2008, 18:11
I can't find the shader option for 16-235->0-255, what's it's name ?

+1, I don't see anymore this shader in 488

fofwp
7th April 2008, 18:21
I am trying to setup MediaPortal (http://www.team-mediaportal.com/) as my frontend, but I need help with two things that have to do with MPC-HC

1) MediaPortal allows for EVR output, when I select this as the output it appears as though a line of pixels from the bottom appear on the top and the same goes for the left and right. This also happens in MPC-HC when the output is set to EVR. However if the output is set to EVR - Custom, this does not happen. Is there a way to fix this for EVR output?

2) Is there a way I can use the H264 and VC1 DXVA2 filters in MPC-HC outside of it?

Thanks!