Expand description
This file was generated by the following commands and modified manually.
$ bindgen virtio_video.h \
--allowlist-type "virtio_video.*" \
--allowlist-var "VIRTIO_VIDEO_.*" \
--with-derive-default \
--no-layout-tests \
--no-prepend-enum-name > protocol.rs
$ sed -i "s/__u/u/g" protocol.rs
$ sed -i "s/__le/Le/g" protocol.rsThe main points of the manual modifications are as follows:
- Removed
hdrfrom each command struct so that we can read the header and a command body separately. (cf. related discussion) - Derive implementations of zerocopy traits for each struct as needed.
- Added GET_PARAMS_EXT and SET_PARAMS_EXT to allow querying and changing the resource type dynamically.
- Moved some definitions such as virtio_video_config to device_constants to make them visible to vhost-user modules, and also pub-use them.
Structs§
- virtio_
video_ cmd_ hdr - virtio_
video_ control_ val_ bitrate - virtio_
video_ control_ val_ bitrate_ mode - virtio_
video_ control_ val_ bitrate_ peak - virtio_
video_ control_ val_ level - virtio_
video_ control_ val_ prepend_ spspps_ to_ idr - virtio_
video_ control_ val_ profile - virtio_
video_ crop - virtio_
video_ event - virtio_
video_ format_ desc - virtio_
video_ format_ frame - virtio_
video_ format_ range - virtio_
video_ get_ control - virtio_
video_ get_ control_ resp - virtio_
video_ get_ params - virtio_
video_ get_ params_ ext - virtio_
video_ get_ params_ ext_ resp - virtio_
video_ get_ params_ resp - virtio_
video_ mem_ entry - virtio_
video_ object_ entry - virtio_
video_ params - virtio_
video_ params_ ext - Extension of the {GET,SET}_PARAMS data to also include the resource type. Not including it was an oversight and the {GET,SET}_PARAMS_EXT commands use this structure to fix it, while the older {GET,SET}_PARAMS commands are kept for backward compatibility.
- virtio_
video_ plane_ format - virtio_
video_ query_ capability - virtio_
video_ query_ capability_ resp - virtio_
video_ query_ control - virtio_
video_ query_ control_ level - virtio_
video_ query_ control_ profile - virtio_
video_ query_ control_ resp - virtio_
video_ query_ control_ resp_ level - virtio_
video_ query_ control_ resp_ profile - virtio_
video_ queue_ clear - virtio_
video_ resource_ create - virtio_
video_ resource_ destroy_ all - virtio_
video_ resource_ queue - virtio_
video_ resource_ queue_ resp - virtio_
video_ set_ control - virtio_
video_ set_ control_ resp - virtio_
video_ set_ params - virtio_
video_ set_ params_ ext - virtio_
video_ stream_ create - virtio_
video_ stream_ destroy - virtio_
video_ stream_ drain
Constants§
- VIRTIO_
VIDEO_ BITRATE_ MODE_ CBR - VIRTIO_
VIDEO_ BITRATE_ MODE_ VBR - VIRTIO_
VIDEO_ BUFFER_ FLAG_ BFRAME - VIRTIO_
VIDEO_ BUFFER_ FLAG_ EOS - VIRTIO_
VIDEO_ BUFFER_ FLAG_ ERR - VIRTIO_
VIDEO_ BUFFER_ FLAG_ IFRAME - VIRTIO_
VIDEO_ BUFFER_ FLAG_ PFRAME - VIRTIO_
VIDEO_ CMD_ GET_ CONTROL - VIRTIO_
VIDEO_ CMD_ GET_ PARAMS - VIRTIO_
VIDEO_ CMD_ GET_ PARAMS_ EXT - VIRTIO_
VIDEO_ CMD_ QUERY_ CAPABILITY - VIRTIO_
VIDEO_ CMD_ QUERY_ CONTROL - VIRTIO_
VIDEO_ CMD_ QUEUE_ CLEAR - VIRTIO_
VIDEO_ CMD_ RESOURCE_ CREATE - VIRTIO_
VIDEO_ CMD_ RESOURCE_ DESTROY_ ALL - VIRTIO_
VIDEO_ CMD_ RESOURCE_ QUEUE - VIRTIO_
VIDEO_ CMD_ SET_ CONTROL - VIRTIO_
VIDEO_ CMD_ SET_ PARAMS - VIRTIO_
VIDEO_ CMD_ SET_ PARAMS_ EXT - VIRTIO_
VIDEO_ CMD_ STREAM_ CREATE - VIRTIO_
VIDEO_ CMD_ STREAM_ DESTROY - VIRTIO_
VIDEO_ CMD_ STREAM_ DRAIN - VIRTIO_
VIDEO_ CONTROL_ BITRATE - VIRTIO_
VIDEO_ CONTROL_ BITRATE_ MODE - VIRTIO_
VIDEO_ CONTROL_ BITRATE_ PEAK - VIRTIO_
VIDEO_ CONTROL_ FORCE_ KEYFRAME - VIRTIO_
VIDEO_ CONTROL_ LEVEL - VIRTIO_
VIDEO_ CONTROL_ PREPEND_ SPSPPS_ TO_ IDR - VIRTIO_
VIDEO_ CONTROL_ PROFILE - VIRTIO_
VIDEO_ EVENT_ DECODER_ RESOLUTION_ CHANGED - VIRTIO_
VIDEO_ EVENT_ ERROR - VIRTIO_
VIDEO_ FORMAT_ ARGB8888 - VIRTIO_
VIDEO_ FORMAT_ BGRA8888 - VIRTIO_
VIDEO_ FORMAT_ CODED_ MAX - VIRTIO_
VIDEO_ FORMAT_ CODED_ MIN - VIRTIO_
VIDEO_ FORMAT_ H264 - VIRTIO_
VIDEO_ FORMAT_ HEVC - VIRTIO_
VIDEO_ FORMAT_ MPEG2 - VIRTIO_
VIDEO_ FORMAT_ MPEG4 - VIRTIO_
VIDEO_ FORMAT_ NV12 - VIRTIO_
VIDEO_ FORMAT_ RAW_ MAX - VIRTIO_
VIDEO_ FORMAT_ RAW_ MIN - VIRTIO_
VIDEO_ FORMAT_ VP8 - VIRTIO_
VIDEO_ FORMAT_ VP9 - VIRTIO_
VIDEO_ FORMAT_ YUV420 - VIRTIO_
VIDEO_ FORMAT_ YVU420 - VIRTIO_
VIDEO_ LEVEL_ H264_ 1_ 0 - VIRTIO_
VIDEO_ LEVEL_ H264_ 1_ 1 - VIRTIO_
VIDEO_ LEVEL_ H264_ 1_ 2 - VIRTIO_
VIDEO_ LEVEL_ H264_ 1_ 3 - VIRTIO_
VIDEO_ LEVEL_ H264_ 2_ 0 - VIRTIO_
VIDEO_ LEVEL_ H264_ 2_ 1 - VIRTIO_
VIDEO_ LEVEL_ H264_ 2_ 2 - VIRTIO_
VIDEO_ LEVEL_ H264_ 3_ 0 - VIRTIO_
VIDEO_ LEVEL_ H264_ 3_ 1 - VIRTIO_
VIDEO_ LEVEL_ H264_ 3_ 2 - VIRTIO_
VIDEO_ LEVEL_ H264_ 4_ 0 - VIRTIO_
VIDEO_ LEVEL_ H264_ 4_ 1 - VIRTIO_
VIDEO_ LEVEL_ H264_ 4_ 2 - VIRTIO_
VIDEO_ LEVEL_ H264_ 5_ 0 - VIRTIO_
VIDEO_ LEVEL_ H264_ 5_ 1 - VIRTIO_
VIDEO_ LEVEL_ H264_ MAX - VIRTIO_
VIDEO_ LEVEL_ H264_ MIN - VIRTIO_
VIDEO_ MAX_ PLANES - VIRTIO_
VIDEO_ MEM_ TYPE_ GUEST_ PAGES - VIRTIO_
VIDEO_ MEM_ TYPE_ VIRTIO_ OBJECT - VIRTIO_
VIDEO_ PLANES_ LAYOUT_ PER_ PLANE - VIRTIO_
VIDEO_ PLANES_ LAYOUT_ SINGLE_ BUFFER - VIRTIO_
VIDEO_ PROFILE_ H264_ BASELINE - VIRTIO_
VIDEO_ PROFILE_ H264_ EXTENDED - VIRTIO_
VIDEO_ PROFILE_ H264_ HIGH - VIRTIO_
VIDEO_ PROFILE_ H264_ HIGH10PROFILE - VIRTIO_
VIDEO_ PROFILE_ H264_ HIGH422PROFILE - VIRTIO_
VIDEO_ PROFILE_ H264_ HIGH444PREDICTIVEPROFILE - VIRTIO_
VIDEO_ PROFILE_ H264_ MAIN - VIRTIO_
VIDEO_ PROFILE_ H264_ MAX - VIRTIO_
VIDEO_ PROFILE_ H264_ MIN - VIRTIO_
VIDEO_ PROFILE_ H264_ MULTIVIEWHIGH - VIRTIO_
VIDEO_ PROFILE_ H264_ SCALABLEBASELINE - VIRTIO_
VIDEO_ PROFILE_ H264_ SCALABLEHIGH - VIRTIO_
VIDEO_ PROFILE_ H264_ STEREOHIGH - VIRTIO_
VIDEO_ PROFILE_ HEVC_ MAIN - VIRTIO_
VIDEO_ PROFILE_ HEVC_ MAIN10 - VIRTIO_
VIDEO_ PROFILE_ HEVC_ MAIN_ STILL_ PICTURE - VIRTIO_
VIDEO_ PROFILE_ HEVC_ MAX - VIRTIO_
VIDEO_ PROFILE_ HEVC_ MIN - VIRTIO_
VIDEO_ PROFILE_ VP8_ MAX - VIRTIO_
VIDEO_ PROFILE_ VP8_ MIN - VIRTIO_
VIDEO_ PROFILE_ VP8_ PROFIL E0 - VIRTIO_
VIDEO_ PROFILE_ VP8_ PROFIL E1 - VIRTIO_
VIDEO_ PROFILE_ VP8_ PROFIL E2 - VIRTIO_
VIDEO_ PROFILE_ VP8_ PROFIL E3 - VIRTIO_
VIDEO_ PROFILE_ VP9_ MAX - VIRTIO_
VIDEO_ PROFILE_ VP9_ MIN - VIRTIO_
VIDEO_ PROFILE_ VP9_ PROFIL E0 - VIRTIO_
VIDEO_ PROFILE_ VP9_ PROFIL E1 - VIRTIO_
VIDEO_ PROFILE_ VP9_ PROFIL E2 - VIRTIO_
VIDEO_ PROFILE_ VP9_ PROFIL E3 - VIRTIO_
VIDEO_ QUEUE_ TYPE_ INPUT - VIRTIO_
VIDEO_ QUEUE_ TYPE_ OUTPUT - VIRTIO_
VIDEO_ RESP_ ERR_ INVALID_ OPERATION - VIRTIO_
VIDEO_ RESP_ ERR_ INVALID_ PARAMETER - VIRTIO_
VIDEO_ RESP_ ERR_ INVALID_ RESOURCE_ ID - VIRTIO_
VIDEO_ RESP_ ERR_ INVALID_ STREAM_ ID - VIRTIO_
VIDEO_ RESP_ ERR_ OUT_ OF_ MEMORY - VIRTIO_
VIDEO_ RESP_ ERR_ UNSUPPORTED_ CONTROL - VIRTIO_
VIDEO_ RESP_ OK_ GET_ CONTROL - VIRTIO_
VIDEO_ RESP_ OK_ GET_ PARAMS - VIRTIO_
VIDEO_ RESP_ OK_ NODATA - VIRTIO_
VIDEO_ RESP_ OK_ QUERY_ CAPABILITY - VIRTIO_
VIDEO_ RESP_ OK_ QUERY_ CONTROL - VIRTIO_
VIDEO_ RESP_ OK_ RESOURCE_ QUEUE