Solved Issue - 10-bit h264 (Hi10) Support?

  Thread Rating:
  • 7 Votes - 4.43 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Post Reply
Shine Offline
Member
Posts: 50
Joined: Apr 2012
Reputation: 1
Post: #376
@jpsdr: It's exactly what you said I suppose. Although I doubt it's permanent - sounds like just a temporary stability fix.

Since the Vorbis/WMA bug annoyed me and it has since been fixed (cfb1bd2269), I prepared another build. It also includes the seek fix (c0a367a4ec) - although I didn't experience crashes while seeking, but who knows. I reverted a0fc63df94 for this build, so multithreading works!

Here it is: http://www.mediafire.com/?p08gpzy8p8ipxvz

Again, I'm just the messenger, all credit goes to elupus.

Note: This build does also include a patch by me that will force DXVA renderer (not decoding!) for any HD content, ie. 720p and above. Why? Because (1) while I prefer the better PS scalers especially for SD content, my Intel G45 is too slow to use them on HD content without occasional stutter and (2) XBMC apparently sends every video through the resizer, even if there is nothing to resize, which again leads to occasional stutter on HD content with PS scalers. So this patch pretty much fixes my remaining frame drop issues. Turn off by changing the "forcedxvarenderer" advanced setting to "false" - though this will, in addition, disable the feature that forces DXVA renderer when DXVA decoding is being used - I was too lazy to introduce a new advanced setting for this quick&dirty patch, so I (ab)used an existing one. DIFF included for GPL compliance.
(This post was last modified: 2012-04-03 01:21 by Shine.)
find quote
jpsdr Offline
Fan
Posts: 318
Joined: Oct 2003
Reputation: 0
Post: #377
(2012-04-03 00:13)Shine Wrote:  Turn off by changing the "forcedxvarenderer" advanced setting to "false"

If i add
Code:
<advancedsettings>
    <forcedxvarenderer>false</forcedxvarenderer>
</advancedsettings>
in advancedsettings.xml in userdata directory, will it turn it off ?

Otherwise, many thanks for this build.
find quote
Shine Offline
Member
Posts: 50
Joined: Apr 2012
Reputation: 1
Post: #378
Code:
<advancedsettings>
<video>
  <forcedxvarenderer>false</forcedxvarenderer>
</video>
</advancedsettings>

Just noticed that it's apparently an undocumented advanced setting - not in the wiki at least... anyway, see above for example.
(This post was last modified: 2012-04-03 01:14 by Shine.)
find quote
jpsdr Offline
Fan
Posts: 318
Joined: Oct 2003
Reputation: 0
Post: #379
Finaly... after a lots of troubles with my PC (apparently, there is one windows update from Win7 wich make you unable to install nvidia drivers anymore...) i've been able to make some tests.
- Subtitles : I have several files i use to check if there is regressions. I've seen nothing.
- Decoding of 10bits. I have a high bitrate 1080p 10bits file wich used to stutter with a lot of drop frames with bambi73 version, and play perfectly fine under MPC-HC. This file with play perfectly fine, without any drop frames with the last Shine build.

This is reaaalyyyy Cool !!!!
find quote
radx Offline
Junior Member
Posts: 14
Joined: Aug 2010
Reputation: 0
Location: Sweden
Post: #380
I use a rather simple and cpu weak HTPC system to watch my movies. Do you guys think i'll be able to watch 10bit encoded files on my system in a future release of xbmc without a hardware upgrade? I've got a AsRock 330HT system. It's a nvidia ION gpu with an atom 1.6 dual core cpu.

All in all I can run pretty much all stuff on it as long as I've got GPU Hardware acceleration. From what I gather Hardware acceleration does not seem to be possible on the 10 bit encoded files? Am i out of luck or do I need to invest into more bulky hardware?

Tried running 10 bit encoded 1080P stuff through latest version of VLC 2.0.1 and all I got was a black screen with no video but i did get sound. When i closed VLC the vlc.exe process remained active and had to be forced closed. in MPC it worked but it was horribly slow. No gpu acceleration it would seem as CPU load was very very high.
find quote
sereny Offline
Junior Member
Posts: 23
Joined: Dec 2008
Reputation: 0
Post: #381
@radx: I'm afraid you're out of luck. Most of us use quadcore CPUs for 1080p hi10p material because even a strong dualcore is easily pushed to its limits (on a sidenote though, some subtitles are also using up a good chunk).

This current build of xbmc looks very very promising indeed, especially with seeking fixed. I'm currently having a few minor issues with weird subtitle-delay/offsets, but that might just be my system because I need some audio-delays. New AV-Receiver will arrive soon though, will test more then. Also I got a very very few framedrops even with DXVA scaling.

My current benchmark for droppiness is the fate/zero OP in hi10p/1080p, camera movement below the bridge followed by complex subtitle rendering in the sky shortly after.
find quote
maruchan Offline
Senior Member
Posts: 298
Joined: Feb 2009
Reputation: 0
Post: #382
(2012-04-03 22:37)sereny Wrote:  My current benchmark for droppiness is the fate/zero OP in hi10p/1080p, camera movement below the bridge followed by complex subtitle rendering in the sky shortly after.

