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

bobdynlan
6th January 2011, 19:35
Very easy to understand explanation of gpu FP limitation in general I found to be http://http.developer.nvidia.com/GPUGems2/gpugems2_chapter32.html 32.2 Understanding Floating Point and 32.2.1 Address Calculation.
And I also heard of this:
Yes, half type has only 10 bits of mantissa, but some of exponent bits also "belong to" numbers less than 1.
H = (-1)^S * 2^(E-15) * (1 + M/2^10)http://www.opengl.org/discussion_boards/ubbthreads.php?ubb=showflat&Number=171642

FP16 textures might not be enough for dithering 10bit output, but for 8bit displays (99.9% of MPC-HC users) it sure does a great job. Isn't FP32 too far fetched considering the abundance of crap in both displays and gpus (marketed fro "HTPCs" and mobile)? CardCaps from DirectX SDK does point this trend.

I did test JanWillem32's FP32 build, you could feel the overhead on some of it's complex shaders, but as long as it will be implemented as an additional mode so that we can opt for half or full processing, nobody will complain about it.

This is also a relevant resource: http://www.poynton.com/notes/colour_and_gamma/GammaFAQ.html#smoothly_shade fourteen bits per component

Gus.
7th January 2011, 16:34
DirectX Video Acceleration Specification for H.264/AVC Decoding (updated December 2010)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3d1c290b-310b-4ea2-bf76-714063a6d7a6

"Defines extensions to DirectX Video Acceleration (DXVA) to support decoding of H.264/AVC video."

nevcairiel
7th January 2011, 16:42
DirectX Video Acceleration Specification for H.264/AVC Decoding (updated December 2010)
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=3d1c290b-310b-4ea2-bf76-714063a6d7a6

"Defines extensions to DirectX Video Acceleration (DXVA) to support decoding of H.264/AVC video."

MPC-HC already supports DXVA decoding of H264, what is the point of your post exactly?

janos666
8th January 2011, 00:54
I had some time to play. I used the chroma upsample shaders from this (http://forum.doom9.org/showpost.php?p=1467856&postcount=170) package with these (http://forum.doom9.org/showpost.php?p=1468319&postcount=15636) test builds and normal 2806. The 10-bit in/out and FP processing were always enabled. (And of course, I used the D3DFS mode.)
I used the internal DXVA decoder with EVR and FFDShow with madVR 0.36

I have to tell that you achieved a very big improvement in the last few weeks. The quality is close to madVR now. People with weaker eyes may won't tell the difference on real-life images anymore (test patterns may help enough).

As of the optimization, I couldn't really see the difference between the FP32-dithered, FP32-no_dithering or FP16-dithered. But it's very hard to compare because I can't make screenshots. I have to close and re-open the same test video with the different exe files.
But I can see the difference between FP32-dithered and madVR-dithered. The near-black gradient is much smoother with madVR.
May be the dithering is broken because I could see banding without the "10-bit output". It should be and it was smooth with "10-bit input" alone. So, may be it can be better with fine-tuned dithering.
But I have to note that madVR adds a noticeable dithering noise to achieve this nice near-black gradient while I can't notice this kind of noise with EVR (not a surprise if dithering is broken anyway but I am not sure about that). And EVR is not that bad (It's dark, so I need test patterns to easily catch these differences). On the other hand, I can't really notice madVR's noise on real-life images neither.


Now, that the base quality is "good enough" I think I will play with some HQ XYZ cLUT profiles again, because it could be a real adventage over the currently available "matrix+shaper" style yCMS solution. (At least theoretically...)
But I wasn't really pleased by the quality of the CMS implementation when I compared it with PhotoShop or yCMS.
I experienced a serious near-black banding, so I thought it doesn't use black point compensation at all. But it is not an issue with a different display mode and the corresponding profile. So, I didn't found the presumed source of this problem yet. But I will do some tests.

If it's an easy thing to do, you may try to set the 3DLUT size to 256x256x256 in a test build, so I will know that it is not a limitation. (I will construct a fat XYZ LUT from many spectral measurements.)

