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

Go to the source code of this file.

Data Structures

struct  tick_callback
 
struct  draw_callback
 
struct  obs_module
 
struct  obs_module_path
 
struct  obs_hotkey
 
struct  obs_hotkey_pair
 
struct  obs_hotkey_binding
 
struct  obs_view
 
struct  obs_display
 
struct  obs_vframe_info
 
struct  obs_tex_frame
 
struct  obs_core_video
 
struct  obs_core_audio
 
struct  obs_core_data
 
struct  obs_core_hotkeys
 
struct  obs_core
 
struct  obs_context_data
 
struct  obs_weak_ref
 
struct  async_frame
 
struct  audio_action
 
struct  obs_weak_source
 
struct  audio_cb_info
 
struct  obs_source
 
struct  delay_data
 
struct  obs_weak_output
 
struct  caption_text
 
struct  obs_output
 
struct  obs_weak_encoder
 
struct  encoder_callback
 
struct  obs_encoder
 
struct  obs_weak_service
 
struct  obs_service
 

Macros

#define NUM_TEXTURES   2
 
#define MICROSECOND_DEN   1000000
 
#define NUM_ENCODE_TEXTURES   3
 
#define NUM_ENCODE_TEXTURE_FRAMES_TO_WAIT   1
 
#define obs_ptr_valid(ptr, func)   obs_object_valid(ptr, func, #ptr)
 
#define obs_source_valid   obs_ptr_valid
 
#define obs_output_valid   obs_ptr_valid
 
#define obs_encoder_valid   obs_ptr_valid
 
#define obs_service_valid   obs_ptr_valid
 
#define MAX_TS_VAR   2000000000ULL
 
#define CAPTION_LINE_CHARS   (32)
 
#define CAPTION_LINE_BYTES   (4*CAPTION_LINE_CHARS)
 

Typedefs

typedef struct obs_hotkey_pair obs_hotkey_pair_t
 
typedef struct obs_hotkeys_platform obs_hotkeys_platform_t
 
typedef void(* encoded_callback_t) (void *data, struct encoder_packet *packet)
 

Enumerations

enum  audio_action_type { AUDIO_ACTION_VOL, AUDIO_ACTION_MUTE, AUDIO_ACTION_PTT, AUDIO_ACTION_PTM }
 
enum  view_type { MAIN_VIEW, AUX_VIEW }
 
enum  delay_msg { DELAY_MSG_PACKET, DELAY_MSG_START, DELAY_MSG_STOP }
 

Functions

void free_module (struct obs_module *mod)
 
void * obs_hotkey_thread (void *param)
 
bool obs_hotkeys_platform_init (struct obs_core_hotkeys *hotkeys)
 
void obs_hotkeys_platform_free (struct obs_core_hotkeys *hotkeys)
 
bool obs_hotkeys_platform_is_pressed (obs_hotkeys_platform_t *context, obs_key_t key)
 
const char * obs_get_hotkey_translation (obs_key_t key, const char *def)
 
void obs_hotkeys_context_release (struct obs_context_data *context)
 
void obs_hotkeys_free (void)
 
void obs_hotkey_name_map_free (void)
 
bool obs_view_init (struct obs_view *view)
 
void obs_view_free (struct obs_view *view)
 
bool obs_display_init (struct obs_display *display, const struct gs_init_data *graphics_data)
 
void obs_display_free (struct obs_display *display)
 
void * obs_graphics_thread (void *param)
 
gs_effect_tobs_load_effect (gs_effect_t **effect, const char *file)
 
bool audio_callback (void *param, uint64_t start_ts_in, uint64_t end_ts_in, uint64_t *out_ts, uint32_t mixers, struct audio_output_data *mixes)
 
void start_raw_video (video_t *video, const struct video_scale_info *conversion, void(*callback)(void *param, struct video_data *frame), void *param)
 
void stop_raw_video (video_t *video, void(*callback)(void *param, struct video_data *frame), void *param)
 
