zoukankan      html  css  js  c++  java
  • libjingle_peerconnection

    最近在学习libjingle_peeconnection的代码

    不知道应该如何写起,就先从类和各种数据结构列起吧

    PeerConnectionFactory:

    在创建PeerConnectionFactory的实例的时候会创建两个thread ( signaling_thread_  和 worker_thread_  类型为rtc::Thread),目前还不知道有和作用,两者的关系

    class PeerConnectionFactory : public PeerConnectionFactoryInterface,
    public rtc::MessageHandler {
    public:
    virtual void SetOptions(const Options& options) {
    options_ = options;
    }

    virtual rtc::scoped_refptr<PeerConnectionInterface>
    CreatePeerConnection(
    const PeerConnectionInterface::RTCConfiguration& configuration,
    const MediaConstraintsInterface* constraints,
    PortAllocatorFactoryInterface* allocator_factory,
    DTLSIdentityServiceInterface* dtls_identity_service,
    PeerConnectionObserver* observer);

    bool Initialize();

    virtual rtc::scoped_refptr<MediaStreamInterface>
    CreateLocalMediaStream(const std::string& label);

    virtual rtc::scoped_refptr<AudioSourceInterface> CreateAudioSource(
    const MediaConstraintsInterface* constraints);

    virtual rtc::scoped_refptr<VideoSourceInterface> CreateVideoSource(
    cricket::VideoCapturer* capturer,
    const MediaConstraintsInterface* constraints);

    virtual rtc::scoped_refptr<VideoTrackInterface>
    CreateVideoTrack(const std::string& id,
    VideoSourceInterface* video_source);

    virtual rtc::scoped_refptr<AudioTrackInterface>
    CreateAudioTrack(const std::string& id,
    AudioSourceInterface* audio_source);

    virtual bool StartAecDump(rtc::PlatformFile file);

    virtual cricket::ChannelManager* channel_manager();
    virtual rtc::Thread* signaling_thread();
    virtual rtc::Thread* worker_thread();
    const Options& options() const { return options_; }

    protected:
    PeerConnectionFactory();
    PeerConnectionFactory(
    rtc::Thread* worker_thread,
    rtc::Thread* signaling_thread,
    AudioDeviceModule* default_adm,
    cricket::WebRtcVideoEncoderFactory* video_encoder_factory,
    cricket::WebRtcVideoDecoderFactory* video_decoder_factory);
    virtual ~PeerConnectionFactory();

    private:
    bool Initialize_s();
    void Terminate_s();
    rtc::scoped_refptr<AudioSourceInterface> CreateAudioSource_s(
    const MediaConstraintsInterface* constraints);
    rtc::scoped_refptr<VideoSourceInterface> CreateVideoSource_s(
    cricket::VideoCapturer* capturer,
    const MediaConstraintsInterface* constraints);

    rtc::scoped_refptr<PeerConnectionInterface> CreatePeerConnection_s(
    const PeerConnectionInterface::RTCConfiguration& configuration,
    const MediaConstraintsInterface* constraints,
    PortAllocatorFactoryInterface* allocator_factory,
    DTLSIdentityServiceInterface* dtls_identity_service,
    PeerConnectionObserver* observer);

    bool StartAecDump_s(rtc::PlatformFile file);

    // Implements rtc::MessageHandler.
    void OnMessage(rtc::Message* msg);

    bool owns_ptrs_;
    rtc::Thread* signaling_thread_;
    rtc::Thread* worker_thread_;
    Options options_;
    rtc::scoped_refptr<PortAllocatorFactoryInterface> allocator_factory_;
    // External Audio device used for audio playback.
    rtc::scoped_refptr<AudioDeviceModule> default_adm_;
    rtc::scoped_ptr<cricket::ChannelManager> channel_manager_;
    // External Video encoder factory. This can be NULL if the client has not
    // injected any. In that case, video engine will use the internal SW encoder.
    rtc::scoped_ptr<cricket::WebRtcVideoEncoderFactory>
    video_encoder_factory_;
    // External Video decoder factory. This can be NULL if the client has not
    // injected any. In that case, video engine will use the internal SW decoder.
    rtc::scoped_ptr<cricket::WebRtcVideoDecoderFactory>
    video_decoder_factory_;
    };

  • 相关阅读:
    以太坊客户端Ethereum Wallet与Geth区别简介
    苹果企业版签名分发相关问题,蒲公英签名,fir.im分发,安装ipa设置信任
    usdt钱包开发,比特币协议 Omni 层协议 USDT
    产品经理-需求分析-用户故事-敏捷开发 详解 一张图帮你了解Scrum敏捷流程
    产品经理杂谈,产品管理=技术+设计+业务
    使用NodeJsScan扫描nodejs代码检查安全性
    人人都是操盘手(李笑来内部录音,揭秘币圈黑幕完整文字版)运营驱动时代,欧神比李笑来究竟差在哪里?
    Node.js中环境变量process.env详解
    selenium-java web自动化测试工具抓取百度搜索结果实例
    前一天或后一天
  • 原文地址:https://www.cnblogs.com/Haijunzhu/p/3949520.html
Copyright © 2011-2022 走看看