{
  "header": "SDL_camera.h",
  "opaque_types": [
    {
      "name": "SDL_Camera"
    }
  ],
  "typedefs": [
    {
      "name": "SDL_CameraID",
      "underlying_type": "Uint32"
    }
  ],
  "function_pointers": [],
  "c_type_aliases": [],
  "enums": [
    {
      "name": "SDL_CameraPosition",
      "values": [
        {
          "name": "SDL_CAMERA_POSITION_UNKNOWN"
        },
        {
          "name": "SDL_CAMERA_POSITION_FRONT_FACING"
        },
        {
          "name": "SDL_CAMERA_POSITION_BACK_FACING"
        }
      ]
    }
  ],
  "structs": [
    {
      "name": "SDL_CameraSpec",
      "fields": [
        {
          "name": "format",
          "type": "SDL_PixelFormat",
          "comment": "Frame format"
        },
        {
          "name": "colorspace",
          "type": "SDL_Colorspace",
          "comment": "Frame colorspace"
        },
        {
          "name": "width",
          "type": "int",
          "comment": "Frame width"
        },
        {
          "name": "height",
          "type": "int",
          "comment": "Frame height"
        },
        {
          "name": "framerate_numerator",
          "type": "int",
          "comment": "Frame rate numerator ((num / denom) == FPS, (denom / num) == duration in seconds)"
        },
        {
          "name": "framerate_denominator",
          "type": "int",
          "comment": "Frame rate demoninator ((num / denom) == FPS, (denom / num) == duration in seconds)"
        }
      ]
    }
  ],
  "unions": [],
  "flags": [],
  "functions": [
    {
      "name": "SDL_GetNumCameraDrivers",
      "return_type": "int",
      "parameters": []
    },
    {
      "name": "SDL_GetCameraDriver",
      "return_type": "const char *",
      "parameters": [
        {
          "name": "index",
          "type": "int"
        }
      ]
    },
    {
      "name": "SDL_GetCurrentCameraDriver",
      "return_type": "const char *",
      "parameters": []
    },
    {
      "name": "SDL_GetCameras",
      "return_type": "SDL_CameraID *",
      "parameters": [
        {
          "name": "count",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GetCameraSupportedFormats",
      "return_type": "SDL_CameraSpec **",
      "parameters": [
        {
          "name": "devid",
          "type": "SDL_CameraID"
        },
        {
          "name": "count",
          "type": "int *"
        }
      ]
    },
    {
      "name": "SDL_GetCameraName",
      "return_type": "const char *",
      "parameters": [
        {
          "name": "instance_id",
          "type": "SDL_CameraID"
        }
      ]
    },
    {
      "name": "SDL_GetCameraPosition",
      "return_type": "SDL_CameraPosition",
      "parameters": [
        {
          "name": "instance_id",
          "type": "SDL_CameraID"
        }
      ]
    },
    {
      "name": "SDL_OpenCamera",
      "return_type": "SDL_Camera *",
      "parameters": [
        {
          "name": "instance_id",
          "type": "SDL_CameraID"
        },
        {
          "name": "spec",
          "type": "const SDL_CameraSpec *"
        }
      ]
    },
    {
      "name": "SDL_GetCameraPermissionState",
      "return_type": "int",
      "parameters": [
        {
          "name": "camera",
          "type": "SDL_Camera *"
        }
      ]
    },
    {
      "name": "SDL_GetCameraID",
      "return_type": "SDL_CameraID",
      "parameters": [
        {
          "name": "camera",
          "type": "SDL_Camera *"
        }
      ]
    },
    {
      "name": "SDL_GetCameraProperties",
      "return_type": "SDL_PropertiesID",
      "parameters": [
        {
          "name": "camera",
          "type": "SDL_Camera *"
        }
      ]
    },
    {
      "name": "SDL_GetCameraFormat",
      "return_type": "bool",
      "parameters": [
        {
          "name": "camera",
          "type": "SDL_Camera *"
        },
        {
          "name": "spec",
          "type": "SDL_CameraSpec *"
        }
      ]
    },
    {
      "name": "SDL_AcquireCameraFrame",
      "return_type": "SDL_Surface *",
      "parameters": [
        {
          "name": "camera",
          "type": "SDL_Camera *"
        },
        {
          "name": "timestampNS",
          "type": "Uint64 *"
        }
      ]
    },
    {
      "name": "SDL_ReleaseCameraFrame",
      "return_type": "void",
      "parameters": [
        {
          "name": "camera",
          "type": "SDL_Camera *"
        },
        {
          "name": "frame",
          "type": "SDL_Surface *"
        }
      ]
    },
    {
      "name": "SDL_CloseCamera",
      "return_type": "void",
      "parameters": [
        {
          "name": "camera",
          "type": "SDL_Camera *"
        }
      ]
    }
  ]
}