bool obs_context_data_init (struct obs_context_data *context, enum obs_obj_type type, obs_data_t *settings, const char *name, obs_data_t *hotkey_data, bool private)
 
void obs_context_data_free (struct obs_context_data *context)
 
void obs_context_data_insert (struct obs_context_data *context, pthread_mutex_t *mutex, void *first)
 
void obs_context_data_remove (struct obs_context_data *context)
 
void obs_context_data_setname (struct obs_context_data *context, const char *name)
 
struct obs_source_infoget_source_info (const char *id)
 
bool obs_source_init_context (struct obs_source *source, obs_data_t *settings, const char *name, obs_data_t *hotkey_data, bool private)
 
bool obs_transition_init (obs_source_t *transition)
 
void obs_transition_free (obs_source_t *transition)
 
void obs_transition_tick (obs_source_t *transition)
 
void obs_transition_enum_sources (obs_source_t *transition, obs_source_enum_proc_t enum_callback, void *param)
 
void obs_transition_save (obs_source_t *source, obs_data_t *data)
 
void obs_transition_load (obs_source_t *source, obs_data_t *data)
 
struct audio_monitor * audio_monitor_create (obs_source_t *source)
 
void audio_monitor_reset (struct audio_monitor *monitor)
 
void audio_monitor_destroy (struct audio_monitor *monitor)
 
void obs_source_destroy (struct obs_source *source)
 
void obs_source_activate (obs_source_t *source, enum view_type type)
 
void obs_source_deactivate (obs_source_t *source, enum view_type type)
 
void obs_source_video_tick (obs_source_t *source, float seconds)
 
float obs_source_get_target_volume (obs_source_t *source, obs_source_t *target)
 
void obs_source_audio_render (obs_source_t *source, uint32_t mixers, size_t channels, size_t sample_rate, size_t size)
 
void add_alignment (struct vec2 *v, uint32_t align, int cx, int cy)
 
struct obs_source_framefilter_async_video (obs_source_t *source, struct obs_source_frame *in)
 
bool update_async_texture (struct obs_source *source, const struct obs_source_frame *frame, gs_texture_t *tex, gs_texrender_t *texrender)
 
bool set_async_texture_size (struct obs_source *source, const struct obs_source_frame *frame)
 
void remove_async_frame (obs_source_t *source, struct obs_source_frame *frame)
 
void set_deinterlace_texture_size (obs_source_t *source)
 
void deinterlace_process_last_frame (obs_source_t *source, uint64_t sys_time)
 
void deinterlace_update_async_video (obs_source_t *source)
 
void deinterlace_render (obs_source_t *s)
 
void process_delay (void *data, struct encoder_packet *packet)
 
void obs_output_cleanup_delay (obs_output_t *output)
 
bool obs_output_delay_start (obs_output_t *output)
 
void obs_output_delay_stop (obs_output_t *output)
 
bool obs_output_actual_start (obs_output_t *output)
 
void obs_output_actual_stop (obs_output_t *output, bool force, uint64_t ts)
 
const struct obs_output_infofind_output (const char *id)
 
void obs_output_remove_encoder (struct obs_output *output, struct obs_encoder *encoder)
 
void obs_encoder_packet_create_instance (struct encoder_packet *dst, const struct encoder_packet *src)
 
void obs_output_destroy (obs_output_t *output)
 
struct obs_encoder_infofind_encoder (const char *id)
 
bool obs_encoder_initialize (obs_encoder_t *encoder)
 
void obs_encoder_shutdown (obs_encoder_t *encoder)
 
void obs_encoder_start (obs_encoder_t *encoder, void(*new_packet)(void *param, struct encoder_packet *packet), void *param)
 
void obs_encoder_stop (obs_encoder_t *encoder, void(*new_packet)(void *param, struct encoder_packet *packet), void *param)
 
void obs_encoder_add_output (struct obs_encoder *encoder, struct obs_output *output)
 
