参照元

説明

引数

返り値

参考

実装

/**
 * vb2_queue_init() - initialize a videobuf2 queue
 * @q:          videobuf2 queue; this structure should be allocated in driver
 *
 * The vb2_queue structure should be allocated by the driver. The driver is
 * responsible of clearing it's content and setting initial values for some
 * required entries before calling this function.
 * q->ops, q->mem_ops, q->type and q->io_modes are mandatory. Please refer
 * to the struct vb2_queue description in include/media/videobuf2-core.h
 * for more information.
 */
int vb2_queue_init(struct vb2_queue *q)
{
        /*
         * Sanity check
         */
        if (WARN_ON(!q)                   ||
            WARN_ON(q->timestamp_flags &
                    ~(V4L2_BUF_FLAG_TIMESTAMP_MASK |
                      V4L2_BUF_FLAG_TSTAMP_SRC_MASK)))
                return -EINVAL;
        /* Warn that the driver should choose an appropriate timestamp type */
        WARN_ON((q->timestamp_flags & V4L2_BUF_FLAG_TIMESTAMP_MASK) ==
                V4L2_BUF_FLAG_TIMESTAMP_UNKNOWN);

        /* Warn that vb2_memory should match with v4l2_memory */
        if (WARN_ON(VB2_MEMORY_MMAP != (int)V4L2_MEMORY_MMAP)
                || WARN_ON(VB2_MEMORY_USERPTR != (int)V4L2_MEMORY_USERPTR)
                || WARN_ON(VB2_MEMORY_DMABUF != (int)V4L2_MEMORY_DMABUF))
                return -EINVAL;

        if (q->buf_struct_size == 0)
                q->buf_struct_size = sizeof(struct vb2_v4l2_buffer);

        q->buf_ops = &v4l2_buf_ops;
        q->is_multiplanar = V4L2_TYPE_IS_MULTIPLANAR(q->type);
        q->is_output = V4L2_TYPE_IS_OUTPUT(q->type);
        return vb2_core_queue_init(q);
}
EXPORT_SYMBOL_GPL(vb2_queue_init);

コメント


トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-02-08 (月) 17:18:06