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-08 23:05:27 -07:00
committed by Lain
parent e400d3f1bc
commit d314d4725d
17 changed files with 100 additions and 134 deletions

View File

@@ -110,7 +110,7 @@ static bool decklink_output_start(void *data)
obs_output_set_audio_conversion(decklink->GetOutput(), &conversion);
if (!obs_output_begin_data_capture(decklink->GetOutput(), 0))
if (!obs_output_begin_data_capture2(decklink->GetOutput()))
return false;
return true;