Open Broadcaster Software
Free, open source software for live streaming and recording
video-io.h File Reference

Go to the source code of this file.

Data Structures

struct  video_data
 
struct  video_output_info
 
struct  video_scale_info
 

Macros

#define VIDEO_OUTPUT_SUCCESS   0
 
#define VIDEO_OUTPUT_INVALIDPARAM   -1
 
#define VIDEO_OUTPUT_FAIL   -2
 

Typedefs

typedef struct video_output video_t
 

Enumerations

enum  video_format {
  VIDEO_FORMAT_NONE, VIDEO_FORMAT_I420, VIDEO_FORMAT_NV12, VIDEO_FORMAT_YVYU,
  VIDEO_FORMAT_YUY2, VIDEO_FORMAT_UYVY, VIDEO_FORMAT_RGBA, VIDEO_FORMAT_BGRA,
  VIDEO_FORMAT_BGRX, VIDEO_FORMAT_Y800, VIDEO_FORMAT_I444
}
 
enum  video_colorspace { VIDEO_CS_DEFAULT, VIDEO_CS_601, VIDEO_CS_709 }
 
enum  video_range_type { VIDEO_RANGE_DEFAULT, VIDEO_RANGE_PARTIAL, VIDEO_RANGE_FULL }
 
enum  video_scale_type {
  VIDEO_SCALE_DEFAULT, VIDEO_SCALE_POINT, VIDEO_SCALE_FAST_BILINEAR, VIDEO_SCALE_BILINEAR,
  VIDEO_SCALE_BICUBIC
}
 

Functions

EXPORT enum video_format video_format_from_fourcc (uint32_t fourcc)
 
EXPORT bool video_format_get_parameters (enum video_colorspace color_space, enum video_range_type range, float matrix[16], float min_range[3], float max_range[3])
 
EXPORT int video_output_open (video_t **video, struct video_output_info *info)
 
EXPORT void video_output_close (video_t *video)
 
EXPORT bool video_output_connect (video_t *video, const struct video_scale_info *conversion, void(*callback)(void *param, struct video_data *frame), void *param)
 
EXPORT void video_output_disconnect (video_t *video, void(*callback)(void *param, struct video_data *frame), void *param)
 
EXPORT bool video_output_active (const video_t *video)
 
EXPORT const struct video_output_infovideo_output_get_info (const video_t *video)
 
EXPORT bool video_output_lock_frame (video_t *video, struct video_frame *frame, int count, uint64_t timestamp)
 
EXPORT void video_output_unlock_frame (video_t *video)
 
EXPORT uint64_t video_output_get_frame_time (const video_t *video)
 
EXPORT void video_output_stop (video_t *video)
 
EXPORT bool video_output_stopped (video_t *video)
 
EXPORT enum video_format video_output_get_format (const video_t *video)
 
EXPORT uint32_t video_output_get_width (const video_t *video)
 
EXPORT uint32_t video_output_get_height (const video_t *video)
 
EXPORT double video_output_get_frame_rate (const video_t *video)
 
EXPORT uint32_t video_output_get_skipped_frames (const video_t *video)
 
EXPORT uint32_t video_output_get_total_frames (const video_t *video)
 
void video_output_inc_texture_encoders (video_t *video)
 
void video_output_dec_texture_encoders (video_t *video)
 
void video_output_inc_texture_frames (video_t *video)
 
void video_output_inc_texture_skipped_frames (video_t *video)
 

Macro Definition Documentation

◆ VIDEO_OUTPUT_FAIL

#define VIDEO_OUTPUT_FAIL   -2

◆ VIDEO_OUTPUT_INVALIDPARAM

#define VIDEO_OUTPUT_INVALIDPARAM   -1

◆ VIDEO_OUTPUT_SUCCESS

#define VIDEO_OUTPUT_SUCCESS   0

Typedef Documentation

◆ video_t

typedef struct video_output video_t

Enumeration Type Documentation

◆ video_colorspace

Enumerator
VIDEO_CS_DEFAULT 
VIDEO_CS_601 
VIDEO_CS_709 

◆ video_format

Enumerator
VIDEO_FORMAT_NONE 
VIDEO_FORMAT_I420 
VIDEO_FORMAT_NV12 
VIDEO_FORMAT_YVYU 
VIDEO_FORMAT_YUY2 
VIDEO_FORMAT_UYVY 
VIDEO_FORMAT_RGBA 
VIDEO_FORMAT_BGRA 
VIDEO_FORMAT_BGRX 
VIDEO_FORMAT_Y800 
VIDEO_FORMAT_I444 

◆ video_range_type

Enumerator
VIDEO_RANGE_DEFAULT 
VIDEO_RANGE_PARTIAL 
VIDEO_RANGE_FULL 

◆ video_scale_type

Enumerator
VIDEO_SCALE_DEFAULT 
VIDEO_SCALE_POINT 
VIDEO_SCALE_FAST_BILINEAR 
VIDEO_SCALE_BILINEAR 
VIDEO_SCALE_BICUBIC 

Function Documentation

◆ video_format_from_fourcc()

EXPORT enum video_format video_format_from_fourcc ( uint32_t  fourcc)

◆ video_format_get_parameters()

EXPORT bool video_format_get_parameters ( enum video_colorspace  color_space,
enum video_range_type  range,
float  matrix[16],
float  min_range[3],
float  max_range[3] 
)

◆ video_output_active()

EXPORT bool video_output_active ( const video_t video)

◆ video_output_close()

EXPORT void video_output_close ( video_t video)

◆ video_output_connect()

EXPORT bool video_output_connect ( video_t video,
const struct video_scale_info conversion,
void(*)(void *param, struct video_data *frame)  callback,
void *  param 
)

◆ video_output_dec_texture_encoders()

void video_output_dec_texture_encoders ( video_t video)

◆ video_output_disconnect()

EXPORT void video_output_disconnect ( video_t video,
void(*)(void *param, struct video_data *frame)  callback,
void *  param 
)

◆ video_output_get_format()

EXPORT enum video_format video_output_get_format ( const video_t video)

◆ video_output_get_frame_rate()

EXPORT double video_output_get_frame_rate ( const video_t video)

◆ video_output_get_frame_time()

EXPORT uint64_t video_output_get_frame_time ( const video_t video)

◆ video_output_get_height()

EXPORT uint32_t video_output_get_height ( const video_t video)

◆ video_output_get_info()

EXPORT const struct video_output_info* video_output_get_info ( const video_t video)

◆ video_output_get_skipped_frames()

EXPORT uint32_t video_output_get_skipped_frames ( const video_t video)

◆ video_output_get_total_frames()

EXPORT uint32_t video_output_get_total_frames ( const video_t video)

◆ video_output_get_width()

EXPORT uint32_t video_output_get_width ( const video_t video)

◆ video_output_inc_texture_encoders()

void video_output_inc_texture_encoders ( video_t video)

◆ video_output_inc_texture_frames()

void video_output_inc_texture_frames ( video_t video)

◆ video_output_inc_texture_skipped_frames()

void video_output_inc_texture_skipped_frames ( video_t video)

◆ video_output_lock_frame()

EXPORT bool video_output_lock_frame ( video_t video,
struct video_frame frame,
int  count,
uint64_t  timestamp 
)

◆ video_output_open()

EXPORT int video_output_open ( video_t **  video,
struct video_output_info info 
)

◆ video_output_stop()

EXPORT void video_output_stop ( video_t video)

◆ video_output_stopped()

EXPORT bool video_output_stopped ( video_t video)

◆ video_output_unlock_frame()

EXPORT void video_output_unlock_frame ( video_t video)