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

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

Issue 545593002: [Cast] Track audio queued in encoder; account for it in ShouldDropNextFrame(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase + MERGE (post-hubbe's refactoring changes) Created 6 years, 3 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
« no previous file with comments | « media/cast/sender/video_sender.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: media/cast/sender/video_sender.cc
diff --git a/media/cast/sender/video_sender.cc b/media/cast/sender/video_sender.cc
index e47fafa6a8f658647dcfb1e90974289e1b60542b..9f8b6f9bd2e0f9c7eaf49019d46c219e930f72e5 100644
--- a/media/cast/sender/video_sender.cc
+++ b/media/cast/sender/video_sender.cc
@@ -40,6 +40,7 @@ VideoSender::VideoSender(
video_config.target_playout_delay,
NewFixedCongestionControl(
(video_config.min_bitrate + video_config.max_bitrate) / 2)),
+ frames_in_encoder_(0),
last_bitrate_(0),
weak_factory_(this) {
cast_initialization_status_ = STATUS_VIDEO_UNINITIALIZED;
@@ -126,7 +127,7 @@ void VideoSender::InsertRawVideoFrame(
if (video_encoder_->EncodeVideoFrame(
video_frame,
capture_time,
- base::Bind(&FrameSender::SendEncodedFrame,
+ base::Bind(&VideoSender::OnEncodedVideoFrame,
weak_factory_.GetWeakPtr(),
bitrate))) {
frames_in_encoder_++;
@@ -135,9 +136,24 @@ void VideoSender::InsertRawVideoFrame(
}
}
+int VideoSender::GetNumberOfFramesInEncoder() const {
+ return frames_in_encoder_;
+}
+
void VideoSender::OnAck(uint32 frame_id) {
video_encoder_->LatestFrameIdToReference(frame_id);
}
+void VideoSender::OnEncodedVideoFrame(
+ int encoder_bitrate,
+ scoped_ptr<EncodedFrame> encoded_frame) {
+ DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
+
+ frames_in_encoder_--;
+ DCHECK_GE(frames_in_encoder_, 0);
+
+ SendEncodedFrame(encoder_bitrate, encoded_frame.Pass());
+}
+
} // namespace cast
} // namespace media
« no previous file with comments | « media/cast/sender/video_sender.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698