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_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_ | 11 #ifndef WEBRTC_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_ |
12 #define WEBRTC_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_ | 12 #define WEBRTC_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_ |
13 | 13 |
| 14 #include <string> |
14 #include <vector> | 15 #include <vector> |
15 | 16 |
16 #include "webrtc/modules/include/module_common_types.h" | 17 #include "webrtc/modules/include/module_common_types.h" |
17 #include "webrtc/typedefs.h" | 18 #include "webrtc/typedefs.h" |
18 #include "webrtc/video_frame.h" | 19 #include "webrtc/video_frame.h" |
19 | 20 |
20 namespace webrtc { | 21 namespace webrtc { |
21 | 22 |
22 // Error codes | 23 // Error codes |
23 #define VCM_FRAME_NOT_READY 3 | 24 #define VCM_FRAME_NOT_READY 3 |
(...skipping 25 matching lines...) Expand all Loading... |
49 | 50 |
50 enum VCMTemporalDecimation { | 51 enum VCMTemporalDecimation { |
51 kBitrateOverUseDecimation, | 52 kBitrateOverUseDecimation, |
52 }; | 53 }; |
53 | 54 |
54 struct VCMFrameCount { | 55 struct VCMFrameCount { |
55 uint32_t numKeyFrames; | 56 uint32_t numKeyFrames; |
56 uint32_t numDeltaFrames; | 57 uint32_t numDeltaFrames; |
57 }; | 58 }; |
58 | 59 |
59 // Callback class used for sending data ready to be packetized | |
60 // Deprecated. | |
61 // TODO(perkj): Remove once OnEncoderImplementationName is not used. | |
62 class VCMPacketizationCallback { | |
63 public: | |
64 // TODO(perkj): Refactor this. It does not belong in VCMPacketizationCallback. | |
65 virtual void OnEncoderImplementationName(const char* implementation_name) {} | |
66 | |
67 protected: | |
68 virtual ~VCMPacketizationCallback() {} | |
69 }; | |
70 | |
71 // Callback class used for passing decoded frames which are ready to be | 60 // Callback class used for passing decoded frames which are ready to be |
72 // rendered. | 61 // rendered. |
73 class VCMReceiveCallback { | 62 class VCMReceiveCallback { |
74 public: | 63 public: |
75 virtual int32_t FrameToRender(VideoFrame& videoFrame) = 0; // NOLINT | 64 virtual int32_t FrameToRender(VideoFrame& videoFrame) = 0; // NOLINT |
76 virtual int32_t ReceivedDecodedReferenceFrame(const uint64_t pictureId) { | 65 virtual int32_t ReceivedDecodedReferenceFrame(const uint64_t pictureId) { |
77 return -1; | 66 return -1; |
78 } | 67 } |
79 // Called when the current receive codec changes. | 68 // Called when the current receive codec changes. |
80 virtual void OnIncomingPayloadType(int payload_type) {} | 69 virtual void OnIncomingPayloadType(int payload_type) {} |
81 virtual void OnDecoderImplementationName(const char* implementation_name) {} | 70 virtual void OnDecoderImplementationName(const char* implementation_name) {} |
82 | 71 |
83 protected: | 72 protected: |
84 virtual ~VCMReceiveCallback() {} | 73 virtual ~VCMReceiveCallback() {} |
85 }; | 74 }; |
86 | 75 |
87 // Callback class used for informing the user of the bit rate and frame rate | 76 // Callback class used for informing the user of the bit rate and frame rate, |
88 // produced by the | 77 // and the name of the encoder. |
89 // encoder. | |
90 class VCMSendStatisticsCallback { | 78 class VCMSendStatisticsCallback { |
91 public: | 79 public: |
92 virtual int32_t SendStatistics(const uint32_t bitRate, | 80 virtual int32_t SendStatistics(const uint32_t bitRate, |
93 const uint32_t frameRate) = 0; | 81 const uint32_t frameRate, |
| 82 std::string&& encoder_name) = 0; |
94 | 83 |
95 protected: | 84 protected: |
96 virtual ~VCMSendStatisticsCallback() {} | 85 virtual ~VCMSendStatisticsCallback() {} |
97 }; | 86 }; |
98 | 87 |
99 // Callback class used for informing the user of the incoming bit rate and frame | 88 // Callback class used for informing the user of the incoming bit rate and frame |
100 // rate. | 89 // rate. |
101 class VCMReceiveStatisticsCallback { | 90 class VCMReceiveStatisticsCallback { |
102 public: | 91 public: |
103 virtual void OnReceiveRatesUpdated(uint32_t bitRate, uint32_t frameRate) = 0; | 92 virtual void OnReceiveRatesUpdated(uint32_t bitRate, uint32_t frameRate) = 0; |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
207 public: | 196 public: |
208 virtual void RenderBufferSizeMs(int buffer_size_ms) = 0; | 197 virtual void RenderBufferSizeMs(int buffer_size_ms) = 0; |
209 | 198 |
210 protected: | 199 protected: |
211 virtual ~VCMRenderBufferSizeCallback() {} | 200 virtual ~VCMRenderBufferSizeCallback() {} |
212 }; | 201 }; |
213 | 202 |
214 } // namespace webrtc | 203 } // namespace webrtc |
215 | 204 |
216 #endif // WEBRTC_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_ | 205 #endif // WEBRTC_MODULES_VIDEO_CODING_INCLUDE_VIDEO_CODING_DEFINES_H_ |
OLD | NEW |