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

Side by Side Diff: media/filters/ffmpeg_demuxer_unittest.cc

Issue 7484054: Migrate Pipeline & PipelineImpl to PipelineStatusCB. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix CR nits Created 9 years, 4 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 | Annotate | Revision Log
« no previous file with comments | « media/filters/ffmpeg_demuxer_factory.cc ('k') | media/tools/player_wtl/movie.cc » ('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 (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 <deque> 5 #include <deque>
6 6
7 #include "base/threading/thread.h" 7 #include "base/threading/thread.h"
8 #include "media/base/filters.h" 8 #include "media/base/filters.h"
9 #include "media/base/mock_callback.h" 9 #include "media/base/mock_callback.h"
10 #include "media/base/mock_ffmpeg.h" 10 #include "media/base/mock_ffmpeg.h"
(...skipping 129 matching lines...) Expand 10 before | Expand all | Expand 10 after
140 void InitializeDemuxer() { 140 void InitializeDemuxer() {
141 InitializeDemuxerMocks(); 141 InitializeDemuxerMocks();
142 142
143 // Since we ignore data streams, the duration should be equal to the longest 143 // Since we ignore data streams, the duration should be equal to the longest
144 // supported stream's duration (audio, in this case). 144 // supported stream's duration (audio, in this case).
145 base::TimeDelta expected_duration = 145 base::TimeDelta expected_duration =
146 base::TimeDelta::FromMicroseconds(kDurations[AV_STREAM_AUDIO]); 146 base::TimeDelta::FromMicroseconds(kDurations[AV_STREAM_AUDIO]);
147 EXPECT_CALL(host_, SetDuration(expected_duration)); 147 EXPECT_CALL(host_, SetDuration(expected_duration));
148 148
149 demuxer_->Initialize(data_source_.get(), 149 demuxer_->Initialize(data_source_.get(),
150 NewExpectedStatusCallback(PIPELINE_OK)); 150 NewExpectedStatusCB(PIPELINE_OK));
151 message_loop_.RunAllPending(); 151 message_loop_.RunAllPending();
152 } 152 }
153 153
154 // Fixture members. 154 // Fixture members.
155 scoped_refptr<FFmpegDemuxer> demuxer_; 155 scoped_refptr<FFmpegDemuxer> demuxer_;
156 scoped_refptr<StrictMock<MockDataSource> > data_source_; 156 scoped_refptr<StrictMock<MockDataSource> > data_source_;
157 StrictMock<MockFilterHost> host_; 157 StrictMock<MockFilterHost> host_;
158 MessageLoop message_loop_; 158 MessageLoop message_loop_;
159 159
160 // FFmpeg fixtures. 160 // FFmpeg fixtures.
(...skipping 19 matching lines...) Expand all
180 const uint8 FFmpegDemuxerTest::kAudioData[kDataSize] = {0, 1, 2, 3}; 180 const uint8 FFmpegDemuxerTest::kAudioData[kDataSize] = {0, 1, 2, 3};
181 const uint8 FFmpegDemuxerTest::kVideoData[kDataSize] = {4, 5, 6, 7}; 181 const uint8 FFmpegDemuxerTest::kVideoData[kDataSize] = {4, 5, 6, 7};
182 const uint8* FFmpegDemuxerTest::kNullData = NULL; 182 const uint8* FFmpegDemuxerTest::kNullData = NULL;
183 183
184 TEST_F(FFmpegDemuxerTest, Initialize_OpenFails) { 184 TEST_F(FFmpegDemuxerTest, Initialize_OpenFails) {
185 // Simulate av_open_input_file() failing. 185 // Simulate av_open_input_file() failing.
186 EXPECT_CALL(mock_ffmpeg_, AVOpenInputFile(_, _, NULL, 0, NULL)) 186 EXPECT_CALL(mock_ffmpeg_, AVOpenInputFile(_, _, NULL, 0, NULL))
187 .WillOnce(Return(-1)); 187 .WillOnce(Return(-1));
188 188
189 demuxer_->Initialize(data_source_.get(), 189 demuxer_->Initialize(data_source_.get(),
190 NewExpectedStatusCallback(DEMUXER_ERROR_COULD_NOT_OPEN)); 190 NewExpectedStatusCB(DEMUXER_ERROR_COULD_NOT_OPEN));
191 message_loop_.RunAllPending(); 191 message_loop_.RunAllPending();
192 } 192 }
193 193
194 TEST_F(FFmpegDemuxerTest, Initialize_ParseFails) { 194 TEST_F(FFmpegDemuxerTest, Initialize_ParseFails) {
195 // Simulate av_find_stream_info() failing. 195 // Simulate av_find_stream_info() failing.
196 EXPECT_CALL(mock_ffmpeg_, AVOpenInputFile(_, _, NULL, 0, NULL)) 196 EXPECT_CALL(mock_ffmpeg_, AVOpenInputFile(_, _, NULL, 0, NULL))
197 .WillOnce(DoAll(SetArgumentPointee<0>(&format_context_), Return(0))); 197 .WillOnce(DoAll(SetArgumentPointee<0>(&format_context_), Return(0)));
198 EXPECT_CALL(mock_ffmpeg_, AVFindStreamInfo(&format_context_)) 198 EXPECT_CALL(mock_ffmpeg_, AVFindStreamInfo(&format_context_))
199 .WillOnce(Return(AVERROR(EIO))); 199 .WillOnce(Return(AVERROR(EIO)));
200 EXPECT_CALL(mock_ffmpeg_, AVCloseInputFile(&format_context_)); 200 EXPECT_CALL(mock_ffmpeg_, AVCloseInputFile(&format_context_));
201 201
202 demuxer_->Initialize( 202 demuxer_->Initialize(
203 data_source_.get(), 203 data_source_.get(),
204 NewExpectedStatusCallback(DEMUXER_ERROR_COULD_NOT_PARSE)); 204 NewExpectedStatusCB(DEMUXER_ERROR_COULD_NOT_PARSE));
205 message_loop_.RunAllPending(); 205 message_loop_.RunAllPending();
206 } 206 }
207 207
208 TEST_F(FFmpegDemuxerTest, Initialize_NoStreams) { 208 TEST_F(FFmpegDemuxerTest, Initialize_NoStreams) {
209 // Simulate media with no parseable streams. 209 // Simulate media with no parseable streams.
210 { 210 {
211 SCOPED_TRACE(""); 211 SCOPED_TRACE("");
212 InitializeDemuxerMocks(); 212 InitializeDemuxerMocks();
213 } 213 }
214 format_context_.nb_streams = 0; 214 format_context_.nb_streams = 0;
215 215
216 demuxer_->Initialize( 216 demuxer_->Initialize(
217 data_source_.get(), 217 data_source_.get(),
218 NewExpectedStatusCallback(DEMUXER_ERROR_NO_SUPPORTED_STREAMS)); 218 NewExpectedStatusCB(DEMUXER_ERROR_NO_SUPPORTED_STREAMS));
219 message_loop_.RunAllPending(); 219 message_loop_.RunAllPending();
220 } 220 }
221 221
222 TEST_F(FFmpegDemuxerTest, Initialize_DataStreamOnly) { 222 TEST_F(FFmpegDemuxerTest, Initialize_DataStreamOnly) {
223 // Simulate media with a data stream but no audio or video streams. 223 // Simulate media with a data stream but no audio or video streams.
224 { 224 {
225 SCOPED_TRACE(""); 225 SCOPED_TRACE("");
226 InitializeDemuxerMocks(); 226 InitializeDemuxerMocks();
227 } 227 }
228 EXPECT_EQ(format_context_.streams[0], &streams_[AV_STREAM_DATA]); 228 EXPECT_EQ(format_context_.streams[0], &streams_[AV_STREAM_DATA]);
229 format_context_.nb_streams = 1; 229 format_context_.nb_streams = 1;
230 230
231 demuxer_->Initialize( 231 demuxer_->Initialize(
232 data_source_.get(), 232 data_source_.get(),
233 NewExpectedStatusCallback(DEMUXER_ERROR_NO_SUPPORTED_STREAMS)); 233 NewExpectedStatusCB(DEMUXER_ERROR_NO_SUPPORTED_STREAMS));
234 message_loop_.RunAllPending(); 234 message_loop_.RunAllPending();
235 } 235 }
236 236
237 TEST_F(FFmpegDemuxerTest, Initialize_Successful) { 237 TEST_F(FFmpegDemuxerTest, Initialize_Successful) {
238 { 238 {
239 SCOPED_TRACE(""); 239 SCOPED_TRACE("");
240 InitializeDemuxer(); 240 InitializeDemuxer();
241 } 241 }
242 242
243 // First stream should be video and support the FFmpegDemuxerStream interface. 243 // First stream should be video and support the FFmpegDemuxerStream interface.
(...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after
855 { 855 {
856 SCOPED_TRACE(""); 856 SCOPED_TRACE("");
857 InitializeDemuxer(); 857 InitializeDemuxer();
858 } 858 }
859 EXPECT_CALL(*data_source_, IsStreaming()) 859 EXPECT_CALL(*data_source_, IsStreaming())
860 .WillOnce(Return(false)); 860 .WillOnce(Return(false));
861 EXPECT_FALSE(demuxer_->IsStreaming()); 861 EXPECT_FALSE(demuxer_->IsStreaming());
862 } 862 }
863 863
864 } // namespace media 864 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/ffmpeg_demuxer_factory.cc ('k') | media/tools/player_wtl/movie.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698