void obs_encoder_remove_output (struct obs_encoder *encoder, struct obs_output *output)
 
bool start_gpu_encode (obs_encoder_t *encoder)
 
void stop_gpu_encode (obs_encoder_t *encoder)
 
void do_encode (struct obs_encoder *encoder, struct encoder_frame *frame)
 
void send_off_encoder_packet (obs_encoder_t *encoder, bool success, bool received, struct encoder_packet *pkt)
 
void obs_encoder_destroy (obs_encoder_t *encoder)
 
const struct obs_service_infofind_service (const char *id)
 
void obs_service_activate (struct obs_service *service)
 
void obs_service_deactivate (struct obs_service *service, bool remove)
 
bool obs_service_initialize (struct obs_service *service, struct obs_output *output)
 
void obs_service_destroy (obs_service_t *service)
 

Variables

struct obs_coreobs
 

Macro Definition Documentation

◆ CAPTION_LINE_BYTES

#define CAPTION_LINE_BYTES   (4*CAPTION_LINE_CHARS)

◆ CAPTION_LINE_CHARS

#define CAPTION_LINE_CHARS   (32)

◆ MAX_TS_VAR

#define MAX_TS_VAR   2000000000ULL

◆ MICROSECOND_DEN

#define MICROSECOND_DEN   1000000

◆ NUM_ENCODE_TEXTURE_FRAMES_TO_WAIT

#define NUM_ENCODE_TEXTURE_FRAMES_TO_WAIT   1

◆ NUM_ENCODE_TEXTURES

#define NUM_ENCODE_TEXTURES   3

◆ NUM_TEXTURES

#define NUM_TEXTURES   2

◆ obs_encoder_valid

#define obs_encoder_valid   obs_ptr_valid

◆ obs_output_valid

#define obs_output_valid   obs_ptr_valid

◆ obs_ptr_valid

