On 09/27/2016 06:23 AM, Emil Velikov wrote:
On 23 September 2016 at 17:32, Leo Liu <leo....@amd.com> wrote:Specified by 7.3.4There's a word missing in there ^ - table 7.3.4 ?
Yeh, something is missed, it's from subclause 7.3.4
Signed-off-by: Leo Liu <leo....@amd.com> --- src/gallium/state_trackers/omx/vid_dec_h265.c | 126 +++++++++++++++++++++++++- 1 file changed, 121 insertions(+), 5 deletions(-) diff --git a/src/gallium/state_trackers/omx/vid_dec_h265.c b/src/gallium/state_trackers/omx/vid_dec_h265.c index 0772b4d..3c46505 100644 --- a/src/gallium/state_trackers/omx/vid_dec_h265.c +++ b/src/gallium/state_trackers/omx/vid_dec_h265.c @@ -57,6 +57,28 @@ enum { NAL_UNIT_TYPE_PPS = 34, }; +static const uint8_t Default_8x8_Intra[64] = { + 16, 16, 16, 16, 17, 18, 21, 24, + 16, 16, 16, 16, 17, 19, 22, 25, + 16, 16, 17, 18, 20, 22, 25, 29, + 16, 16, 18, 21, 24, 27, 31, 36, + 17, 17, 20, 24, 30, 35, 41, 47, + 18, 19, 22, 27, 35, 44, 54, 65, + 21, 22, 25, 31, 41, 54, 70, 88, + 24, 25, 29, 36, 47, 65, 88, 115 +}; + +static const uint8_t Default_8x8_Inter[64] = { + 16, 16, 16, 16, 17, 18, 20, 24, + 16, 16, 16, 17, 18, 20, 24, 25, + 16, 16, 17, 18, 20, 24, 25, 28, + 16, 17, 18, 20, 24, 25, 28, 33, + 17, 18, 20, 24, 25, 28, 33, 41, + 18, 20, 24, 25, 28, 33, 41, 54, + 20, 24, 25, 28, 33, 41, 54, 71, + 24, 25, 28, 33, 41, 54, 71, 91 +}; +Style used for the names is a bit iffy - use default_8x8_inter ?
The style is inherited from vid_dec_h264.c, and similar style for all scaling list table.
Since neither of these is omx specific worth moving these to aux/vl ?
This is specific to omx, and also specific to h265 (h264 got its own).These tables are only for omx, but not for vdpau and vaapi, because only for omx, we need to parse it.
for vdpau and vaapi, it get done thru the framework.
struct dpb_list { struct list_head list; struct pipe_video_buffer *buffer; @@ -188,10 +210,104 @@ static unsigned profile_tier_level(struct vl_rbsp *rbsp, return level_idc; } -static void scaling_list_data(void) +static void scaling_list_data(vid_dec_PrivateType *priv, + struct vl_rbsp *rbsp, struct pipe_h265_sps *sps) { - /* TODO */ - assert(0); + unsigned size_id, matrix_id; + + for (size_id = 0; size_id < 4; ++size_id) {Why would one loop over size_id, if close of everything in the loop is special cased on the size_id ?
It loops matrix_id, but could be optimized. will do in v2. Thanks, Leo
-Emil
_______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/mesa-dev