| /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/v4l/ |
| H A D | mmap.rst | 18 Streaming is an I/O method where only pointers to buffers are exchanged 20 mapping is primarily intended to map buffers in device memory into the 24 drivers support streaming as well, allocating buffers in DMA-able main 27 A driver can support many sets of buffers. Each set is identified by a 32 To allocate device buffers applications call the 34 of buffers and buffer type, for example ``V4L2_BUF_TYPE_VIDEO_CAPTURE``. 35 This ioctl can also be used to change the number of buffers or to free 36 the allocated memory, provided none of the buffers are still mapped. 38 Before applications can access the buffers they must map them into their 40 location of the buffers in device memory can be determined with the [all …]
|
| H A D | dev-decoder.rst | 12 from the client to process these buffers. 50 the destination buffer queue; for decoders, the queue of buffers containing 51 decoded frames; for encoders, the queue of buffers containing an encoded 54 into ``CAPTURE`` buffers. 78 ``OUTPUT`` buffers must be queued by the client in decode order; for 79 encoders ``CAPTURE`` buffers must be returned by the encoder in decode order. 86 buffers must be queued by the client in display order; for decoders, 87 ``CAPTURE`` buffers must be returned by the decoder in display order. 110 the source buffer queue; for decoders, the queue of buffers containing 111 an encoded bytestream; for encoders, the queue of buffers containing raw [all …]
|
| H A D | userp.rst | 19 methods. Buffers (planes) are allocated by the application itself, and 26 No buffers (planes) are allocated beforehand, consequently they are not 27 indexed and cannot be queried like mapped buffers with the 51 :ref:`VIDIOC_QBUF <VIDIOC_QBUF>` ioctl. Although buffers are commonly 60 Filled or displayed buffers are dequeued with the 66 Applications must take care not to free buffers without dequeuing. 67 Firstly, the buffers remain locked for longer, wasting physical memory. 73 buffers, to start capturing and enter the read loop. Here the 76 and enqueue buffers, when enough buffers are stacked up output is 78 buffers it must wait until an empty buffer can be dequeued and reused. [all …]
|
| H A D | capture.c.rst | 51 struct buffer *buffers; 91 if (-1 == read(fd, buffers[0].start, buffers[0].length)) { 106 process_image(buffers[0].start, buffers[0].length); 132 process_image(buffers[buf.index].start, buf.bytesused); 160 if (buf.m.userptr == (unsigned long)buffers[i].start 161 && buf.length == buffers[i].length) 268 buf.m.userptr = (unsigned long)buffers[i].start; 269 buf.length = buffers[i].length; 287 free(buffers[0].start); 292 if (-1 == munmap(buffers[i].start, buffers[i].length)) [all …]
|
| H A D | dev-encoder.rst | 157 desired size of ``CAPTURE`` buffers; the encoder may adjust it to 169 adjusted size of ``CAPTURE`` buffers. 307 coded video. It does *not* set the rate at which buffers arrive on the 365 buffers to be aligned to 1920x1088 for codecs with 16x16 macroblock 375 7. Allocate buffers for both ``OUTPUT`` and ``CAPTURE`` via 381 requested number of buffers to allocate; greater than zero. 393 actual number of buffers allocated. 397 The actual number of allocated buffers may differ from the ``count`` 403 To allocate more than the minimum number of OUTPUT buffers (for pipeline 405 control to get the minimum number of buffers required, and pass the [all …]
|
| H A D | vidioc-reqbufs.rst | 36 Memory mapped buffers are located in device memory and must be allocated 38 space. User buffers are allocated by applications themselves, and this 40 to setup some internal structures. Similarly, DMABUF buffers are 45 To allocate device buffers applications initialize all fields of the 48 the desired number of buffers, ``memory`` must be set to the requested 51 allocate the requested number of buffers and it stores the actual number 54 number is also possible when the driver requires more buffers to 56 buffers, one displayed and one filled by the application. 62 buffers. Note that if any buffers are still mapped or exported via DMABUF, 66 If ``V4L2_BUF_CAP_SUPPORTS_ORPHANED_BUFS`` is set, then these buffers are [all …]
|
| H A D | dmabuf.rst | 10 The DMABUF framework provides a generic method for sharing buffers 19 exporting V4L2 buffers as DMABUF file descriptors. 25 importing DMA buffers through DMABUF file descriptors is supported is 29 This I/O method is dedicated to sharing DMA buffers between different 31 DRM). Buffers (planes) are allocated by a driver on behalf of an 32 application. Next, these buffers are exported to the application as file 63 buffers, every plane can be associated with a different DMABUF 64 descriptor. Although buffers are commonly cycled, applications can pass 121 Captured or displayed buffers are dequeued with the 129 buffers, to start capturing and enter the read loop. Here the [all …]
|
| H A D | dev-stateless-decoder.rst | 100 destination buffers parsed/decoded from the bytestream. 167 to obtain up-to-date information about the buffers size and layout. 169 6. Allocate source (bytestream) buffers via :c:func:`VIDIOC_REQBUFS` on 175 requested number of buffers to allocate; greater than zero. 186 actual number of buffers allocated. 189 minimum of required number of ``OUTPUT`` buffers for the given format and 191 to get the actual number of buffers allocated. 193 7. Allocate destination (raw format) buffers via :c:func:`VIDIOC_REQBUFS` on the 199 requested number of buffers to allocate; greater than zero. The client 200 is responsible for deducing the minimum number of buffers required [all …]
|
| H A D | vidioc-create-bufs.rst | 13 VIDIOC_CREATE_BUFS - Create buffers for Memory Mapped or User Pointer or DMA Buffer I/O 34 This ioctl is used to create buffers for :ref:`memory mapped <mmap>` 38 over buffers is required. This ioctl can be called multiple times to 39 create buffers of different sizes. 41 To allocate the device buffers applications must initialize the relevant 43 ``count`` field must be set to the number of requested buffers, the 47 The ``format`` field specifies the image format that the buffers must be 54 sizes (for multi-planar formats) will be used for the allocated buffers. 58 The buffers created by this ioctl will have as minimum size the size 68 will attempt to allocate up to the requested number of buffers and store [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/test-drivers/vivid/ |
| H A D | vivid-vid-common.c | 41 .buffers = 1, 50 .buffers = 1, 58 .buffers = 1, 66 .buffers = 1, 74 .buffers = 1, 82 .buffers = 1, 90 .buffers = 1, 98 .buffers = 1, 106 .buffers = 1, 114 .buffers = 1, [all …]
|
| /OK3568_Linux_fs/kernel/lib/xz/ |
| H A D | xz_dec_test.c | 42 * Input and output buffers. The input buffer is used as a temporary safe 49 * Structure to pass the input and output buffers to the XZ decoder. 52 static struct xz_buf buffers = { variable 75 buffers.in_pos = 0; in xz_dec_test_open() 76 buffers.in_size = 0; in xz_dec_test_open() 77 buffers.out_pos = 0; in xz_dec_test_open() 120 while ((remaining > 0 || buffers.out_pos == buffers.out_size) in xz_dec_test_write() 122 if (buffers.in_pos == buffers.in_size) { in xz_dec_test_write() 123 buffers.in_pos = 0; in xz_dec_test_write() 124 buffers.in_size = min(remaining, sizeof(buffer_in)); in xz_dec_test_write() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/pci/ivtv/ |
| H A D | ivtv-queue.c | 35 q->buffers = 0; in ivtv_queue_init() 53 q->buffers++; in ivtv_enqueue() 68 q->buffers--; in ivtv_dequeue() 82 from->buffers--; in ivtv_queue_move_buf() 88 to->buffers++; in ivtv_queue_move_buf() 93 /* Move 'needed_bytes' worth of buffers from queue 'from' into queue 'to'. 94 If 'needed_bytes' == 0, then move all buffers from 'from' into 'to'. 95 If 'steal' != NULL, then buffers may also taken from that queue if 99 also cleared if buffers need to be taken from the 'steal' queue and 107 -ENOMEM is returned if the buffers could not be obtained, 0 if all [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/driver-api/media/ |
| H A D | v4l2-videobuf.rst | 21 and user space. It handles the allocation and management of buffers for 34 Not all video devices use the same kind of buffers. In fact, there are (at 37 - Buffers which are scattered in both the physical and (kernel) virtual 38 address spaces. (Almost) all user-space buffers are like this, but it 39 makes great sense to allocate kernel-space buffers this way as well when 44 - Buffers which are physically scattered, but which are virtually 45 contiguous; buffers allocated with vmalloc(), in other words. These 46 buffers are just as hard to use for DMA operations, but they can be 48 buffers are convenient. 50 - Buffers which are physically contiguous. Allocation of this kind of [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/filesystems/ |
| H A D | relay.rst | 12 as a set of per-cpu kernel buffers ('channel buffers'), each 14 clients write into the channel buffers using efficient write 19 are associated with the channel buffers using the API described below. 21 The format of the data logged into the channel buffers is completely 36 sub-buffers. Messages are written to the first sub-buffer until it is 38 the next (if available). Messages are never split across sub-buffers. 60 read sub-buffers; thus in cases where read(2) is being used to drain 61 the channel buffers, special-purpose communication between kernel and 96 allowing both to convey the state of buffers (full, empty, amount of 98 consumes the read sub-buffers; thus in cases where read(2) is being [all …]
|
| /OK3568_Linux_fs/external/mpp/mpp/hal/vpu/vp8e/ |
| H A D | hal_vp8e_base.c | 130 Vp8eVpuBuf *buffers = (Vp8eVpuBuf *)ctx->buffers; in set_segmentation() local 144 RK_U32 *map = mpp_buffer_get_ptr(buffers->hw_segment_map_buf); in set_segmentation() 436 Vp8eVpuBuf *buffers = (Vp8eVpuBuf *)ctx->buffers; in set_new_frame() local 574 hw_cfg->size_tbl_base = mpp_buffer_get_fd(buffers->hw_size_table_buf); in set_new_frame() 591 memset(mpp_buffer_get_ptr(buffers->hw_prob_count_buf), in set_new_frame() 1208 Vp8eVpuBuf *buffers = (Vp8eVpuBuf *)ctx->buffers; in alloc_buffer() local 1213 ret = mpp_buffer_group_get_internal(&buffers->hw_buf_grp, in alloc_buffer() 1221 ret = mpp_buffer_get(buffers->hw_buf_grp, &buffers->hw_luma_buf, in alloc_buffer() 1231 ret = mpp_buffer_get(buffers->hw_buf_grp, &buffers->hw_cbcr_buf[i], in alloc_buffer() 1239 hw_cfg->internal_img_lum_base_w = mpp_buffer_get_fd(buffers->hw_luma_buf); in alloc_buffer() [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/dvb/ |
| H A D | dmx-reqbufs.rst | 38 Memory mapped buffers are located in device memory and must be allocated 40 space. User buffers are allocated by applications themselves, and this 42 to setup some internal structures. Similarly, DMABUF buffers are 47 To allocate device buffers applications initialize all fields of the 49 to the desired number of buffers, and ``size`` to the size of each 53 attempt to allocate the requested number of buffers and it stores the actual 55 number is also possible when the driver requires more buffers to 63 buffers, however this cannot succeed when any buffers are still mapped. 64 A ``count`` value of zero frees all buffers, after aborting or finishing
|
| /OK3568_Linux_fs/external/xserver/glx/ |
| H A D | glxdri2.c | 93 __DRIbuffer buffers[MAX_DRAWABLE_BUFFERS]; member 645 DRI2BufferPtr *buffers; in dri2GetBuffers() local 650 buffers = DRI2GetBuffers(private->base.pDraw, in dri2GetBuffers() 657 * invalidated the DRI2 buffers, so let's get them again in dri2GetBuffers() 659 buffers = DRI2GetBuffers(private->base.pDraw, in dri2GetBuffers() 679 && (buffers[i]->attachment == DRI2BufferFrontLeft)) { in dri2GetBuffers() 683 private->buffers[j].attachment = buffers[i]->attachment; in dri2GetBuffers() 684 private->buffers[j].name = buffers[i]->name; in dri2GetBuffers() 685 private->buffers[j].pitch = buffers[i]->pitch; in dri2GetBuffers() 686 private->buffers[j].cpp = buffers[i]->cpp; in dri2GetBuffers() [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/userspace-api/media/mediactl/ |
| H A D | request-api.rst | 21 on the media pipeline, reconfigure it for the next frame, queue the buffers to 28 specific buffers. This allows user-space to schedule several tasks ("requests") 59 instead of being immediately applied, and buffers queued to a request do not 65 Once the configuration and buffers of the request are specified, it can be 72 output buffers, not for capture buffers. Attempting to add a capture buffer 77 buffers are processed. Media controller drivers do a best effort implementation 82 It is not allowed to mix queuing requests with directly queuing buffers: 99 once all its associated buffers are available for dequeuing and all the 102 dequeue its buffers: buffers that are available halfway through a request can 135 to queue many such buffers in advance. It can also take advantage of requests' [all …]
|
| /OK3568_Linux_fs/kernel/fs/ |
| H A D | buffer.c | 82 * Returns if the page has dirty or writeback buffers. If all the buffers 180 * But it's the page lock which protects the buffers. To get around this, 222 /* we might be here because some of the buffers on this page are in __find_get_block_slow() 225 * elsewhere, don't buffer_error if we had some unmapped buffers in __find_get_block_slow() 285 * If none of the buffers had errors and they are all in end_buffer_async_read() 385 * If a page's buffers are under async readin (end_buffer_async_read 387 * control could lock one of the buffers after it has completed 388 * but while some of the other buffers have not completed. This 393 * The page comes unlocked when it has no locked buffer_async buffers 397 * the buffers. [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/pci/cx18/ |
| H A D | cx18-queue.c | 242 /* Reset MDL id's and move all buffers back to the stream's buf_pool */ in cx18_unload_queues() 272 * Attach buffers to MDLs, give the MDLs ids, and add MDLs to q_free in cx18_load_queues() 274 * Excess buffers are left in buf_pool and/or on an MDL in q_idle in cx18_load_queues() 301 * case of a non-integral number of buffers to meet in cx18_load_queues() 313 /* Not enough buffers for this MDL; we won't use it */ in cx18_load_queues() 337 if (s->buffers == 0) in cx18_stream_alloc() 340 CX18_DEBUG_INFO("Allocate %s stream: %d x %d buffers (%d.%02d kB total)\n", in cx18_stream_alloc() 341 s->name, s->buffers, s->buf_size, in cx18_stream_alloc() 342 s->buffers * s->buf_size / 1024, in cx18_stream_alloc() 343 (s->buffers * s->buf_size * 100 / 1024) % 100); in cx18_stream_alloc() [all …]
|
| /OK3568_Linux_fs/kernel/drivers/iio/buffer/ |
| H A D | industrialio-hw-consumer.c | 19 * @buffers: hardware buffers list head. 23 struct list_head buffers; member 58 list_for_each_entry(buf, &hwc->buffers, head) { in iio_hw_consumer_get_buffer() 72 list_add_tail(&buf->head, &hwc->buffers); in iio_hw_consumer_get_buffer() 94 INIT_LIST_HEAD(&hwc->buffers); in iio_hw_consumer_alloc() 116 list_for_each_entry(buf, &hwc->buffers, head) in iio_hw_consumer_alloc() 134 list_for_each_entry_safe(buf, n, &hwc->buffers, head) in iio_hw_consumer_free() 186 list_for_each_entry(buf, &hwc->buffers, head) { in iio_hw_consumer_enable() 195 list_for_each_entry_continue_reverse(buf, &hwc->buffers, head) in iio_hw_consumer_enable() 209 list_for_each_entry(buf, &hwc->buffers, head) in iio_hw_consumer_disable()
|
| /OK3568_Linux_fs/kernel/drivers/android/ |
| H A D | binder_alloc.h | 23 * @entry: entry alloc->buffers 40 * Bookkeeping structure for binder transaction buffers 83 * @buffers: list of all buffers for this proc 84 * @free_buffers: rb tree of buffers available for allocation 86 * @allocated_buffers: rb tree of allocated buffers sorted by address 87 * @free_async_space: VA space available for async buffers. This is 97 * buffers. It is normally initialized during binder_init() and binder_mmap() 98 * calls. The address space is used for both user-visible buffers and for 99 * struct binder_buffer objects used to track the user buffers 106 struct list_head buffers; member
|
| /OK3568_Linux_fs/kernel/include/media/ |
| H A D | videobuf2-core.h | 26 * enum vb2_memory - type of memory model used to make the buffers visible 31 * @VB2_MEMORY_MMAP: The buffers are allocated by the Kernel and it is 33 * also used when the user is using the buffers via 35 * @VB2_MEMORY_USERPTR: The buffers was allocated in userspace and it is 37 * @VB2_MEMORY_DMABUF: The buffers are passed to userspace via DMA buffer. 270 * queued_entry: entry on the queued buffers list, which holds 271 * all buffers queued from userspace 272 * done_entry: entry on the list that stores all buffers ready 328 * twice: if the original number of requested buffers 331 * buffers to verify if that is OK. [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/s5p-mfc/ |
| H A D | s5p_mfc_common.h | 553 * @vq_src: vb2 queue for source buffers 554 * @vq_dst: vb2 queue for destination buffers 555 * @src_queue: driver internal queue for source buffers 556 * @dst_queue: driver internal queue for destination buffers 557 * @src_queue_cnt: number of buffers queued on the source internal queue 558 * @dst_queue_cnt: number of buffers queued on the dest internal queue 571 * @dpb_flush_flag: flag used to indicate that a DPB buffers are being 575 * @bank1: handle to memory allocated for temporary buffers from 577 * @bank2: handle to memory allocated for temporary buffers from 579 * @capture_state: state of the capture buffers queue [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/common/videobuf2/ |
| H A D | videobuf2-core.c | 386 * video buffer memory for all buffers/planes on the queue and initializes the 389 * Returns the number of buffers successfully allocated. 420 * buffers when appropriate. However, we can avoid explicit in __vb2_queue_alloc() 421 * ->prepare() and ->finish() cache sync for DMABUF buffers, in __vb2_queue_alloc() 464 dprintk(q, 3, "allocated %d buffers, %d plane(s) each\n", in __vb2_queue_alloc() 473 static void __vb2_free_mem(struct vb2_queue *q, unsigned int buffers) in __vb2_free_mem() argument 478 for (buffer = q->num_buffers - buffers; buffer < q->num_buffers; in __vb2_free_mem() 484 /* Free MMAP buffers or release USERPTR buffers */ in __vb2_free_mem() 495 * __vb2_queue_free() - free buffers at the end of the queue - video memory and 496 * related information, if no buffers are left return the queue to an [all …]
|