// // Created by Théo Monnom on 01/09/2022. // #pragma once #include #include "api/rtp_receiver_interface.h" #include "livekit/helper.h" #include "livekit/media_stream.h" #include "livekit/rtp_parameters.h" #include "rust/cxx.h" namespace livekit { class RtpReceiver; } #include "webrtc-sys/src/rtp_receiver.rs.h" namespace livekit { // TODO(theomonnom): Implement RtpReceiverObserverInterface? // TODO(theomonnom): RtpSource // TODO(theomonnom): FrameTransformer & FrameDecryptor interface class RtpReceiver { public: explicit RtpReceiver( rtc::scoped_refptr receiver); std::shared_ptr track() const; rust::Vec stream_ids() const; rust::Vec streams() const; MediaType media_type() const; rust::String id() const; RtpParameters get_parameters() const; // bool set_parameters(RtpParameters parameters) const; // Seems unsupported void set_jitter_buffer_minimum_delay(bool is_some, double delay_seconds) const; private: rtc::scoped_refptr receiver_; }; static std::shared_ptr _shared_rtp_receiver() { return nullptr; } } // namespace livekit