v4l2_m2m_next_dst_buf(9)
π v4l2_m2m_next_dst_buf(9) β the Kernel API Manual page, but make it make sense π
okay so. bestie. this is a page from the Kernel API Manual, and it's about one tiny little function: v4l2_m2m_next_dst_buf. that's it. that's the whole function. and honestly? she's iconic in a very quiet, "I just peek at a list" kind of way. no cap, this is a short one, so let's get into it π«Ά
β¨ NAME β¨
v4l2_m2m_next_dst_buf β returns the next destination buffer from the list of ready buffers π
that's the whole job. she looks at the ready list, she hands you the next destination buffer, she goes back to doing her thing. lowkey the most reliable friend in the group chat.
π¦ SYNOPSIS π¦
struct vb2_v4l2_buffer * v4l2_m2m_next_dst_buf (struct v4l2_m2m_ctx *m2m_ctx );
it's giving "one function, one argument, one return type." clean. minimal. main character energy without the drama β¨
π ARGUMENTS π
m2m_ctxβ the m2m context assigned to the instance, given bystruct v4l2_m2m_ctx. like, yes bestie, that context. the one your instance got handed. you're passing her in so she knows which list of ready destination buffers we're talking about π
real talk: there are no other arguments. there are no options. there are no environment variables. there is no exit status. it's just the context. she's not complicated and that's why we love her π
π₯ SEE ALSO π₯
okay this is the part where the group chat gets huge, because like every sibling function showed up. the kernel file involved is ./include/media/v4l2-mem2mem.h, and here's the whole fam, no one left out, fr fr:
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_buf_queue(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_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 I said. whole fam. every single one tagged (9) because that's how kernel API pages roll π§
and that's the page, bestie!! short and sweet, just how we like her π iykyk π«
πΈ cute little sign-off: this one lives in ./include/media, and the page itself is dated October 2026. so yeah β she's from the future, she's from the include dir, and she's slaying π
β¨
π¦ 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