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 * WEBRTC VP8 wrapper interface | 10 * WEBRTC VP8 wrapper interface |
(...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
128 bool missing_frames, | 128 bool missing_frames, |
129 const RTPFragmentationHeader* fragmentation, | 129 const RTPFragmentationHeader* fragmentation, |
130 const CodecSpecificInfo* codec_specific_info, | 130 const CodecSpecificInfo* codec_specific_info, |
131 int64_t /*render_time_ms*/) override; | 131 int64_t /*render_time_ms*/) override; |
132 | 132 |
133 int RegisterDecodeCompleteCallback(DecodedImageCallback* callback) override; | 133 int RegisterDecodeCompleteCallback(DecodedImageCallback* callback) override; |
134 int Release() override; | 134 int Release() override; |
135 | 135 |
136 const char* ImplementationName() const override; | 136 const char* ImplementationName() const override; |
137 | 137 |
| 138 struct DeblockParams { |
| 139 int max_level = 6; // Deblocking strength: [0, 16]. |
| 140 int degrade_qp = 1; // If QP value is below, start lowering |max_level|. |
| 141 int min_qp = 0; // If QP value is below, turn off deblocking. |
| 142 }; |
| 143 |
138 private: | 144 private: |
| 145 class QpSmoother; |
139 int ReturnFrame(const vpx_image_t* img, | 146 int ReturnFrame(const vpx_image_t* img, |
140 uint32_t timeStamp, | 147 uint32_t timeStamp, |
141 int64_t ntp_time_ms, | 148 int64_t ntp_time_ms, |
142 int qp); | 149 int qp); |
143 | 150 |
144 const bool use_postproc_arm_; | 151 const bool use_postproc_arm_; |
145 | 152 |
146 I420BufferPool buffer_pool_; | 153 I420BufferPool buffer_pool_; |
147 DecodedImageCallback* decode_complete_callback_; | 154 DecodedImageCallback* decode_complete_callback_; |
148 bool inited_; | 155 bool inited_; |
149 vpx_codec_ctx_t* decoder_; | 156 vpx_codec_ctx_t* decoder_; |
150 int propagation_cnt_; | 157 int propagation_cnt_; |
151 int last_frame_width_; | 158 int last_frame_width_; |
152 int last_frame_height_; | 159 int last_frame_height_; |
153 bool key_frame_required_; | 160 bool key_frame_required_; |
| 161 DeblockParams deblock_; |
| 162 const std::unique_ptr<QpSmoother> qp_smoother_; |
154 }; | 163 }; |
155 } // namespace webrtc | 164 } // namespace webrtc |
156 | 165 |
157 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_VP8_IMPL_H_ | 166 #endif // WEBRTC_MODULES_VIDEO_CODING_CODECS_VP8_VP8_IMPL_H_ |
OLD | NEW |