OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 18 matching lines...) Expand all Loading... |
29 #include "webrtc/video_send_stream.h" | 29 #include "webrtc/video_send_stream.h" |
30 | 30 |
31 namespace webrtc { | 31 namespace webrtc { |
32 | 32 |
33 class SendStatisticsProxy : public CpuOveruseMetricsObserver, | 33 class SendStatisticsProxy : public CpuOveruseMetricsObserver, |
34 public RtcpStatisticsCallback, | 34 public RtcpStatisticsCallback, |
35 public RtcpPacketTypeCounterObserver, | 35 public RtcpPacketTypeCounterObserver, |
36 public StreamDataCountersCallback, | 36 public StreamDataCountersCallback, |
37 public BitrateStatisticsObserver, | 37 public BitrateStatisticsObserver, |
38 public FrameCountObserver, | 38 public FrameCountObserver, |
39 public VideoEncoderRateObserver, | |
40 public SendSideDelayObserver { | 39 public SendSideDelayObserver { |
41 public: | 40 public: |
42 static const int kStatsTimeoutMs; | 41 static const int kStatsTimeoutMs; |
43 | 42 |
44 SendStatisticsProxy(Clock* clock, | 43 SendStatisticsProxy(Clock* clock, |
45 const VideoSendStream::Config& config, | 44 const VideoSendStream::Config& config, |
46 VideoEncoderConfig::ContentType content_type); | 45 VideoEncoderConfig::ContentType content_type); |
47 virtual ~SendStatisticsProxy(); | 46 virtual ~SendStatisticsProxy(); |
48 | 47 |
49 VideoSendStream::Stats GetStats(); | 48 VideoSendStream::Stats GetStats(); |
50 | 49 |
51 virtual void OnSendEncodedImage(const EncodedImage& encoded_image, | 50 virtual void OnSendEncodedImage(const EncodedImage& encoded_image, |
52 const CodecSpecificInfo* codec_info); | 51 const CodecSpecificInfo* codec_info); |
53 // Used to update incoming frame rate. | 52 // Used to update incoming frame rate. |
54 void OnIncomingFrame(int width, int height); | 53 void OnIncomingFrame(int width, int height); |
55 | 54 |
56 void OnEncoderStatsUpdate(uint32_t framerate, | 55 void OnEncoderStatsUpdate(uint32_t framerate, |
57 uint32_t bitrate, | 56 uint32_t bitrate, |
58 const std::string& encoder_name); | 57 const std::string& encoder_name); |
59 void OnSuspendChange(bool is_suspended); | 58 void OnSuspendChange(bool is_suspended); |
60 void OnInactiveSsrc(uint32_t ssrc); | 59 void OnInactiveSsrc(uint32_t ssrc); |
61 | 60 |
62 // Used to indicate change in content type, which may require a change in | 61 // Used to indicate change in content type, which may require a change in |
63 // how stats are collected. | 62 // how stats are collected. |
64 void SetContentType(VideoEncoderConfig::ContentType content_type); | 63 void SetContentType(VideoEncoderConfig::ContentType content_type); |
65 | 64 |
66 // Implements VideoEncoderRateObserver. | 65 // Used to update the encoder target rate. |
67 void OnSetRates(uint32_t bitrate_bps, int framerate) override; | 66 void OnSetEncoderTargetRate(uint32_t bitrate_bps); |
68 | 67 |
69 // Implements CpuOveruseMetricsObserver. | 68 // Implements CpuOveruseMetricsObserver. |
70 void OnEncodedFrameTimeMeasured(int encode_time_ms, | 69 void OnEncodedFrameTimeMeasured(int encode_time_ms, |
71 const CpuOveruseMetrics& metrics) override; | 70 const CpuOveruseMetrics& metrics) override; |
72 | 71 |
73 int GetSendFrameRate() const; | 72 int GetSendFrameRate() const; |
74 | 73 |
75 protected: | 74 protected: |
76 // From RtcpStatisticsCallback. | 75 // From RtcpStatisticsCallback. |
77 void StatisticsUpdated(const RtcpStatistics& statistics, | 76 void StatisticsUpdated(const RtcpStatistics& statistics, |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 const VideoSendStream::Stats start_stats_; | 180 const VideoSendStream::Stats start_stats_; |
182 std::map<int, QpCounters> | 181 std::map<int, QpCounters> |
183 qp_counters_; // QP counters mapped by spatial idx. | 182 qp_counters_; // QP counters mapped by spatial idx. |
184 }; | 183 }; |
185 | 184 |
186 std::unique_ptr<UmaSamplesContainer> uma_container_ GUARDED_BY(crit_); | 185 std::unique_ptr<UmaSamplesContainer> uma_container_ GUARDED_BY(crit_); |
187 }; | 186 }; |
188 | 187 |
189 } // namespace webrtc | 188 } // namespace webrtc |
190 #endif // WEBRTC_VIDEO_SEND_STATISTICS_PROXY_H_ | 189 #endif // WEBRTC_VIDEO_SEND_STATISTICS_PROXY_H_ |
OLD | NEW |