#define obs_ptr_valid (   ptr,
  func 
)    obs_object_valid(ptr, func, #ptr)

◆ obs_service_valid

#define obs_service_valid   obs_ptr_valid

◆ obs_source_valid

#define obs_source_valid   obs_ptr_valid

Typedef Documentation

◆ encoded_callback_t

typedef void(* encoded_callback_t) (void *data, struct encoder_packet *packet)

◆ obs_hotkey_pair_t

◆ obs_hotkeys_platform_t

typedef struct obs_hotkeys_platform obs_hotkeys_platform_t

Enumeration Type Documentation

◆ audio_action_type

Enumerator
AUDIO_ACTION_VOL 
AUDIO_ACTION_MUTE 
AUDIO_ACTION_PTT 
AUDIO_ACTION_PTM 

◆ delay_msg

enum delay_msg
Enumerator
DELAY_MSG_PACKET 
DELAY_MSG_START 
DELAY_MSG_STOP 

◆ view_type

enum view_type
Enumerator
MAIN_VIEW 
AUX_VIEW 

Function Documentation

◆ add_alignment()

void add_alignment ( struct vec2 v,
uint32_t  align,
int  cx,
int  cy 
)

◆ audio_callback()

bool audio_callback ( void *  param,
uint64_t  start_ts_in,
uint64_t  end_ts_in,
uint64_t out_ts,
uint32_t  mixers,
struct audio_output_data mixes 
)

◆ audio_monitor_create()

struct audio_monitor* audio_monitor_create ( obs_source_t source)

◆ audio_monitor_destroy()

void audio_monitor_destroy ( struct audio_monitor *  monitor)

◆ audio_monitor_reset()

void audio_monitor_reset ( struct audio_monitor *  monitor)

◆ deinterlace_process_last_frame()

void deinterlace_process_last_frame ( obs_source_t source,
uint64_t  sys_time 
)

◆ deinterlace_render()

void deinterlace_render ( obs_source_t s)

◆ deinterlace_update_async_video()

void deinterlace_update_async_video ( obs_source_t source)

◆ do_encode()

void do_encode ( struct obs_encoder encoder,
struct encoder_frame frame 
)

◆ filter_async_video()

struct obs_source_frame* filter_async_video ( obs_source_t source,
struct obs_source_frame in 
)

◆ find_encoder()

struct obs_encoder_info* find_encoder ( const char *  id)

◆ find_output()

const struct obs_output_info* find_output ( const char *  id)

◆ find_service()

const struct obs_service_info* find_service ( const char *  id)

◆ free_module()

void free_module ( struct obs_module mod)

◆ get_source_info()

struct obs_source_info* get_source_info ( const char *  id)

◆ obs_context_data_free()

void obs_context_data_free ( struct obs_context_data context)

◆ obs_context_data_init()

bool obs_context_data_init ( struct obs_context_data context,
enum obs_obj_type  type,
obs_data_t settings,
const char *  name,
obs_data_t hotkey_data,
bool  private 
)

◆ obs_context_data_insert()

void obs_context_data_insert ( struct obs_context_data context,
pthread_mutex_t *  mutex,
void *  first 
)

◆ obs_context_data_remove()

void obs_context_data_remove ( struct obs_context_data context)

◆ obs_context_data_setname()

void obs_context_data_setname ( struct obs_context_data context,
const char *  name 
)

◆ obs_display_free()

void obs_display_free ( struct obs_display display)

◆ obs_display_init()

bool obs_display_init ( struct obs_display display,
const struct gs_init_data graphics_data 
)

◆ obs_encoder_add_output()

void obs_encoder_add_output ( struct obs_encoder encoder,
struct obs_output output 
)

◆ obs_encoder_destroy()

void obs_encoder_destroy ( obs_encoder_t encoder)

◆ obs_encoder_initialize()

bool obs_encoder_initialize ( obs_encoder_t encoder)

◆ obs_encoder_packet_create_instance()

void obs_encoder_packet_create_instance ( struct encoder_packet dst,
const struct encoder_packet src 
)

◆ obs_encoder_remove_output()

void obs_encoder_remove_output ( struct obs_encoder encoder,
struct obs_output output 
)

◆ obs_encoder_shutdown()

void obs_encoder_shutdown ( obs_encoder_t encoder)

◆ obs_encoder_start()

void obs_encoder_start ( obs_encoder_t encoder,
void(*)(void *param, struct encoder_packet *packet)  new_packet,
void *  param 
)

◆ obs_encoder_stop()

void obs_encoder_stop ( obs_encoder_t encoder,
void(*)(void *param, struct encoder_packet *packet)  new_packet,
void *  param 
)

◆ obs_get_hotkey_translation()

const char* obs_get_hotkey_translation ( obs_key_t  key,
const char *  def 
)

◆ obs_graphics_thread()

void* obs_graphics_thread ( void *  param)

◆ obs_hotkey_name_map_free()

void obs_hotkey_name_map_free ( void  )

◆ obs_hotkey_thread()

void* obs_hotkey_thread ( void *  param)

◆ obs_hotkeys_context_release()

void obs_hotkeys_context_release ( struct obs_context_data context)

◆ obs_hotkeys_free()

void obs_hotkeys_free ( void  )

◆ obs_hotkeys_platform_free()

void obs_hotkeys_platform_free ( struct obs_core_hotkeys hotkeys)

◆ obs_hotkeys_platform_init()

bool obs_hotkeys_platform_init ( struct obs_core_hotkeys hotkeys)

◆ obs_hotkeys_platform_is_pressed()

bool obs_hotkeys_platform_is_pressed ( obs_hotkeys_platform_t context,
obs_key_t  key 
)

◆ obs_load_effect()

gs_effect_t* obs_load_effect ( gs_effect_t **  effect,
const char *  file 
)

◆ obs_output_actual_start()

bool obs_output_actual_start ( obs_output_t output)

◆ obs_output_actual_stop()

void obs_output_actual_stop ( obs_output_t output,
bool  force,
uint64_t  ts 
)

◆ obs_output_cleanup_delay()

void obs_output_cleanup_delay ( obs_output_t output)

◆ obs_output_delay_start()

bool obs_output_delay_start ( obs_output_t output)

◆ obs_output_delay_stop()

void obs_output_delay_stop ( obs_output_t output)

◆ obs_output_destroy()

void obs_output_destroy ( obs_output_t output)

◆ obs_output_remove_encoder()

void obs_output_remove_encoder ( struct obs_output output,
struct obs_encoder encoder 
)

◆ obs_service_activate()

void obs_service_activate ( struct obs_service service)

◆ obs_service_deactivate()

void obs_service_deactivate ( struct obs_service service,
bool  remove 
)

◆ obs_service_destroy()

void obs_service_destroy ( obs_service_t service)

◆ obs_service_initialize()

bool obs_service_initialize ( struct obs_service service,
struct obs_output output 
)

◆ obs_source_activate()

void obs_source_activate ( obs_source_t source,
enum view_type  type 
)

◆ obs_source_audio_render()

void obs_source_audio_render ( obs_source_t source,
uint32_t  mixers,
size_t  channels,
size_t  sample_rate,
size_t  size 
)

◆ obs_source_deactivate()

void obs_source_deactivate ( obs_source_t source,
enum view_type  type 
)

◆ obs_source_destroy()

void obs_source_destroy ( struct obs_source source)

◆ obs_source_get_target_volume()

float obs_source_get_target_volume ( obs_source_t source,
obs_source_t target 
)

◆ obs_source_init_context()

bool obs_source_init_context ( struct obs_source source,
obs_data_t settings,
const char *  name,
obs_data_t hotkey_data,
bool  private 
)

◆ obs_source_video_tick()

void obs_source_video_tick ( obs_source_t source,
float  seconds 
)

◆ obs_transition_enum_sources()

void obs_transition_enum_sources ( obs_source_t transition,
obs_source_enum_proc_t  enum_callback,
void *  param 
)

◆ obs_transition_free()

void obs_transition_free ( obs_source_t transition)

◆ obs_transition_init()

bool obs_transition_init ( obs_source_t transition)

◆ obs_transition_load()

void obs_transition_load ( obs_source_t source,
obs_data_t data 
)

◆ obs_transition_save()

void obs_transition_save ( obs_source_t source,
obs_data_t data 
)

◆ obs_transition_tick()

void obs_transition_tick ( obs_source_t transition)

◆ obs_view_free()

void obs_view_free ( struct obs_view view)

◆ obs_view_init()

bool obs_view_init ( struct obs_view view)

◆ process_delay()

void process_delay ( void *  data,
struct encoder_packet packet 
)

◆ remove_async_frame()

void remove_async_frame ( obs_source_t source,
struct obs_source_frame frame 
)

◆ send_off_encoder_packet()

void send_off_encoder_packet ( obs_encoder_t encoder,
bool  success,
bool  received,
struct encoder_packet pkt 
)

◆ set_async_texture_size()

bool set_async_texture_size ( struct obs_source source,
const struct obs_source_frame frame 
)

◆ set_deinterlace_texture_size()

void set_deinterlace_texture_size ( obs_source_t source)

◆ start_gpu_encode()

bool start_gpu_encode ( obs_encoder_t encoder)

◆ start_raw_video()

void start_raw_video ( video_t video,
const struct video_scale_info conversion,
void(*)(void *param, struct video_data *frame)  callback,
void *  param 
)

◆ stop_gpu_encode()

void stop_gpu_encode ( obs_encoder_t encoder)

◆ stop_raw_video()

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

◆ update_async_texture()

bool update_async_texture ( struct obs_source source,
const struct obs_source_frame frame,
gs_texture_t tex,
gs_texrender_t texrender 
)

Variable Documentation

◆ obs

struct obs_core* obs