74 void setPath(
const std::string& path);
127 void onFrame(
const std::string& name,
const std::shared_ptr<MediaFrame>&
frame);
133 void setupVideoOutput();
134 std::string buildVideoFilter(
const std::vector<MediaStream>& peers,
const MediaStream&
local)
const;
135 void setupAudioOutput();
136 std::mutex mutexStreamSetup_;
137 std::string buildAudioFilter(
const std::vector<MediaStream>& peers)
const;
139 std::mutex mutexFrameBuff_;
140 std::mutex mutexFilterVideo_;
141 std::mutex mutexFilterAudio_;
143 std::map<std::string, std::unique_ptr<StreamObserver>> streams_;
149 std::string description_;
151 std::unique_ptr<MediaEncoder> encoder_;
152 std::mutex encoderMtx_;
153 std::unique_ptr<MediaFilter> outputVideoFilter_;
154 std::unique_ptr<Resampler> outputAudioResampler_;
155 std::unique_ptr<AudioFrameResizer> audioFrameResizer_;
157 std::unique_ptr<MediaFilter> videoFilter_;
158 std::unique_ptr<MediaFilter> audioFilter_;
162 bool isRecording_ =
false;
163 bool audioOnly_ =
false;
165 std::condition_variable cv_;
166 std::atomic_bool interrupted_ {
false};
168 std::list<std::shared_ptr<MediaFrame>> frameBuff_;