Files
obs-studio/frontend/utility/AdvancedOutput.hpp

48 lines
1.5 KiB
C++

#pragma once
#include "BasicOutputHandler.hpp"
struct AdvancedOutput : BasicOutputHandler {
OBSEncoder streamAudioEnc;
OBSEncoder streamArchiveEnc;
OBSEncoder streamTrack[MAX_AUDIO_MIXES];
OBSEncoder recordTrack[MAX_AUDIO_MIXES];
OBSEncoder videoStreaming;
OBSEncoder videoRecording;
bool ffmpegOutput;
bool ffmpegRecording;
bool useStreamEncoder;
bool useStreamAudioEncoder;
bool usesBitrate = false;
AdvancedOutput(OBSBasic *main_);
inline void UpdateStreamSettings();
inline void UpdateRecordingSettings();
inline void UpdateAudioSettings();
virtual void Update() override;
inline std::optional<size_t> VodTrackMixerIdx(obs_service_t *service);
inline void SetupVodTrack(obs_service_t *service);
inline void SetupStreaming();
inline void SetupRecording();
inline void SetupFFmpeg();
void SetupOutputs() override;
int GetAudioBitrate(size_t i, const char *id) const;
virtual std::shared_future<void> SetupStreaming(obs_service_t *service,
SetupStreamingContinuation_t continuation) override;
virtual bool StartStreaming(obs_service_t *service) override;
virtual bool StartRecording() override;
virtual bool StartReplayBuffer() override;
virtual void StopStreaming(bool force) override;
virtual void StopRecording(bool force) override;
virtual void StopReplayBuffer(bool force) override;
virtual bool StreamingActive() const override;
virtual bool RecordingActive() const override;
virtual bool ReplayBufferActive() const override;
bool allowsMultiTrack();
};