*参照元 [#uccc49df]
#backlinks

*説明 [#wee86457]
-パス: [[linux-4.4.1/drivers/media/usb/uvc/uvc_queue.c]]

-FIXME: これは何?
--説明


**引数 [#j27bad09]
-struct vb2_buffer *vb
--
--[[linux-4.4.1/vb2_buffer]]


**返り値 [#u2422f88]
-int
--


**参考 [#w5b7f20a]


*実装 [#g5c1235a]
 static int uvc_buffer_prepare(struct vb2_buffer *vb)
 {
         struct vb2_v4l2_buffer *vbuf = to_vb2_v4l2_buffer(vb);
         struct uvc_video_queue *queue = vb2_get_drv_priv(vb->vb2_queue);
         struct uvc_buffer *buf = container_of(vbuf, struct uvc_buffer, buf);
 
-
--[[linux-4.4.1/vb2_v4l2_buffer]]
--[[linux-4.4.1/to_vb2_v4l2_buffer()]]
--[[linux-4.4.1/uvc_video_queue]]
--[[linux-4.4.1/vb2_get_drv_priv()]]
--[[linux-4.4.1/uvc_buffer]]
--[[linux-4.4.1/container_of()]]

         if (vb->type == V4L2_BUF_TYPE_VIDEO_OUTPUT &&
             vb2_get_plane_payload(vb, 0) > vb2_plane_size(vb, 0)) {
                 uvc_trace(UVC_TRACE_CAPTURE, "[E] Bytes used out of bounds.\n");
                 return -EINVAL;
         }
 
-
--[[linux-4.4.1/vb2_get_plane_payload()]]
--[[linux-4.4.1/vb2_plane_size()]]
--[[linux-4.4.1/uvc_trace()]]

         if (unlikely(queue->flags & UVC_QUEUE_DISCONNECTED))
                 return -ENODEV;
 
-
--[[linux-4.4.1/unlikely()]]

         buf->state = UVC_BUF_STATE_QUEUED;
         buf->error = 0;
         buf->mem = vb2_plane_vaddr(vb, 0);
         buf->length = vb2_plane_size(vb, 0);
         if (vb->type == V4L2_BUF_TYPE_VIDEO_CAPTURE)
                 buf->bytesused = 0;
         else
                 buf->bytesused = vb2_get_plane_payload(vb, 0);
 
-
--[[linux-4.4.1/vb2_plane_vaddr()]]
--[[linux-4.4.1/vb2_plane_size()]]
--[[linux-4.4.1/vb2_get_plane_payload()]]

         return 0;
 }

*コメント [#v8577933]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS