75 void setPath(
const std::string& path);
128 void onFrame(
const std::string& name,
const std::shared_ptr<MediaFrame>&
frame);
134 void setupVideoOutput();
135 std::string buildVideoFilter(
const std::vector<MediaStream>& peers,
137 void setupAudioOutput();
138 std::mutex mutexStreamSetup_;
139 std::string buildAudioFilter(
const std::vector<MediaStream>& peers)
const;
141 std::mutex mutexFrameBuff_;
142 std::mutex mutexFilterVideo_;
143 std::mutex mutexFilterAudio_;
145 std::map<std::string, std::unique_ptr<StreamObserver>> streams_;
151 std::string description_;
153 std::unique_ptr<MediaEncoder> encoder_;
154 std::mutex encoderMtx_;
155 std::unique_ptr<MediaFilter> outputVideoFilter_;
156 std::unique_ptr<MediaFilter> outputAudioFilter_;
158 std::unique_ptr<MediaFilter> videoFilter_;
159 std::unique_ptr<MediaFilter> audioFilter_;
163 bool isRecording_ =
false;
164 bool audioOnly_ =
false;
165 int lastVideoPts_ = 0;
167 std::condition_variable cv_;
168 std::atomic_bool interrupted_ {
false};
170 std::list<std::shared_ptr<MediaFrame>> frameBuff_;