0
0
mirror of https://github.com/obsproject/obs-studio.git synced 2024-09-19 20:32:15 +02:00

UI: Enable BPM for multitrack video

This commit is contained in:
Alex Luccisano 2024-08-21 11:21:21 -04:00 committed by Ryan Foster
parent 07d504e5c7
commit ea9e033d26

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());
}