Index: media/filters/ffmpeg_demuxer_unittest.cc |
diff --git a/media/filters/ffmpeg_demuxer_unittest.cc b/media/filters/ffmpeg_demuxer_unittest.cc |
index a0611e9b5cfea3d247ffcdd22cff004d52e3e850..c13747ffc23cf0552e57b52c4576322690b32c88 100644 |
--- a/media/filters/ffmpeg_demuxer_unittest.cc |
+++ b/media/filters/ffmpeg_demuxer_unittest.cc |
@@ -17,6 +17,7 @@ |
#include "base/threading/thread.h" |
#include "media/base/decrypt_config.h" |
#include "media/base/media_log.h" |
+#include "media/base/media_tracks.h" |
#include "media/base/mock_demuxer_host.h" |
#include "media/base/test_helpers.h" |
#include "media/base/timestamp_constants.h" |
@@ -91,9 +92,12 @@ class FFmpegDemuxerTest : public testing::Test { |
Demuxer::EncryptedMediaInitDataCB encrypted_media_init_data_cb = base::Bind( |
&FFmpegDemuxerTest::OnEncryptedMediaInitData, base::Unretained(this)); |
+ Demuxer::MediaTracksUpdatedCB tracks_updated_cb = base::Bind( |
+ &FFmpegDemuxerTest::OnMediaTracksUpdated, base::Unretained(this)); |
+ |
demuxer_.reset(new FFmpegDemuxer( |
message_loop_.task_runner(), data_source_.get(), |
- encrypted_media_init_data_cb, new MediaLog())); |
+ encrypted_media_init_data_cb, tracks_updated_cb, new MediaLog())); |
} |
MOCK_METHOD1(CheckPoint, void(int v)); |
@@ -204,6 +208,11 @@ class FFmpegDemuxerTest : public testing::Test { |
void(EmeInitDataType init_data_type, |
const std::vector<uint8_t>& init_data)); |
+ void OnMediaTracksUpdated(scoped_ptr<MediaTracks> tracks) { |
+ CHECK(tracks.get()); |
+ media_tracks_ = std::move(tracks); |
+ } |
+ |
// Accessor to demuxer internals. |
void set_duration_known(bool duration_known) { |
demuxer_->duration_known_ = duration_known; |
@@ -219,6 +228,7 @@ class FFmpegDemuxerTest : public testing::Test { |
scoped_ptr<FileDataSource> data_source_; |
scoped_ptr<FFmpegDemuxer> demuxer_; |
StrictMock<MockDemuxerHost> host_; |
+ scoped_ptr<MediaTracks> media_tracks_; |
base::MessageLoop message_loop_; |
AVFormatContext* format_context() { |
@@ -1184,6 +1194,27 @@ TEST_F(FFmpegDemuxerTest, Read_EAC3_Audio) { |
#endif |
} |
+TEST_F(FFmpegDemuxerTest, Read_Media_Track_Info) { |
+ CreateDemuxer("bear.mp4"); |
+ InitializeDemuxer(); |
+ |
+ EXPECT_EQ(media_tracks_->tracks().size(), 2u); |
+ |
+ const MediaTrack& audio_track = *(media_tracks_->tracks()[0]); |
+ EXPECT_EQ(audio_track.type(), MediaTrack::Audio); |
+ EXPECT_EQ(audio_track.id(), "1"); |
+ EXPECT_EQ(audio_track.kind(), "main"); |
+ EXPECT_EQ(audio_track.label(), "GPAC ISO Audio Handler"); |
+ EXPECT_EQ(audio_track.language(), "und"); |
+ |
+ const MediaTrack& video_track = *(media_tracks_->tracks()[1]); |
+ EXPECT_EQ(video_track.type(), MediaTrack::Video); |
+ EXPECT_EQ(video_track.id(), "2"); |
+ EXPECT_EQ(video_track.kind(), "main"); |
+ EXPECT_EQ(video_track.label(), "GPAC ISO Video Handler"); |
+ EXPECT_EQ(video_track.language(), "und"); |
+} |
+ |
#endif // defined(USE_PROPRIETARY_CODECS) |
} // namespace media |