[Mesa-dev] [PATCH 1/5] st/omx/dec/h265: add scaling list data

Leo Liu leo.liu at amd.com
Thu Sep 29 19:59:59 UTC 2016



On 09/27/2016 06:23 AM, Emil Velikov wrote:
> On 23 September 2016 at 17:32, Leo Liu <leo.liu at amd.com> wrote:
>> Specified by 7.3.4
> There'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.liu at 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



More information about the mesa-dev mailing list