| OLD | NEW |
| 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/file_path.h" | 7 #include "base/file_path.h" |
| 8 #include "base/path_service.h" | 8 #include "base/path_service.h" |
| 9 #include "base/threading/thread.h" | 9 #include "base/threading/thread.h" |
| 10 #include "media/base/filters.h" | 10 #include "media/base/filters.h" |
| (...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 175 //} | 175 //} |
| 176 | 176 |
| 177 TEST_F(FFmpegDemuxerTest, Initialize_Successful) { | 177 TEST_F(FFmpegDemuxerTest, Initialize_Successful) { |
| 178 InitializeDemuxer(CreateDataSource("bear-320x240.webm")); | 178 InitializeDemuxer(CreateDataSource("bear-320x240.webm")); |
| 179 | 179 |
| 180 // Video stream should be present. | 180 // Video stream should be present. |
| 181 scoped_refptr<DemuxerStream> stream = | 181 scoped_refptr<DemuxerStream> stream = |
| 182 demuxer_->GetStream(DemuxerStream::VIDEO); | 182 demuxer_->GetStream(DemuxerStream::VIDEO); |
| 183 ASSERT_TRUE(stream); | 183 ASSERT_TRUE(stream); |
| 184 EXPECT_EQ(DemuxerStream::VIDEO, stream->type()); | 184 EXPECT_EQ(DemuxerStream::VIDEO, stream->type()); |
| 185 ASSERT_TRUE(stream->GetAVStream()); | 185 |
| 186 const VideoDecoderConfig& video_config = stream->video_decoder_config(); |
| 187 EXPECT_EQ(kCodecVP8, video_config.codec()); |
| 188 EXPECT_EQ(VideoFrame::YV12, video_config.format()); |
| 189 EXPECT_EQ(320, video_config.coded_size().width()); |
| 190 EXPECT_EQ(240, video_config.coded_size().height()); |
| 191 EXPECT_EQ(0, video_config.visible_rect().x()); |
| 192 EXPECT_EQ(0, video_config.visible_rect().y()); |
| 193 EXPECT_EQ(320, video_config.visible_rect().width()); |
| 194 EXPECT_EQ(240, video_config.visible_rect().height()); |
| 195 EXPECT_EQ(30000, video_config.frame_rate_numerator()); |
| 196 EXPECT_EQ(1001, video_config.frame_rate_denominator()); |
| 197 EXPECT_EQ(1, video_config.aspect_ratio_numerator()); |
| 198 EXPECT_EQ(1, video_config.aspect_ratio_denominator()); |
| 199 EXPECT_FALSE(video_config.extra_data()); |
| 200 EXPECT_EQ(0u, video_config.extra_data_size()); |
| 186 | 201 |
| 187 // Audio stream should be present. | 202 // Audio stream should be present. |
| 188 stream = demuxer_->GetStream(DemuxerStream::AUDIO); | 203 stream = demuxer_->GetStream(DemuxerStream::AUDIO); |
| 189 ASSERT_TRUE(stream); | 204 ASSERT_TRUE(stream); |
| 190 EXPECT_EQ(DemuxerStream::AUDIO, stream->type()); | 205 EXPECT_EQ(DemuxerStream::AUDIO, stream->type()); |
| 191 ASSERT_TRUE(stream->GetAVStream()); | |
| 192 | 206 |
| 193 // FFmpegDemuxer's audio streams support AudioDecoderConfig structs. | 207 const AudioDecoderConfig& audio_config = stream->audio_decoder_config(); |
| 194 const AudioDecoderConfig& config = stream->audio_decoder_config(); | 208 EXPECT_EQ(kCodecVorbis, audio_config.codec()); |
| 195 EXPECT_EQ(kCodecVorbis, config.codec()); | 209 EXPECT_EQ(16, audio_config.bits_per_channel()); |
| 196 EXPECT_EQ(16, config.bits_per_channel()); | 210 EXPECT_EQ(CHANNEL_LAYOUT_STEREO, audio_config.channel_layout()); |
| 197 EXPECT_EQ(CHANNEL_LAYOUT_STEREO, config.channel_layout()); | 211 EXPECT_EQ(44100, audio_config.samples_per_second()); |
| 198 EXPECT_EQ(44100, config.samples_per_second()); | 212 EXPECT_TRUE(audio_config.extra_data()); |
| 199 EXPECT_TRUE(config.extra_data()); | 213 EXPECT_GT(audio_config.extra_data_size(), 0u); |
| 200 EXPECT_GT(config.extra_data_size(), 0u); | |
| 201 } | 214 } |
| 202 | 215 |
| 203 TEST_F(FFmpegDemuxerTest, Read_Audio) { | 216 TEST_F(FFmpegDemuxerTest, Read_Audio) { |
| 204 // We test that on a successful audio packet read. | 217 // We test that on a successful audio packet read. |
| 205 InitializeDemuxer(CreateDataSource("bear-320x240.webm")); | 218 InitializeDemuxer(CreateDataSource("bear-320x240.webm")); |
| 206 | 219 |
| 207 // Attempt a read from the audio stream and run the message loop until done. | 220 // Attempt a read from the audio stream and run the message loop until done. |
| 208 scoped_refptr<DemuxerStream> audio = | 221 scoped_refptr<DemuxerStream> audio = |
| 209 demuxer_->GetStream(DemuxerStream::AUDIO); | 222 demuxer_->GetStream(DemuxerStream::AUDIO); |
| 210 scoped_refptr<DemuxerStreamReader> reader(new DemuxerStreamReader()); | 223 scoped_refptr<DemuxerStreamReader> reader(new DemuxerStreamReader()); |
| (...skipping 472 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 683 message_loop_.RunAllPending(); | 696 message_loop_.RunAllPending(); |
| 684 EXPECT_TRUE(reader->called()); | 697 EXPECT_TRUE(reader->called()); |
| 685 ValidateBuffer(FROM_HERE, reader->buffer(), 1740, 2436000); | 698 ValidateBuffer(FROM_HERE, reader->buffer(), 1740, 2436000); |
| 686 | 699 |
| 687 // Manually release the last reference to the buffer and verify it was freed. | 700 // Manually release the last reference to the buffer and verify it was freed. |
| 688 reader->Reset(); | 701 reader->Reset(); |
| 689 message_loop_.RunAllPending(); | 702 message_loop_.RunAllPending(); |
| 690 } | 703 } |
| 691 | 704 |
| 692 } // namespace media | 705 } // namespace media |
| OLD | NEW |