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

Side by Side Diff: media/cast/sender/vp8_encoder.cc

Issue 1515433002: Replace uses of raw uint32's with a type-checked RtpTimeTicks data type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Speculative workaround fix for win8_chromium_ng compile error. Created 4 years, 11 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
« no previous file with comments | « media/cast/sender/video_sender.cc ('k') | media/cast/test/cast_benchmarks.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "media/cast/sender/vp8_encoder.h" 5 #include "media/cast/sender/vp8_encoder.h"
6 6
7 #include "base/debug/crash_logging.h" 7 #include "base/debug/crash_logging.h"
8 #include "base/debug/dump_without_crashing.h" 8 #include "base/debug/dump_without_crashing.h"
9 #include "base/format_macros.h" 9 #include "base/format_macros.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 encoded_frame->dependency = EncodedFrame::KEY; 219 encoded_frame->dependency = EncodedFrame::KEY;
220 encoded_frame->referenced_frame_id = encoded_frame->frame_id; 220 encoded_frame->referenced_frame_id = encoded_frame->frame_id;
221 } else { 221 } else {
222 encoded_frame->dependency = EncodedFrame::DEPENDENT; 222 encoded_frame->dependency = EncodedFrame::DEPENDENT;
223 // Frame dependencies could theoretically be relaxed by looking for the 223 // Frame dependencies could theoretically be relaxed by looking for the
224 // VPX_FRAME_IS_DROPPABLE flag, but in recent testing (Oct 2014), this 224 // VPX_FRAME_IS_DROPPABLE flag, but in recent testing (Oct 2014), this
225 // flag never seems to be set. 225 // flag never seems to be set.
226 encoded_frame->referenced_frame_id = last_encoded_frame_id_ - 1; 226 encoded_frame->referenced_frame_id = last_encoded_frame_id_ - 1;
227 } 227 }
228 encoded_frame->rtp_timestamp = 228 encoded_frame->rtp_timestamp =
229 TimeDeltaToRtpDelta(video_frame->timestamp(), kVideoFrequency); 229 RtpTimeTicks::FromTimeDelta(video_frame->timestamp(), kVideoFrequency);
230 encoded_frame->reference_time = reference_time; 230 encoded_frame->reference_time = reference_time;
231 encoded_frame->data.assign( 231 encoded_frame->data.assign(
232 static_cast<const uint8_t*>(pkt->data.frame.buf), 232 static_cast<const uint8_t*>(pkt->data.frame.buf),
233 static_cast<const uint8_t*>(pkt->data.frame.buf) + pkt->data.frame.sz); 233 static_cast<const uint8_t*>(pkt->data.frame.buf) + pkt->data.frame.sz);
234 break; // Done, since all data is provided in one CX_FRAME_PKT packet. 234 break; // Done, since all data is provided in one CX_FRAME_PKT packet.
235 } 235 }
236 DCHECK(!encoded_frame->data.empty()) 236 DCHECK(!encoded_frame->data.empty())
237 << "BUG: Encoder must provide data since lagged encoding is disabled."; 237 << "BUG: Encoder must provide data since lagged encoding is disabled.";
238 238
239 // TODO(miu): Determine when/why encoding can produce zero-length data, 239 // TODO(miu): Determine when/why encoding can produce zero-length data,
240 // which causes crypto crashes. http://crbug.com/519022 240 // which causes crypto crashes. http://crbug.com/519022
241 if (!has_seen_zero_length_encoded_frame_ && encoded_frame->data.empty()) { 241 if (!has_seen_zero_length_encoded_frame_ && encoded_frame->data.empty()) {
242 has_seen_zero_length_encoded_frame_ = true; 242 has_seen_zero_length_encoded_frame_ = true;
243 243
244 const char kZeroEncodeDetails[] = "zero-encode-details"; 244 const char kZeroEncodeDetails[] = "zero-encode-details";
245 const std::string details = base::StringPrintf( 245 const std::string details = base::StringPrintf(
246 "SV/%c,id=%" PRIu32 ",rtp=%" PRIu32 ",br=%d,kfr=%c", 246 "SV/%c,id=%" PRIu32 ",rtp=%" PRIu32 ",br=%d,kfr=%c",
247 encoded_frame->dependency == EncodedFrame::KEY ? 'K' : 'D', 247 encoded_frame->dependency == EncodedFrame::KEY ? 'K' : 'D',
248 encoded_frame->frame_id, encoded_frame->rtp_timestamp, 248 encoded_frame->frame_id, encoded_frame->rtp_timestamp.lower_32_bits(),
249 static_cast<int>(config_.rc_target_bitrate), 249 static_cast<int>(config_.rc_target_bitrate),
250 key_frame_requested_ ? 'Y' : 'N'); 250 key_frame_requested_ ? 'Y' : 'N');
251 base::debug::SetCrashKeyValue(kZeroEncodeDetails, details); 251 base::debug::SetCrashKeyValue(kZeroEncodeDetails, details);
252 // Please forward crash reports to http://crbug.com/519022: 252 // Please forward crash reports to http://crbug.com/519022:
253 base::debug::DumpWithoutCrashing(); 253 base::debug::DumpWithoutCrashing();
254 base::debug::ClearCrashKey(kZeroEncodeDetails); 254 base::debug::ClearCrashKey(kZeroEncodeDetails);
255 } 255 }
256 256
257 // Compute deadline utilization as the real-world time elapsed divided by the 257 // Compute deadline utilization as the real-world time elapsed divided by the
258 // frame duration. 258 // frame duration.
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
311 VLOG(1) << "VP8 new rc_target_bitrate: " << new_bitrate_kbit << " kbps"; 311 VLOG(1) << "VP8 new rc_target_bitrate: " << new_bitrate_kbit << " kbps";
312 } 312 }
313 313
314 void Vp8Encoder::GenerateKeyFrame() { 314 void Vp8Encoder::GenerateKeyFrame() {
315 DCHECK(thread_checker_.CalledOnValidThread()); 315 DCHECK(thread_checker_.CalledOnValidThread());
316 key_frame_requested_ = true; 316 key_frame_requested_ = true;
317 } 317 }
318 318
319 } // namespace cast 319 } // namespace cast
320 } // namespace media 320 } // namespace media
OLDNEW
« no previous file with comments | « media/cast/sender/video_sender.cc ('k') | media/cast/test/cast_benchmarks.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698