• 1
  • 17
  • 18
  • 19(current)
  • 20
  • 21
  • 28
HEVC (also known as h.265) - Review
I didn't try to reencode with handbrake yet, but I'm afraid that xbmc's version of ffmpeg seems to be broken somehow. I tested that problematic file using stock ffplay from deb multimedia and it plays very well with multicore support on my cpu. But, as I said above, xbmc stucks on only one core and after a few seconds, the sound starts to shutter. It's a bit shame, even if that file was encoded by some strabge way, official ffmpeg still doesn't have any problems with it. It's not possible get good result with one core cpu decoding for h264 and 4k dci, shame,

So official ffmpeg - good, xbmc's ffmpeg - bad, single core only for h.264 in some cases. I suspect it will be ok on xbmc after re encoding to h264 using ffmpeg or handbrake. But, to be honest, xbmc's ffmpeg seems to be a bit broken in compare to official in this case and I think you should look at this?

Let me know if you are interesting in movie sample, I can upload it for any further testing (1 minute sample, about 500 MB).

Fot hevc, it's not bad so far (the same as ffmpeg official) but h264 seems to be a bit broken when we are talking about software decoding.
Debug Log we use latest ffmpeg 2.x but parameters could be wrong as xbmc does use an own player.

Edit: You cannot say something about ffmpeg when using different players.
Edit2: please post the sample. I suspect a player issue.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Here: http://xbmclogs.com/show.php?id=288270

XBMC cpu load is constantly 104% but it's definitely wrong. One core 100%, 7 cores remaining - only 4% and movie are not playing smoothly. CPU computing power is not used, only one thread. Official ffmpeg has not this problem with the same file.

I think it's most important info:

21:42:46 T:139884165576448   DEBUG: CDVDPlayerVideo - CDVDMsg::GENERAL_RESYNC(41422.222222, 0)
21:42:46 T:139884165576448    INFO: ffmpeg[51FFB700]: [h264] Cannot parallelize slice decoding with deblocking filter type 1, decoding such frames in sequential order
21:42:46 T:139884165576448    INFO: ffmpeg[51FFB700]: [h264] To parallelize slice decoding you need video encoded with disable_deblocking_filter_idc set to 2 (deblock only edges that do not cross slices).

But official ffplay app can parallelize decoding of the same file, because cpu load is about 20% on all cores. So something is wrong here. Or possibly ffmpeg from deb multimedia is already patched somehow and it's not the official one.
H264 is only multithreaded when you set Video decoding to Software.

System Settings Acceleration Decoding Methode: Software
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
That gt630 seems odd. It's limited to 2048x2048. My gt610 can play 4k very well.

Can you retry with OpenELEC? (Just a sidenote next to the SW decoding test)
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
(2014-09-07, 21:52)fritsch Wrote: H264 is only multithreaded when you set Video decoding to Software.

Why am I forced to manually disable hardware decoding? I thought that when my gpu is unable to perform hardware decoding, it will be software decoded. It works that way with hevc. So I can't really understand your point of view? Why disable hardware decoding?

We are not talking about hardware decoding, because CPU do all job here. But not multicore, why? Offcial ffmpe decodes the same file very smoothly wit multicore support on my cpu. I don't really need hardware decoding, since cpu is powerfull enouth to decode this.

So, I tested again. Disabled hardware acceleration in xbmc settings. Enabled software decoding and checked option "allow multicore decoding". Now everything is fine. But it seems to me to be bad idea how it works now. When my gpu is unable to decode movie, xbmc should start software decoding with multicore support but it won't happen for h264, and it will happen for hevc. I can't even see any reason for option for single core software decoding, it should be always multithreaded.
HW decoding fails. SW Decoder is opened but only! Single threaded. Hevc and hi10p are on a whitelist and multithreaded by default.

If a hw Decoder gets opened with framethreading it will crash right away. Therefore wie have that explicit setting for hw Decoder codecs which h264 is.

Bzw your nvidia should decode h264 4k fine: http://www.nvidia.com/object/linux-displ....23-driver
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Quote:HW decoding fails. SW Decoder is opened but only! Single threaded.
That's the point. Can't understand from what purpose it's opened as single threated....Now I need to go to settings and disable hardware decoding everytime when I want to watch 4k? XBMC should open software decoder as multithreaded in this case. How do you think? I can't even see any reason why single threated software decoder exists, in any case - it should not be used by default. Because it will always cause lack of performance
Quiet easy. You spotted a design flaw in xbmc - threading is setup prior(!) to opening the decoder and cannot easily be changed afterwards.

That's why I implemented the whitelist for vp9, hevc and hi10p ... patch is welcome :-)
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
Btw. Does it work on all cores now?
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
I'm not able to prepare patch, unfortunately... but I hope you can agree, that this bahaviour for h264 should be changed.

