Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(174)

Side by Side Diff: webrtc/media/engine/webrtcvideoengine2.cc

Issue 2521393004: Don't cache video codec list in VideoEngine2. (Closed)
Patch Set: Remove unnecessary test fixture and minor fixes. Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 479 matching lines...) Expand 10 before | Expand all | Expand 10 after
490 if (default_recv_ssrc_ != 0) { 490 if (default_recv_ssrc_ != 0) {
491 channel->SetSink(default_recv_ssrc_, default_sink_); 491 channel->SetSink(default_recv_ssrc_, default_sink_);
492 } 492 }
493 } 493 }
494 494
495 WebRtcVideoEngine2::WebRtcVideoEngine2() 495 WebRtcVideoEngine2::WebRtcVideoEngine2()
496 : initialized_(false), 496 : initialized_(false),
497 external_decoder_factory_(NULL), 497 external_decoder_factory_(NULL),
498 external_encoder_factory_(NULL) { 498 external_encoder_factory_(NULL) {
499 LOG(LS_INFO) << "WebRtcVideoEngine2::WebRtcVideoEngine2()"; 499 LOG(LS_INFO) << "WebRtcVideoEngine2::WebRtcVideoEngine2()";
500 video_codecs_ = GetSupportedCodecs(external_encoder_factory_);
501 } 500 }
502 501
503 WebRtcVideoEngine2::~WebRtcVideoEngine2() { 502 WebRtcVideoEngine2::~WebRtcVideoEngine2() {
504 LOG(LS_INFO) << "WebRtcVideoEngine2::~WebRtcVideoEngine2"; 503 LOG(LS_INFO) << "WebRtcVideoEngine2::~WebRtcVideoEngine2";
505 } 504 }
506 505
507 void WebRtcVideoEngine2::Init() { 506 void WebRtcVideoEngine2::Init() {
508 LOG(LS_INFO) << "WebRtcVideoEngine2::Init"; 507 LOG(LS_INFO) << "WebRtcVideoEngine2::Init";
509 initialized_ = true; 508 initialized_ = true;
510 } 509 }
511 510
512 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel( 511 WebRtcVideoChannel2* WebRtcVideoEngine2::CreateChannel(
513 webrtc::Call* call, 512 webrtc::Call* call,
514 const MediaConfig& config, 513 const MediaConfig& config,
515 const VideoOptions& options) { 514 const VideoOptions& options) {
516 RTC_DCHECK(initialized_); 515 RTC_DCHECK(initialized_);
517 LOG(LS_INFO) << "CreateChannel. Options: " << options.ToString(); 516 LOG(LS_INFO) << "CreateChannel. Options: " << options.ToString();
518 return new WebRtcVideoChannel2(call, config, options, 517 return new WebRtcVideoChannel2(call, config, options,
519 external_encoder_factory_, 518 external_encoder_factory_,
520 external_decoder_factory_); 519 external_decoder_factory_);
521 } 520 }
522 521
523 const std::vector<VideoCodec>& WebRtcVideoEngine2::codecs() const { 522 std::vector<VideoCodec> WebRtcVideoEngine2::codecs() const {
524 return video_codecs_; 523 return GetSupportedCodecs(external_encoder_factory_);
525 } 524 }
526 525
527 RtpCapabilities WebRtcVideoEngine2::GetCapabilities() const { 526 RtpCapabilities WebRtcVideoEngine2::GetCapabilities() const {
528 RtpCapabilities capabilities; 527 RtpCapabilities capabilities;
529 capabilities.header_extensions.push_back( 528 capabilities.header_extensions.push_back(
530 webrtc::RtpExtension(webrtc::RtpExtension::kTimestampOffsetUri, 529 webrtc::RtpExtension(webrtc::RtpExtension::kTimestampOffsetUri,
531 webrtc::RtpExtension::kTimestampOffsetDefaultId)); 530 webrtc::RtpExtension::kTimestampOffsetDefaultId));
532 capabilities.header_extensions.push_back( 531 capabilities.header_extensions.push_back(
533 webrtc::RtpExtension(webrtc::RtpExtension::kAbsSendTimeUri, 532 webrtc::RtpExtension(webrtc::RtpExtension::kAbsSendTimeUri,
534 webrtc::RtpExtension::kAbsSendTimeDefaultId)); 533 webrtc::RtpExtension::kAbsSendTimeDefaultId));
(...skipping 26 matching lines...) Expand all
561 simulcast_encoder_factory_.reset(); 560 simulcast_encoder_factory_.reset();
562 561
563 if (encoder_factory && 562 if (encoder_factory &&
564 WebRtcSimulcastEncoderFactory::UseSimulcastEncoderFactory( 563 WebRtcSimulcastEncoderFactory::UseSimulcastEncoderFactory(
565 encoder_factory->supported_codecs())) { 564 encoder_factory->supported_codecs())) {
566 simulcast_encoder_factory_.reset( 565 simulcast_encoder_factory_.reset(
567 new WebRtcSimulcastEncoderFactory(encoder_factory)); 566 new WebRtcSimulcastEncoderFactory(encoder_factory));
568 encoder_factory = simulcast_encoder_factory_.get(); 567 encoder_factory = simulcast_encoder_factory_.get();
569 } 568 }
570 external_encoder_factory_ = encoder_factory; 569 external_encoder_factory_ = encoder_factory;
571
572 video_codecs_ = GetSupportedCodecs(encoder_factory);
573 } 570 }
574 571
575 // This is a helper function for AppendVideoCodecs below. It will return the 572 // This is a helper function for AppendVideoCodecs below. It will return the
576 // first unused dynamic payload type (in the range [96, 127]), or nothing if no 573 // first unused dynamic payload type (in the range [96, 127]), or nothing if no
577 // payload type is unused. 574 // payload type is unused.
578 static rtc::Optional<int> NextFreePayloadType( 575 static rtc::Optional<int> NextFreePayloadType(
579 const std::vector<VideoCodec>& codecs) { 576 const std::vector<VideoCodec>& codecs) {
580 static const int kFirstDynamicPayloadType = 96; 577 static const int kFirstDynamicPayloadType = 96;
581 static const int kLastDynamicPayloadType = 127; 578 static const int kLastDynamicPayloadType = 127;
582 bool is_payload_used[1 + kLastDynamicPayloadType - kFirstDynamicPayloadType] = 579 bool is_payload_used[1 + kLastDynamicPayloadType - kFirstDynamicPayloadType] =
(...skipping 2032 matching lines...) Expand 10 before | Expand all | Expand 10 after
2615 rtx_mapping[video_codecs[i].codec.id] != 2612 rtx_mapping[video_codecs[i].codec.id] !=
2616 ulpfec_config.red_payload_type) { 2613 ulpfec_config.red_payload_type) {
2617 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id]; 2614 video_codecs[i].rtx_payload_type = rtx_mapping[video_codecs[i].codec.id];
2618 } 2615 }
2619 } 2616 }
2620 2617
2621 return video_codecs; 2618 return video_codecs;
2622 } 2619 }
2623 2620
2624 } // namespace cricket 2621 } // namespace cricket
OLDNEW
« no previous file with comments | « webrtc/media/engine/webrtcvideoengine2.h ('k') | webrtc/media/engine/webrtcvideoengine2_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698