Kodi Community Forum
How to Install XBMC PVR Xvba for AMD/Nvidia/Intel GPUs - Printable Version

+- Kodi Community Forum (https://forum.kodi.tv)
+-- Forum: Support (https://forum.kodi.tv/forumdisplay.php?fid=33)
+--- Forum: General Support (https://forum.kodi.tv/forumdisplay.php?fid=111)
+---- Forum: Linux (https://forum.kodi.tv/forumdisplay.php?fid=52)
+---- Thread: How to Install XBMC PVR Xvba for AMD/Nvidia/Intel GPUs (/showthread.php?tid=116996)



RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - fritsch - 2012-07-02

@PeterV:
Normally aticonfig is just a symlink to amdconfig or the other way round - so both should work.
What does: ls -l `which aticonfig` tell?


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - csmager - 2012-07-02

(2012-07-01, 21:55)fritsch Wrote: @csmager:
Best is to upload a sample, pastebin your xbmc.log with debugging turned on (complete one) and describe the error you are seeing.
Thanks - will do this. I think I've narrowed it down to x264 files with FLAC 5.1 audio tracks. They either exhibit this skipping back to previous frames from the get-go, or on the second run. Once it's happened, it affects all files that are decoded using xvba until X & fglrx are restarted.

I'll cut a couple of the files down to a minute or so and paste a log when I get a chance.


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - MTroi - 2012-07-03

(2012-06-25, 09:58)MTroi Wrote:
(2012-06-23, 15:24)FernetMenta Wrote: Maybe DPMS kicks in (default is 10min) because you have no screen saver. I would either activate the screen saver or deactivate DPMS.

I've tried all of that but still no improvement. I'm thinking about a fresh installation of the system, since this problem occured without any config changes done by myself.

Just to let you guys know: I did a fresh installation of Ubuntu 12.04 LTS Minimal while following the steps on page 1 and the problem hasn't occured yet. Thanks for the detailed step-by-step guide.




RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - dandel - 2012-07-04

There might still be issues with broken 4.1 content that actually should be decoded as 5.1 content... with the va driver if you have the 5.1 support enabled, you could fix it with this patch... I suspect that a similar patch could be worked into this...

Code:
diff --git a/src/xvba_buffer.c b/src/xvba_buffer.c
index 4facbbf..d8012a3 100644
--- a/src/xvba_buffer.c
+++ b/src/xvba_buffer.c
@@ -368,23 +368,18 @@ translate_VAPictureParameterBufferH264(
         obj_context->picture_height
     );

-    /* Check for H.264 content over [email protected] */
+    /* Check for wrongly coded H264 Level 41 files
+       adjust profile to Level 51 when reframes are too many
+     */
     unsigned int num_ref_frames = pic_param->num_ref_frames;
-    if (profile == XVBA_H264_HIGH && level > 41) {
-        if (!driver_data->warn_h264_over_hp_l41) {
-            driver_data->warn_h264_over_hp_l41 = 1;
-            xvba_information_message(
-                "driver does not support H.264 content over [email protected]. "
-                "Please upgrade.\n"
-            );
-        }
+    if (profile == XVBA_H264_HIGH && level == 41) {

-        /* Use fail-safe values (lower ref frames) */
+        /* Increase Level to decode pseudo Level 41 as Level 51 */
         const unsigned int mbw = pic_param->picture_width_in_mbs_minus1 + 1;
         const unsigned int mbh = (obj_context->picture_height + 15) / 16;
         const unsigned int max_ref_frames = 12288 * 1024 / (mbw * mbh * 384);
         if (max_ref_frames < num_ref_frames)
-            num_ref_frames = max_ref_frames;
+            level = 51;
     }

     XVBABufferDescriptor * const xvba_buffer = obj_surface->pic_desc_buffer;
Phoronix Backtrack
Ubuntu Pastebin link


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - fritsch - 2012-07-04

@dandel:
Thanks for posting my own patch. This is for the xvba-va-driver. This one has absolutely nothing to do with our xvba branch. xvba-va-driver is a wrapper that translates vaapi to xvba. So applications that do not have direct xvba support can use vaapi and are therefore translated to xvba.

xvba-va-driver is not maintained since over a year - though i am planning to push in mpeg-2 and mpeg-4 support when they are available.


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - laric - 2012-07-05

I just installed following the steps in post 1. And now I am getting the same old problem. If I turn off my tv and have it off and start it later then I have no sound.
i have to reboot my xbmc pc to get the sound back. Then everything works just fine until I turn the telly off again. I love xbmc but hate this problem.

Is there any work around for this? Below is my amd card from lspci.


01:00.0 VGA compatible controller: Advanced Micro Devices [AMD] nee ATI Turks [Radeon HD 6570] (prog-if 00 [VGA controller])
Subsystem: ASUSTeK Computer Inc. Device 0403
Flags: bus master, fast devsel, latency 0, IRQ 46
Memory at d0000000 (64-bit, prefetchable) [size=256M]
Memory at feac0000 (64-bit, non-prefetchable) [size=128K]
I/O ports at d000 [size=256]
Expansion ROM at feaa0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: fglrx_pci
Kernel modules: fglrx, radeon

01:00.1 Audio device: Advanced Micro Devices [AMD] nee ATI Turks HDMI Audio [Radeon HD 6000 Series]
Subsystem: ASUSTeK Computer Inc. Device aa90
Flags: bus master, fast devsel, latency 0, IRQ 45
Memory at feafc000 (64-bit, non-prefetchable) [size=16K]
Capabilities: <access denied>
Kernel driver in use: snd_hda_intel
Kernel modules: snd-hda-intel




RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - fritsch - 2012-07-05

@laric:
Upgrade to fglrx 12.6. This should fix the hdmi sound issue. See: http://forum.xbmc.org/showthread.php?tid=116996&pid=1138272#pid1138272


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - laric - 2012-07-06

(2012-07-05, 20:55)fritsch Wrote: @laric:
Upgrade to fglrx 12.6. This should fix the hdmi sound issue. See: http://forum.xbmc.org/showthread.php?tid=116996&pid=1138272#pid1138272

Thanks


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - Just4U - 2012-07-08

Thanks for the wonderful suggestions to install XBMC PVR Xvba. I didn't have any problems following the guide. I have a few questions though

1. If I need to just install XBMC Xvba instead of XBMC PVR, what repository I need to use in Step 3

2. Also if we follow the steps in Page 1, does it come with fglrx 12.6 or do we need to follow the above link to install it?


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - fritsch - 2012-07-08

@Just4U:
2. Nope. fglrx 12.6 is not installed by default, as AMD stopped supporting some devices HD2XXX, HD3XXX, HD4XXX. You can use the above instructions to update fglrx, if your video card is supported. If the original version works for you, keep it.

1. Our direct upstream is xbmc-pvr. So all of our versions include PVR. You can easily disable everything PVR related within xbmc - so it does not harm.




RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - Just4U - 2012-07-08

Hi fritsch, Thanks for info.

I have a AMD Radeon HD 6450A 512MB graphics card in my Lenovo Q180. So does H264 Level 5.1 works with default fglrx driver if we follow the first page steps?


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - Rachel - 2012-07-08

not sure where to report this bug properly, but i've encountered it after installing one of the builds in post #1 of this thread; specifically this one: https://launchpad.net/~wsnipex/+archive/xbmc-xvba-testing as i actually have nvidia, not ati, hardware, but was asked/recommended to try it by an xbmc developer to solve a problem with framerate consistency. I expect it's a general xbmc-12.x issue rather than specific to the Xvba stuff this thread's about - but it is the build from here I'm trying, so posting bug initially here:

Issue is with auto-switching of refresh rates: Some videos for which the refresh rate should be changed, do not trigger that refresh rate change until after a few seconds of playback. The pattern I've been able to find so far is that this only seems to affect videos marked as having a variable frame rate.

(Handbrake uses a variable frame rate as part of its High Profile preset; and has done for at least a couple of years. Even if the frame rate isn't actually going to vary.)

Thing is, at least according to mediainfo, a headline refresh rate is provided anyway, so surely even if it is marked as variable, it should start with the given frame rate as a starting presumption? I think older versions - in particular up to 11.0 eden - did do this as I'm only starting to see this problem now. I had been seeing it on only one fairly old encode before, where that headline frame rate was actually listed (oddly) as 24.998fps; whereas most PAL-type videos show exactly 25.000fps. So even on eden that video started, then changed refresh rate (actually just back to the same one as it's the closest). But with the new build, it's doing it for all such variable-frame-rate recordings.

After that initial refresh rate change, playback continues normally for the duration. It's just that it seems to be waiting to see if it really needs to change refresh rate for such videos. Obviously this is pretty disruptive to the viewing experience. Smile

edit: context:

System is Ubuntu 12.04 64-bit installed on 2010 mac mini server connected by HDMI to a Panasonic Viera TV.

The only deviations from the Ubuntu standard packages are the ppas: ubuntu-x-swat/x-updates (for nvidia 302.17) and wsnipex-xbmc-xvba-testing (for this build of xbmc)

Everything's up to date.


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - Rachel - 2012-07-08

sorry, forgot logs (and above message gets too long with them anyway):

Code:
20:40:42 T:139736038475520  NOTICE: ===== PLEXBMC START =====
20:40:42 T:139736038475520  NOTICE: PleXBMC -> running on sys.version_info(major=2, minor=7, micro=3, releaselevel='final', serial=0)
20:40:42 T:139736038475520  NOTICE: PleXBMC -> Running with cElementTree on Python 2.5+
20:40:42 T:139736038475520  NOTICE: PleXBMC -> Debug is turned off.  Running silent
20:40:42 T:139737117390720  NOTICE: DVDPlayer: Opening: http://192.168.1.2:32400/library/parts/4456/file.mp4
20:40:42 T:139737117390720 WARNING: CDVDMessageQueue(player)::Put MSGQ_NOT_INITIALIZED
20:40:42 T:139737117390720  NOTICE: CXBMCRenderManager::ResetRenderBuffer - using 5 render buffers
20:40:42 T:139736049538816  NOTICE: Thread CDVDPlayer start, auto delete: false
20:40:42 T:139736049538816  NOTICE: Creating InputStream
20:40:42 T:139736726607616  NOTICE: Thread CFileCache start, auto delete: false
20:40:42 T:139736049538816  NOTICE: Creating Demuxer
20:40:42 T:139736049538816  NOTICE: Opening video stream: 0 source: 256
20:40:42 T:139736049538816  NOTICE: Creating video codec with codec id: 28
20:40:42 T:139736049538816  NOTICE: CDVDVideoCodecFFmpeg::Open() Creating VDPAU(1920x1080, 28)
20:40:43 T:139736049538816  NOTICE: vdp_device = 0x00000001 vdp_st = 0x00000000
20:40:43 T:139736049538816  NOTICE: VDPAU Decoder capabilities:
20:40:43 T:139736049538816  NOTICE: name          level macbs width height
20:40:43 T:139736049538816  NOTICE: ------------------------------------
20:40:43 T:139736049538816  NOTICE: MPEG1             0  8192  2048  2048
20:40:43 T:139736049538816  NOTICE: MPEG2_SIMPLE      3  8192  2048  2048
20:40:43 T:139736049538816  NOTICE: MPEG2_MAIN        3  8192  2048  2048
20:40:43 T:139736049538816  NOTICE: H264_MAIN        41  8192  2048  2048
20:40:43 T:139736049538816  NOTICE: H264_HIGH        41  8192  2048  2048
20:40:43 T:139736049538816  NOTICE: VC1_SIMPLE        1  8190  2048  2048
20:40:43 T:139736049538816  NOTICE: VC1_MAIN          2  8190  2048  2048
20:40:43 T:139736049538816  NOTICE: VC1_ADVANCED      4  8190  2048  2048
20:40:43 T:139736049538816  NOTICE: MPEG4_PART2_ASP   5  8192  2048  2048
20:40:43 T:139736049538816  NOTICE: ------------------------------------
20:40:43 T:139736049538816  NOTICE: Mixer feature: VDP_VIDEO_MIXER_FEATURE_NOISE_REDUCTION
20:40:43 T:139736049538816  NOTICE: Mixer feature: VDP_VIDEO_MIXER_FEATURE_SHARPNESS
20:40:43 T:139736049538816  NOTICE: Mixer feature: VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL
20:40:43 T:139736049538816  NOTICE: Mixer feature: VDP_VIDEO_MIXER_FEATURE_DEINTERLACE_TEMPORAL_SPATIAL
20:40:43 T:139736049538816  NOTICE: Mixer feature: VDP_VIDEO_MIXER_FEATURE_INVERSE_TELECINE
20:40:43 T:139736049538816  NOTICE: Mixer feature: VDP_VIDEO_MIXER_FEATURE_HIGH_QUALITY_SCALING_L1
20:40:43 T:139736049538816  NOTICE: CDVDVideoCodecFFmpeg::Open() Using codec: H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (VDPAU acceleration)
20:40:43 T:139736049538816  NOTICE: Creating video thread
20:40:43 T:139736074716928  NOTICE: Thread CVideoReferenceClock start, auto delete: false
20:40:43 T:139736066324224  NOTICE: Thread CDVDPlayerVideo start, auto delete: false
20:40:43 T:139736049538816  NOTICE: Opening audio stream: 2 source: 256
20:40:43 T:139736049538816  NOTICE: Finding audio codec for: 86019
20:40:43 T:139736049538816  NOTICE: Creating audio thread
20:40:43 T:139736066324224  NOTICE: running thread: video_thread
20:40:43 T:139735750485760  NOTICE: Thread CDVDPlayerAudio start, auto delete: false
20:40:43 T:139735750485760  NOTICE: running thread: CDVDPlayerAudio::Process()
20:40:43 T:139735750485760  NOTICE: Creating audio stream (codec id: 86019, channels: 2, sample rate: 48000, pass-through)
20:40:43 T:139736066324224  NOTICE:  (VDPAU) screenWidth:1920 vidWidth:1920 surfaceWidth:1920
20:40:43 T:139736066324224  NOTICE:  (VDPAU) screenHeight:1080 vidHeight:1080 surfaceHeight:1088
20:40:43 T:139735735817984  NOTICE: Thread Vdpau Output Thread start, auto delete: false
20:40:43 T:139735735817984  NOTICE: COutput::OnStartup: Output Thread created
20:40:43 T:139735735817984  NOTICE: VDPAU::COutput::CreateGlxContext - created context
20:40:43 T:139735735817984  NOTICE: VDPAU::COutput GL interop supported
20:40:43 T:139735735817984  NOTICE: VDPAU::COutput: vdpau gl interop initialized
20:40:43 T:139735710639872  NOTICE: Thread Vdpau Mixer Thread start, auto delete: false
20:40:43 T:139735710639872  NOTICE: CMixer::OnStartup: Output Thread created
20:40:43 T:139735710639872  NOTICE:  (VDPAU) Creating the video mixer
20:40:43 T:139735735817984  NOTICE: VDPAU::COutput::InitBufferPool - Output Surface created
20:40:43 T:139735735817984  NOTICE: Previous line repeats 3 times.
20:40:43 T:139735735817984  NOTICE: VDPAU::COutput registered surface
20:40:43 T:139736066324224  NOTICE: Previous line repeats 4 times.
20:40:43 T:139736066324224  NOTICE:  fps: 50.166667, pwidth: 1920, pheight: 1080, dwidth: 1920, dheight: 1080
20:40:43 T:139736066324224  NOTICE: Display resolution ADJUST : HDMI-0: 1920x1080 @ 60.00Hz (15) (weight: 0.196)
20:40:43 T:139736066324224  NOTICE: CXBMCRenderManager::ResetRenderBuffer - using 5 render buffers
20:40:43 T:139737117390720  NOTICE: Using GL_TEXTURE_2D
20:40:43 T:139737117390720  NOTICE: GL: Selecting Single Pass YUV 2 RGB shader
20:40:43 T:139737117390720  NOTICE: GL: NPOT texture support detected
20:40:43 T:139737117390720  NOTICE: GL: Using GL_ARB_pixel_buffer_object
20:40:43 T:139735735817984  NOTICE: VDPAU::COutput registered surface
20:40:51 T:139736066324224  NOTICE: Previous line repeats 6 times.
20:40:51 T:139736066324224  NOTICE:  fps: 25.000000, pwidth: 1920, pheight: 1080, dwidth: 1920, dheight: 1080
20:40:51 T:139736066324224  NOTICE: Display resolution ADJUST : 1920x1080 @ 50.00 - Full Screen (12) (weight: 0.000)
20:40:51 T:139736066324224  NOTICE: CXBMCRenderManager::ResetRenderBuffer - using 5 render buffers
20:40:51 T:139737117390720  NOTICE: CWinSystemX11::SetFullScreen - calling xrandr
20:40:51 T:139737117390720  NOTICE: CXBMCRenderManager::ResetRenderBuffer - using 5 render buffers
20:40:51 T:139737117390720  NOTICE: CVDPAU::OnLostDevice event

you can see both "Display resolution ADJUST" lines here. After the second one, playback continues perfectly. This video is interlaced and I have deinterlace mode weavex2 enabled; but the same problem affects progressive 25p encodes too.

mediainfo on the file being played above:

Code:
rachel@twilight:/media/Vault/Plex$ mediainfo Movies/The\ Hollow\ Crown/Henry\ IV\ Part\ 1\ \(2012\).mp4
General
Complete name                            : Movies/The Hollow Crown/Henry IV Part 1 (2012).mp4
Format                                   : MPEG-4
Format profile                           : Base Media / Version 2
Codec ID                                 : mp42
File size                                : 4.16 GiB
Duration                                 : 1h 54mn
Overall bit rate mode                    : Variable
Overall bit rate                         : 5 188 Kbps
Encoded date                             : UTC 2012-07-08 14:05:18
Tagged date                              : UTC 2012-07-08 18:19:53
Writing application                      : HandBrake 4819svn 2012070801

Video
ID                                       : 1
Format                                   : AVC
Format/Info                              : Advanced Video Codec
Format profile                           : [email protected]
Format settings, CABAC                   : Yes
Format settings, ReFrames                : 4 frames
Codec ID                                 : avc1
Codec ID/Info                            : Advanced Video Coding
Duration                                 : 1h 54mn
Bit rate mode                            : Variable
Bit rate                                 : 4 829 Kbps
Width                                    : 1 920 pixels
Height                                   : 1 080 pixels
Display aspect ratio                     : 16:9
Frame rate mode                          : Variable
Frame rate                               : 25.000 fps
Minimum frame rate                       : 1.870 fps
Maximum frame rate                       : 25.000 fps
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 8 bits
Scan type                                : MBAFF
Bits/(Pixel*Frame)                       : 0.093
Stream size                              : 3.87 GiB (93%)
Writing library                          : x264 core 125
Encoding settings                        : cabac=1 / ref=3 / deblock=1:0:0 / analyse=0x3:0x113 / me=hex / subme=7 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=2 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=tff / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=1 / weightb=1 / open_gop=0 / weightp=0 / keyint=250 / keyint_min=25 / scenecut=40 / intra_refresh=0 / rc_lookahead=50 / rc=crf / mbtree=1 / crf=20.0 / qcomp=0.60 / qpmin=3 / qpmax=69 / qpstep=4 / ip_ratio=1.40 / aq=1:1.00
Encoded date                             : UTC 2012-07-08 14:05:18
Tagged date                              : UTC 2012-07-08 18:19:53
Color primaries                          : BT.709-5, BT.1361, IEC 61966-2-4, SMPTE RP177
Transfer characteristics                 : BT.709-5, BT.1361
Matrix coefficients                      : BT.709-5, BT.1361, IEC 61966-2-4 709, SMPTE RP177

(audio trimmed to keep in message size limit)


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - FernetMenta - 2012-07-09

Rachel, please report this issue here: https://github.com/FernetMenta/xbmc/issues?direction=desc&page=1&sort=updated&state=open
Although its the same build we don't want to hijack the ati thread. Please post full debug logs, preferable posted on xbmclogs.com


RE: Howto Install XBMC PVR Xvba for AMD/ATI Radeon and Fusion GPUs - fritsch - 2012-07-09

(2012-07-08, 21:48)Just4U Wrote: Hi fritsch, Thanks for info.

I have a AMD Radeon HD 6450A 512MB graphics card in my Lenovo Q180. So does H264 Level 5.1 works with default fglrx driver if we follow the first page steps?

Yes. To also playback "wrongly" encoded Level 41@high files, that are out of spec, meaning too many ref-frames, you have to use the xbmc-xvba-testing ppa. For correct encoded Level51 Files, even the eden version is enough.

You can verify this with mediainfo. If the resolution is 1080p and there are more than 4 reframes, it is not Level41 File, but it is Level51.