vb2_get_buffer(9)
π vb2_get_buffer β the Kernel API Manual page, bestie edition π
okay so picture this: it's a Kernel API Manual page, the subject is vb2_get_buffer, and honestly? it ate. this is the whole thing, no cap, every detail kept, just with the vibes turned all the way up β¨
πΈ NAME πΈ
vb2_get_buffer β get a buffer from a queue π
β¨ SYNOPSIS β¨
struct vb2_buffer * vb2_get_buffer (struct vb2_queue *q , unsigned int
index );
π¦ ARGUMENTS π¦
qβ pointer tostruct vb2_queuewith the videobuf2 queue. this is the queue you're pulling from, bestie, that's literally it πindexβ buffer index. the position number of the buffer you want, iconic and simple π―
π DESCRIPTION π
so what does this function do? it obtains a buffer from a queue, by its index. that's the whole job. main character behaviour, does one thing, does it well π
but listen β and this is the important part, do not skip it β there is no refcounting involved in this operation. none. zero. not a single ref. so the buffer lifetime should be taken into consideration, like, seriously consider it. the function hands you a pointer and then dips, so if the buffer gets freed out from under you, that's on you and it is not the vibe π
β οΈ no refcount, no safety net. think about buffer lifetime before you go touching that thing, fr fr.
π SEE ALSO π
Kernel file ./include/media/videobuf2-core.h, plus the whole friend group:
enum vb2_memory(9)struct vb2_mem_ops(9)struct vb2_plane(9)enum vb2_io_modes(9)enum vb2_buffer_state(9)struct vb2_buffer(9)struct vb2_ops(9)struct vb2_buf_ops(9)struct vb2_queue(9)vb2_queue_allows_cache_hints(9)vb2_plane_vaddr(9)vb2_plane_cookie(9)vb2_buffer_done(9)vb2_discard_done(9)vb2_wait_for_all_buffers(9)vb2_core_querybuf(9)vb2_core_reqbufs(9)vb2_core_create_bufs(9)vb2_core_prepare_buf(9)vb2_core_remove_bufs(9)vb2_core_qbuf(9)vb2_core_dqbuf(9)vb2_core_streamon(9)vb2_core_streamoff(9)vb2_core_expbuf(9)vb2_core_queue_init(9)vb2_core_queue_release(9)vb2_queue_error(9)vb2_mmap(9)vb2_get_unmapped_area(9)vb2_core_poll(9)vb2_read(9)vb2_write(9)vb2_thread_fnc(9)vb2_thread_start(9)vb2_thread_stop(9)vb2_is_streaming(9)vb2_fileio_is_active(9)vb2_get_num_buffers(9)vb2_is_busy(9)vb2_get_drv_priv(9)vb2_set_plane_payload(9)vb2_get_plane_payload(9)vb2_plane_size(9)vb2_start_streaming_called(9)vb2_clear_last_buffer_dequeued(9)vb2_buffer_in_use(9)vb2_verify_memory_type(9)vb2_request_object_is_buffer(9)vb2_request_buffer_cnt(9)
and that's the whole page, bestie, we're done here π«Ά this one came from ./include/media, dated October 2026, and it's been a genuine joy, mwah πβ
π¦ 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