v4l2_m2m_buf_queue(9)
π v4l2_m2m_buf_queue(9) π
okay so bestie, welcome to the Kernel API Manual β this one's a lil function called v4l2_m2m_buf_queue, and ngl it's giving "small but crucial," the quiet main-character moment of the mem2mem pipeline β¨
πΈ NAME πΈ
v4l2_m2m_buf_queue β add a buffer to the proper ready buffers list. that's it, that's the whole job, and she does it flawlessly π
π¦ SYNOPSIS π¦
void v4l2_m2m_buf_queue (struct v4l2_m2m_ctx *m2m_ctx , struct
vb2_v4l2_buffer *vbuf );
literally just two things in, no return value out β void said "i'm not giving you anything back, and that's on purpose" π
π ARGUMENTS π
m2m_ctxβ the m2m context assigned to the instance, given to you bystruct v4l2_m2m_ctx. she's the one holding the vibes for this instance π«Άvbufβ a pointer tostruct vb2_v4l2_buffer. yes bestie, a pointer, so keep that thing alive π
β DESCRIPTION β
Call this from vb2_queue_ops->ops->buf_queue β that's the vb2_queue_ops callback, iykyk. that's the whole instruction: it's a callback-time function, so you call it from there, not wherever you feel like it π§
π₯ SEE ALSO π₯
Kernel file ./include/media/v4l2-mem2mem.h, plus the whole friend group:
struct v4l2_m2m_ops(9)struct v4l2_m2m_queue_ctx(9)struct v4l2_m2m_ctx(9)struct v4l2_m2m_buffer(9)v4l2_m2m_get_curr_priv(9)v4l2_m2m_get_vq(9)v4l2_m2m_try_schedule(9)v4l2_m2m_job_finish(9)v4l2_m2m_buf_done_and_job_finish(9)v4l2_m2m_clear_state(9)v4l2_m2m_mark_stopped(9)v4l2_m2m_dst_buf_is_last(9)v4l2_m2m_has_stopped(9)v4l2_m2m_is_last_draining_src_buf(9)v4l2_m2m_last_buffer_done(9)v4l2_m2m_suspend(9)v4l2_m2m_resume(9)v4l2_m2m_reqbufs(9)v4l2_m2m_querybuf(9)v4l2_m2m_qbuf(9)v4l2_m2m_dqbuf(9)v4l2_m2m_prepare_buf(9)v4l2_m2m_create_bufs(9)v4l2_m2m_expbuf(9)v4l2_m2m_streamon(9)v4l2_m2m_streamoff(9)v4l2_m2m_update_start_streaming_state(9)v4l2_m2m_update_stop_streaming_state(9)v4l2_m2m_encoder_cmd(9)v4l2_m2m_decoder_cmd(9)v4l2_m2m_poll(9)v4l2_m2m_mmap(9)v4l2_m2m_init(9)v4l2_m2m_release(9)v4l2_m2m_get(9)v4l2_m2m_put(9)v4l2_m2m_ctx_init(9)v4l2_m2m_ctx_release(9)v4l2_m2m_num_src_bufs_ready(9)v4l2_m2m_num_dst_bufs_ready(9)v4l2_m2m_next_buf(9)v4l2_m2m_next_src_buf(9)v4l2_m2m_next_dst_buf(9)v4l2_m2m_last_buf(9)v4l2_m2m_last_src_buf(9)v4l2_m2m_last_dst_buf(9)v4l2_m2m_for_each_dst_buf(9)v4l2_m2m_for_each_src_buf(9)v4l2_m2m_for_each_dst_buf_safe(9)v4l2_m2m_for_each_src_buf_safe(9)v4l2_m2m_get_src_vq(9)v4l2_m2m_get_dst_vq(9)v4l2_m2m_buf_remove(9)v4l2_m2m_src_buf_remove(9)v4l2_m2m_dst_buf_remove(9)v4l2_m2m_buf_remove_by_buf(9)v4l2_m2m_src_buf_remove_by_buf(9)v4l2_m2m_dst_buf_remove_by_buf(9)v4l2_m2m_buf_copy_metadata(9)
like, the entire extended friend group showed up to the group chat. iconic π
and that's the page!! π this lil slice of wisdom lives over in the kernel files under ./include/media, stamped October 2026 β mwah, love u, go queue those buffers bestie ππ¦β¨
π¦ 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