STRUCT VDEC_AV1_SLICE_UNCOMPRESSED_HEADER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 β€” the use_ref_frame_mvs flag. that's it, that's the description πŸ’€
  • order_hint β€” specifies OrderHintBits least 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 width
  • frame_width β€” frame's width
  • frame_height β€” frame's height
  • reduced_tx_set β€” frame is restricted to a reduced subset of the full set of transform types
  • tx_mode β€” specifies how the transform size is determined
  • uniform_tile_spacing_flag β€” tiles are uniformly spaced across the frame or the tile sizes are coded
  • interpolation_filter β€” specifies the filter selection used for performing inter prediction
  • allow_warped_motion β€” motion_mode may be present or not
  • is_motion_mode_switchable β€” equal to 0 specifies that only the SIMPLE motion mode will be used
  • reference_mode β€” frame reference mode selected
  • allow_high_precision_mv β€” specifies that motion vectors are specified to quarter pel precision or to eighth pel precision
  • allow_intra_bc β€” allows that intra block copy may be used in this frame
  • force_integer_mv β€” specifies motion vectors will always be integers or can contain fractional bits
  • allow_screen_content_tools β€” intra blocks may use palette encoding 🎨
  • error_resilient_mode β€” error resilient mode is enable/disable
  • frame_type β€” specifies the AV1 frame type
  • primary_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 decoded
  • disable_frame_end_update_cdf β€” indicates the end of frame CDF update is disable or enable
  • disable_cdf_update β€” specified whether the CDF update in the symbol decoding process should be disables
  • skip_mode β€” av1 skip mode parameters
  • seg β€” av1 segmentation parameters
  • delta_q_lf β€” av1 delta loop filter
  • quant β€” av1 Quantization params
  • lr β€” av1 Loop Restauration parameters (yes, "Restauration", we stan the spelling πŸ’œ)
  • superres_denom β€” the denominator for the upscaling ratio
  • loop_filter β€” av1 Loop filter parameters
  • cdef β€” av1 CDEF parameters
  • mfmv β€” av1 mfmv parameters
  • tile β€” av1 Tile info
  • frame_is_intra β€” intra frame
  • loss_less_array β€” lossless array
  • coded_loss_less β€” coded lossless
  • mi_rows β€” size of mi unit in rows
  • mi_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