| 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 |