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

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

Issue 1567783005: Run ac3, eac3 and hevc unit tests in all configs (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@ac3-eac3-passthrough
Patch Set: rebase Created 4 years, 11 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
OLDNEW
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 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
93 93
94 demuxer_.reset(new FFmpegDemuxer( 94 demuxer_.reset(new FFmpegDemuxer(
95 message_loop_.task_runner(), data_source_.get(), 95 message_loop_.task_runner(), data_source_.get(),
96 encrypted_media_init_data_cb, new MediaLog())); 96 encrypted_media_init_data_cb, new MediaLog()));
97 } 97 }
98 98
99 MOCK_METHOD1(CheckPoint, void(int v)); 99 MOCK_METHOD1(CheckPoint, void(int v));
100 100
101 void InitializeDemuxerWithTimelineOffset(bool enable_text, 101 void InitializeDemuxerWithTimelineOffset(bool enable_text,
102 base::Time timeline_offset) { 102 base::Time timeline_offset) {
103 EXPECT_CALL(host_, SetDuration(_)); 103 if (demuxer_init_expected_status_ == PIPELINE_OK)
ddorwin 2016/01/23 00:38:56 This doesn't really need to be a member. Add Init
servolk 2016/02/10 18:58:50 Done.
104 EXPECT_CALL(host_, SetDuration(_));
104 WaitableMessageLoopEvent event; 105 WaitableMessageLoopEvent event;
105 demuxer_->Initialize(&host_, event.GetPipelineStatusCB(), enable_text); 106 demuxer_->Initialize(&host_, event.GetPipelineStatusCB(), enable_text);
106 demuxer_->timeline_offset_ = timeline_offset; 107 demuxer_->timeline_offset_ = timeline_offset;
107 event.RunAndWaitForStatus(PIPELINE_OK); 108 event.RunAndWaitForStatus(demuxer_init_expected_status_);
108 } 109 }
109 110
110 void InitializeDemuxerText(bool enable_text) { 111 void InitializeDemuxerText(bool enable_text) {
ddorwin 2016/01/23 00:38:56 Unrelated except that it may avoid adding an |expe
servolk 2016/02/10 18:58:50 Yeah, I think it would be cleaner if we just had a
111 InitializeDemuxerWithTimelineOffset(enable_text, base::Time()); 112 InitializeDemuxerWithTimelineOffset(enable_text, base::Time());
112 } 113 }
113 114
114 void InitializeDemuxer() { 115 void InitializeDemuxer() {
115 InitializeDemuxerText(false); 116 InitializeDemuxerText(false);
116 } 117 }
117 118
118 MOCK_METHOD2(OnReadDoneCalled, void(int, int64_t)); 119 MOCK_METHOD2(OnReadDoneCalled, void(int, int64_t));
119 120
120 struct ReadExpectation { 121 struct ReadExpectation {
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
198 199
199 bool IsStreamStopped(DemuxerStream::Type type) { 200 bool IsStreamStopped(DemuxerStream::Type type) {
200 DemuxerStream* stream = demuxer_->GetStream(type); 201 DemuxerStream* stream = demuxer_->GetStream(type);
201 CHECK(stream); 202 CHECK(stream);
202 return !static_cast<FFmpegDemuxerStream*>(stream)->demuxer_; 203 return !static_cast<FFmpegDemuxerStream*>(stream)->demuxer_;
203 } 204 }
204 205
205 // Fixture members. 206 // Fixture members.
206 scoped_ptr<FileDataSource> data_source_; 207 scoped_ptr<FileDataSource> data_source_;
207 scoped_ptr<FFmpegDemuxer> demuxer_; 208 scoped_ptr<FFmpegDemuxer> demuxer_;
209 media::PipelineStatus demuxer_init_expected_status_ = PIPELINE_OK;
208 StrictMock<MockDemuxerHost> host_; 210 StrictMock<MockDemuxerHost> host_;
209 base::MessageLoop message_loop_; 211 base::MessageLoop message_loop_;
210 212
211 AVFormatContext* format_context() { 213 AVFormatContext* format_context() {
212 return demuxer_->glue_->format_context(); 214 return demuxer_->glue_->format_context();
213 } 215 }
214 216
215 int preferred_seeking_stream_index() const { 217 int preferred_seeking_stream_index() const {
216 return demuxer_->preferred_stream_for_seeking_.first; 218 return demuxer_->preferred_stream_for_seeking_.first;
217 } 219 }
(...skipping 892 matching lines...) Expand 10 before | Expand all | Expand 10 after
1110 1112
1111 DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::VIDEO); 1113 DemuxerStream* stream = demuxer_->GetStream(DemuxerStream::VIDEO);
1112 ASSERT_TRUE(stream); 1114 ASSERT_TRUE(stream);
1113 1115
1114 const VideoDecoderConfig& video_config = stream->video_decoder_config(); 1116 const VideoDecoderConfig& video_config = stream->video_decoder_config();
1115 EXPECT_EQ(gfx::Size(639, 360), video_config.natural_size()); 1117 EXPECT_EQ(gfx::Size(639, 360), video_config.natural_size());
1116 } 1118 }
1117 1119
1118 #endif 1120 #endif
1119 1121
1120 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
1121 TEST_F(FFmpegDemuxerTest, HEVC_in_MP4_container) { 1122 TEST_F(FFmpegDemuxerTest, HEVC_in_MP4_container) {
1122 CreateDemuxer("bear-hevc-frag.mp4"); 1123 CreateDemuxer("bear-hevc-frag.mp4");
1124 #if BUILDFLAG(ENABLE_HEVC_DEMUXING)
1123 InitializeDemuxer(); 1125 InitializeDemuxer();
1124 1126
1125 DemuxerStream* video = demuxer_->GetStream(DemuxerStream::VIDEO); 1127 DemuxerStream* video = demuxer_->GetStream(DemuxerStream::VIDEO);
1126 ASSERT_TRUE(video); 1128 ASSERT_TRUE(video);
1127 1129
1128 video->Read(NewReadCB(FROM_HERE, 3569, 66733, true)); 1130 video->Read(NewReadCB(FROM_HERE, 3569, 66733, true));
1129 message_loop_.Run(); 1131 message_loop_.Run();
1130 1132
1131 video->Read(NewReadCB(FROM_HERE, 1042, 200200, false)); 1133 video->Read(NewReadCB(FROM_HERE, 1042, 200200, false));
1132 message_loop_.Run(); 1134 message_loop_.Run();
1135 #else
1136 demuxer_init_expected_status_ = DEMUXER_ERROR_NO_SUPPORTED_STREAMS;
1137 InitializeDemuxer();
1138 #endif
1133 } 1139 }
1134 #endif
1135 1140
1136 #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
1137 TEST_F(FFmpegDemuxerTest, Read_AC3_Audio) { 1141 TEST_F(FFmpegDemuxerTest, Read_AC3_Audio) {
1138 CreateDemuxer("bear-ac3-only-frag.mp4"); 1142 CreateDemuxer("bear-ac3-only-frag.mp4");
1143 #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
1139 InitializeDemuxer(); 1144 InitializeDemuxer();
1140 1145
1141 // Attempt a read from the audio stream and run the message loop until done. 1146 // Attempt a read from the audio stream and run the message loop until done.
1142 DemuxerStream* audio = demuxer_->GetStream(DemuxerStream::AUDIO); 1147 DemuxerStream* audio = demuxer_->GetStream(DemuxerStream::AUDIO);
1143 1148
1144 // Read the first two frames and check that we are getting expected data 1149 // Read the first two frames and check that we are getting expected data
1145 audio->Read(NewReadCB(FROM_HERE, 834, 0, true)); 1150 audio->Read(NewReadCB(FROM_HERE, 834, 0, true));
1146 message_loop_.Run(); 1151 message_loop_.Run();
1147 1152
1148 audio->Read(NewReadCB(FROM_HERE, 836, 34830, true)); 1153 audio->Read(NewReadCB(FROM_HERE, 836, 34830, true));
1149 message_loop_.Run(); 1154 message_loop_.Run();
1155 #else
1156 demuxer_init_expected_status_ = DEMUXER_ERROR_NO_SUPPORTED_STREAMS;
1157 InitializeDemuxer();
1158 #endif
1150 } 1159 }
1151 1160
1152 TEST_F(FFmpegDemuxerTest, Read_EAC3_Audio) { 1161 TEST_F(FFmpegDemuxerTest, Read_EAC3_Audio) {
1153 CreateDemuxer("bear-eac3-only-frag.mp4"); 1162 CreateDemuxer("bear-eac3-only-frag.mp4");
1163 #if BUILDFLAG(ENABLE_AC3_EAC3_AUDIO_DEMUXING)
1154 InitializeDemuxer(); 1164 InitializeDemuxer();
1155 1165
1156 // Attempt a read from the audio stream and run the message loop until done. 1166 // Attempt a read from the audio stream and run the message loop until done.
1157 DemuxerStream* audio = demuxer_->GetStream(DemuxerStream::AUDIO); 1167 DemuxerStream* audio = demuxer_->GetStream(DemuxerStream::AUDIO);
1158 1168
1159 // Read the first two frames and check that we are getting expected data 1169 // Read the first two frames and check that we are getting expected data
1160 audio->Read(NewReadCB(FROM_HERE, 870, 0, true)); 1170 audio->Read(NewReadCB(FROM_HERE, 870, 0, true));
1161 message_loop_.Run(); 1171 message_loop_.Run();
1162 1172
1163 audio->Read(NewReadCB(FROM_HERE, 872, 34830, true)); 1173 audio->Read(NewReadCB(FROM_HERE, 872, 34830, true));
1164 message_loop_.Run(); 1174 message_loop_.Run();
1175 #else
1176 demuxer_init_expected_status_ = DEMUXER_ERROR_NO_SUPPORTED_STREAMS;
1177 InitializeDemuxer();
1178 #endif
1165 } 1179 }
1166 #endif // ENABLE_AC3_EAC3_AUDIO_DEMUXING
1167 1180
1168 } // namespace media 1181 } // namespace media
OLDNEW
« no previous file with comments | « no previous file | media/formats/mp4/mp4_stream_parser_unittest.cc » ('j') | media/formats/mp4/mp4_stream_parser_unittest.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698