Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(12)

Side by Side Diff: webrtc/modules/video_coding/frame_buffer.cc

Issue 2911193002: Implement timing frames. (Closed)
Patch Set: Implement Holmer@ comments Created 3 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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
(...skipping 146 matching lines...) Expand 10 before | Expand all | Expand 10 after
157 // ts_126114v120700p.pdf Section 7.4.5. 157 // ts_126114v120700p.pdf Section 7.4.5.
158 // The MTSI client shall add the payload bytes as defined in this clause 158 // The MTSI client shall add the payload bytes as defined in this clause
159 // onto the last RTP packet in each group of packets which make up a key 159 // onto the last RTP packet in each group of packets which make up a key
160 // frame (I-frame or IDR frame in H.264 (AVC), or an IRAP picture in H.265 160 // frame (I-frame or IDR frame in H.264 (AVC), or an IRAP picture in H.265
161 // (HEVC)). 161 // (HEVC)).
162 if (packet.markerBit) { 162 if (packet.markerBit) {
163 RTC_DCHECK(!_rotation_set); 163 RTC_DCHECK(!_rotation_set);
164 rotation_ = packet.video_header.rotation; 164 rotation_ = packet.video_header.rotation;
165 _rotation_set = true; 165 _rotation_set = true;
166 content_type_ = packet.video_header.content_type; 166 content_type_ = packet.video_header.content_type;
167 if (packet.video_header.video_timing.is_timing_frame) {
168 timing_.is_timing_frame = true;
169 timing_.encode_start_ms =
170 ntp_time_ms_ + packet.video_header.video_timing.encode_start_delta_ms;
171 timing_.encode_finish_ms =
172 ntp_time_ms_ +
173 packet.video_header.video_timing.encode_finish_delta_ms;
174 timing_.packetization_finish_ms =
175 ntp_time_ms_ +
176 packet.video_header.video_timing.packetization_finish_delta_ms;
177 timing_.pacer_exit_ms =
178 ntp_time_ms_ + packet.video_header.video_timing.pacer_exit_delta_ms;
179 timing_.network_timestamp_ms =
180 ntp_time_ms_ +
181 packet.video_header.video_timing.network_timstamp_delta_ms;
182 timing_.network2_timestamp_ms =
183 ntp_time_ms_ +
184 packet.video_header.video_timing.network2_timstamp_delta_ms;
185 } else {
186 timing_.is_timing_frame = false;
187 }
167 } 188 }
168 189
169 if (packet.is_first_packet_in_frame) { 190 if (packet.is_first_packet_in_frame) {
170 playout_delay_ = packet.video_header.playout_delay; 191 playout_delay_ = packet.video_header.playout_delay;
171 } 192 }
172 193
173 if (_sessionInfo.complete()) { 194 if (_sessionInfo.complete()) {
174 SetState(kStateComplete); 195 SetState(kStateComplete);
175 return kCompleteSession; 196 return kCompleteSession;
176 } else if (_sessionInfo.decodable()) { 197 } else if (_sessionInfo.decodable()) {
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 size_t bytes_removed = _sessionInfo.MakeDecodable(); 296 size_t bytes_removed = _sessionInfo.MakeDecodable();
276 _length -= bytes_removed; 297 _length -= bytes_removed;
277 // Transfer frame information to EncodedFrame and create any codec 298 // Transfer frame information to EncodedFrame and create any codec
278 // specific information. 299 // specific information.
279 _frameType = _sessionInfo.FrameType(); 300 _frameType = _sessionInfo.FrameType();
280 _completeFrame = _sessionInfo.complete(); 301 _completeFrame = _sessionInfo.complete();
281 _missingFrame = !continuous; 302 _missingFrame = !continuous;
282 } 303 }
283 304
284 } // namespace webrtc 305 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/encoded_frame.cc ('k') | webrtc/modules/video_coding/frame_object.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698