chros
9th January 2011, 08:34
I can't register file extensions with standard user (not admin) in Win 7 (x86, UAC is disabled):
only the Modify button is available, if i clkick on it the SAME window apears again with the Modify button and so on ... (no Video, Audio,All button)

Is it a bug?

Can someone post a regisrty tweak for all the video extensions for the current user?
Or where can I find it in the registry?

Thanks

CiNcH
9th January 2011, 11:13
Can somebody with a working compile toolchain provide recent standalone filters? Those on SourceForge are bit old...

namaiki
9th January 2011, 11:19
Did you check xvidvideo.ru?

Casimir666
9th January 2011, 20:35
Just a quick message for people who wonderer why did i push a new official build today : it's only a small patch apply on build v1.4.2499 to fix some crash with Sandy Bridge processor.
Casimir

v0lt
9th January 2011, 21:04
a new official build today
0__0

suddenly!

nevcairiel
9th January 2011, 21:16
Just a quick FYI: The new official build does not contain any changes since 2499 except the crash fix for for sandy bridge. If you want all the other changes, you still have to stick with the alpha nightly builds from the usual places :p

JanWillem32
10th January 2011, 00:33
Some people wanted to test a bit with the "new" 10-bit option, so here it is. There's still lots of things to do around these options, so this is just a bleeding edge build. 32- and 64-bit this time.

janos666
10th January 2011, 01:43
Some people wanted to test a bit with the "new" 10-bit option, so here it is. There's still lots of things to do around these options, so this is just a bleeding edge build. 32- and 64-bit this time.

http://www.mediafire.com/?bor2fdcq81twwah

Can I switch between 16 and 32-bit surfaces without restarting the player? How can I bind keys to do that? (I can see that the D3DFS GUI is improved but I am still unable to use the right-click menu when I am in this mode.)
Without fast-switching between them, I can really tell if there is any difference. Now, I think there is no any noticeable difference (between 16 and 32-bit surface). But the gradient test image is still smoother in madVR.

Can you sum up the expected improvements? (What should I test?)

I still have serious black-clipping with "profile only" style CMS.

JanWillem32
10th January 2011, 02:32
Switching the renderer state while playing is for most options impossible.
CMS needs some updates for handling the linear gamma tail of the video gamma. (I would love to set the entire RGB rendering chain to linear RGB for processing.)
For getting smooth gradients in 10-bit mode from lesser quality source, extra filtering is required on top of the normal rendering. I've also written a new temporal ditherer for future builds, that should also improve things. http://pastie.org/1443608

D3DFS GUI is underdeveloped. I'm not a specialist on this, I just ditched the rainbow colors. It will need more updates.

janos666
10th January 2011, 03:34
Switching the renderer state while playing is for most options impossible.

Isn't the player able to reinitialize the renderer any time? I think it already does it automatically after resolution changes. May be it can do so after any changes in the renderer settings. (It would cause a little flash but make the subjective comparison easier.)

CMS needs some updates for handling the linear gamma tail of the video gamma.

You should contact with Marti Maria (the developer of lcms) if you haven't already. He said he has some ideas to improve this cms implementation. (I think I delivered this message for the team already but you wasn't active in that time...)

(I would love to set the entire RGB rendering chain to linear RGB for processing.)

Well, I think you should keep the 32-bit surface format if you plan to do that. :)

For getting smooth gradients in 10-bit mode from lesser quality source, extra filtering is required on top of the normal rendering.

Why? I would like to see a "perfect" 8-bit gradient, not a 10-bit one. (I don't want any artificial deband.) I think it should be possible with 10-bit output. It is theoretically possible with 8-bit output too. (If there is no any image manipulation involved.)

I've also written a new temporal ditherer for future builds, that should also improve things. http://pastie.org/1443608

We will see. But my expectation from the 10-bit mode is to achieve a nice result with less dithering noise.
madVR delivers smooth gradient with 8-bit output via "relatively noisy" dithering. I want decent result with 10-bit output but also less dithering noise. (I will have some dithering anyway because the panel itself works with dithering too. But I am free to buy a better display in the future if it would worth it...)

But temporal dithering may performs better than static (for my eyes at least).


I was able to achieve a very nice 8-bit gray gradient visualization (also with white balance correction) in PhotoShop when I borrowed a FirePro. The result wasn't "perfect" but it was more than good enough without any noticeable dithering noise. (Ok, the internal dithering is noticeable on the dark tones when I take a closer look. But it isn't noticeable from normal viewing distance.)

