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

Unified Diff: media/cast/sender/video_sender.cc

Issue 1913503002: Memory copy the VideoFrame to match the requirement for HW encoders. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Addressed comments. Created 4 years, 8 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 side-by-side diff with in-line comments
Download patch
Index: media/cast/sender/video_sender.cc
diff --git a/media/cast/sender/video_sender.cc b/media/cast/sender/video_sender.cc
index 498b71646dff29ba246bad4589f8a800b5050164..a2a730578912395f45394738c97e20cbcb0737f7 100644
--- a/media/cast/sender/video_sender.cc
+++ b/media/cast/sender/video_sender.cc
@@ -52,12 +52,12 @@ const int64_t kMinKeyFrameRequestOnPliIntervalMs = 500;
void LogVideoCaptureTimestamps(CastEnvironment* cast_environment,
const media::VideoFrame& video_frame,
RtpTimeTicks rtp_timestamp) {
- scoped_ptr<FrameEvent> capture_begin_event(new FrameEvent());
+ std::unique_ptr<FrameEvent> capture_begin_event(new FrameEvent());
capture_begin_event->type = FRAME_CAPTURE_BEGIN;
capture_begin_event->media_type = VIDEO_EVENT;
capture_begin_event->rtp_timestamp = rtp_timestamp;
- scoped_ptr<FrameEvent> capture_end_event(new FrameEvent());
+ std::unique_ptr<FrameEvent> capture_end_event(new FrameEvent());
capture_end_event->type = FRAME_CAPTURE_END;
capture_end_event->media_type = VIDEO_EVENT;
capture_end_event->rtp_timestamp = rtp_timestamp;
@@ -300,7 +300,7 @@ void VideoSender::InsertRawVideoFrame(
}
}
-scoped_ptr<VideoFrameFactory> VideoSender::CreateVideoFrameFactory() {
+std::unique_ptr<VideoFrameFactory> VideoSender::CreateVideoFrameFactory() {
return video_encoder_ ? video_encoder_->CreateVideoFrameFactory() : nullptr;
}
@@ -321,12 +321,16 @@ base::TimeDelta VideoSender::GetInFlightMediaDuration() const {
void VideoSender::OnEncodedVideoFrame(
const scoped_refptr<media::VideoFrame>& video_frame,
int encoder_bitrate,
- scoped_ptr<SenderEncodedFrame> encoded_frame) {
+ std::unique_ptr<SenderEncodedFrame> encoded_frame) {
DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
frames_in_encoder_--;
DCHECK_GE(frames_in_encoder_, 0);
+ // Encoding was exited with errors.
+ if (!encoded_frame)
+ return;
+
duration_in_encoder_ =
last_enqueued_frame_reference_time_ - encoded_frame->reference_time;

Powered by Google App Engine
This is Rietveld 408576698