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