UI: Enable BPM for multitrack video

This commit is contained in:
Alex Luccisano
2024-09-05 16:38:58 -04:00
committed by Ryan Foster
parent 07d504e5c7
commit ea9e033d26
+13 -1
View File
@@ -9,6 +9,7 @@
#include <obs.hpp>
#include <remote-text.hpp>
#include <window-basic-main.hpp>
#include <bpm.h>
#include <algorithm>
#include <cinttypes>
@@ -487,6 +488,9 @@ void MultitrackVideoOutput::PrepareStreaming(
obs_output_set_service(output, multitrack_video_service);
// Register the BPM (Broadcast Performance Metrics) callback
obs_output_add_packet_callback(output, bpm_inject, NULL);
OBSSignal start_streaming;
OBSSignal stop_streaming;
OBSSignal deactivate_stream;
@@ -908,7 +912,6 @@ SetupOBSOutput(QWidget *parent, const QString &multitrack_video_name,
const char *audio_encoder_id, size_t main_audio_mixer,
std::optional<size_t> vod_track_mixer)
{
auto output = create_output();
OBSOutputAutoRelease recording_output;
if (dump_stream_to_file_config)
@@ -1013,6 +1016,15 @@ void StreamDeactivateHandler(void *arg, calldata_t *params)
calldata_ptr(params, "output"))))
return;
/* Unregister the BPM (Broadcast Performance Metrics) callback
* and destroy the allocated metrics data.
*/
obs_output_remove_packet_callback(
static_cast<obs_output_t *>(calldata_ptr(params, "output")),
bpm_inject, NULL);
bpm_destroy(
static_cast<obs_output_t *>(calldata_ptr(params, "output")));
MultitrackVideoOutput::ReleaseOnMainThread(self->take_current());
}