Yes, PS can also use dithering. But the same gradient image with the same CMS processing produced a very awful, colorized gray gradient and banding problems with 8-bit output. So, I think the nice result was the benefit of the 10-bit output. (May be it applies dithering in 10-bit but it doesn't do it in 8-bit mode. I wouldn't make any sense but it's possible... may be it's a bug, or a strange "feature"...)

v0lt
10th January 2011, 08:14
Many thanks for sharp letters in OSD! :thanks:
(rev. 2831)

But sometimes the OSD font is distorted. The reason is not clear. :(

betaking
10th January 2011, 08:29
Hi I need a MPC-HC 2831 x86(without installer) and 2831 standalone_filters x86 for MSVC2008 builds!
can you compiled? Thanks
and can you make dep turn off? because i make a codecpack for other user! thanks?
DEP can easily be disabled if desired:

Code:
Index: src/apps/mplayerc/mplayerc.vcproj
===================================================================
--- src/apps/mplayerc/mplayerc.vcproj (revision 2781)
+++ src/apps/mplayerc/mplayerc.vcproj (working copy)
@@ -79,7 +79,7 @@
SubSystem="2"
LargeAddressAware="2"
RandomizedBaseAddress="2"
- DataExecutionPrevention="2"
+ DataExecutionPrevention="0"
SupportUnloadOfDelayLoadedDLL="true"
TargetMachine="1"
/>

v0lt
10th January 2011, 13:29
BUG:
Select Microsoft DTV-DVD Video Decoder for H264.
Run mkv or mp4 file with H264 video.
Press "Stop" and then "Play".
Playback is not working.
(build 2818, 2825)

Peekstra
10th January 2011, 17:19
and can you make dep turn off? because i make a codecpack for other user! thanks?

DEP is enabled to make MPC-HC more secure, disabling it wouldn't be a good idea.

a_afra
10th January 2011, 17:33
CMS needs some updates for handling the linear gamma tail of the video gamma.

No, it does NOT! Only the encoding curve has a linear tail, which we have to ignore. It's quite useless anyway. Please read carefully the document mentioned in the source code.

janos666
10th January 2011, 18:24
I agree. A properly encoded Rec709 material is intended to be watched on a display with Rec709 primaries and a pure-power tonal response curve where the exponent (so called gamma) is based on the ambient light conditions (between 2.2 and 2.4).
If you use an inverse-Rec709-encode curve as a decoding curve, you will end up with too bright colors and noisy shadows. (The linear segment is there to hide the sensor noise. Once it's encoded this way, you can't restore the original data, so it's even worse than before if you try.)

a_afra
10th January 2011, 18:30
If you use an inverse-Rec709-encode curve as a decoding curve, you will end up with too bright colors and noisy shadows. (The linear segment is there to hide the sensor noise. Once it's encoded this way, you can't restore the original data, so it's even worse than before if you try.)

Exactly.

bobdynlan
10th January 2011, 19:44
Don't throw stones yes, it might be just a language barrier (like answering what time it is - a hard one when learning dutch :D). From it's shaders work, I guess JanWillem32 is following this
http://msdn.microsoft.com/en-us/library/bb970322%28v=vs.85%29.aspx Conversion from one Y'CbCr space to another requires the following steps.

1. Inverse quantization: Convert the Y'CbCr representation to a Y'PbPr representation, using the source nominal range.
2. Upsampling: Convert the sampled chroma values to 4:4:4 by interpolating chroma values.
3. YUV to RGB conversion: Convert from Y'PbPr to non-linear R'G'B', using the source transfer matrix.
4. Inverse transfer function: Convert non-linear R'G'B' to linear RGB, using the inverse of the transfer function.
5. RGB color space conversion: Use the color primaries to convert from the source RGB space to the target RGB space.
6. Transfer function: Convert linear RGB to non-linear R'G'B, using the target transfer function.
7. RGB to YUV conversion: Convert R'G'B' to Y'PbPr, using the target transfer matrix.
8. Downsampling: Convert 4:4:4 to 4:2:2, 4:2:0, or 4:1:1 by filtering the chroma values.
9. Quantization: Convert Y'PbPr to Y'CbCr, using the target nominal range.

Steps 1–4 occur in the source color space, and steps 6–9 occur in the target color space. In the actual implementation, intermediate steps can be approximated and adjacent steps can be combined. There is generally a trade-off between accuracy and computational cost.

ikarad
10th January 2011, 20:34
Blu-ray subtitles doesn't work with mpc-hc2825 (same problem since 3 years and the start of support of PGS subs)
https://sourceforge.net/apps/trac/mpc-hc/ticket/48#comment:15

dansrfe
10th January 2011, 21:14
Blu-ray subtitles doesn't work with mpc-hc2825 (same problem since 3 years and the start of support of PGS subs)
https://sourceforge.net/apps/trac/mpc-hc/ticket/48#comment:15

Use the internal .ts splitter and they do work.

ikarad
10th January 2011, 21:21
Use the internal .ts splitter and they do work.

No it doesn't work. It works only partially and this bug is known but not corrected since 3 years. See the bugreport for complete information about this problem.

tetsuo55
10th January 2011, 22:07
There are no active developers to work on such bugs.

You're best chance of getting it fixed is figuring out how to fix it yourself.

bobdynlan
11th January 2011, 04:05
You can't just comment the whole block, because there are some other stuff involved. For example the OSD needs linear filtering or else it looks bad. So it needs to be patched case by case. One possible fix for this issue:
Index: src/filters/renderer/VideoRenderers/DX9RenderingEngine.h
===================================================================
--- src/filters/renderer/VideoRenderers/DX9RenderingEngine.h (revision 2833)
+++ src/filters/renderer/VideoRenderers/DX9RenderingEngine.h (working copy)
@@ -80,7 +80,7 @@
HRESULT RenderVideo(IDirect3DSurface9* pRenderTarget, const CRect& srcRect, const CRect& destRect);

HRESULT DrawRect(DWORD _Color, DWORD _Alpha, const CRect &_Rect);
- HRESULT AlphaBlt(RECT* pSrc, RECT* pDst, IDirect3DTexture9* pTexture);
+ HRESULT AlphaBlt(RECT* pSrc, RECT* pDst, IDirect3DTexture9* pTexture,bool fEnableOSDFiltering=false);

HRESULT SetCustomPixelShader(LPCSTR pSrcData, LPCSTR pTarget, bool bScreenSpace);
Index: src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp
===================================================================
--- src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp (revision 2833)
+++ src/filters/renderer/VideoRenderers/DX9RenderingEngine.cpp (working copy)
@@ -1610,7 +1610,7 @@
return S_OK;
}

-HRESULT CDX9RenderingEngine::AlphaBlt(RECT* pSrc, RECT* pDst, IDirect3DTexture9* pTexture)
+HRESULT CDX9RenderingEngine::AlphaBlt(RECT* pSrc, RECT* pDst, IDirect3DTexture9* pTexture, bool fEnableOSDFiltering)
{
if(!pSrc || !pDst) {
return E_POINTER;
@@ -1665,7 +1665,7 @@
hr = m_pD3DDev->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
hr = m_pD3DDev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);

- hr = m_pD3DDev->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_POINT);
+ hr = m_pD3DDev->SetSamplerState(0, D3DSAMP_MAGFILTER, fEnableOSDFiltering ? D3DTEXF_LINEAR : D3DTEXF_POINT);
hr = m_pD3DDev->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_POINT);
hr = m_pD3DDev->SetSamplerState(0, D3DSAMP_MIPFILTER, D3DTEXF_NONE);
Index: src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp
===================================================================
--- src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp (revision 2833)
+++ src/filters/renderer/VideoRenderers/DX9AllocatorPresenter.cpp (working copy)
@@ -1589,7 +1589,7 @@
}

