diff options
Diffstat (limited to 'media/cast/video_receiver')
4 files changed, 16 insertions, 4 deletions
diff --git a/media/cast/video_receiver/codecs/vp8/vp8_decoder.cc b/media/cast/video_receiver/codecs/vp8/vp8_decoder.cc index d9ad3f1..84d4fa9 100644 --- a/media/cast/video_receiver/codecs/vp8/vp8_decoder.cc +++ b/media/cast/video_receiver/codecs/vp8/vp8_decoder.cc @@ -84,8 +84,10 @@ bool Vp8Decoder::Decode(const EncodedVideoFrame* encoded_frame, memcpy(decoded_frame->v_plane.data, img->planes[VPX_PLANE_V], decoded_frame->v_plane.length); - // Return frame. + cast_environment_->Logging()->InsertFrameEvent(kVideoFrameDecoded, + kFrameIdUnknown, encoded_frame->frame_id); VLOG(1) << "Decoded frame " << frame_id_int; + // Frame decoded - return frame to the user via callback. cast_environment_->PostTask(CastEnvironment::MAIN, FROM_HERE, base::Bind(frame_decoded_cb, base::Passed(&decoded_frame), render_time)); diff --git a/media/cast/video_receiver/video_decoder_unittest.cc b/media/cast/video_receiver/video_decoder_unittest.cc index dbf95dd..f03b467 100644 --- a/media/cast/video_receiver/video_decoder_unittest.cc +++ b/media/cast/video_receiver/video_decoder_unittest.cc @@ -43,7 +43,8 @@ class VideoDecoderTest : public ::testing::Test { VideoDecoderTest() : task_runner_(new test::FakeTaskRunner(&testing_clock_)), cast_environment_(new CastEnvironment(&testing_clock_, task_runner_, - task_runner_, task_runner_, task_runner_, task_runner_)), + task_runner_, task_runner_, task_runner_, task_runner_, + GetDefaultCastLoggingConfig())), test_callback_(new DecodeTestFrameCallback()) { // Configure to vp8. config_.codec = kVp8; diff --git a/media/cast/video_receiver/video_receiver.cc b/media/cast/video_receiver/video_receiver.cc index 2bcd5ce..c637d7a 100644 --- a/media/cast/video_receiver/video_receiver.cc +++ b/media/cast/video_receiver/video_receiver.cc @@ -127,7 +127,7 @@ VideoReceiver::VideoReceiver(scoped_refptr<CastEnvironment> cast_environment, } rtcp_.reset( - new Rtcp(cast_environment_->Clock(), + new Rtcp(cast_environment_, NULL, packet_sender, NULL, @@ -249,6 +249,10 @@ bool VideoReceiver::PullEncodedVideoFrame(uint32 rtp_timestamp, DCHECK(cast_environment_->CurrentlyOn(CastEnvironment::MAIN)); base::TimeTicks now = cast_environment_->Clock()->NowTicks(); *render_time = GetRenderTime(now, rtp_timestamp); + base::TimeDelta diff = now - *render_time; + + cast_environment_->Logging()->InsertFrameEvent(kVideoRenderDelay, + rtp_timestamp, diff.InMilliseconds()); // Minimum time before a frame is due to be rendered before we pull it for // decode. @@ -391,6 +395,10 @@ void VideoReceiver::IncomingParsedRtpPacket(const uint8* payload_data, time_incoming_packet_updated_ = true; } + cast_environment_->Logging()->InsertPacketEvent(kPacketReceived, + rtp_header.webrtc.header.timestamp, rtp_header.frame_id, + rtp_header.packet_id, rtp_header.max_packet_id, payload_size); + bool complete = framer_->InsertPacket(payload_data, payload_size, rtp_header); if (!complete) return; // Video frame not complete; wait for more packets. diff --git a/media/cast/video_receiver/video_receiver_unittest.cc b/media/cast/video_receiver/video_receiver_unittest.cc index 29efa5d..b5dda546 100644 --- a/media/cast/video_receiver/video_receiver_unittest.cc +++ b/media/cast/video_receiver/video_receiver_unittest.cc @@ -73,7 +73,8 @@ class VideoReceiverTest : public ::testing::Test { config_.use_external_decoder = false; task_runner_ = new test::FakeTaskRunner(&testing_clock_); cast_environment_ = new CastEnvironment(&testing_clock_, task_runner_, - task_runner_, task_runner_, task_runner_, task_runner_); + task_runner_, task_runner_, task_runner_, task_runner_, + GetDefaultCastLoggingConfig()); receiver_.reset(new PeerVideoReceiver(cast_environment_, config_, &mock_transport_)); testing_clock_.Advance( |