OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 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 "media/formats/webm/webm_tracks_parser.h" | 5 #include "media/formats/webm/webm_tracks_parser.h" |
6 | 6 |
7 #include <stddef.h> | 7 #include <stddef.h> |
8 #include <stdint.h> | 8 #include <stdint.h> |
9 | 9 |
10 #include <memory> | 10 #include <memory> |
(...skipping 134 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
145 tb.AddAudioTrack(1, 1, "A_VORBIS", "audio", "", -1, 2, 8000); | 145 tb.AddAudioTrack(1, 1, "A_VORBIS", "audio", "", -1, 2, 8000); |
146 tb.AddVideoTrack(2, 2, "V_VP8", "video", "", -1, 320, 240); | 146 tb.AddVideoTrack(2, 2, "V_VP8", "video", "", -1, 320, 240); |
147 const std::vector<uint8_t> buf = tb.Finish(); | 147 const std::vector<uint8_t> buf = tb.Finish(); |
148 | 148 |
149 std::unique_ptr<WebMTracksParser> parser( | 149 std::unique_ptr<WebMTracksParser> parser( |
150 new WebMTracksParser(media_log_, true)); | 150 new WebMTracksParser(media_log_, true)); |
151 int result = parser->Parse(&buf[0], buf.size()); | 151 int result = parser->Parse(&buf[0], buf.size()); |
152 EXPECT_LE(0, result); | 152 EXPECT_LE(0, result); |
153 EXPECT_EQ(static_cast<int>(buf.size()), result); | 153 EXPECT_EQ(static_cast<int>(buf.size()), result); |
154 | 154 |
155 EXPECT_EQ(kNoTimestamp(), | 155 EXPECT_EQ(kNoTimestamp, |
156 parser->GetAudioDefaultDuration(kDefaultTimecodeScaleInUs)); | 156 parser->GetAudioDefaultDuration(kDefaultTimecodeScaleInUs)); |
157 EXPECT_EQ(kNoTimestamp(), | 157 EXPECT_EQ(kNoTimestamp, |
158 parser->GetVideoDefaultDuration(kDefaultTimecodeScaleInUs)); | 158 parser->GetVideoDefaultDuration(kDefaultTimecodeScaleInUs)); |
159 | 159 |
160 const VideoDecoderConfig& video_config = parser->video_decoder_config(); | 160 const VideoDecoderConfig& video_config = parser->video_decoder_config(); |
161 EXPECT_TRUE(video_config.IsValidConfig()); | 161 EXPECT_TRUE(video_config.IsValidConfig()); |
162 EXPECT_EQ(320, video_config.coded_size().width()); | 162 EXPECT_EQ(320, video_config.coded_size().width()); |
163 EXPECT_EQ(240, video_config.coded_size().height()); | 163 EXPECT_EQ(240, video_config.coded_size().height()); |
164 | 164 |
165 const AudioDecoderConfig& audio_config = parser->audio_decoder_config(); | 165 const AudioDecoderConfig& audio_config = parser->audio_decoder_config(); |
166 EXPECT_TRUE(audio_config.IsValidConfig()); | 166 EXPECT_TRUE(audio_config.IsValidConfig()); |
167 EXPECT_EQ(CHANNEL_LAYOUT_STEREO, audio_config.channel_layout()); | 167 EXPECT_EQ(CHANNEL_LAYOUT_STEREO, audio_config.channel_layout()); |
(...skipping 11 matching lines...) Expand all Loading... |
179 std::unique_ptr<WebMTracksParser> parser( | 179 std::unique_ptr<WebMTracksParser> parser( |
180 new WebMTracksParser(media_log_, true)); | 180 new WebMTracksParser(media_log_, true)); |
181 int result = parser->Parse(&buf[0], buf.size()); | 181 int result = parser->Parse(&buf[0], buf.size()); |
182 EXPECT_LE(0, result); | 182 EXPECT_LE(0, result); |
183 EXPECT_EQ(static_cast<int>(buf.size()), result); | 183 EXPECT_EQ(static_cast<int>(buf.size()), result); |
184 | 184 |
185 EXPECT_EQ(base::TimeDelta::FromMicroseconds(12000), | 185 EXPECT_EQ(base::TimeDelta::FromMicroseconds(12000), |
186 parser->GetAudioDefaultDuration(kDefaultTimecodeScaleInUs)); | 186 parser->GetAudioDefaultDuration(kDefaultTimecodeScaleInUs)); |
187 EXPECT_EQ(base::TimeDelta::FromMicroseconds(985000), | 187 EXPECT_EQ(base::TimeDelta::FromMicroseconds(985000), |
188 parser->GetVideoDefaultDuration(5000.0)); // 5 ms resolution | 188 parser->GetVideoDefaultDuration(5000.0)); // 5 ms resolution |
189 EXPECT_EQ(kNoTimestamp(), parser->GetAudioDefaultDuration(12346.0)); | 189 EXPECT_EQ(kNoTimestamp, parser->GetAudioDefaultDuration(12346.0)); |
190 EXPECT_EQ(base::TimeDelta::FromMicroseconds(12345), | 190 EXPECT_EQ(base::TimeDelta::FromMicroseconds(12345), |
191 parser->GetAudioDefaultDuration(12345.0)); | 191 parser->GetAudioDefaultDuration(12345.0)); |
192 EXPECT_EQ(base::TimeDelta::FromMicroseconds(12003), | 192 EXPECT_EQ(base::TimeDelta::FromMicroseconds(12003), |
193 parser->GetAudioDefaultDuration(1000.3)); // 1.0003 ms resolution | 193 parser->GetAudioDefaultDuration(1000.3)); // 1.0003 ms resolution |
194 } | 194 } |
195 | 195 |
196 TEST_F(WebMTracksParserTest, InvalidZeroDefaultDurationSet) { | 196 TEST_F(WebMTracksParserTest, InvalidZeroDefaultDurationSet) { |
197 // Confirm parse error if TrackEntry DefaultDuration is present, but is 0ns. | 197 // Confirm parse error if TrackEntry DefaultDuration is present, but is 0ns. |
198 TracksBuilder tb(true); | 198 TracksBuilder tb(true); |
199 tb.AddAudioTrack(1, 1, "A_VORBIS", "audio", "", 0, 2, 8000); | 199 tb.AddAudioTrack(1, 1, "A_VORBIS", "audio", "", 0, 2, 8000); |
(...skipping 13 matching lines...) Expand all Loading... |
213 TracksBuilder tb(true); | 213 TracksBuilder tb(true); |
214 tb.AddAudioTrack(1, 1ULL << 31, "A_VORBIS", "audio", "", 40, 2, 8000); | 214 tb.AddAudioTrack(1, 1ULL << 31, "A_VORBIS", "audio", "", 40, 2, 8000); |
215 const std::vector<uint8_t> buf = tb.Finish(); | 215 const std::vector<uint8_t> buf = tb.Finish(); |
216 | 216 |
217 std::unique_ptr<WebMTracksParser> parser( | 217 std::unique_ptr<WebMTracksParser> parser( |
218 new WebMTracksParser(media_log_, true)); | 218 new WebMTracksParser(media_log_, true)); |
219 EXPECT_GT(parser->Parse(&buf[0], buf.size()),0); | 219 EXPECT_GT(parser->Parse(&buf[0], buf.size()),0); |
220 } | 220 } |
221 | 221 |
222 } // namespace media | 222 } // namespace media |
OLD | NEW |