if (m_pOSDTexture) {
- AlphaBlt(rSrcPri, rDstPri, m_pOSDTexture);
+ AlphaBlt(rSrcPri, rDstPri, m_pOSDTexture,true);
}

m_pD3DDev->EndScene();

v0lt, the reason is fullscreen mode and the missing filtering for the OSD texture. The above patch will remove once again sharp letters, sorry :devil:. Maybe we can find another way later.

pwimmer
11th January 2011, 18:00
Where do I send MPC-HC patches or how do I get write access to the SVN repository? I've contacted the admin of the SourceForge project but didn't get any response.

I have patches for the MPEG Splitter that will allow it to read Blu-ray 3D MVC streams. In addition, I've rewritten the code for SPS/PPS detection which no longer requires that they are contained in a single packet. There are real-world examples where a subset SPS is split across two TS packets. I've also fixed a seeking issue.

Underground78
11th January 2011, 18:06
Use Trac to post your patches : http://sourceforge.net/apps/trac/mpc-hc/ and join MPC-HC irc channel on Freenode.

ikarad
11th January 2011, 18:09
There are no active developers to work on such bugs.

You're best chance of getting it fixed is figuring out how to fix it yourself.

Why?
This bug is in the bug tracker since 2,5 years (before the new version of bugtracker) and these problems were corrected partially by Casimir666 1.5-2 years ago but no completely.

