STRUCT VDEC_AV1_SLICE_UNCOMPRESSED_HEADER(9)
π NAME
struct vdec_av1_slice_uncompressed_header β okay so this one literally Represents an AV1 Frame Header OBU β¨ that's the whole gig, no cap.
π SYNOPSIS
struct vdec_av1_slice_uncompressed_header {
u8 use_ref_frame_mvs;
int order_hint;
struct vdec_av1_slice_gm gm[V4L2_AV1_TOTAL_REFS_PER_FRAME];
u32 upscaled_width;
u32 frame_width;
u32 frame_height;
u8 reduced_tx_set;
u8 tx_mode;
u8 uniform_tile_spacing_flag;
u8 interpolation_filter;
u8 allow_warped_motion;
u8 is_motion_mode_switchable;
u8 reference_mode;
u8 allow_high_precision_mv;
u8 allow_intra_bc;
u8 force_integer_mv;
u8 allow_screen_content_tools;
u8 error_resilient_mode;
u8 frame_type;
u8 primary_ref_frame;
u8 disable_frame_end_update_cdf;
u32 disable_cdf_update;
struct vdec_av1_slice_sm skip_mode;
struct vdec_av1_slice_seg seg;
struct vdec_av1_slice_delta_q_lf delta_q_lf;
struct vdec_av1_slice_quantization quant;
struct vdec_av1_slice_lr lr;
u32 superres_denom;
struct vdec_av1_slice_loop_filter loop_filter;
struct vdec_av1_slice_cdef cdef;
struct vdec_av1_slice_mfmv mfmv;
struct vdec_av1_slice_tile tile;
u8 frame_is_intra;
u8 loss_less_array[V4L2_AV1_MAX_SEGMENTS];
u8 coded_loss_less;
u32 mi_rows;
u32 mi_cols;
};
π¦ Members
Buckle up bestie, there's like a million of these, but every single one is iconic in its own way π«Ά
use_ref_frame_mvsβ theuse_ref_frame_mvsflag. that's it, that's the description πorder_hintβ specifiesOrderHintBitsleast significant bits of the expectedβ¦ and yeah the sentence just ends there, the docs really said "you know what, you finish it" πgmβ global motion param πupscaled_widthβ the upscaled widthframe_widthβ frame's widthframe_heightβ frame's heightreduced_tx_setβ frame is restricted to a reduced subset of the full set of transform typestx_modeβ specifies how the transform size is determineduniform_tile_spacing_flagβ tiles are uniformly spaced across the frame or the tile sizes are codedinterpolation_filterβ specifies the filter selection used for performing inter predictionallow_warped_motionβmotion_modemay be present or notis_motion_mode_switchableβ equal to 0 specifies that only theSIMPLEmotion mode will be usedreference_modeβ frame reference mode selectedallow_high_precision_mvβ specifies that motion vectors are specified to quarter pel precision or to eighth pel precisionallow_intra_bcβ allows that intra block copy may be used in this frameforce_integer_mvβ specifies motion vectors will always be integers or can contain fractional bitsallow_screen_content_toolsβ intra blocks may use palette encoding π¨error_resilient_modeβ error resilient mode is enable/disableframe_typeβ specifies the AV1 frame typeprimary_ref_frameβ specifies which reference frame contains the CDF values and other state that should be loaded at the start of the frame, and slots will be updated with the current frame after it is decodeddisable_frame_end_update_cdfβ indicates the end of frame CDF update is disable or enabledisable_cdf_updateβ specified whether the CDF update in the symbol decoding process should be disablesskip_modeβ av1 skip mode parameterssegβ av1 segmentation parametersdelta_q_lfβ av1 delta loop filterquantβ av1 Quantization paramslrβ av1 Loop Restauration parameters (yes, "Restauration", we stan the spelling π)superres_denomβ the denominator for the upscaling ratioloop_filterβ av1 Loop filter parameterscdefβ av1 CDEF parametersmfmvβ av1 mfmv parameterstileβ av1 Tile infoframe_is_intraβ intra frameloss_less_arrayβ lossless arraycoded_loss_lessβ coded losslessmi_rowsβ size of mi unit in rowsmi_colsβ size of mi unit in cols
ngl the one-liner descriptions are giving "wrote it at 3am before the deadline" but we respect the hustle π every field is here, nothing skipped, periodt.
π SEE ALSO
Kernel file β literally go read it bestie:
./drivers/media/platform/mediatek/vcodec/decoder/vdec/vdec_av1_req_lat_if.c
And the whole struct family reunion, in this exact order:
struct vdec_av1_slice_init_vsi(9)struct vdec_av1_slice_mem(9)struct vdec_av1_slice_state(9)struct vdec_av1_slice_tile_group(9)struct vdec_av1_slice_scale_factors(9)struct vdec_av1_slice_frame_refs(9)struct vdec_av1_slice_gm(9)struct vdec_av1_slice_sm(9)struct vdec_av1_slice_seg(9)struct vdec_av1_slice_delta_q_lf(9)struct vdec_av1_slice_quantization(9)struct vdec_av1_slice_lr(9)struct vdec_av1_slice_loop_filter(9)struct vdec_av1_slice_cdef(9)struct vdec_av1_slice_mfmv(9)struct vdec_av1_slice_tile(9)struct vdec_av1_slice_seq_header(9)struct vdec_av1_slice_frame(9)struct vdec_av1_slice_work_buffer(9)struct vdec_av1_slice_frame_info(9)struct vdec_av1_slice_slot(9)struct vdec_av1_slice_fb(9)struct vdec_av1_slice_vsi(9)struct vdec_av1_slice_pfc(9)struct vdec_av1_slice_instance(9)
and that's the whole page, bestie π this little drop came straight out of the Kernel API Manual, sourced from ./drivers/media/platform/media..., stamped October 2026 β so go forth, read your frame headers, and slay πβ¨π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms