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

Side by Side Diff: content/renderer/media/video_track_recorder_unittest.cc

Issue 1313603004: MediaRecorderHandler (video part) and unittests (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Moved DCHECK_EQ() Created 5 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 unified diff | Download patch
« no previous file with comments | « content/renderer/media/video_track_recorder.cc ('k') | media/capture/webm_muxer.h » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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 "base/bind.h" 5 #include "base/bind.h"
6 #include "base/location.h" 6 #include "base/location.h"
7 #include "base/macros.h" 7 #include "base/macros.h"
8 #include "base/memory/ref_counted.h" 8 #include "base/memory/ref_counted.h"
9 #include "base/memory/scoped_ptr.h" 9 #include "base/memory/scoped_ptr.h"
10 #include "base/run_loop.h" 10 #include "base/run_loop.h"
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after
74 74
75 MOCK_METHOD4(OnEncodedVideo, 75 MOCK_METHOD4(OnEncodedVideo,
76 void(const scoped_refptr<media::VideoFrame>& frame, 76 void(const scoped_refptr<media::VideoFrame>& frame,
77 const base::StringPiece& encoded_data, 77 const base::StringPiece& encoded_data,
78 base::TimeTicks timestamp, 78 base::TimeTicks timestamp,
79 bool keyframe)); 79 bool keyframe));
80 80
81 void Encode(const scoped_refptr<media::VideoFrame>& frame, 81 void Encode(const scoped_refptr<media::VideoFrame>& frame,
82 base::TimeTicks capture_time) { 82 base::TimeTicks capture_time) {
83 EXPECT_TRUE(message_loop_.IsCurrent()); 83 EXPECT_TRUE(message_loop_.IsCurrent());
84 video_track_recorder_->OnVideoFrame(frame, capture_time); 84 video_track_recorder_->OnVideoFrameForTesting(frame, capture_time);
85 } 85 }
86 86
87 // A ChildProcess and a MessageLoopForUI are both needed to fool the Tracks 87 // A ChildProcess and a MessageLoopForUI are both needed to fool the Tracks
88 // and Sources below into believing they are on the right threads. 88 // and Sources below into believing they are on the right threads.
89 const base::MessageLoopForUI message_loop_; 89 const base::MessageLoopForUI message_loop_;
90 ChildProcess child_process_; 90 const ChildProcess child_process_;
91 91
92 // All members are non-const due to the series of initialize() calls needed. 92 // All members are non-const due to the series of initialize() calls needed.
93 // |mock_source_| is owned by |blink_source_|, |track_| by |blink_track_|. 93 // |mock_source_| is owned by |blink_source_|, |track_| by |blink_track_|.
94 MockMediaStreamVideoSource* mock_source_; 94 MockMediaStreamVideoSource* mock_source_;
95 blink::WebMediaStreamSource blink_source_; 95 blink::WebMediaStreamSource blink_source_;
96 MediaStreamVideoTrack* track_; 96 MediaStreamVideoTrack* track_;
97 blink::WebMediaStreamTrack blink_track_; 97 blink::WebMediaStreamTrack blink_track_;
98 98
99 scoped_ptr<VideoTrackRecorder> video_track_recorder_; 99 scoped_ptr<VideoTrackRecorder> video_track_recorder_;
100 100
101 private: 101 private:
102 DISALLOW_COPY_AND_ASSIGN(VideoTrackRecorderTest); 102 DISALLOW_COPY_AND_ASSIGN(VideoTrackRecorderTest);
103 }; 103 };
104 104
105 // Construct and destruct all objects, in particular |video_track_recorder_| and
106 // its inner object(s). This is a non trivial sequence.
107 TEST_F(VideoTrackRecorderTest, ConstructAndDestruct) {}
108
105 // Creates the encoder and encodes 2 frames of the same size; the encoder should 109 // Creates the encoder and encodes 2 frames of the same size; the encoder should
106 // be initialised and produce a keyframe, then a non-keyframe. Finally a frame 110 // be initialised and produce a keyframe, then a non-keyframe. Finally a frame
107 // of larger size is sent and is expected to be encoded as a keyframe. 111 // of larger size is sent and is expected to be encoded as a keyframe.
108 TEST_F(VideoTrackRecorderTest, VideoEncoding) { 112 TEST_F(VideoTrackRecorderTest, VideoEncoding) {
109 // |frame_size| cannot be arbitrarily small, should be reasonable. 113 // |frame_size| cannot be arbitrarily small, should be reasonable.
110 const gfx::Size frame_size(160, 80); 114 const gfx::Size frame_size(160, 80);
111 const scoped_refptr<media::VideoFrame> video_frame = 115 const scoped_refptr<media::VideoFrame> video_frame =
112 media::VideoFrame::CreateBlackFrame(frame_size); 116 media::VideoFrame::CreateBlackFrame(frame_size);
113 const double kFrameRate = 60.0f; 117 const double kFrameRate = 60.0f;
114 video_frame->metadata()->SetDouble(media::VideoFrameMetadata::FRAME_RATE, 118 video_frame->metadata()->SetDouble(media::VideoFrameMetadata::FRAME_RATE,
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
151 EXPECT_EQ(first_frame_encoded_data.size(), kFirstEncodedDataSize); 155 EXPECT_EQ(first_frame_encoded_data.size(), kFirstEncodedDataSize);
152 const size_t kSecondEncodedDataSize = 32; 156 const size_t kSecondEncodedDataSize = 32;
153 EXPECT_EQ(second_frame_encoded_data.size(), kSecondEncodedDataSize); 157 EXPECT_EQ(second_frame_encoded_data.size(), kSecondEncodedDataSize);
154 const size_t kThirdEncodedDataSize = 57; 158 const size_t kThirdEncodedDataSize = 57;
155 EXPECT_EQ(third_frame_encoded_data.size(), kThirdEncodedDataSize); 159 EXPECT_EQ(third_frame_encoded_data.size(), kThirdEncodedDataSize);
156 160
157 Mock::VerifyAndClearExpectations(this); 161 Mock::VerifyAndClearExpectations(this);
158 } 162 }
159 163
160 } // namespace content 164 } // namespace content
OLDNEW
« no previous file with comments | « content/renderer/media/video_track_recorder.cc ('k') | media/capture/webm_muxer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698