At the start, when two subs must be displayed in the same time, no subs were displayed. with casimir666 work, there is only one subs displayed.

Since, no improvement.

In the same time, ffdshow staff has implemented a perfect support of bluray subs.

Maybe could you to ask ffdshow developpers to give you help?

pwimmer
11th January 2011, 18:22
Use Trac to post your patches : http://sourceforge.net/apps/trac/mpc-hc/ and join MPC-HC irc channel on Freenode.

Isn't there any mailing list?

As far as I can see Trac only allows me to open a ticket, not directly submitting patches. Should I really open a ticket just to submit a patch?

Underground78
11th January 2011, 18:25
As far as I can see Trac only allows me to open a ticket, not directly submitting patches. Should I really open a ticket just to submit a patch?

Yes, open a new ticket and select "Patch" as "Type".

pwimmer
11th January 2011, 18:41
Yes, open a new ticket and select "Patch" as "Type".

Done!

v0lt
11th January 2011, 19:04
v0lt, the reason is fullscreen mode and the missing filtering for the OSD texture. The above patch will remove once again sharp letters, sorry :devil:. Maybe we can find another way later.
Want to print was sharper, but less than the last version. :)
Possible to use ClearType? :rolleyes:

PS: I use osd font size = 10.

jeremy33
11th January 2011, 19:27
I'm pleased to present a new free software : AutoFrequency (http://www.homecinema-hd.com/autofrequency_en.html).

Whether you use reclock or not, AutoFrequency is very helpful. Indeed AutoFrequency allows you, at the opening of a video, to automatically change the frequency of your screen depending on the video, to launch MPC-HC, for exemple, and play the video. At the exit of the player, AutoFrequency switch back to your usual frequency. No manipulation is required everything is automatic.

