libobs, plugins: Deprecate obs_output_t functions with flag parameters

This deprecates the following functions, replacing them with new
versions:
- `obs_output_can_begin_data_capture()` - now `*capture2()`
- `obs_output_initialize_encoders()` - now `*encoders2()`
- `obs_output_begin_data_capture()` - now `*capture2()`

The flags parameter was initially designed to support audio-only or
video-only operation of an output which had the `OBS_OUTPUT_AV` flag,
however, full support for that was never implemented, and there are
likely fundamental issues with an implementation, mainly that most
outputs are programmed assuming that there will always be at least one
audio and one video track. This requires new flags specifying support
for optional audio/video, among other things.

An implementation to allow audio/video to be optional is best done
using the flag technique above, with audio/video enablement specified
by whether media (raw, `video_t/audio_t`) or encoder (`obs_encoder_t`)
objects are specified.

Since every implementation I could find always specifies `flags` as 0,
I was able to safely conclude that immediately removing the parameter's
functionality is safe to do.
This commit is contained in:
tt2468
2023-05-20 16:41:55 -07:00
committed by Lain
parent e400d3f1bc
commit d314d4725d
17 changed files with 100 additions and 134 deletions
+3 -3
View File
@@ -154,9 +154,9 @@ static bool flv_output_start(void *data)
obs_data_t *settings;
const char *path;
if (!obs_output_can_begin_data_capture(stream->output, 0))
if (!obs_output_can_begin_data_capture2(stream->output))
return false;
if (!obs_output_initialize_encoders(stream->output, 0))
if (!obs_output_initialize_encoders2(stream->output))
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_capture(stream->output, 0);
obs_output_begin_data_capture2(stream->output);
info("Writing FLV file '%s'...", stream->path.array);
return true;
+3 -3
View File
@@ -593,7 +593,7 @@ static int init_send(struct ftl_stream *stream)
os_atomic_set_bool(&stream->active, true);
obs_output_begin_data_capture(stream->output, 0);
obs_output_begin_data_capture2(stream->output);
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_capture(stream->output, 0)) {
if (!obs_output_can_begin_data_capture2(stream->output)) {
return false;
}
if (!obs_output_initialize_encoders(stream->output, 0)) {
if (!obs_output_initialize_encoders2(stream->output)) {
return false;
}
+3 -3
View File
@@ -51,15 +51,15 @@ static bool null_output_start(void *data)
{
struct null_output *context = data;
if (!obs_output_can_begin_data_capture(context->output, 0))
if (!obs_output_can_begin_data_capture2(context->output))
return false;
if (!obs_output_initialize_encoders(context->output, 0))
if (!obs_output_initialize_encoders2(context->output))
return false;
if (context->stop_thread_active)
pthread_join(context->stop_thread, NULL);
obs_output_begin_data_capture(context->output, 0);
obs_output_begin_data_capture2(context->output);
return true;
}
+3 -3
View File
@@ -1137,7 +1137,7 @@ static int init_send(struct rtmp_stream *stream)
}
if (!silently_reconnecting(stream))
obs_output_begin_data_capture(stream->output, 0);
obs_output_begin_data_capture2(stream->output);
return OBS_OUTPUT_SUCCESS;
}
@@ -1456,9 +1456,9 @@ static bool rtmp_stream_start(void *data)
struct rtmp_stream *stream = data;
if (!silently_reconnecting(stream)) {
if (!obs_output_can_begin_data_capture(stream->output, 0))
if (!obs_output_can_begin_data_capture2(stream->output))
return false;
if (!obs_output_initialize_encoders(stream->output, 0))
if (!obs_output_initialize_encoders2(stream->output))
return false;
}