obs-frontend-api: Add function for manual file splitting

master
gxalpha 2022-07-21 03:14:07 +02:00 committed by Matt Gajownik
parent ae3c9b3628
commit 467f73d4c9
5 changed files with 36 additions and 0 deletions

View File

@ -320,6 +320,23 @@ struct OBSStudioAPI : obs_frontend_callbacks {
return os_atomic_load_bool(&recording_paused);
}
bool obs_frontend_recording_split_file(void) override
{
if (os_atomic_load_bool(&recording_active) &&
!os_atomic_load_bool(&recording_paused)) {
proc_handler_t *ph = obs_output_get_proc_handler(
main->outputHandler->fileOutput);
uint8_t stack[128];
calldata cd;
calldata_init_fixed(&cd, stack, sizeof(stack));
proc_handler_call(ph, "split_file", &cd);
bool result = calldata_bool(&cd, "split_file_enabled");
return result;
} else {
return false;
}
}
void obs_frontend_replay_buffer_start(void) override
{
QMetaObject::invokeMethod(main, "StartReplayBuffer");

View File

@ -279,6 +279,12 @@ bool obs_frontend_recording_paused(void)
return !!callbacks_valid() ? c->obs_frontend_recording_paused() : false;
}
bool obs_frontend_recording_split_file(void)
{
return !!callbacks_valid() ? c->obs_frontend_recording_split_file()
: false;
}
void obs_frontend_replay_buffer_start(void)
{
if (callbacks_valid())

View File

@ -177,6 +177,7 @@ EXPORT void obs_frontend_recording_stop(void);
EXPORT bool obs_frontend_recording_active(void);
EXPORT void obs_frontend_recording_pause(bool pause);
EXPORT bool obs_frontend_recording_paused(void);
EXPORT bool obs_frontend_recording_split_file(void);
EXPORT void obs_frontend_replay_buffer_start(void);
EXPORT void obs_frontend_replay_buffer_save(void);

View File

@ -52,6 +52,7 @@ struct obs_frontend_callbacks {
virtual bool obs_frontend_recording_active(void) = 0;
virtual void obs_frontend_recording_pause(bool pause) = 0;
virtual bool obs_frontend_recording_paused(void) = 0;
virtual bool obs_frontend_recording_split_file(void) = 0;
virtual void obs_frontend_replay_buffer_start(void) = 0;
virtual void obs_frontend_replay_buffer_save(void) = 0;

View File

@ -553,6 +553,17 @@ Functions
---------------------------------------
.. function:: bool obs_frontend_recording_split_file(void)
Asks OBS to split the current recording file.
:return: *true* if splitting was successfully requested (this
does not mean that splitting has finished or guarantee that it
split successfully), *false* if recording is inactive or paused
or if file splitting is disabled.
---------------------------------------
.. function:: void obs_frontend_replay_buffer_start(void)
Starts the replay buffer.