OLD | NEW |
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 <stddef.h> | 5 #include <stddef.h> |
6 #include <stdint.h> | 6 #include <stdint.h> |
7 | 7 |
8 #include <algorithm> | 8 #include <algorithm> |
9 #include <deque> | 9 #include <deque> |
10 #include <string> | 10 #include <string> |
(...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
201 return base::Bind(&FFmpegDemuxerTest::OnReadDone, | 201 return base::Bind(&FFmpegDemuxerTest::OnReadDone, |
202 base::Unretained(this), | 202 base::Unretained(this), |
203 location, | 203 location, |
204 read_expectation); | 204 read_expectation); |
205 } | 205 } |
206 | 206 |
207 MOCK_METHOD2(OnEncryptedMediaInitData, | 207 MOCK_METHOD2(OnEncryptedMediaInitData, |
208 void(EmeInitDataType init_data_type, | 208 void(EmeInitDataType init_data_type, |
209 const std::vector<uint8_t>& init_data)); | 209 const std::vector<uint8_t>& init_data)); |
210 | 210 |
211 void OnMediaTracksUpdated(scoped_ptr<MediaTracks> tracks) {} | 211 void OnMediaTracksUpdated(scoped_ptr<MediaTracks> tracks) { |
| 212 CHECK(tracks.get()); |
| 213 media_tracks_ = std::move(tracks); |
| 214 } |
212 | 215 |
213 // Accessor to demuxer internals. | 216 // Accessor to demuxer internals. |
214 void set_duration_known(bool duration_known) { | 217 void set_duration_known(bool duration_known) { |
215 demuxer_->duration_known_ = duration_known; | 218 demuxer_->duration_known_ = duration_known; |
216 } | 219 } |
217 | 220 |
218 bool IsStreamStopped(DemuxerStream::Type type) { | 221 bool IsStreamStopped(DemuxerStream::Type type) { |
219 DemuxerStream* stream = demuxer_->GetStream(type); | 222 DemuxerStream* stream = demuxer_->GetStream(type); |
220 CHECK(stream); | 223 CHECK(stream); |
221 return !static_cast<FFmpegDemuxerStream*>(stream)->demuxer_; | 224 return !static_cast<FFmpegDemuxerStream*>(stream)->demuxer_; |
222 } | 225 } |
223 | 226 |
224 // Fixture members. | 227 // Fixture members. |
225 scoped_ptr<FileDataSource> data_source_; | 228 scoped_ptr<FileDataSource> data_source_; |
226 scoped_ptr<FFmpegDemuxer> demuxer_; | 229 scoped_ptr<FFmpegDemuxer> demuxer_; |
227 StrictMock<MockDemuxerHost> host_; | 230 StrictMock<MockDemuxerHost> host_; |
| 231 scoped_ptr<MediaTracks> media_tracks_; |
228 base::MessageLoop message_loop_; | 232 base::MessageLoop message_loop_; |
229 | 233 |
230 AVFormatContext* format_context() { | 234 AVFormatContext* format_context() { |
231 return demuxer_->glue_->format_context(); | 235 return demuxer_->glue_->format_context(); |
232 } | 236 } |
233 | 237 |
234 int preferred_seeking_stream_index() const { | 238 int preferred_seeking_stream_index() const { |
235 return demuxer_->preferred_stream_for_seeking_.first; | 239 return demuxer_->preferred_stream_for_seeking_.first; |
236 } | 240 } |
237 | 241 |
(...skipping 945 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1183 audio->Read(NewReadCB(FROM_HERE, 870, 0, true)); | 1187 audio->Read(NewReadCB(FROM_HERE, 870, 0, true)); |
1184 message_loop_.Run(); | 1188 message_loop_.Run(); |
1185 | 1189 |
1186 audio->Read(NewReadCB(FROM_HERE, 872, 34830, true)); | 1190 audio->Read(NewReadCB(FROM_HERE, 872, 34830, true)); |
1187 message_loop_.Run(); | 1191 message_loop_.Run(); |
1188 #else | 1192 #else |
1189 InitializeDemuxerAndExpectPipelineStatus(DEMUXER_ERROR_NO_SUPPORTED_STREAMS); | 1193 InitializeDemuxerAndExpectPipelineStatus(DEMUXER_ERROR_NO_SUPPORTED_STREAMS); |
1190 #endif | 1194 #endif |
1191 } | 1195 } |
1192 | 1196 |
| 1197 TEST_F(FFmpegDemuxerTest, Read_Mp4_Media_Track_Info) { |
| 1198 CreateDemuxer("bear.mp4"); |
| 1199 InitializeDemuxer(); |
| 1200 |
| 1201 EXPECT_EQ(media_tracks_->tracks().size(), 2u); |
| 1202 |
| 1203 const MediaTrack& audio_track = *(media_tracks_->tracks()[0]); |
| 1204 EXPECT_EQ(audio_track.type(), MediaTrack::Audio); |
| 1205 EXPECT_EQ(audio_track.id(), "1"); |
| 1206 EXPECT_EQ(audio_track.kind(), "main"); |
| 1207 EXPECT_EQ(audio_track.label(), "GPAC ISO Audio Handler"); |
| 1208 EXPECT_EQ(audio_track.language(), "und"); |
| 1209 |
| 1210 const MediaTrack& video_track = *(media_tracks_->tracks()[1]); |
| 1211 EXPECT_EQ(video_track.type(), MediaTrack::Video); |
| 1212 EXPECT_EQ(video_track.id(), "2"); |
| 1213 EXPECT_EQ(video_track.kind(), "main"); |
| 1214 EXPECT_EQ(video_track.label(), "GPAC ISO Video Handler"); |
| 1215 EXPECT_EQ(video_track.language(), "und"); |
| 1216 } |
| 1217 |
1193 #endif // defined(USE_PROPRIETARY_CODECS) | 1218 #endif // defined(USE_PROPRIETARY_CODECS) |
1194 | 1219 |
| 1220 TEST_F(FFmpegDemuxerTest, Read_Webm_Media_Track_Info) { |
| 1221 CreateDemuxer("bear.webm"); |
| 1222 InitializeDemuxer(); |
| 1223 |
| 1224 EXPECT_EQ(media_tracks_->tracks().size(), 2u); |
| 1225 |
| 1226 const MediaTrack& video_track = *(media_tracks_->tracks()[0]); |
| 1227 EXPECT_EQ(video_track.type(), MediaTrack::Video); |
| 1228 EXPECT_EQ(video_track.id(), "1"); |
| 1229 EXPECT_EQ(video_track.kind(), "main"); |
| 1230 EXPECT_EQ(video_track.label(), ""); |
| 1231 EXPECT_EQ(video_track.language(), ""); |
| 1232 |
| 1233 const MediaTrack& audio_track = *(media_tracks_->tracks()[1]); |
| 1234 EXPECT_EQ(audio_track.type(), MediaTrack::Audio); |
| 1235 EXPECT_EQ(audio_track.id(), "2"); |
| 1236 EXPECT_EQ(audio_track.kind(), "main"); |
| 1237 EXPECT_EQ(audio_track.label(), ""); |
| 1238 EXPECT_EQ(audio_track.language(), ""); |
| 1239 } |
| 1240 |
1195 } // namespace media | 1241 } // namespace media |
OLD | NEW |