diff --git a/docs/sphinx/reference-outputs.rst b/docs/sphinx/reference-outputs.rst index 3fbb07de0..4e854e0bb 100644 --- a/docs/sphinx/reference-outputs.rst +++ b/docs/sphinx/reference-outputs.rst @@ -882,32 +882,38 @@ Functions used by outputs --------------------- -.. function:: bool obs_output_can_begin_data_capture2(const obs_output_t *output) +.. function:: bool obs_output_can_begin_data_capture(const obs_output_t *output, int flags) Determines whether video/audio capture (encoded or raw) is able to start. Call this before initializing any output state to ensure that the output can start. + :param output: The output + :param flags: Reserved. Set this to 0. :return: *true* if data capture can begin --------------------- -.. function:: bool obs_output_initialize_encoders2(obs_output_t *output) +.. function:: bool obs_output_initialize_encoders(obs_output_t *output, int flags) Initializes any encoders/services associated with the output. This must be called for encoded outputs before calling - :c:func:`obs_output_begin_data_capture2()`. + :c:func:`obs_output_begin_data_capture()`. + :param output: The output + :param flags: Reserved. Set this to 0. :return: *true* if successful, *false* otherwise --------------------- -.. function:: bool obs_output_begin_data_capture2(obs_output_t *output) +.. function:: bool obs_output_begin_data_capture(obs_output_t *output, int flags) Begins data capture from raw media or encoders. This is typically when the output actually activates (starts) internally. Video/audio data will start being sent to the callbacks of the output. + :param output: The output + :param flags: Reserved. Set this to 0. :return: *true* if successful, *false* otherwise. Typically the return value does not need to be checked if :c:func:`obs_output_can_begin_data_capture2()` was diff --git a/libobs/obs-output-delay.c b/libobs/obs-output-delay.c index cbbd0c7bc..3b232f1f5 100644 --- a/libobs/obs-output-delay.c +++ b/libobs/obs-output-delay.c @@ -157,10 +157,10 @@ bool obs_output_delay_start(obs_output_t *output) }; if (!delay_active(output)) { - bool can_begin = obs_output_can_begin_data_capture2(output); + bool can_begin = obs_output_can_begin_data_capture(output, 0); if (!can_begin) return false; - if (!obs_output_initialize_encoders2(output)) + if (!obs_output_initialize_encoders(output, 0)) return false; } @@ -175,7 +175,7 @@ bool obs_output_delay_start(obs_output_t *output) return true; } - if (!obs_output_begin_data_capture2(output)) { + if (!obs_output_begin_data_capture(output, 0)) { obs_output_cleanup_delay(output); return false; } diff --git a/libobs/obs-output.c b/libobs/obs-output.c index 4b029ea80..c36eaa038 100644 --- a/libobs/obs-output.c +++ b/libobs/obs-output.c @@ -2107,8 +2107,11 @@ static inline void signal_stop(struct obs_output *output) calldata_free(¶ms); } -bool obs_output_can_begin_data_capture2(const obs_output_t *output) +bool obs_output_can_begin_data_capture(const obs_output_t *output, + uint32_t flags) { + UNUSED_PARAMETER(flags); + if (!obs_output_valid(output, "obs_output_can_begin_data_capture")) return false; @@ -2123,13 +2126,6 @@ bool obs_output_can_begin_data_capture2(const obs_output_t *output) return can_begin_data_capture(output); } -bool obs_output_can_begin_data_capture(const obs_output_t *output, - uint32_t flags) -{ - UNUSED_PARAMETER(flags); - return obs_output_can_begin_data_capture2(output); -} - static inline bool initialize_audio_encoders(obs_output_t *output) { for (size_t i = 0; i < MAX_OUTPUT_AUDIO_ENCODERS; i++) { @@ -2179,8 +2175,10 @@ static inline void pair_encoders(obs_output_t *output) } } -bool obs_output_initialize_encoders2(obs_output_t *output) +bool obs_output_initialize_encoders(obs_output_t *output, uint32_t flags) { + UNUSED_PARAMETER(flags); + if (!obs_output_valid(output, "obs_output_initialize_encoders")) return false; if (!log_flag_encoded(output, __FUNCTION__, false)) @@ -2201,12 +2199,6 @@ bool obs_output_initialize_encoders2(obs_output_t *output) return true; } -bool obs_output_initialize_encoders(obs_output_t *output, uint32_t flags) -{ - UNUSED_PARAMETER(flags); - return obs_output_initialize_encoders2(output); -} - static bool begin_delayed_capture(obs_output_t *output) { if (delay_capturing(output)) @@ -2263,8 +2255,10 @@ static void reset_raw_output(obs_output_t *output) pause_reset(&output->pause); } -bool obs_output_begin_data_capture2(obs_output_t *output) +bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags) { + UNUSED_PARAMETER(flags); + if (!obs_output_valid(output, "obs_output_begin_data_capture")) return false; @@ -2307,12 +2301,6 @@ bool obs_output_begin_data_capture2(obs_output_t *output) return true; } -bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags) -{ - UNUSED_PARAMETER(flags); - return obs_output_begin_data_capture2(output); -} - static inline void stop_audio_encoders(obs_output_t *output, encoded_callback_t encoded_callback) { diff --git a/libobs/obs.h b/libobs/obs.h index 88166e066..30ad96b56 100644 --- a/libobs/obs.h +++ b/libobs/obs.h @@ -2249,15 +2249,13 @@ EXPORT void obs_output_set_audio_conversion(obs_output_t *output, const struct audio_convert_info *conversion); -/** Returns whether data capture can begin with the specified flags */ -EXPORT bool obs_output_can_begin_data_capture2(const obs_output_t *output); -OBS_DEPRECATED EXPORT bool -obs_output_can_begin_data_capture(const obs_output_t *output, uint32_t flags); +/** Returns whether data capture can begin */ +EXPORT bool obs_output_can_begin_data_capture(const obs_output_t *output, + uint32_t flags); /** Initializes encoders (if any) */ -EXPORT bool obs_output_initialize_encoders2(obs_output_t *output); -OBS_DEPRECATED EXPORT bool obs_output_initialize_encoders(obs_output_t *output, - uint32_t flags); +EXPORT bool obs_output_initialize_encoders(obs_output_t *output, + uint32_t flags); /** * Begins data capture from media/encoders. @@ -2265,9 +2263,7 @@ OBS_DEPRECATED EXPORT bool obs_output_initialize_encoders(obs_output_t *output, * @param output Output context * @return true if successful, false otherwise. */ -EXPORT bool obs_output_begin_data_capture2(obs_output_t *output); -OBS_DEPRECATED EXPORT bool obs_output_begin_data_capture(obs_output_t *output, - uint32_t flags); +EXPORT bool obs_output_begin_data_capture(obs_output_t *output, uint32_t flags); /** Ends data capture from media/encoders */ EXPORT void obs_output_end_data_capture(obs_output_t *output); diff --git a/plugins/aja/aja-output.cpp b/plugins/aja/aja-output.cpp index 3dd9774c8..02e9f7d90 100644 --- a/plugins/aja/aja-output.cpp +++ b/plugins/aja/aja-output.cpp @@ -1229,7 +1229,7 @@ static bool aja_output_start(void *data) obs_output_set_audio_conversion(ajaOutput->GetOBSOutput(), &conversion); - if (!obs_output_begin_data_capture2(ajaOutput->GetOBSOutput())) { + if (!obs_output_begin_data_capture(ajaOutput->GetOBSOutput(), 0)) { blog(LOG_ERROR, "aja_output_start: Begin OBS data capture failed!"); return false; diff --git a/plugins/decklink/decklink-output.cpp b/plugins/decklink/decklink-output.cpp index 38431eef1..2aade8376 100644 --- a/plugins/decklink/decklink-output.cpp +++ b/plugins/decklink/decklink-output.cpp @@ -110,7 +110,7 @@ static bool decklink_output_start(void *data) obs_output_set_audio_conversion(decklink->GetOutput(), &conversion); - if (!obs_output_begin_data_capture2(decklink->GetOutput())) + if (!obs_output_begin_data_capture(decklink->GetOutput(), 0)) return false; return true; diff --git a/plugins/linux-v4l2/v4l2-output.c b/plugins/linux-v4l2/v4l2-output.c index 1a582fddd..0d07d0d8a 100644 --- a/plugins/linux-v4l2/v4l2-output.c +++ b/plugins/linux-v4l2/v4l2-output.c @@ -173,7 +173,7 @@ static bool try_connect(void *data, const char *device) } blog(LOG_INFO, "Virtual camera started"); - obs_output_begin_data_capture2(vcam->output); + obs_output_begin_data_capture(vcam->output, 0); return true; diff --git a/plugins/mac-virtualcam/src/obs-plugin/plugin-main.mm b/plugins/mac-virtualcam/src/obs-plugin/plugin-main.mm index 772e5faa8..281620fa4 100644 --- a/plugins/mac-virtualcam/src/obs-plugin/plugin-main.mm +++ b/plugins/mac-virtualcam/src/obs-plugin/plugin-main.mm @@ -523,7 +523,7 @@ static bool virtualcam_output_start(void *data) [vcam->machServer run]; } - if (!obs_output_begin_data_capture2(vcam->output)) { + if (!obs_output_begin_data_capture(vcam->output, 0)) { return false; } diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c index fdd28713b..9df75263e 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-hls-mux.c @@ -118,9 +118,9 @@ bool ffmpeg_hls_mux_start(void *data) obs_data_t *settings; int keyint_sec; - if (!obs_output_can_begin_data_capture2(stream->output)) + if (!obs_output_can_begin_data_capture(stream->output, 0)) return false; - if (!obs_output_initialize_encoders2(stream->output)) + if (!obs_output_initialize_encoders(stream->output, 0)) return false; service = obs_output_get_service(stream->output); @@ -170,7 +170,7 @@ bool ffmpeg_hls_mux_start(void *data) stream->dropped_frames = 0; stream->min_priority = 0; - obs_output_begin_data_capture2(stream->output); + obs_output_begin_data_capture(stream->output, 0); dstr_copy(&stream->printable_path, path_str); info("Writing to path '%s'...", stream->printable_path.array); diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c b/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c index 471dad0d7..f7a899f1d 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mpegts.c @@ -1025,9 +1025,9 @@ static bool set_config(struct ffmpeg_output *stream) } av_dump_format(ff_data->output, 0, NULL, 1); } - if (!obs_output_can_begin_data_capture2(stream->output)) + if (!obs_output_can_begin_data_capture(stream->output, 0)) return false; - if (!obs_output_initialize_encoders2(stream->output)) + if (!obs_output_initialize_encoders(stream->output, 0)) return false; ret = pthread_create(&stream->write_thread, NULL, write_thread, stream); @@ -1042,7 +1042,7 @@ static bool set_config(struct ffmpeg_output *stream) os_atomic_set_bool(&stream->active, true); stream->write_thread_active = true; stream->total_bytes = 0; - obs_output_begin_data_capture2(stream->output); + obs_output_begin_data_capture(stream->output, 0); return true; fail: diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c index 1a6c2871b..92912a7f3 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-mux.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-mux.c @@ -411,9 +411,9 @@ static inline bool ffmpeg_mux_start_internal(struct ffmpeg_muxer *stream, update_encoder_settings(stream, path); - if (!obs_output_can_begin_data_capture2(stream->output)) + if (!obs_output_can_begin_data_capture(stream->output, 0)) return false; - if (!obs_output_initialize_encoders2(stream->output)) + if (!obs_output_initialize_encoders(stream->output, 0)) return false; if (stream->is_network) { @@ -468,7 +468,7 @@ static inline bool ffmpeg_mux_start_internal(struct ffmpeg_muxer *stream, os_atomic_set_bool(&stream->active, true); os_atomic_set_bool(&stream->capturing, true); stream->total_bytes = 0; - obs_output_begin_data_capture2(stream->output); + obs_output_begin_data_capture(stream->output, 0); info("Writing file '%s'...", stream->path.array); return true; @@ -1039,9 +1039,9 @@ static bool replay_buffer_start(void *data) { struct ffmpeg_muxer *stream = data; - if (!obs_output_can_begin_data_capture2(stream->output)) + if (!obs_output_can_begin_data_capture(stream->output, 0)) return false; - if (!obs_output_initialize_encoders2(stream->output)) + if (!obs_output_initialize_encoders(stream->output, 0)) return false; obs_data_t *s = obs_output_get_settings(stream->output); @@ -1052,7 +1052,7 @@ static bool replay_buffer_start(void *data) os_atomic_set_bool(&stream->active, true); os_atomic_set_bool(&stream->capturing, true); stream->total_bytes = 0; - obs_output_begin_data_capture2(stream->output); + obs_output_begin_data_capture(stream->output, 0); return true; } diff --git a/plugins/obs-ffmpeg/obs-ffmpeg-output.c b/plugins/obs-ffmpeg/obs-ffmpeg-output.c index eed34ad7c..7c587fdd6 100644 --- a/plugins/obs-ffmpeg/obs-ffmpeg-output.c +++ b/plugins/obs-ffmpeg/obs-ffmpeg-output.c @@ -1209,7 +1209,7 @@ static bool try_connect(struct ffmpeg_output *output) output->active = true; - if (!obs_output_can_begin_data_capture2(output->output)) + if (!obs_output_can_begin_data_capture(output->output, 0)) return false; ret = pthread_create(&output->write_thread, NULL, write_thread, output); @@ -1223,7 +1223,7 @@ static bool try_connect(struct ffmpeg_output *output) obs_output_set_video_conversion(output->output, NULL); obs_output_set_audio_conversion(output->output, &aci); - obs_output_begin_data_capture2(output->output); + obs_output_begin_data_capture(output->output, 0); output->write_thread_active = true; return true; } diff --git a/plugins/obs-outputs/flv-output.c b/plugins/obs-outputs/flv-output.c index 06b47fc57..3d5d3c10e 100644 --- a/plugins/obs-outputs/flv-output.c +++ b/plugins/obs-outputs/flv-output.c @@ -154,9 +154,9 @@ static bool flv_output_start(void *data) obs_data_t *settings; const char *path; - if (!obs_output_can_begin_data_capture2(stream->output)) + if (!obs_output_can_begin_data_capture(stream->output, 0)) return false; - if (!obs_output_initialize_encoders2(stream->output)) + if (!obs_output_initialize_encoders(stream->output, 0)) return false; stream->got_first_video = false; @@ -177,7 +177,7 @@ static bool flv_output_start(void *data) /* write headers and start capture */ os_atomic_set_bool(&stream->active, true); - obs_output_begin_data_capture2(stream->output); + obs_output_begin_data_capture(stream->output, 0); info("Writing FLV file '%s'...", stream->path.array); return true; diff --git a/plugins/obs-outputs/ftl-stream.c b/plugins/obs-outputs/ftl-stream.c index 7200ea9f8..9d7ff2d88 100644 --- a/plugins/obs-outputs/ftl-stream.c +++ b/plugins/obs-outputs/ftl-stream.c @@ -593,7 +593,7 @@ static int init_send(struct ftl_stream *stream) os_atomic_set_bool(&stream->active, true); - obs_output_begin_data_capture2(stream->output); + obs_output_begin_data_capture(stream->output, 0); return OBS_OUTPUT_SUCCESS; } @@ -649,10 +649,10 @@ static bool ftl_stream_start(void *data) obs_data_set_int(video_settings, "bf", 0); obs_data_release(video_settings); - if (!obs_output_can_begin_data_capture2(stream->output)) { + if (!obs_output_can_begin_data_capture(stream->output, 0)) { return false; } - if (!obs_output_initialize_encoders2(stream->output)) { + if (!obs_output_initialize_encoders(stream->output, 0)) { return false; } diff --git a/plugins/obs-outputs/null-output.c b/plugins/obs-outputs/null-output.c index 35bd09edb..c8997b3c3 100644 --- a/plugins/obs-outputs/null-output.c +++ b/plugins/obs-outputs/null-output.c @@ -51,15 +51,15 @@ static bool null_output_start(void *data) { struct null_output *context = data; - if (!obs_output_can_begin_data_capture2(context->output)) + if (!obs_output_can_begin_data_capture(context->output, 0)) return false; - if (!obs_output_initialize_encoders2(context->output)) + if (!obs_output_initialize_encoders(context->output, 0)) return false; if (context->stop_thread_active) pthread_join(context->stop_thread, NULL); - obs_output_begin_data_capture2(context->output); + obs_output_begin_data_capture(context->output, 0); return true; } diff --git a/plugins/obs-outputs/rtmp-stream.c b/plugins/obs-outputs/rtmp-stream.c index 14b2e525e..22e0e1911 100644 --- a/plugins/obs-outputs/rtmp-stream.c +++ b/plugins/obs-outputs/rtmp-stream.c @@ -1071,7 +1071,7 @@ static int init_send(struct rtmp_stream *stream) return OBS_OUTPUT_DISCONNECTED; } - obs_output_begin_data_capture2(stream->output); + obs_output_begin_data_capture(stream->output, 0); return OBS_OUTPUT_SUCCESS; } @@ -1373,9 +1373,9 @@ static bool rtmp_stream_start(void *data) { struct rtmp_stream *stream = data; - if (!obs_output_can_begin_data_capture2(stream->output)) + if (!obs_output_can_begin_data_capture(stream->output, 0)) return false; - if (!obs_output_initialize_encoders2(stream->output)) + if (!obs_output_initialize_encoders(stream->output, 0)) return false; os_atomic_set_bool(&stream->connecting, true); diff --git a/plugins/win-dshow/virtualcam.c b/plugins/win-dshow/virtualcam.c index 010477366..ded9fabf9 100644 --- a/plugins/win-dshow/virtualcam.c +++ b/plugins/win-dshow/virtualcam.c @@ -68,7 +68,7 @@ static bool virtualcam_start(void *data) os_atomic_set_bool(&vcam->active, true); os_atomic_set_bool(&vcam->stopping, false); blog(LOG_INFO, "Virtual output started"); - obs_output_begin_data_capture2(vcam->output); + obs_output_begin_data_capture(vcam->output, 0); return true; }