Any chance you could post this OP? It would be a nice benchmark.
(This post was last modified: 2012-04-03 23:29 by maruchan.)
find quote
jpsdr Offline
Fan
Posts: 318
Joined: Oct 2003
Reputation: 0
Post: #383
I'm affraid his OP is probably part of the whole episode... Especialy if there is subtitles. Nevertheless, warning : Some fansubs teams hardcode opening/endings, allowing them to make very complex effect using software like after effect, effect they would be unable to acheive with only SSA features.
find quote
Shine Offline
Member
Posts: 50
Joined: Apr 2012
Reputation: 1
Post: #384
(2012-04-03 22:37)sereny Wrote:  My current benchmark for droppiness is the fate/zero OP in hi10p/1080p, camera movement below the bridge followed by complex subtitle rendering in the sky shortly after.

Complex (soft-) subtitle rendering is probably not the best benchmark, unless libASS is also multi-threaded (is it?). With single-threaded subtitle rendering, the subs alone can easily get you dropped frames, even with a null decoder. And even if it is multi-threaded, and would therefore cooperate better with a multithreaded decoder, you still never know who's the dropframe culprit - decoder or sub renderer alone or the combination of both.
(This post was last modified: 2012-04-04 18:19 by Shine.)
find quote
sereny Offline
Junior Member
Posts: 23
Joined: Dec 2008
Reputation: 0
Post: #385
@Shine: What you say is correct. Libass is (in this case) the limiting element, I get zero framedrops in the intro with subtitles off or in plaintext-override. However, this 'benchmark' serves to evaluate the xbmc package as a whole, which is of course its point after every other thing has been taken into account. The pure hi10p decoding performance though is very very good so far Smile .

My alternative benchmarking instrument is mpc-hc in combination with haali renderer (or madVR) paired with the optimized xy-vsfilter for subtitles, which delivers a very nice performance. The builtin mpc-hc vsfilter is actually quite a bit slower than libass.


/edit: As softsubs only get more complex with time, I'm currently thinking about implementing a mode/option within libass which gracefully scales down - or renders with less precision - effects like shadows if there is a risk of dropping frames. This could possibly be done as a quick hack, instead of doing a full-blown optimization of libass to xy-vsfilter levels. Not sure if this makes much sense in the long run.

/edit2: Or I could simply say 'f*ck it' and buy some core i5, which would save lots of time. But that would take the whole fun out of it, no?
(This post was last modified: 2012-04-04 18:46 by sereny.)
find quote
Ned Scott Offline
Team-XBMC Wiki Guy
Posts: 19,829
Joined: Jan 2011
Reputation: 247
Location: Arizona, USA
Post: #386
(2012-04-04 18:34)sereny Wrote:  /edit: As softsubs only get more complex with time, I'm currently thinking about implementing a mode/option within libass which gracefully scales down - or renders with less precision - effects like shadows if there is a risk of dropping frames. This could possibly be done as a quick hack, instead of doing a full-blown optimization of libass to xy-vsfilter levels. Not sure if this makes much sense in the long run.

That would be very awesome for XBMC systems that run on ARM processors and such.

You can make easy links to the XBMC wiki using double brackets around common XBMC words: [[debug log]] = debug log, [[Video library]] = Video library, [[SMB]] = SMB , [[userdata]] = userdata, etc
find quote
elupus Offline
Team-XBMC Developer
Posts: 3,796
Joined: Mar 2004
Reputation: 3
Post: #387
You guys maybe want to check out https://github.com/elupus/xbmc/tree/play10bit

That avoids the 10bit to 8bit color conversion in software. Ie gpu does it. It should eventually allow for 10bit output to display device if we get a backbuffer that support it.

Always read the XBMC online-manual, FAQ and search the forum before posting.
Do not e-mail XBMC-Team members directly asking for support. Read/follow the forum rules.
For troubleshooting and bug reporting please make sure you read this first.


[Image: badge.gif]
find quote
jpsdr Offline
Fan
Posts: 318
Joined: Oct 2003
Reputation: 0
Post: #388
Thanks for what you've done.
Have you check about the suspicion of allowing only mt on slices may purely have the same effect as disabling mt because files are not encoded with slices ? Huh
find quote
jpsdr Offline
Fan
Posts: 318
Joined: Oct 2003
Reputation: 0
Post: #389
@shine
Is it possible for you to make 2 new builds, updated with the last commits of elupus : 8033cb5 and 3a43c68.
- One without the commit a0fc63d.
- One with it.

This will allow people to make tests, and see if the effect is to not having (and not truly breaking) mt enabled because except on Blu-Ray, h264 streams are not encoded with slices, and finaly make this point clear !
find quote
Shine Offline
Member
Posts: 50
Joined: Apr 2012
Reputation: 1
Post: #390
I'll be afk over easter, so don't expect a new build before sometime next week. You might want to check out my previous builds, of those I made one with and one without a0fc63d, they're otherwise identical. You can easily see the difference (at least I did). None of the later fixes changes anything in the threading mechanism.

elupus' pull request has been merged into XBMC master last night, so once nightlies restart, you will have the new ffmpeg in the nightly builds, too.
find quote
Post Reply