[Mesa-dev] [PATCH] radeon/vcn: determine idr by pic type

Zhang, Boyuan Boyuan.Zhang at amd.com
Fri Dec 8 23:41:18 UTC 2017


Am 04.12.2017 um 21:12 schrieb Zhang, Boyuan:
>>> Am 30.11.2017 um 22:18 schrieb Leo Liu:
>>>>
>>>> On 11/30/2017 04:12 PM, boyuan.zhang at amd.com wrote:
>>>>> From: Boyuan Zhang <boyuan.zhang at amd.com>
>>>>>
>>>>> Vaapi encode interface provides idr frame flags, where omx 
>>>>> interface doesn't.
>>>>> Therefore, change to use picture type to determine idr frame, which 
>>>>> will work for both interfaces.
>>>>>
>>>>> Signed-off-by: Boyuan Zhang <boyuan.zhang at amd.com>
>>>> Reviewed-by: Leo Liu <leo.liu at amd.com>
>>> Reviewed-by: Christian König <christian.koenig at amd.com>
>>>
>>> As a consequence could you remove the is_idr flag from the picture structure or is that used somewhere else as well?
>>>
>>> Regards,
>>> Christian.
>> Since Vaapi interface provides the idr flag directly, it's better to have a 1:1 mapping in driver side and use it directly.
>
> I strongly disagree. The VA-API interface for codecs is broken in quite a number of ways.
>
> We should rather use the specifications as source for internal structures and interfaces.

OK, that makes sense. I managed to remove the flag.

>
>>   And actually, we are using this "is_idr" flag in some functions in st/va now. So I think it's better to keep it for now.
>
> I think we should fix this as well and use the picture type here as well.

This is fixed as well, all "is_idr" flags are removed. 

Please review the new patch sets that just submitted.

Regards,
Boyuan

>
> Regards,
> Christian.
>
>>
>> Regards,
>> Boyuan
>>
>>>>> ---
>>>>>    src/gallium/drivers/radeon/radeon_vcn_enc.c | 2 +-
>>>>>    1 file changed, 1 insertion(+), 1 deletion(-)
>>>>>
>>>>> diff --git a/src/gallium/drivers/radeon/radeon_vcn_enc.c
>>>>> b/src/gallium/drivers/radeon/radeon_vcn_enc.c
>>>>> index 9806a69..5fc9fc7 100644
>>>>> --- a/src/gallium/drivers/radeon/radeon_vcn_enc.c
>>>>> +++ b/src/gallium/drivers/radeon/radeon_vcn_enc.c
>>>>> @@ -47,7 +47,7 @@ static void radeon_vcn_enc_get_param(struct 
>>>>> radeon_encoder *enc, struct pipe_h26
>>>>>        enc->enc_pic.ref_idx_l0 = pic->ref_idx_l0;
>>>>>        enc->enc_pic.ref_idx_l1 = pic->ref_idx_l1;
>>>>>        enc->enc_pic.not_referenced = pic->not_referenced;
>>>>> -    enc->enc_pic.is_idr = pic->is_idr;
>>>>> +    enc->enc_pic.is_idr = (pic->picture_type ==
>>>>> PIPE_H264_ENC_PICTURE_TYPE_IDR);
>>>>>        enc->enc_pic.crop_left = 0;
>>>>>        enc->enc_pic.crop_right = (align(enc->base.width, 16) -
>>>>> enc->base.width) / 2;
>>>>>        enc->enc_pic.crop_top = 0;
>> _______________________________________________
>> mesa-dev mailing list
>> mesa-dev at lists.freedesktop.org
>> https://lists.freedesktop.org/mailman/listinfo/mesa-dev



More information about the mesa-dev mailing list