0
  +   ˆl–ß=¿J
a,j€fãn\mÕ1hßÁ„m×^{_†I|¥�+ÄÅ ?÷     /*
 * This file generated automatically from xv.xml by c_client.py.
 * Edit at your peril.
 */

/**
 * @defgroup XCB_Xv_API XCB Xv API
 * @brief Xv XCB Protocol Implementation.
 * @{
 **/

#ifndef __XV_H
#define __XV_H

#include "xcb.h"
#include "xproto.h"
#include "shm.h"

#ifdef __cplusplus
extern "C" {
#endif

#define XCB_XV_MAJOR_VERSION 2
#define XCB_XV_MINOR_VERSION 2

extern xcb_extension_t xcb_xv_id;

typedef uint32_t xcb_xv_port_t;

/**
 * @brief xcb_xv_port_iterator_t
 **/
typedef struct xcb_xv_port_iterator_t {
    xcb_xv_port_t *data;
    int            rem;
    int            index;
} xcb_xv_port_iterator_t;

typedef uint32_t xcb_xv_encoding_t;

/**
 * @brief xcb_xv_encoding_iterator_t
 **/
typedef struct xcb_xv_encoding_iterator_t {
    xcb_xv_encoding_t *data;
    int                rem;
    int                index;
} xcb_xv_encoding_iterator_t;

typedef enum xcb_xv_type_t {
    XCB_XV_TYPE_INPUT_MASK = 1,
    XCB_XV_TYPE_OUTPUT_MASK = 2,
    XCB_XV_TYPE_VIDEO_MASK = 4,
    XCB_XV_TYPE_STILL_MASK = 8,
    XCB_XV_TYPE_IMAGE_MASK = 16
} xcb_xv_type_t;

typedef enum xcb_xv_image_format_info_type_t {
    XCB_XV_IMAGE_FORMAT_INFO_TYPE_RGB = 0,
    XCB_XV_IMAGE_FORMAT_INFO_TYPE_YUV = 1
} xcb_xv_image_format_info_type_t;

typedef enum xcb_xv_image_format_info_format_t {
    XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PACKED = 0,
    XCB_XV_IMAGE_FORMAT_INFO_FORMAT_PLANAR = 1
} xcb_xv_image_format_info_format_t;

typedef enum xcb_xv_attribute_flag_t {
    XCB_XV_ATTRIBUTE_FLAG_GETTABLE = 1,
    XCB_XV_ATTRIBUTE_FLAG_SETTABLE = 2
} xcb_xv_attribute_flag_t;

typedef enum xcb_xv_video_notify_reason_t {
    XCB_XV_VIDEO_NOTIFY_REASON_STARTED = 0,
    XCB_XV_VIDEO_NOTIFY_REASON_STOPPED = 1,
    XCB_XV_VIDEO_NOTIFY_REASON_BUSY = 2,
    XCB_XV_VIDEO_NOTIFY_REASON_PREEMPTED = 3,
    XCB_XV_VIDEO_NOTIFY_REASON_HARD_ERROR = 4
} xcb_xv_video_notify_reason_t;

typedef enum xcb_xv_scanline_order_t {
    XCB_XV_SCANLINE_ORDER_TOP_TO_BOTTOM = 0,
    XCB_XV_SCANLINE_ORDER_BOTTOM_TO_TOP = 1
} xcb_xv_scanline_order_t;

typedef enum xcb_xv_grab_port_status_t {
    XCB_XV_GRAB_PORT_STATUS_SUCCESS = 0,
    XCB_XV_GRAB_PORT_STATUS_BAD_EXTENSION = 1,
    XCB_XV_GRAB_PORT_STATUS_ALREADY_GRABBED = 2,
    XCB_XV_GRAB_PORT_STATUS_INVALID_TIME = 3,
    XCB_XV_GRAB_PORT_STATUS_BAD_REPLY = 4,
    XCB_XV_GRAB_PORT_STATUS_BAD_ALLOC = 5
} xcb_xv_grab_port_status_t;

/**
 * @brief xcb_xv_rational_t
 **/
typedef struct xcb_xv_rational_t {
    int32_t numerator;
    int32_t denominator;
} xcb_xv_rational_t;

/**
 * @brief xcb_xv_rational_iterator_t
 **/
typedef struct xcb_xv_rational_iterator_t {
    xcb_xv_rational_t *data;
    int                rem;
    int                index;
} xcb_xv_rational_iterator_t;

/**
 * @brief xcb_xv_format_t
 **/
typedef struct xcb_xv_format_t {
    xcb_visualid_t visual;
    uint8_t        depth;
    uint8_t        pad0[3];
} xcb_xv_format_t;

/**
 * @brief xcb_xv_format_iterator_t
 **/
typedef struct xcb_xv_format_iterator_t {
    xcb_xv_format_t *data;
    int              rem;
    int              index;
} xcb_xv_format_iterator_t;

/**
 * @brief xcb_xv_adaptor_info_t
 **/
typedef struct xcb_xv_adaptor_info_t {
    xcb_xv_port_t base_id;
    uint16_t      name_size;
    uint16_t      num_ports;
    uint16_t      num_formats;
    uint8_t       type;
    uint8_t       pad0;
} xcb_xv_adaptor_info_t;

/**
 * @brief xcb_xv_adaptor_info_iterator_t
 **/
typedef struct xcb_xv_adaptor_info_iterator_t {
    xcb_xv_adaptor_info_t *data;
    int                    rem;
    int                    index;
} xcb_xv_adaptor_info_iterator_t;

/**
 * @brief xcb_xv_encoding_info_t
 **/
typedef struct xcb_xv_encoding_info_t {
    xcb_xv_encoding_t encoding;
    uint16_t          name_size;
    uint16_t          width;
    uint16_t          height;
    uint8_t           pad0[2];
    xcb_xv_rational_t rate;
} xcb_xv_encoding_info_t;

/**
 * @brief xcb_xv_encoding_info_iterator_t
 **/
typedef struct xcb_xv_encoding_info_iterator_t {
    xcb_xv_encoding_info_t *data;
    int           