AdvancedOutput.hpp 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #pragma once
  2. #include "BasicOutputHandler.hpp"
  3. struct AdvancedOutput : BasicOutputHandler {
  4. OBSEncoder streamAudioEnc;
  5. OBSEncoder streamArchiveEnc;
  6. OBSEncoder streamTrack[MAX_AUDIO_MIXES];
  7. OBSEncoder recordTrack[MAX_AUDIO_MIXES];
  8. OBSEncoder videoStreaming;
  9. OBSEncoder videoRecording;
  10. bool ffmpegOutput;
  11. bool ffmpegRecording;
  12. bool useStreamEncoder;
  13. bool useStreamAudioEncoder;
  14. bool usesBitrate = false;
  15. AdvancedOutput(OBSBasic *main_);
  16. inline void UpdateStreamSettings();
  17. inline void UpdateRecordingSettings();
  18. inline void UpdateAudioSettings();
  19. virtual void Update() override;
  20. inline std::optional<size_t> VodTrackMixerIdx(obs_service_t *service);
  21. inline void SetupVodTrack(obs_service_t *service);
  22. inline void SetupStreaming();
  23. inline void SetupRecording();
  24. inline void SetupFFmpeg();
  25. void SetupOutputs() override;
  26. int GetAudioBitrate(size_t i, const char *id) const;
  27. virtual std::shared_future<void> SetupStreaming(obs_service_t *service,
  28. SetupStreamingContinuation_t continuation) override;
  29. virtual bool StartStreaming(obs_service_t *service) override;
  30. virtual bool StartRecording() override;
  31. virtual bool StartReplayBuffer() override;
  32. virtual void StopStreaming(bool force) override;
  33. virtual void StopRecording(bool force) override;
  34. virtual void StopReplayBuffer(bool force) override;
  35. virtual bool StreamingActive() const override;
  36. virtual bool RecordingActive() const override;
  37. virtual bool ReplayBufferActive() const override;
  38. bool allowsMultiTrack();
  39. };