(2014-09-07, 22:23)fritsch Wrote: Btw. Does it work on all cores now?

Yes it works on all cores. But only if I disable hardware acceleration. Not nice though. So simplest workaround is to use hevc for 4k, hope you don't plan to disable multi threated software decoding for hevc as well Wink
It's not that easy. We currently only can do that for Codecs that cannot be opened by a hw Decoder at all cause of the said issues.

So. Does that file play now?
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
When it's explicitly set in options to "software" and "multi threated" - yes, no problems. When gpu decoding is enabled - no, it's not played correctly.

Quote:It's not that easy. We currently only can do that for Codecs that cannot be opened by a hw Decoder at all cause of the said issues.
OK I understand what you mean. Bad news but I hope it will be fixed some day. I was confused because it was not what I expected.
Please also check your GPU. Something is wrong with your driver. Try the Version I linked. 4k on that nvidia must work.
First decide what functions / features you expect from a system. Then decide for the hardware. Don't waste your money on crap.
My vdpauinfo:

display: :0   screen: 0
API version: 1
Information string: NVIDIA VDPAU Driver Shared Library  340.32  Tue Aug  5 20:35:32 PDT 2014

Video surface:

name   width height types
420     4096  4096  NV12 YV12
422     4096  4096  UYVY YUYV

Decoder capabilities:

name               level macbs width height
MPEG1                 0  8192  2048  2048
MPEG2_SIMPLE          3  8192  2048  2048
MPEG2_MAIN            3  8192  2048  2048
H264_MAIN            41  8192  2048  2048
H264_HIGH            41  8192  2048  2048
VC1_SIMPLE            1  8190  2048  2048
VC1_MAIN              2  8190  2048  2048
VC1_ADVANCED          4  8190  2048  2048
MPEG4_PART2_SP        3  8192  2048  2048
MPEG4_PART2_ASP       5  8192  2048  2048
DIVX4_QMOBILE         0  8192  2048  2048
DIVX4_MOBILE          0  8192  2048  2048
DIVX4_HOME_THEATER    0  8192  2048  2048
DIVX4_HD_1080P        0  8192  2048  2048
DIVX5_QMOBILE         0  8192  2048  2048
DIVX5_MOBILE          0  8192  2048  2048
DIVX5_HOME_THEATER    0  8192  2048  2048
DIVX5_HD_1080P        0  8192  2048  2048
Output surface:                                                                                                                                                                                                                                                                
name              width height nat types                                                                                                                                                                                                                                      
B8G8R8A8         16384 16384    y  Y8U8V8A8 V8U8Y8A8                                                                                                                                                                                                                          
R10G10B10A2      16384 16384    y  Y8U8V8A8 V8U8Y8A8                                                                                                                                                                                                                          
Bitmap surface:                                                                                                                                                                                                                                                                
name              width height                                                                                                                                                                                                                                                
B8G8R8A8         16384 16384                                                                                                                                                                                                                                                  
R8G8B8A8         16384 16384                                                                                                                                                                                                                                                  
R10G10B10A2      16384 16384                                                                                                                                                                                                                                                  
B10G10R10A2      16384 16384                                                                                                                                                                                                                                                  
A8               16384 16384                                                                                                                                                                                                                                                  
Video mixer:                                                                                                                                                                                                                                                                  
feature name                    sup                                                                                                                                                                                                                                            
DEINTERLACE_TEMPORAL             y                                                                                                                                                                                                                                            
DEINTERLACE_TEMPORAL_SPATIAL     y                                                                                                                                                                                                                                            
INVERSE_TELECINE                 y                                                                                                                                                                                                                                            
NOISE_REDUCTION                  y                                                                                                                                                                                                                                            
SHARPNESS                        y                                                                                                                                                                                                                                            
LUMA_KEY                         y                                                                                                                                                                                                                                            
HIGH QUALITY SCALING - L1        y                                                                                                                                                                                                                                            

parameter name                  sup      min      max
VIDEO_SURFACE_WIDTH              y         1     4096
VIDEO_SURFACE_HEIGHT             y         1     4096
CHROMA_TYPE                      y  
LAYERS                           y         0        4

attribute name                  sup      min      max
BACKGROUND_COLOR                 y  
CSC_MATRIX                       y  
NOISE_REDUCTION_LEVEL            y      0.00     1.00
SHARPNESS_LEVEL                  y     -1.00     1.00
LUMA_KEY_MIN_LUMA                y  
LUMA_KEY_MAX_LUMA                y

I have fresh nvidia driver and it seems to be not supported, I have no idea why. Driver you are linked it's way too old (year ago?), it won't compile no my kernel (3.16), no way.
  • 1
  • 17
  • 18
  • 19(current)
  • 20
  • 21
  • 28
Thread Rating:
  • 0 Vote(s) - 0 Average

Logout Mark Read Team Forum Stats Members Help
HEVC (also known as h.265) - Review00