SimpleOutput.hpp 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "BasicOutputHandler.hpp"
  3. struct SimpleOutput : BasicOutputHandler {
  4. OBSEncoder audioStreaming;
  5. OBSEncoder videoStreaming;
  6. OBSEncoder audioRecording;
  7. OBSEncoder audioArchive;
  8. OBSEncoder videoRecording;
  9. OBSEncoder audioTrack[MAX_AUDIO_MIXES];
  10. std::string videoEncoder;
  11. std::string videoQuality;
  12. bool usingRecordingPreset = false;
  13. bool recordingConfigured = false;
  14. bool ffmpegOutput = false;
  15. bool lowCPUx264 = false;
  16. SimpleOutput(OBSBasic *main_);
  17. int CalcCRF(int crf);
  18. void UpdateRecordingSettings_x264_crf(int crf);
  19. void UpdateRecordingSettings_qsv11(int crf, bool av1);
  20. void UpdateRecordingSettings_nvenc(int cqp);
  21. void UpdateRecordingSettings_nvenc_hevc_av1(int cqp);
  22. void UpdateRecordingSettings_amd_cqp(int cqp);
  23. void UpdateRecordingSettings_apple(int quality);
  24. #ifdef ENABLE_HEVC
  25. void UpdateRecordingSettings_apple_hevc(int quality);
  26. #endif
  27. void UpdateRecordingSettings();
  28. void UpdateRecordingAudioSettings();
  29. virtual void Update() override;
  30. void SetupOutputs() override;
  31. int GetAudioBitrate() const;
  32. void LoadRecordingPreset_Lossy(const char *encoder);
  33. void LoadRecordingPreset_Lossless();
  34. void LoadRecordingPreset();
  35. void LoadStreamingPreset_Lossy(const char *encoder);
  36. void UpdateRecording();
  37. bool ConfigureRecording(bool useReplayBuffer);
  38. bool IsVodTrackEnabled(obs_service_t *service);
  39. void SetupVodTrack(obs_service_t *service);
  40. virtual std::shared_future<void> SetupStreaming(obs_service_t *service,
  41. SetupStreamingContinuation_t continuation) override;
  42. virtual bool StartStreaming(obs_service_t *service) override;
  43. virtual bool StartRecording() override;
  44. virtual bool StartReplayBuffer() override;
  45. virtual void StopStreaming(bool force) override;
  46. virtual void StopRecording(bool force) override;
  47. virtual void StopReplayBuffer(bool force) override;
  48. virtual bool StreamingActive() const override;
  49. virtual bool RecordingActive() const override;
  50. virtual bool ReplayBufferActive() const override;
  51. };