Skip to content

Commit

Permalink
UI: Enable BPM for multitrack video
Browse files Browse the repository at this point in the history
  • Loading branch information
lexano-ivs authored and RytoEX committed Sep 5, 2024
1 parent 07d504e commit ea9e033
Showing 1 changed file with 13 additions and 1 deletion.
14 changes: 13 additions & 1 deletion UI/multitrack-video-output.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
#include <obs.hpp>
#include <remote-text.hpp>
#include <window-basic-main.hpp>
#include <bpm.h>

#include <algorithm>
#include <cinttypes>
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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());
}

Expand Down

0 comments on commit ea9e033

Please sign in to comment.