Commit 4a432fc0 authored by imcheng@chromium.org's avatar imcheng@chromium.org

Cast: Log target encode bitrate before a frame is encoded.

Read the target encode bitrate and bind it to the "encoded" callback
before actually encode the frame instead of reading the target bitrate
after frame has been encoded . This gives a more accurate value of
the encode bitrate each frame was encoded at.

Review URL: https://codereview.chromium.org/286203004

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@271132 0039d316-1c4b-4281-b951-d872f2087c98
parent ab2fa50e
...@@ -153,13 +153,15 @@ void VideoSender::InsertRawVideoFrame( ...@@ -153,13 +153,15 @@ void VideoSender::InsertRawVideoFrame(
video_frame, video_frame,
capture_time, capture_time,
base::Bind(&VideoSender::SendEncodedVideoFrameMainThread, base::Bind(&VideoSender::SendEncodedVideoFrameMainThread,
weak_factory_.GetWeakPtr()))) { weak_factory_.GetWeakPtr(),
current_requested_bitrate_))) {
frames_in_encoder_++; frames_in_encoder_++;
UpdateFramesInFlight(); UpdateFramesInFlight();
} }
} }
void VideoSender::SendEncodedVideoFrameMainThread( void VideoSender::SendEncodedVideoFrameMainThread(
int requested_bitrate_before_encode,
scoped_ptr<transport::EncodedVideoFrame> encoded_frame, scoped_ptr<transport::EncodedVideoFrame> encoded_frame,
const base::TimeTicks& capture_time) { const base::TimeTicks& capture_time) {
DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN));
...@@ -176,7 +178,7 @@ void VideoSender::SendEncodedVideoFrameMainThread( ...@@ -176,7 +178,7 @@ void VideoSender::SendEncodedVideoFrameMainThread(
last_send_time_, FRAME_ENCODED, VIDEO_EVENT, encoded_frame->rtp_timestamp, last_send_time_, FRAME_ENCODED, VIDEO_EVENT, encoded_frame->rtp_timestamp,
frame_id, static_cast<int>(encoded_frame->data.size()), frame_id, static_cast<int>(encoded_frame->data.size()),
encoded_frame->key_frame, encoded_frame->key_frame,
current_requested_bitrate_); requested_bitrate_before_encode);
// Used by chrome/browser/extension/api/cast_streaming/performance_test.cc // Used by chrome/browser/extension/api/cast_streaming/performance_test.cc
TRACE_EVENT_INSTANT1( TRACE_EVENT_INSTANT1(
......
...@@ -92,6 +92,7 @@ class VideoSender : public base::NonThreadSafe, ...@@ -92,6 +92,7 @@ class VideoSender : public base::NonThreadSafe,
void UpdateFramesInFlight(); void UpdateFramesInFlight();
void SendEncodedVideoFrameMainThread( void SendEncodedVideoFrameMainThread(
int requested_bitrate_before_encode,
scoped_ptr<transport::EncodedVideoFrame> encoded_frame, scoped_ptr<transport::EncodedVideoFrame> encoded_frame,
const base::TimeTicks& capture_time); const base::TimeTicks& capture_time);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment