mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-03-13 21:50:31 +01:00
ac: Add VCN ac_video_dec implementation
Reviewed-by: Ruijing Dong <ruijing.dong@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/39627>
This commit is contained in:
parent
b5028e84c8
commit
79af03556c
3 changed files with 1768 additions and 1 deletions
File diff suppressed because it is too large
Load diff
|
|
@ -9,6 +9,8 @@
|
|||
#ifndef _AC_VCN_DEC_H
|
||||
#define _AC_VCN_DEC_H
|
||||
|
||||
#include "ac_video_dec.h"
|
||||
|
||||
/* VCN programming information shared between gallium/vulkan */
|
||||
#define RDECODE_PKT_TYPE_S(x) (((unsigned)(x)&0x3) << 30)
|
||||
#define RDECODE_PKT_TYPE_G(x) (((x) >> 30) & 0x3)
|
||||
|
|
@ -1147,6 +1149,18 @@ typedef struct rvcn_dec_feedback_profiling_s {
|
|||
unsigned int dmaHwCrc32Value2;
|
||||
} rvcn_dec_feedback_profiling_t;
|
||||
|
||||
typedef struct rvcn_dec_avc_its_s {
|
||||
unsigned char scaling_list_4x4[6][16];
|
||||
unsigned char scaling_list_8x8[2][64];
|
||||
} rvcn_dec_avc_its_t;
|
||||
|
||||
typedef struct rvcn_dec_hevc_its_s {
|
||||
unsigned char scaling_list_4x4[6][16];
|
||||
unsigned char scaling_list_8x8[6][64];
|
||||
unsigned char scaling_list_16x16[6][64];
|
||||
unsigned char scaling_list_32x32[2][64];
|
||||
} rvcn_dec_hevc_its_t;
|
||||
|
||||
typedef struct rvcn_dec_vp9_nmv_ctx_mask_s {
|
||||
unsigned short classes_mask[2];
|
||||
unsigned short bits_mask[2];
|
||||
|
|
@ -1272,4 +1286,8 @@ unsigned ac_vcn_dec_calc_ctx_size_av1(unsigned av1_version);
|
|||
void ac_vcn_av1_init_probs(unsigned av1_version, uint8_t *prob);
|
||||
void ac_vcn_av1_init_film_grain_buffer(unsigned av1_version, rvcn_dec_film_grain_params_t *fg_params, rvcn_dec_av1_fg_init_buf_t *fg_buf);
|
||||
|
||||
uint32_t ac_vcn_dec_dpb_size(const struct radeon_info *info, struct ac_video_dec_session_param *param);
|
||||
uint32_t ac_vcn_dec_dpb_alignment(const struct radeon_info *info, struct ac_video_dec_session_param *param);
|
||||
struct ac_video_dec *ac_vcn_create_video_decoder(const struct radeon_info *info, struct ac_video_dec_session_param *param);
|
||||
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -5,21 +5,28 @@
|
|||
*/
|
||||
|
||||
#include "ac_video_dec.h"
|
||||
#include "ac_vcn_dec.h"
|
||||
|
||||
uint32_t
|
||||
ac_video_dec_dpb_size(const struct radeon_info *info, struct ac_video_dec_session_param *param)
|
||||
{
|
||||
if (info->vcn_ip_version >= VCN_1_0_0)
|
||||
return ac_vcn_dec_dpb_size(info, param);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint32_t
|
||||
ac_video_dec_dpb_alignment(const struct radeon_info *info, struct ac_video_dec_session_param *param)
|
||||
{
|
||||
if (info->vcn_ip_version >= VCN_1_0_0)
|
||||
return ac_vcn_dec_dpb_alignment(info, param);
|
||||
return 0;
|
||||
}
|
||||
|
||||
struct ac_video_dec *
|
||||
ac_create_video_decoder(const struct radeon_info *info, struct ac_video_dec_session_param *param)
|
||||
{
|
||||
if (info->vcn_ip_version >= VCN_1_0_0)
|
||||
return ac_vcn_create_video_decoder(info, param);
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue