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

Side by Side Diff: webrtc/common_types.h

Issue 2001533003: Refactoring: Hide VideoCodec.codecSpecific as "private" (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: More zeroes Created 4 years, 7 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
« no previous file with comments | « no previous file | webrtc/common_types.cc » ('j') | webrtc/common_types.cc » ('J')
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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
11 #ifndef WEBRTC_COMMON_TYPES_H_ 11 #ifndef WEBRTC_COMMON_TYPES_H_
12 #define WEBRTC_COMMON_TYPES_H_ 12 #define WEBRTC_COMMON_TYPES_H_
13 13
14 #include <assert.h> 14 #include <assert.h>
15 #include <stddef.h> 15 #include <stddef.h>
16 #include <string.h> 16 #include <string.h>
17 17
18 #include <string> 18 #include <string>
19 #include <vector> 19 #include <vector>
20 20
21 #include "webrtc/base/checks.h"
tommi 2016/05/20 11:34:55 Let's avoid including this header here. DCHECKs a
hta-webrtc 2016/05/20 12:11:31 Done.
21 #include "webrtc/typedefs.h" 22 #include "webrtc/typedefs.h"
22 23
23 #if defined(_MSC_VER) 24 #if defined(_MSC_VER)
24 // Disable "new behavior: elements of array will be default initialized" 25 // Disable "new behavior: elements of array will be default initialized"
25 // warning. Affects OverUseDetectorOptions. 26 // warning. Affects OverUseDetectorOptions.
26 #pragma warning(disable:4351) 27 #pragma warning(disable:4351)
27 #endif 28 #endif
28 29
29 #ifdef WEBRTC_EXPORT 30 #ifdef WEBRTC_EXPORT
30 #define WEBRTC_DLLEXPORT _declspec(dllexport) 31 #define WEBRTC_DLLEXPORT _declspec(dllexport)
(...skipping 644 matching lines...) Expand 10 before | Expand all | Expand 10 after
675 int target_bitrate_bps; 676 int target_bitrate_bps;
676 // TODO(ivica): Add max_quantizer and min_quantizer? 677 // TODO(ivica): Add max_quantizer and min_quantizer?
677 }; 678 };
678 679
679 enum VideoCodecMode { 680 enum VideoCodecMode {
680 kRealtimeVideo, 681 kRealtimeVideo,
681 kScreensharing 682 kScreensharing
682 }; 683 };
683 684
684 // Common video codec properties 685 // Common video codec properties
685 struct VideoCodec { 686 class VideoCodec {
687 public:
688 VideoCodec();
689
690 // Public variables. TODO(hta): Make them private with accessors.
686 VideoCodecType codecType; 691 VideoCodecType codecType;
687 char plName[kPayloadNameSize]; 692 char plName[kPayloadNameSize];
688 unsigned char plType; 693 unsigned char plType;
689 694
690 unsigned short width; 695 unsigned short width;
691 unsigned short height; 696 unsigned short height;
692 697
693 unsigned int startBitrate; // kilobits/sec. 698 unsigned int startBitrate; // kilobits/sec.
694 unsigned int maxBitrate; // kilobits/sec. 699 unsigned int maxBitrate; // kilobits/sec.
695 unsigned int minBitrate; // kilobits/sec. 700 unsigned int minBitrate; // kilobits/sec.
696 unsigned int targetBitrate; // kilobits/sec. 701 unsigned int targetBitrate; // kilobits/sec.
697 702
698 unsigned char maxFramerate; 703 unsigned char maxFramerate;
699 704
700 VideoCodecUnion codecSpecific;
701
702 unsigned int qpMax; 705 unsigned int qpMax;
703 unsigned char numberOfSimulcastStreams; 706 unsigned char numberOfSimulcastStreams;
704 SimulcastStream simulcastStream[kMaxSimulcastStreams]; 707 SimulcastStream simulcastStream[kMaxSimulcastStreams];
705 SpatialLayer spatialLayers[kMaxSpatialLayers]; 708 SpatialLayer spatialLayers[kMaxSpatialLayers];
706 709
707 VideoCodecMode mode; 710 VideoCodecMode mode;
708 711
709 bool operator==(const VideoCodec& other) const = delete; 712 bool operator==(const VideoCodec& other) const = delete;
710 bool operator!=(const VideoCodec& other) const = delete; 713 bool operator!=(const VideoCodec& other) const = delete;
714
715 // Accessors for codec specific information.
716 // There is a const version of each that returns a reference,
717 // and a non-const version that returns a pointer, in order
718 // to allow modification of the parameters.
719 VideoCodecVP8* VP8() {
tommi 2016/05/20 11:34:55 move all of these to a source file
hta-webrtc 2016/05/20 12:11:31 Done.
720 RTC_CHECK(codecType == kVideoCodecVP8);
tommi 2016/05/20 11:34:55 I notice that some of these are CHECK while others
hta-webrtc 2016/05/20 12:11:31 Done.
721 return &codecSpecific_.VP8;
722 }
723 const VideoCodecVP8& VP8() const {
724 RTC_CHECK(codecType == kVideoCodecVP8);
725 return codecSpecific_.VP8;
726 }
727 VideoCodecVP9* VP9() {
728 RTC_DCHECK(codecType == kVideoCodecVP9);
729 return &codecSpecific_.VP9;
730 }
731 const VideoCodecVP9& VP9() const {
732 RTC_DCHECK(codecType == kVideoCodecVP9);
733 return codecSpecific_.VP9;
734 }
735 VideoCodecH264* H264() {
736 RTC_DCHECK(codecType == kVideoCodecH264);
737 return &codecSpecific_.H264;
738 }
739 const VideoCodecH264& H264() const {
740 RTC_DCHECK(codecType == kVideoCodecH264);
741 return codecSpecific_.H264;
742 }
743
744 private:
745 // TODO(hta): Consider replacing the union with a pointer type.
tommi 2016/05/20 11:34:55 having an extra pointer might not be worth it. I
hta-webrtc 2016/05/20 12:11:31 Acknowledged. Although I remember 2 years ago tha
pbos-webrtc 2016/05/20 12:26:24 If that's the case, then I think it makes more sen
746 // This will allow removing the VideoCodec* types from this file.
747 VideoCodecUnion codecSpecific_;
tommi 2016/05/20 11:34:55 since you're changing the name according to the st
hta-webrtc 2016/05/20 12:11:31 Done.
711 }; 748 };
712 749
713 // Bandwidth over-use detector options. These are used to drive 750 // Bandwidth over-use detector options. These are used to drive
714 // experimentation with bandwidth estimation parameters. 751 // experimentation with bandwidth estimation parameters.
715 // See modules/remote_bitrate_estimator/overuse_detector.h 752 // See modules/remote_bitrate_estimator/overuse_detector.h
716 struct OverUseDetectorOptions { 753 struct OverUseDetectorOptions {
717 OverUseDetectorOptions() 754 OverUseDetectorOptions()
718 : initial_slope(8.0/512.0), 755 : initial_slope(8.0/512.0),
719 initial_offset(0), 756 initial_offset(0),
720 initial_e(), 757 initial_e(),
(...skipping 172 matching lines...) Expand 10 before | Expand all | Expand 10 after
893 enum class RtcpMode { kOff, kCompound, kReducedSize }; 930 enum class RtcpMode { kOff, kCompound, kReducedSize };
894 931
895 enum NetworkState { 932 enum NetworkState {
896 kNetworkUp, 933 kNetworkUp,
897 kNetworkDown, 934 kNetworkDown,
898 }; 935 };
899 936
900 } // namespace webrtc 937 } // namespace webrtc
901 938
902 #endif // WEBRTC_COMMON_TYPES_H_ 939 #endif // WEBRTC_COMMON_TYPES_H_
OLDNEW
« no previous file with comments | « no previous file | webrtc/common_types.cc » ('j') | webrtc/common_types.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698