mbox series

[PATCHv2,0/6] vb2/v4l2-ctrls: check if requests are required

Message ID 20190211101357.48754-1-hverkuil-cisco@xs4all.nl (mailing list archive)
Headers show
Series vb2/v4l2-ctrls: check if requests are required | expand

Message

Hans Verkuil Feb. 11, 2019, 10:13 a.m. UTC
Currently the vb2 supports_requests bitfield only indicates if the
Request API is supported by the vb2_queue. But for stateless
codecs the use of the Request API is actually a requirement.

So add a requires_requests bitfield and corresponding capability
to indicate that userspace has to use requests. And of course
reject direct VIDIOC_QBUF calls (i.e. V4L2_BUF_FLAG_REQUEST_FD
isn't set) if requires_requests is set.

Finally set this bitfield in the cedrus driver.

Do the same for controls: it makes no sense to set state controls
for stateless codecs directly without going through a request.
Add a new flag to indicate this and check it.

Regards,

	Hans

Hans Verkuil (6):
  vb2: add requires_requests bit for stateless codecs
  videodev2.h: add V4L2_BUF_CAP_REQUIRES_REQUESTS
  cedrus: set requires_requests
  videodev2.h: add V4L2_CTRL_FLAG_REQUIRES_REQUESTS
  v4l2-ctrls: check for REQUIRES_REQUESTS flag
  v4l2-ctrls: mark MPEG2 stateless controls as REQUIRES_REQUESTS

 .../media/uapi/v4l/vidioc-queryctrl.rst       |  4 ++++
 .../media/uapi/v4l/vidioc-reqbufs.rst         |  4 ++++
 .../media/videodev2.h.rst.exceptions          |  1 +
 .../media/common/videobuf2/videobuf2-core.c   |  5 +++-
 .../media/common/videobuf2/videobuf2-v4l2.c   |  6 +++++
 drivers/media/v4l2-core/v4l2-ctrls.c          |  5 ++++
 .../staging/media/sunxi/cedrus/cedrus_video.c |  1 +
 include/media/videobuf2-core.h                |  3 +++
 include/uapi/linux/videodev2.h                | 24 ++++++++++---------
 9 files changed, 41 insertions(+), 12 deletions(-)