diff options
author | root <root@rshg054.dnsready.net> | 2013-03-10 00:51:34 -0800 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-03-10 00:51:34 -0800 |
commit | 6ee08d6a9217906f2ef84f70923d3d362d4b40ad (patch) | |
tree | dc3d842884f61485a4c01889d37d9432620d5e38 /community/xvba-video-open/xvba-video-h264-level51.patch | |
parent | 92eac63df242654434dceb000bac083f6e81a6b9 (diff) |
Sun Mar 10 00:50:57 PST 2013
Diffstat (limited to 'community/xvba-video-open/xvba-video-h264-level51.patch')
-rw-r--r-- | community/xvba-video-open/xvba-video-h264-level51.patch | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/community/xvba-video-open/xvba-video-h264-level51.patch b/community/xvba-video-open/xvba-video-h264-level51.patch new file mode 100644 index 000000000..a617a90ab --- /dev/null +++ b/community/xvba-video-open/xvba-video-h264-level51.patch @@ -0,0 +1,33 @@ +diff -rup xvba-video.orig/src/xvba_buffer.c xvba-video/src/xvba_buffer.c +--- xvba-video.orig/src/xvba_buffer.c 2011-09-08 03:17:28.000000000 +0200 ++++ xvba-video/src/xvba_buffer.c 2012-07-03 21:38:04.851465348 +0200 +@@ -368,23 +368,18 @@ translate_VAPictureParameterBufferH264( + obj_context->picture_height + ); + +- /* Check for H.264 content over HP@L4.1 */ ++ /* Check for wrongly coded H264 Level 41 ++ 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 HP@L4.1. " +- "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; |