Module protocol

Source
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.rs

The main points of the manual modifications are as follows:

  • Removed hdr from 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_PROFILE0
VIRTIO_VIDEO_PROFILE_VP8_PROFILE1
VIRTIO_VIDEO_PROFILE_VP8_PROFILE2
VIRTIO_VIDEO_PROFILE_VP8_PROFILE3
VIRTIO_VIDEO_PROFILE_VP9_MAX
VIRTIO_VIDEO_PROFILE_VP9_MIN
VIRTIO_VIDEO_PROFILE_VP9_PROFILE0
VIRTIO_VIDEO_PROFILE_VP9_PROFILE1
VIRTIO_VIDEO_PROFILE_VP9_PROFILE2
VIRTIO_VIDEO_PROFILE_VP9_PROFILE3
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

Type Aliases§

virtio_video_bitrate_mode
virtio_video_buffer_flag
virtio_video_cmd_type
virtio_video_control_type
virtio_video_event_type
virtio_video_format
virtio_video_level
virtio_video_mem_type
virtio_video_planes_layout_flag
virtio_video_profile
virtio_video_queue_type