drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c

Source file repositories/reference/linux-study-clean/drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c

File Facts

System
Linux kernel
Corpus path
drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_hevc_req_multi_if.c
Extension
.c
Size
36247 bytes
Lines
1094
Domain
Driver Families
Bucket
drivers/media
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct mtk_hevc_dpb_info {
	dma_addr_t y_dma_addr;
	dma_addr_t c_dma_addr;
	int reference_flag;
	int field;
};

/*
 * struct mtk_hevc_sps_param  - parameters for sps
 */
struct mtk_hevc_sps_param {
	unsigned char video_parameter_set_id;
	unsigned char seq_parameter_set_id;
	unsigned short pic_width_in_luma_samples;
	unsigned short pic_height_in_luma_samples;
	unsigned char bit_depth_luma_minus8;
	unsigned char bit_depth_chroma_minus8;
	unsigned char log2_max_pic_order_cnt_lsb_minus4;
	unsigned char sps_max_dec_pic_buffering_minus1;
	unsigned char sps_max_num_reorder_pics;
	unsigned char sps_max_latency_increase_plus1;
	unsigned char log2_min_luma_coding_block_size_minus3;
	unsigned char log2_diff_max_min_luma_coding_block_size;
	unsigned char log2_min_luma_transform_block_size_minus2;
	unsigned char log2_diff_max_min_luma_transform_block_size;
	unsigned char max_transform_hierarchy_depth_inter;
	unsigned char max_transform_hierarchy_depth_intra;
	unsigned char pcm_sample_bit_depth_luma_minus1;
	unsigned char pcm_sample_bit_depth_chroma_minus1;
	unsigned char log2_min_pcm_luma_coding_block_size_minus3;
	unsigned char log2_diff_max_min_pcm_luma_coding_block_size;
	unsigned char num_short_term_ref_pic_sets;
	unsigned char num_long_term_ref_pics_sps;
	unsigned char chroma_format_idc;
	unsigned char sps_max_sub_layers_minus1;
	unsigned char separate_colour_plane;
	unsigned char scaling_list_enabled;
	unsigned char amp_enabled;
	unsigned char sample_adaptive_offset;
	unsigned char pcm_enabled;
	unsigned char pcm_loop_filter_disabled;
	unsigned char long_term_ref_pics_enabled;
	unsigned char sps_temporal_mvp_enabled;
	unsigned char strong_intra_smoothing_enabled;
	unsigned char reserved[5];
};

/*
 * struct mtk_hevc_pps_param  - parameters for pps
 */
struct mtk_hevc_pps_param {
	unsigned char pic_parameter_set_id;
	unsigned char num_extra_slice_header_bits;
	unsigned char num_ref_idx_l0_default_active_minus1;
	unsigned char num_ref_idx_l1_default_active_minus1;
	char init_qp_minus26;
	unsigned char diff_cu_qp_delta_depth;
	char pps_cb_qp_offset;
	char pps_cr_qp_offset;
	unsigned char num_tile_columns_minus1;
	unsigned char num_tile_rows_minus1;
	unsigned char column_width_minus1[20];
	unsigned char row_height_minus1[22];
	char pps_beta_offset_div2;
	char pps_tc_offset_div2;
	unsigned char log2_parallel_merge_level_minus2;
	char dependent_slice_segment_enabled;
	char output_flag_present;
	char sign_data_hiding_enabled;
	char cabac_init_present;
	char constrained_intra_pred;
	char transform_skip_enabled;
	char cu_qp_delta_enabled;
	char pps_slice_chroma_qp_offsets_present;
	char weighted_pred;
	char weighted_bipred;
	char transquant_bypass_enabled;
	char pps_flag_tiles_enabled;
	char entropy_coding_sync_enabled;
	char loop_filter_across_tiles_enabled;
	char pps_loop_filter_across_slices_enabled;
	char deblocking_filter_override_enabled;
	char pps_disable_deflocking_filter;
	char lists_modification_present;
	char slice_segment_header_extersion_present;
	char deblocking_filter_control_present;
	char uniform_spacing;
	char reserved[6];
};

Annotation

Implementation Notes