OLD | NEW |
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 <stddef.h> | 14 #include <stddef.h> |
15 #include <string.h> | 15 #include <string.h> |
16 | 16 |
17 #include <ostream> | 17 #include <ostream> |
18 #include <string> | 18 #include <string> |
19 #include <vector> | 19 #include <vector> |
20 | 20 |
21 #include "webrtc/api/video/video_content_type.h" | 21 #include "webrtc/api/video/video_content_type.h" |
22 #include "webrtc/api/video/video_rotation.h" | 22 #include "webrtc/api/video/video_rotation.h" |
| 23 #include "webrtc/api/video/video_timing.h" |
23 #include "webrtc/base/array_view.h" | 24 #include "webrtc/base/array_view.h" |
24 #include "webrtc/base/checks.h" | 25 #include "webrtc/base/checks.h" |
25 #include "webrtc/base/optional.h" | 26 #include "webrtc/base/optional.h" |
26 #include "webrtc/typedefs.h" | 27 #include "webrtc/typedefs.h" |
27 | 28 |
28 #if defined(_MSC_VER) | 29 #if defined(_MSC_VER) |
29 // Disable "new behavior: elements of array will be default initialized" | 30 // Disable "new behavior: elements of array will be default initialized" |
30 // warning. Affects OverUseDetectorOptions. | 31 // warning. Affects OverUseDetectorOptions. |
31 #pragma warning(disable : 4351) | 32 #pragma warning(disable : 4351) |
32 #endif | 33 #endif |
(...skipping 548 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 uint32_t maxFramerate; | 582 uint32_t maxFramerate; |
582 | 583 |
583 unsigned int qpMax; | 584 unsigned int qpMax; |
584 unsigned char numberOfSimulcastStreams; | 585 unsigned char numberOfSimulcastStreams; |
585 SimulcastStream simulcastStream[kMaxSimulcastStreams]; | 586 SimulcastStream simulcastStream[kMaxSimulcastStreams]; |
586 SpatialLayer spatialLayers[kMaxSpatialLayers]; | 587 SpatialLayer spatialLayers[kMaxSpatialLayers]; |
587 | 588 |
588 VideoCodecMode mode; | 589 VideoCodecMode mode; |
589 bool expect_encode_from_texture; | 590 bool expect_encode_from_texture; |
590 | 591 |
| 592 // Timing frames configuration. There is delay of delay_ms between two |
| 593 // consequent timing frames, excluding outliers. Frame is always made a |
| 594 // timing frame if it's at least outlier_ratio in percent of "ideal" average |
| 595 // frame given bitrate and framerate, i.e. if it's bigger than |
| 596 // |outlier_ratio / 100.0 * bitrate_bps / fps| in bits. This way, timing |
| 597 // frames will not be sent too often usually. Yet large frames will always |
| 598 // have timing information for debug purposes because they are more likely to |
| 599 // cause extra delays. |
| 600 struct TimingFrameTriggerThresholds { |
| 601 int64_t delay_ms; |
| 602 uint16_t outlier_ratio_percent; |
| 603 } timing_frame_thresholds; |
| 604 |
591 bool operator==(const VideoCodec& other) const = delete; | 605 bool operator==(const VideoCodec& other) const = delete; |
592 bool operator!=(const VideoCodec& other) const = delete; | 606 bool operator!=(const VideoCodec& other) const = delete; |
593 | 607 |
594 // Accessors for codec specific information. | 608 // Accessors for codec specific information. |
595 // There is a const version of each that returns a reference, | 609 // There is a const version of each that returns a reference, |
596 // and a non-const version that returns a pointer, in order | 610 // and a non-const version that returns a pointer, in order |
597 // to allow modification of the parameters. | 611 // to allow modification of the parameters. |
598 VideoCodecVP8* VP8(); | 612 VideoCodecVP8* VP8(); |
599 const VideoCodecVP8& VP8() const; | 613 const VideoCodecVP8& VP8() const; |
600 VideoCodecVP9* VP9(); | 614 VideoCodecVP9* VP9(); |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
756 // http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ | 770 // http://www.etsi.org/deliver/etsi_ts/126100_126199/126114/12.07.00_60/ |
757 // ts_126114v120700p.pdf | 771 // ts_126114v120700p.pdf |
758 bool hasVideoRotation; | 772 bool hasVideoRotation; |
759 VideoRotation videoRotation; | 773 VideoRotation videoRotation; |
760 | 774 |
761 // TODO(ilnik): Refactor this and one above to be rtc::Optional() and remove | 775 // TODO(ilnik): Refactor this and one above to be rtc::Optional() and remove |
762 // a corresponding bool flag. | 776 // a corresponding bool flag. |
763 bool hasVideoContentType; | 777 bool hasVideoContentType; |
764 VideoContentType videoContentType; | 778 VideoContentType videoContentType; |
765 | 779 |
| 780 bool has_video_timing; |
| 781 VideoTiming video_timing; |
| 782 |
766 PlayoutDelay playout_delay = {-1, -1}; | 783 PlayoutDelay playout_delay = {-1, -1}; |
767 | 784 |
768 // For identification of a stream when ssrc is not signaled. See | 785 // For identification of a stream when ssrc is not signaled. See |
769 // https://tools.ietf.org/html/draft-ietf-avtext-rid-09 | 786 // https://tools.ietf.org/html/draft-ietf-avtext-rid-09 |
770 // TODO(danilchap): Update url from draft to release version. | 787 // TODO(danilchap): Update url from draft to release version. |
771 StreamId stream_id; | 788 StreamId stream_id; |
772 StreamId repaired_stream_id; | 789 StreamId repaired_stream_id; |
773 }; | 790 }; |
774 | 791 |
775 struct RTPHeader { | 792 struct RTPHeader { |
(...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
888 enum class RtcpMode { kOff, kCompound, kReducedSize }; | 905 enum class RtcpMode { kOff, kCompound, kReducedSize }; |
889 | 906 |
890 enum NetworkState { | 907 enum NetworkState { |
891 kNetworkUp, | 908 kNetworkUp, |
892 kNetworkDown, | 909 kNetworkDown, |
893 }; | 910 }; |
894 | 911 |
895 } // namespace webrtc | 912 } // namespace webrtc |
896 | 913 |
897 #endif // WEBRTC_COMMON_TYPES_H_ | 914 #endif // WEBRTC_COMMON_TYPES_H_ |
OLD | NEW |