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.
- 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.
- Allocates kernel memory; connect allocation flags and lifetime to context constraints.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/module.hlinux/slab.hmedia/videobuf2-dma-contig.h../mtk_vcodec_dec.h../../common/mtk_vcodec_intr.h../vdec_drv_base.h../vdec_drv_if.h../vdec_vpu_if.h
Detected Declarations
struct mtk_hevc_dpb_infostruct mtk_hevc_sps_paramstruct mtk_hevc_pps_paramstruct mtk_hevc_slice_header_paramstruct slice_api_hevc_scaling_matrixstruct slice_hevc_dpb_entrystruct slice_api_hevc_decode_paramstruct hevc_fbstruct vdec_hevc_slice_lat_dec_paramstruct vdec_hevc_slice_infostruct vdec_hevc_slice_memstruct vdec_hevc_slice_fbstruct vdec_hevc_slice_vsistruct vdec_hevc_slice_share_infostruct vdec_hevc_slice_instenum vdec_hevc_core_dec_err_typefunction vdec_hevc_get_mv_buf_sizefunction vdec_hevc_fill_dpb_infofunction vdec_hevc_copy_sps_paramsfunction vdec_hevc_copy_pps_paramsfunction vdec_hevc_copy_scaling_matrixfunction vdec_hevc_copy_decode_paramsfunction vdec_hevc_slice_fill_decode_parametersfunction vdec_hevc_slice_fill_decode_reflistfunction vdec_hevc_slice_alloc_mv_buffunction vdec_hevc_slice_free_mv_buffunction vdec_hevc_slice_get_pic_infofunction vdec_hevc_slice_get_crop_infofunction vdec_hevc_slice_setup_lat_bufferfunction vdec_hevc_slice_setup_core_bufferfunction vdec_hevc_slice_initfunction vdec_hevc_slice_deinitfunction vdec_hevc_slice_core_decodefunction vdec_hevc_slice_lat_decodefunction vdec_hevc_slice_decodefunction vdec_hevc_slice_get_param
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
- Immediate include surface: `linux/module.h`, `linux/slab.h`, `media/videobuf2-dma-contig.h`, `../mtk_vcodec_dec.h`, `../../common/mtk_vcodec_intr.h`, `../vdec_drv_base.h`, `../vdec_drv_if.h`, `../vdec_vpu_if.h`.
- Detected declarations: `struct mtk_hevc_dpb_info`, `struct mtk_hevc_sps_param`, `struct mtk_hevc_pps_param`, `struct mtk_hevc_slice_header_param`, `struct slice_api_hevc_scaling_matrix`, `struct slice_hevc_dpb_entry`, `struct slice_api_hevc_decode_param`, `struct hevc_fb`, `struct vdec_hevc_slice_lat_dec_param`, `struct vdec_hevc_slice_info`.
- Atlas domain: Driver Families / drivers/media.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.