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

Side by Side Diff: webrtc/media/base/fakemediaengine.h

Issue 1813763005: Updated structures and functions for setting the max bitrate limit to take rtc::Optional<int> Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Code review feedback Created 4 years, 9 months 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) 2004 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2004 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 232 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 DtmfInfo(uint32_t ssrc, int event_code, int duration) 243 DtmfInfo(uint32_t ssrc, int event_code, int duration)
244 : ssrc(ssrc), 244 : ssrc(ssrc),
245 event_code(event_code), 245 event_code(event_code),
246 duration(duration) {} 246 duration(duration) {}
247 uint32_t ssrc; 247 uint32_t ssrc;
248 int event_code; 248 int event_code;
249 int duration; 249 int duration;
250 }; 250 };
251 explicit FakeVoiceMediaChannel(FakeVoiceEngine* engine, 251 explicit FakeVoiceMediaChannel(FakeVoiceEngine* engine,
252 const AudioOptions& options) 252 const AudioOptions& options)
253 : engine_(engine), time_since_last_typing_(-1), max_bps_(-1) { 253 : engine_(engine), time_since_last_typing_(-1) {
254 output_scalings_[0] = 1.0; // For default channel. 254 output_scalings_[0] = 1.0; // For default channel.
255 SetOptions(options); 255 SetOptions(options);
256 } 256 }
257 ~FakeVoiceMediaChannel(); 257 ~FakeVoiceMediaChannel();
258 const std::vector<AudioCodec>& recv_codecs() const { return recv_codecs_; } 258 const std::vector<AudioCodec>& recv_codecs() const { return recv_codecs_; }
259 const std::vector<AudioCodec>& send_codecs() const { return send_codecs_; } 259 const std::vector<AudioCodec>& send_codecs() const { return send_codecs_; }
260 const std::vector<AudioCodec>& codecs() const { return send_codecs(); } 260 const std::vector<AudioCodec>& codecs() const { return send_codecs(); }
261 const std::vector<DtmfInfo>& dtmf_info_queue() const { 261 const std::vector<DtmfInfo>& dtmf_info_queue() const {
262 return dtmf_info_queue_; 262 return dtmf_info_queue_;
263 } 263 }
264 const AudioOptions& options() const { return options_; } 264 const AudioOptions& options() const { return options_; }
265 int max_bps() const { return max_bps_; } 265 rtc::Optional<int> max_bps() const { return max_bps_; }
266 virtual bool SetSendParameters(const AudioSendParameters& params) { 266 virtual bool SetSendParameters(const AudioSendParameters& params) {
267 return (SetSendCodecs(params.codecs) && 267 return (SetSendCodecs(params.codecs) &&
268 SetSendRtpHeaderExtensions(params.extensions) && 268 SetSendRtpHeaderExtensions(params.extensions) &&
269 SetMaxSendBandwidth(params.max_bandwidth_bps) && 269 SetMaxSendBitrate(params.max_bitrate_bps) &&
270 SetOptions(params.options)); 270 SetOptions(params.options));
271 } 271 }
272 272
273 virtual bool SetRecvParameters(const AudioRecvParameters& params) { 273 virtual bool SetRecvParameters(const AudioRecvParameters& params) {
274 return (SetRecvCodecs(params.codecs) && 274 return (SetRecvCodecs(params.codecs) &&
275 SetRecvRtpHeaderExtensions(params.extensions)); 275 SetRecvRtpHeaderExtensions(params.extensions));
276 } 276 }
277 277
278 virtual bool SetPlayout(bool playout) { 278 virtual bool SetPlayout(bool playout) {
279 set_playout(playout); 279 set_playout(playout);
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
393 return true; 393 return true;
394 } 394 }
395 bool SetSendCodecs(const std::vector<AudioCodec>& codecs) { 395 bool SetSendCodecs(const std::vector<AudioCodec>& codecs) {
396 if (fail_set_send_codecs()) { 396 if (fail_set_send_codecs()) {
397 // Fake the failure in SetSendCodecs. 397 // Fake the failure in SetSendCodecs.
398 return false; 398 return false;
399 } 399 }
400 send_codecs_ = codecs; 400 send_codecs_ = codecs;
401 return true; 401 return true;
402 } 402 }
403 bool SetMaxSendBandwidth(int bps) { 403 bool SetMaxSendBitrate(rtc::Optional<int> bps) {
404 max_bps_ = bps; 404 max_bps_ = bps;
405 return true; 405 return true;
406 } 406 }
407 bool SetOptions(const AudioOptions& options) { 407 bool SetOptions(const AudioOptions& options) {
408 // Does a "merge" of current options and set options. 408 // Does a "merge" of current options and set options.
409 options_.SetAll(options); 409 options_.SetAll(options);
410 return true; 410 return true;
411 } 411 }
412 bool SetLocalSource(uint32_t ssrc, AudioSource* source) { 412 bool SetLocalSource(uint32_t ssrc, AudioSource* source) {
413 auto it = local_sinks_.find(ssrc); 413 auto it = local_sinks_.find(ssrc);
(...skipping 15 matching lines...) Expand all
429 429
430 FakeVoiceEngine* engine_; 430 FakeVoiceEngine* engine_;
431 std::vector<AudioCodec> recv_codecs_; 431 std::vector<AudioCodec> recv_codecs_;
432 std::vector<AudioCodec> send_codecs_; 432 std::vector<AudioCodec> send_codecs_;
433 std::map<uint32_t, double> output_scalings_; 433 std::map<uint32_t, double> output_scalings_;
434 std::vector<DtmfInfo> dtmf_info_queue_; 434 std::vector<DtmfInfo> dtmf_info_queue_;
435 int time_since_last_typing_; 435 int time_since_last_typing_;
436 AudioOptions options_; 436 AudioOptions options_;
437 std::map<uint32_t, VoiceChannelAudioSink*> local_sinks_; 437 std::map<uint32_t, VoiceChannelAudioSink*> local_sinks_;
438 std::unique_ptr<webrtc::AudioSinkInterface> sink_; 438 std::unique_ptr<webrtc::AudioSinkInterface> sink_;
439 int max_bps_; 439 rtc::Optional<int> max_bps_;
440 }; 440 };
441 441
442 // A helper function to compare the FakeVoiceMediaChannel::DtmfInfo. 442 // A helper function to compare the FakeVoiceMediaChannel::DtmfInfo.
443 inline bool CompareDtmfInfo(const FakeVoiceMediaChannel::DtmfInfo& info, 443 inline bool CompareDtmfInfo(const FakeVoiceMediaChannel::DtmfInfo& info,
444 uint32_t ssrc, 444 uint32_t ssrc,
445 int event_code, 445 int event_code,
446 int duration) { 446 int duration) {
447 return (info.duration == duration && info.event_code == event_code && 447 return (info.duration == duration && info.event_code == event_code &&
448 info.ssrc == ssrc); 448 info.ssrc == ssrc);
449 } 449 }
450 450
451 class FakeVideoMediaChannel : public RtpHelper<VideoMediaChannel> { 451 class FakeVideoMediaChannel : public RtpHelper<VideoMediaChannel> {
452 public: 452 public:
453 explicit FakeVideoMediaChannel(FakeVideoEngine* engine, 453 explicit FakeVideoMediaChannel(FakeVideoEngine* engine,
454 const VideoOptions& options) 454 const VideoOptions& options)
455 : engine_(engine), max_bps_(-1) { 455 : engine_(engine) {
456 SetOptions(options); 456 SetOptions(options);
457 } 457 }
458 458
459 ~FakeVideoMediaChannel(); 459 ~FakeVideoMediaChannel();
460 460
461 const std::vector<VideoCodec>& recv_codecs() const { return recv_codecs_; } 461 const std::vector<VideoCodec>& recv_codecs() const { return recv_codecs_; }
462 const std::vector<VideoCodec>& send_codecs() const { return send_codecs_; } 462 const std::vector<VideoCodec>& send_codecs() const { return send_codecs_; }
463 const std::vector<VideoCodec>& codecs() const { return send_codecs(); } 463 const std::vector<VideoCodec>& codecs() const { return send_codecs(); }
464 bool rendering() const { return playout(); } 464 bool rendering() const { return playout(); }
465 const VideoOptions& options() const { return options_; } 465 const VideoOptions& options() const { return options_; }
466 const std::map<uint32_t, rtc::VideoSinkInterface<VideoFrame>*>& sinks() 466 const std::map<uint32_t, rtc::VideoSinkInterface<VideoFrame>*>& sinks()
467 const { 467 const {
468 return sinks_; 468 return sinks_;
469 } 469 }
470 int max_bps() const { return max_bps_; } 470 rtc::Optional<int> max_bps() const { return max_bps_; }
471 virtual bool SetSendParameters(const VideoSendParameters& params) { 471 virtual bool SetSendParameters(const VideoSendParameters& params) {
472 return (SetSendCodecs(params.codecs) && 472 return (SetSendCodecs(params.codecs) &&
473 SetSendRtpHeaderExtensions(params.extensions) && 473 SetSendRtpHeaderExtensions(params.extensions) &&
474 SetMaxSendBandwidth(params.max_bandwidth_bps)); 474 SetMaxSendBitrate(params.max_bitrate_bps));
475 } 475 }
476 virtual bool SetRecvParameters(const VideoRecvParameters& params) { 476 virtual bool SetRecvParameters(const VideoRecvParameters& params) {
477 return (SetRecvCodecs(params.codecs) && 477 return (SetRecvCodecs(params.codecs) &&
478 SetRecvRtpHeaderExtensions(params.extensions)); 478 SetRecvRtpHeaderExtensions(params.extensions));
479 } 479 }
480 virtual bool AddSendStream(const StreamParams& sp) { 480 virtual bool AddSendStream(const StreamParams& sp) {
481 return RtpHelper<VideoMediaChannel>::AddSendStream(sp); 481 return RtpHelper<VideoMediaChannel>::AddSendStream(sp);
482 } 482 }
483 virtual bool RemoveSendStream(uint32_t ssrc) { 483 virtual bool RemoveSendStream(uint32_t ssrc) {
484 return RtpHelper<VideoMediaChannel>::RemoveSendStream(ssrc); 484 return RtpHelper<VideoMediaChannel>::RemoveSendStream(ssrc);
(...skipping 65 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 return false; 550 return false;
551 } 551 }
552 send_codecs_ = codecs; 552 send_codecs_ = codecs;
553 553
554 return true; 554 return true;
555 } 555 }
556 bool SetOptions(const VideoOptions& options) { 556 bool SetOptions(const VideoOptions& options) {
557 options_ = options; 557 options_ = options;
558 return true; 558 return true;
559 } 559 }
560 bool SetMaxSendBandwidth(int bps) { 560 bool SetMaxSendBitrate(rtc::Optional<int> bps) {
561 max_bps_ = bps; 561 max_bps_ = bps;
562 return true; 562 return true;
563 } 563 }
564 564
565 FakeVideoEngine* engine_; 565 FakeVideoEngine* engine_;
566 std::vector<VideoCodec> recv_codecs_; 566 std::vector<VideoCodec> recv_codecs_;
567 std::vector<VideoCodec> send_codecs_; 567 std::vector<VideoCodec> send_codecs_;
568 std::map<uint32_t, rtc::VideoSinkInterface<VideoFrame>*> sinks_; 568 std::map<uint32_t, rtc::VideoSinkInterface<VideoFrame>*> sinks_;
569 std::map<uint32_t, VideoCapturer*> capturers_; 569 std::map<uint32_t, VideoCapturer*> capturers_;
570 VideoOptions options_; 570 VideoOptions options_;
571 int max_bps_; 571 rtc::Optional<int> max_bps_;
572 }; 572 };
573 573
574 // Dummy option class, needed for the DataTraits abstraction in 574 // Dummy option class, needed for the DataTraits abstraction in
575 // channel_unittest.c. 575 // channel_unittest.c.
576 class DataOptions {}; 576 class DataOptions {};
577 577
578 class FakeDataMediaChannel : public RtpHelper<DataMediaChannel> { 578 class FakeDataMediaChannel : public RtpHelper<DataMediaChannel> {
579 public: 579 public:
580 explicit FakeDataMediaChannel(void* unused, const DataOptions& options) 580 explicit FakeDataMediaChannel(void* unused, const DataOptions& options)
581 : send_blocked_(false), max_bps_(-1) {} 581 : send_blocked_(false) {}
582 ~FakeDataMediaChannel() {} 582 ~FakeDataMediaChannel() {}
583 const std::vector<DataCodec>& recv_codecs() const { return recv_codecs_; } 583 const std::vector<DataCodec>& recv_codecs() const { return recv_codecs_; }
584 const std::vector<DataCodec>& send_codecs() const { return send_codecs_; } 584 const std::vector<DataCodec>& send_codecs() const { return send_codecs_; }
585 const std::vector<DataCodec>& codecs() const { return send_codecs(); } 585 const std::vector<DataCodec>& codecs() const { return send_codecs(); }
586 int max_bps() const { return max_bps_; } 586 rtc::Optional<int> max_bps() const { return max_bps_; }
587 587
588 virtual bool SetSendParameters(const DataSendParameters& params) { 588 virtual bool SetSendParameters(const DataSendParameters& params) {
589 return (SetSendCodecs(params.codecs) && 589 return (SetSendCodecs(params.codecs) &&
590 SetMaxSendBandwidth(params.max_bandwidth_bps)); 590 SetMaxSendBitrate(params.max_bitrate_bps));
591 } 591 }
592 virtual bool SetRecvParameters(const DataRecvParameters& params) { 592 virtual bool SetRecvParameters(const DataRecvParameters& params) {
593 return SetRecvCodecs(params.codecs); 593 return SetRecvCodecs(params.codecs);
594 } 594 }
595 virtual bool SetSend(bool send) { return set_sending(send); } 595 virtual bool SetSend(bool send) { return set_sending(send); }
596 virtual bool SetReceive(bool receive) { 596 virtual bool SetReceive(bool receive) {
597 set_playout(receive); 597 set_playout(receive);
598 return true; 598 return true;
599 } 599 }
600 virtual bool AddRecvStream(const StreamParams& sp) { 600 virtual bool AddRecvStream(const StreamParams& sp) {
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
636 return true; 636 return true;
637 } 637 }
638 bool SetSendCodecs(const std::vector<DataCodec>& codecs) { 638 bool SetSendCodecs(const std::vector<DataCodec>& codecs) {
639 if (fail_set_send_codecs()) { 639 if (fail_set_send_codecs()) {
640 // Fake the failure in SetSendCodecs. 640 // Fake the failure in SetSendCodecs.
641 return false; 641 return false;
642 } 642 }
643 send_codecs_ = codecs; 643 send_codecs_ = codecs;
644 return true; 644 return true;
645 } 645 }
646 bool SetMaxSendBandwidth(int bps) { 646 bool SetMaxSendBitrate(rtc::Optional<int> bps) {
647 max_bps_ = bps; 647 max_bps_ = bps;
648 return true; 648 return true;
649 } 649 }
650 650
651 std::vector<DataCodec> recv_codecs_; 651 std::vector<DataCodec> recv_codecs_;
652 std::vector<DataCodec> send_codecs_; 652 std::vector<DataCodec> send_codecs_;
653 SendDataParams last_sent_data_params_; 653 SendDataParams last_sent_data_params_;
654 std::string last_sent_data_; 654 std::string last_sent_data_;
655 bool send_blocked_; 655 bool send_blocked_;
656 int max_bps_; 656 rtc::Optional<int> max_bps_;
657 }; 657 };
658 658
659 // A base class for all of the shared parts between FakeVoiceEngine 659 // A base class for all of the shared parts between FakeVoiceEngine
660 // and FakeVideoEngine. 660 // and FakeVideoEngine.
661 class FakeBaseEngine { 661 class FakeBaseEngine {
662 public: 662 public:
663 FakeBaseEngine() 663 FakeBaseEngine()
664 : options_changed_(false), 664 : options_changed_(false),
665 fail_create_channel_(false) {} 665 fail_create_channel_(false) {}
666 void set_fail_create_channel(bool fail) { fail_create_channel_ = fail; } 666 void set_fail_create_channel(bool fail) { fail_create_channel_ = fail; }
(...skipping 225 matching lines...) Expand 10 before | Expand all | Expand 10 after
892 892
893 private: 893 private:
894 std::vector<FakeDataMediaChannel*> channels_; 894 std::vector<FakeDataMediaChannel*> channels_;
895 std::vector<DataCodec> data_codecs_; 895 std::vector<DataCodec> data_codecs_;
896 DataChannelType last_channel_type_; 896 DataChannelType last_channel_type_;
897 }; 897 };
898 898
899 } // namespace cricket 899 } // namespace cricket
900 900
901 #endif // WEBRTC_MEDIA_BASE_FAKEMEDIAENGINE_H_ 901 #endif // WEBRTC_MEDIA_BASE_FAKEMEDIAENGINE_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698