vb2_core_reqbufs(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… vb2_core_reqbufs(9) β€” Kernel API Manual, bestie! πŸ’…

πŸŽ€ NAME πŸŽ€

vb2_core_reqbufs β€” Initiate streaming. periodt. This is the whole name section, and it ate. πŸ’–

✨ SYNOPSIS ✨

int vb2_core_reqbufs (struct vb2_queue *q , enum vb2_memory memory , unsigned int flags , unsigned int *count );

🌸 ARGUMENTS 🌸

  • q β€” pointer to struct vb2_queue with videobuf2 queue. the queue bestie in question 🫢
  • memory β€” memory type, as defined by enum vb2_memory.
  • flags β€” auxiliary queue/buffer management flags. Currently, the only used flag is V4L2_MEMORY_FLAG_NON_COHERENT. that's the one flag on duty rn.
  • count β€” requested buffer count.

πŸ¦‹ DESCRIPTION πŸ¦‹

Videobuf2 core helper to implement VIDIOC_REQBUF operation. It is called internally by VB2 by an API-specific handler, like videobuf2-v4l2.h.

okay so the way this function runs its little checklist is iconic β€” no cap:

  1. verifies streaming parameters passed from the userspace;
  2. sets up the queue;
  3. negotiates number of buffers and planes per buffer with the driver to be used during streaming;
  4. allocates internal buffer structures (struct vb2_buffer), according to the agreed parameters;
  5. for MMAP memory type, allocates actual video memory, using the memory handling/allocation routines provided during queue initialization.

If req->count is 0, all the memory will be freed instead.

If the queue has been allocated previously by a previous vb2_core_reqbufs call and the queue is not busy, memory will be reallocated.

πŸ”₯ RETURN πŸ”₯

returns zero on success; an error code otherwise. slay when it's zero, sigh when it's not 😭

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./include/media/videobuf2-core.h: 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_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_get_buffer(9), vb2_buffer_in_use(9), vb2_verify_memory_type(9), vb2_request_object_is_buffer(9), vb2_request_buffer_cnt(9).


mwah πŸ’‹ this page lives under ./include/media, dated October 2026 β€” catch u later, bestie 🫢

πŸ“¦ where this page comes from