Here you can download AutoFrequency (http://www.homecinema-hd.com/autofrequency_en.html) and read its tutorial.

Moreover you can talk to the author which is present on my Forum (http://www.homecinema-hd.com/phpBB3/viewforum.php?f=20) in the section dedicated to AutoFrequency (http://www.homecinema-hd.com/phpBB3/viewforum.php?f=20), you can ask him all the questions you want, propose improvement ideas, thank him ;) etc...

Aleksoid1978
12th January 2011, 02:21
Where do I send MPC-HC patches or how do I get write access to the SVN repository? I've contacted the admin of the SourceForge project but didn't get any response.

I have patches for the MPEG Splitter that will allow it to read Blu-ray 3D MVC streams. In addition, I've rewritten the code for SPS/PPS detection which no longer requires that they are contained in a single packet. There are real-world examples where a subset SPS is split across two TS packets. I've also fixed a seeking issue.

Where can we take Blu-ray 3D MVC streams example ??? For testing.

pwimmer
12th January 2011, 02:37
Where can we take Blu-ray 3D MVC streams example ??? For testing.

From any 3D Blu-ray disk. The stereo files are in the BDMV/STREAM/SSIF folder. In the BDMV/STREAM folder there is a pair of m2ts files corresponding to a ssif file - they share physical sectors on the disk. My patch can read both the m2ts and the ssif files.

You need AnyDVD HD or a similar tool for testing.

I've purchased all 3D Blu-ray disks available on the German market (appox. 20 titles) and will test them all within the next few days. So far, I didn't notice any problems. I'll take care of MVC testing, and if necessary, I'll submit another patch. You should verify that my patch doesn't break any current features.

Btw, I wrote the MPC-HC patch because I'll use some of MPC-HC DirectShow filters in the next version of the Stereoscopic Player.

Aleksoid1978
12th January 2011, 02:54
Btw, I wrote the MPC-HC patch because I'll use some of MPC-HC DirectShow filters in the next version of the Stereoscopic Player.

Maybe you help us - to rewrite code select stream in MPEG2 splitter for fast stream change ???
As i think - need stop graph, change stream and then rebuild and start graph.

Kurtnoise
12th January 2011, 07:15
From any 3D Blu-ray disk. The stereo files are in the BDMV/STREAM/SSIF folder. In the BDMV/STREAM folder there is a pair of m2ts files corresponding to a ssif file - they share physical sectors on the disk. My patch can read both the m2ts and the ssif files.

You need AnyDVD HD or a similar tool for testing.

which MVC decoder did you use ?

dansrfe
12th January 2011, 08:21
I'm pleased to present a new free software : AutoFrequency (http://www.homecinema-hd.com/autofrequency_en.html).



Here you can download AutoFrequency (http://www.homecinema-hd.com/autofrequency_en.html) and read its tutorial.

Moreover you can talk to the author which is present on my Forum (http://www.homecinema-hd.com/phpBB3/viewforum.php?f=20) in the section dedicated to AutoFrequency (http://www.homecinema-hd.com/phpBB3/viewforum.php?f=20), you can ask him all the questions you want, propose improvement ideas, thank him ;) etc...

That's a very nice website you have there jeremy. So as per my understanding does this just toggle the refresh rate of the display or does it change something else of the video stream or audio stream?

Aleksoid1978
12th January 2011, 11:08
pwimmer
You patch have many bug:
1 - don't connect to MPC Video Decoder
2 - connect to ffdshow video decoder, but connect ... audio stream and as result - no video, black screen.

For me video work only with Cyberlink PDVD10 Video decoder.

3 - don't work audio stream select from MPC menu and from keyboard, can select only from Splitter popup menu.

pwimmer
12th January 2011, 12:48
Maybe you help us - to rewrite code select stream in MPEG2 splitter for fast stream change ???
As i think - need stop graph, change stream and then rebuild and start graph.

Can you describe what the problem is, I'm not familiar with the details that need to be improved.


pwimmer
You patch have many bug:
1 - don't connect to MPC Video Decoder
2 - connect to ffdshow video decoder, but connect ... audio stream and as result - no video, black screen.

For me video work only with Cyberlink PDVD10 Video decoder.

3 - don't work audio stream select from MPC menu and from keyboard, can select only from Splitter popup menu.

I'll look into the issues and submit an updated patch.

which MVC decoder did you use ?

I've used a decoder that is not publically available yet.

Aleksoid1978
12th January 2011, 13:04
Can you describe what the problem is, I'm not familiar with the details that need to be improved.


When in MPEG Splitter select audio stream - audio change after 10-60 sec after has selected, after that play may fast some times.
Other MPEg Splitter - AV Splitter (http://aleksoid.tosei.ru/Splitter/avsplitter.1.1.0.9.exe) and LAVFSplitter (http://forum.doom9.org/showthread.php?t=156191)
make select stream different - they stop play and graph, change stream and then rebuild graph.
You can compare as work MPC MPEG Splitter and LAVFSplitter.

pwimmer
12th January 2011, 14:01
When in MPEG Splitter select audio stream - audio change after 10-60 sec after has selected, after that play may fast some times.
Other MPEg Splitter - AV Splitter (http://aleksoid.tosei.ru/Splitter/avsplitter.1.1.0.9.exe) and LAVFSplitter (http://forum.doom9.org/showthread.php?t=156191)
make select stream different - they stop play and graph, change stream and then rebuild graph.
You can compare as work MPC MPEG Splitter and LAVFSplitter.

Stopping or rebuilding the graph is a horrible idea, it could break many applications and has 1000 side effects.

The easiest solution is that the application performs a seek to the current position after switching the stream, this will flush the graph and immediately continue playback at the previous position.

nevcairiel
12th January 2011, 14:18
If the type of the audio stream changes, you need to do rebuilding, because its not guaranteed that the old decoder will support the new format.

The current MPEG splitter never did that, and it always takes quite some time for the change to take effect, because of the packet queues. Thats nothing thats newly broken.
The whole concept of stream switching is pretty horrible in DirectShow.

pwimmer
12th January 2011, 14:34
If the type of the audio stream changes, you need to do rebuilding, because its not guaranteed that the old decoder will support the new format.

The current MPEG splitter never did that, and it always takes quite some time for the change to take effect, because of the packet queues. Thats nothing thats newly broken.
The whole concept of stream switching is pretty horrible in DirectShow.

Stream switching in DirectShow is horrible indeed.

Imho it is the application's responsibility to rebuild the graph if necessary. A filter should never do it on its own. The application can query the pin for its other streams, so the application knows what format will be used after the stream switch and can change the decoder accordingly.

Microsoft's filters like the DVD Navigator do not rebuild the graph when the audio format changes.

jeremy33
12th January 2011, 19:12
That's a very nice website you have there jeremy. So as per my understanding does this just toggle the refresh rate of the display or does it change something else of the video stream or audio stream?
AutoFrequency only change the frequency of your screen at the opening of a video. Moreover it launch MPC-HC and play the video. At the exit of the player, AutoFrequency switch back to your usual frequency.

Fadeout
13th January 2011, 02:19
I've tried the ati 5450 at a friend's computer.

DXVA seems active but there are some bad blocking visible, especially in fade-in/outs. It seems that the decoding misses some basic "deblocking". The image isn't corrupted in any way, but in low detail zones it shows colors being too blocked than they should.

Now the odd part is that the same behavior is obtained by using CoreAVC. This decoder should do the deblocking on its own, but it is not.

Yet, I've tried with the internal FFdshow in MPC-HC, not in DXVA, and the deblocking seems working in this case.

How the hell this is possible? If it's an hardware issue then it should be shown only in DXVA. Instead CoreAVC shows it too. And I'm using latest beta for MPC-HC with the same drivers I'm running at home (but on a 4850).

nevcairiel
13th January 2011, 07:42
CoreAVC will skip deblocking when your CPU is too slow (and since you're using a ATI GPU, you cannot use CUDA), which would explain this.
You can configure this in the CoreAVC settings. That the 5450 doesn't do beblocking is weird, however.

G_M_C
13th January 2011, 10:16
JanWillem;
I've downloaded your 32bit bleeding edge testers.

I must confess that i've not read up everything in this tread, and i haven't spent much time to figure out what i need to know. I'v just simply started it up tried to play an MKV (x264/dts/subs, force 10 bit in, 10 bit out). I ended up with a black screen, no image from the movie. Strangely enough subtitles did show as intended. Sound also played fine. Adding/removing a shader or not did not matter.

ctrl+J showed 32 bit surface 10 bit in en 10 bit out, and ctrl+j gave the impression something was drawn onto the screen in general (i.e it looked normal, the graphs showed frame times as usual, fps was floating around 23.976 etc).

I probably forgot something or did not understand right; Is there something to say or some general guideline how to use your bleeding edge testers ? (i.e. what did i do wrong ;-) )
PS: I have a HD5770 and a QX9650, so processing power should be available. For now i used both MS DTV-DVD decoder and MPC's internal decoders (both used DXVA). Will try CoreAVC software decoder if it helps.