libobs: Add functions to get raw video output
Adds obs_add_raw_video_callback() and obs_remove_raw_video_callback() functions which allow the ability to get raw video frames without necessarily needing to create an output.master
parent
45b5291530
commit
c4b482efef
|
@ -433,6 +433,18 @@ Video, Audio, and Graphics
|
|||
Adds/removes a main rendering callback. Allows custom rendering to
|
||||
the main stream/recording output.
|
||||
|
||||
---------------------
|
||||
|
||||
.. function:: void obs_add_raw_video_callback(const struct video_scale_info *conversion, void (*callback)(void *param, struct video_data *frame), void *param)
|
||||
void obs_remove_raw_video_callback(void (*callback)(void *param, struct video_data *frame), void *param)
|
||||
|
||||
Adds/removes a raw video callback. Allows the ability to obtain raw
|
||||
video frames without necessarily using an output.
|
||||
|
||||
:param conversion: Specifies conversion requirements. Can be NULL.
|
||||
:param callback: The callback that receives raw video frames.
|
||||
:param param: The private data associated with the callback.
|
||||
|
||||
|
||||
Primary signal/procedure handlers
|
||||
---------------------------------
|
||||
|
|
21
libobs/obs.c
21
libobs/obs.c
|
@ -2089,3 +2089,24 @@ void stop_raw_video(video_t *v,
|
|||
os_atomic_dec_long(&video->raw_active);
|
||||
video_output_disconnect(v, callback, param);
|
||||
}
|
||||
|
||||
void obs_add_raw_video_callback(
|
||||
const struct video_scale_info *conversion,
|
||||
void (*callback)(void *param, struct video_data *frame),
|
||||
void *param)
|
||||
{
|
||||
struct obs_core_video *video = &obs->video;
|
||||
if (!obs)
|
||||
return;
|
||||
start_raw_video(video->video, conversion, callback, param);
|
||||
}
|
||||
|
||||
void obs_remove_raw_video_callback(
|
||||
void (*callback)(void *param, struct video_data *frame),
|
||||
void *param)
|
||||
{
|
||||
struct obs_core_video *video = &obs->video;
|
||||
if (!obs)
|
||||
return;
|
||||
stop_raw_video(video->video, callback, param);
|
||||
}
|
||||
|
|
|
@ -628,6 +628,14 @@ EXPORT void obs_remove_main_render_callback(
|
|||
void (*draw)(void *param, uint32_t cx, uint32_t cy),
|
||||
void *param);
|
||||
|
||||
EXPORT void obs_add_raw_video_callback(
|
||||
const struct video_scale_info *conversion,
|
||||
void (*callback)(void *param, struct video_data *frame),
|
||||
void *param);
|
||||
EXPORT void obs_remove_raw_video_callback(
|
||||
void (*callback)(void *param, struct video_data *frame),
|
||||
void *param);
|
||||
|
||||
|
||||
/* ------------------------------------------------------------------------- */
|
||||
/* View context */
|
||||
|
|
Loading…
Reference in New Issue