| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2016 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 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 69 // Start the frame buffer, has no effect if the frame buffer is started. | 69 // Start the frame buffer, has no effect if the frame buffer is started. |
| 70 // The frame buffer is started upon construction. | 70 // The frame buffer is started upon construction. |
| 71 void Start(); | 71 void Start(); |
| 72 | 72 |
| 73 // Stop the frame buffer, causing any sleeping thread in NextFrame to | 73 // Stop the frame buffer, causing any sleeping thread in NextFrame to |
| 74 // return immediately. | 74 // return immediately. |
| 75 void Stop(); | 75 void Stop(); |
| 76 | 76 |
| 77 private: | 77 private: |
| 78 struct FrameKey { | 78 struct FrameKey { |
| 79 FrameKey() : picture_id(0), spatial_layer(0) {} | 79 FrameKey() : picture_id(-1), spatial_layer(0) {} |
| 80 FrameKey(uint16_t picture_id, uint8_t spatial_layer) | 80 FrameKey(int64_t picture_id, uint8_t spatial_layer) |
| 81 : picture_id(picture_id), spatial_layer(spatial_layer) {} | 81 : picture_id(picture_id), spatial_layer(spatial_layer) {} |
| 82 | 82 |
| 83 bool operator<(const FrameKey& rhs) const { | 83 bool operator<(const FrameKey& rhs) const { |
| 84 if (picture_id == rhs.picture_id) | 84 if (picture_id == rhs.picture_id) |
| 85 return spatial_layer < rhs.spatial_layer; | 85 return spatial_layer < rhs.spatial_layer; |
| 86 return AheadOf(rhs.picture_id, picture_id); | 86 return picture_id < rhs.picture_id; |
| 87 } | 87 } |
| 88 | 88 |
| 89 bool operator<=(const FrameKey& rhs) const { return !(rhs < *this); } | 89 bool operator<=(const FrameKey& rhs) const { return !(rhs < *this); } |
| 90 | 90 |
| 91 uint16_t picture_id; | 91 int64_t picture_id; |
| 92 uint8_t spatial_layer; | 92 uint8_t spatial_layer; |
| 93 }; | 93 }; |
| 94 | 94 |
| 95 struct FrameInfo { | 95 struct FrameInfo { |
| 96 // The maximum number of frames that can depend on this frame. | 96 // The maximum number of frames that can depend on this frame. |
| 97 static constexpr size_t kMaxNumDependentFrames = 8; | 97 static constexpr size_t kMaxNumDependentFrames = 8; |
| 98 | 98 |
| 99 // Which other frames that have direct unfulfilled dependencies | 99 // Which other frames that have direct unfulfilled dependencies |
| 100 // on this frame. | 100 // on this frame. |
| 101 // TODO(philipel): Add simple modify/access functions to prevent adding too | 101 // TODO(philipel): Add simple modify/access functions to prevent adding too |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 180 VCMReceiveStatisticsCallback* const stats_callback_; | 180 VCMReceiveStatisticsCallback* const stats_callback_; |
| 181 int64_t last_log_non_decoded_ms_ RTC_GUARDED_BY(crit_); | 181 int64_t last_log_non_decoded_ms_ RTC_GUARDED_BY(crit_); |
| 182 | 182 |
| 183 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(FrameBuffer); | 183 RTC_DISALLOW_IMPLICIT_CONSTRUCTORS(FrameBuffer); |
| 184 }; | 184 }; |
| 185 | 185 |
| 186 } // namespace video_coding | 186 } // namespace video_coding |
| 187 } // namespace webrtc | 187 } // namespace webrtc |
| 188 | 188 |
| 189 #endif // WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER2_H_ | 189 #endif // WEBRTC_MODULES_VIDEO_CODING_FRAME_BUFFER2_H_ |
| OLD | NEW |