webrtc codec

2021-02-18 10:19

阅读:1596

标签:tostring   clock   cee   优先级   cpp   cas   sign   sig   create   

1、视频

std::unique_ptr InternalEncoderFactory::CreateVideoEncoder(
    const SdpVideoFormat& format) {
  if (absl::EqualsIgnoreCase(format.name, cricket::kVp8CodecName))
    return VP8Encoder::Create();
  if (absl::EqualsIgnoreCase(format.name, cricket::kVp9CodecName))
    return VP9Encoder::Create(cricket::VideoCodec(format));
  if (absl::EqualsIgnoreCase(format.name, cricket::kH264CodecName))
    return H264Encoder::Create(cricket::VideoCodec(format));
  RTC_LOG(LS_ERROR) 

 从上到下的优先级的形式设置

 2 音频

WebRtcVoiceMediaChannel::SetRecvCodecs

WebRtcVoiceMediaChannel::SetSendCodecs

 for (const AudioCodec& voice_codec : codecs) {
    if (!(IsCodec(voice_codec, kCnCodecName) ||
          IsCodec(voice_codec, kDtmfCodecName) ||
          IsCodec(voice_codec, kRedCodecName))) {
      webrtc::SdpAudioFormat format(voice_codec.name, voice_codec.clockrate,
                                    voice_codec.channels, voice_codec.params);

      voice_codec_info = engine()->encoder_factory_->QueryAudioEncoder(format);
      if (!voice_codec_info) {
        RTC_LOG(LS_WARNING) 

  这个里边 从codecs的列表里 从头到尾的优先级找到当前使用的codec。

而这个codecs的列表数据,是音频引擎在启动的时候,获取到的,代码如下:

void WebRtcVoiceEngine::Init() {
  RTC_DCHECK(worker_thread_checker_.IsCurrent());
  RTC_LOG(LS_INFO) CreateTaskQueue(
          "rtc-low-prio", webrtc::TaskQueueFactory::Priority::LOW)));

  // Load our audio codec lists.
  RTC_LOG(LS_VERBOSE) GetSupportedEncoders());
  for (const AudioCodec& codec : send_codecs_) {
    RTC_LOG(LS_VERBOSE) GetSupportedDecoders());
  for (const AudioCodec& codec : recv_codecs_) {
    RTC_LOG(LS_VERBOSE) 

  

webrtc codec

标签:tostring   clock   cee   优先级   cpp   cas   sign   sig   create   

原文地址:https://www.cnblogs.com/132818Creator/p/12942279.html


评论


亲,登录后才可以留言!