diff --git a/src/media/media_encoder.cpp b/src/media/media_encoder.cpp index 9b7741b624c7d727df7487184e21a216759f1413..7e59f3dd2b0960cd713d3a8beb3c808f91e2d245 100644 --- a/src/media/media_encoder.cpp +++ b/src/media/media_encoder.cpp @@ -636,4 +636,18 @@ MediaEncoder::getStreamCount() const return 0; } +MediaStream +MediaEncoder::getStream(const std::string& name, int streamIdx) const +{ + // if streamIdx is negative, use currentStreamIdx_ + if (streamIdx < 0) + streamIdx = currentStreamIdx_; + // make sure streamIdx is valid + if (getStreamCount() <= 0 || streamIdx < 0 || encoders_.size() < (unsigned)(streamIdx + 1)) + return {}; + auto enc = encoders_[streamIdx]; + // TODO set firstTimestamp + return MediaStream(name, enc); +} + } // namespace ring diff --git a/src/media/media_encoder.h b/src/media/media_encoder.h index 80c28c17125faba4ac852ee14b44fb534bc4d2a8..bae4718c2e1c6e3fcd209199c4214ec3c916afeb 100644 --- a/src/media/media_encoder.h +++ b/src/media/media_encoder.h @@ -32,6 +32,7 @@ #include "media_buffer.h" #include "media_codec.h" #include "media_device.h" +#include "media_stream.h" #include <map> #include <memory> @@ -97,6 +98,7 @@ public: bool useCodec(const AccountCodecInfo* codec) const noexcept; unsigned getStreamCount() const; + MediaStream getStream(const std::string& name, int streamIdx = -1) const; private: NON_COPYABLE(MediaEncoder);