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

Side by Side Diff: media/base/android/sdk_media_codec_bridge_unittest.cc

Issue 2365103002: Send the h264 SPS and PPS configuration parameters to AVDA (Closed)
Patch Set: Shot in the dark Created 4 years, 2 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
« no previous file with comments | « media/base/android/sdk_media_codec_bridge.cc ('k') | media/filters/gpu_video_decoder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/base/android/sdk_media_codec_bridge.h" 5 #include "media/base/android/sdk_media_codec_bridge.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 135 matching lines...) Expand 10 before | Expand all | Expand 10 after
146 input_pts += base::TimeDelta::FromMicroseconds(33000); 146 input_pts += base::TimeDelta::FromMicroseconds(33000);
147 timestamp = new_timestamp; 147 timestamp = new_timestamp;
148 } 148 }
149 } 149 }
150 150
151 TEST(SdkMediaCodecBridgeTest, Initialize) { 151 TEST(SdkMediaCodecBridgeTest, Initialize) {
152 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 152 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
153 153
154 std::unique_ptr<media::MediaCodecBridge> media_codec; 154 std::unique_ptr<media::MediaCodecBridge> media_codec;
155 media_codec.reset(VideoCodecBridge::CreateDecoder( 155 media_codec.reset(VideoCodecBridge::CreateDecoder(
156 kCodecH264, false, gfx::Size(640, 480), nullptr, nullptr)); 156 kCodecH264, false, gfx::Size(640, 480), nullptr, nullptr,
157 std::vector<uint8_t>(), std::vector<uint8_t>()));
157 } 158 }
158 159
159 TEST(SdkMediaCodecBridgeTest, DoNormal) { 160 TEST(SdkMediaCodecBridgeTest, DoNormal) {
160 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE(); 161 SKIP_TEST_IF_MEDIA_CODEC_BRIDGE_IS_NOT_AVAILABLE();
161 162
162 std::unique_ptr<media::AudioCodecBridge> media_codec; 163 std::unique_ptr<media::AudioCodecBridge> media_codec;
163 media_codec.reset(AudioCodecBridge::Create(kCodecMP3)); 164 media_codec.reset(AudioCodecBridge::Create(kCodecMP3));
164 165
165 ASSERT_TRUE(media_codec->ConfigureAndStart(kCodecMP3, 44100, 2, nullptr, 0, 0, 166 ASSERT_TRUE(media_codec->ConfigureAndStart(kCodecMP3, 44100, 2, nullptr, 0, 0,
166 0, nullptr)); 167 0, nullptr));
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after
267 // Seek Preroll is < 0. 268 // Seek Preroll is < 0.
268 EXPECT_FALSE( 269 EXPECT_FALSE(
269 media_codec->ConfigureAndStart(kCodecOpus, 48000, 2, dummy_extra_data, 270 media_codec->ConfigureAndStart(kCodecOpus, 48000, 2, dummy_extra_data,
270 sizeof(dummy_extra_data), 0, -1, nullptr)); 271 sizeof(dummy_extra_data), 0, -1, nullptr));
271 } 272 }
272 273
273 TEST(SdkMediaCodecBridgeTest, PresentationTimestampsDoNotDecrease) { 274 TEST(SdkMediaCodecBridgeTest, PresentationTimestampsDoNotDecrease) {
274 SKIP_TEST_IF_VP8_DECODER_IS_NOT_SUPPORTED(); 275 SKIP_TEST_IF_VP8_DECODER_IS_NOT_SUPPORTED();
275 276
276 std::unique_ptr<VideoCodecBridge> media_codec(VideoCodecBridge::CreateDecoder( 277 std::unique_ptr<VideoCodecBridge> media_codec(VideoCodecBridge::CreateDecoder(
277 kCodecVP8, false, gfx::Size(320, 240), nullptr, nullptr)); 278 kCodecVP8, false, gfx::Size(320, 240), nullptr, nullptr,
279 std::vector<uint8_t>(), std::vector<uint8_t>()));
278 EXPECT_TRUE(media_codec.get()); 280 EXPECT_TRUE(media_codec.get());
279 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("vp8-I-frame-320x240"); 281 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("vp8-I-frame-320x240");
280 DecodeMediaFrame(media_codec.get(), buffer->data(), buffer->data_size(), 282 DecodeMediaFrame(media_codec.get(), buffer->data(), buffer->data_size(),
281 base::TimeDelta(), base::TimeDelta()); 283 base::TimeDelta(), base::TimeDelta());
282 284
283 // Simulate a seek to 10 seconds, and each chunk has 2 I-frames. 285 // Simulate a seek to 10 seconds, and each chunk has 2 I-frames.
284 std::vector<uint8_t> chunk(buffer->data(), 286 std::vector<uint8_t> chunk(buffer->data(),
285 buffer->data() + buffer->data_size()); 287 buffer->data() + buffer->data_size());
286 chunk.insert(chunk.end(), buffer->data(), 288 chunk.insert(chunk.end(), buffer->data(),
287 buffer->data() + buffer->data_size()); 289 buffer->data() + buffer->data_size());
288 media_codec->Flush(); 290 media_codec->Flush();
289 DecodeMediaFrame(media_codec.get(), &chunk[0], chunk.size(), 291 DecodeMediaFrame(media_codec.get(), &chunk[0], chunk.size(),
290 base::TimeDelta::FromMicroseconds(10000000), 292 base::TimeDelta::FromMicroseconds(10000000),
291 base::TimeDelta::FromMicroseconds(9900000)); 293 base::TimeDelta::FromMicroseconds(9900000));
292 294
293 // Simulate a seek to 5 seconds. 295 // Simulate a seek to 5 seconds.
294 media_codec->Flush(); 296 media_codec->Flush();
295 DecodeMediaFrame(media_codec.get(), &chunk[0], chunk.size(), 297 DecodeMediaFrame(media_codec.get(), &chunk[0], chunk.size(),
296 base::TimeDelta::FromMicroseconds(5000000), 298 base::TimeDelta::FromMicroseconds(5000000),
297 base::TimeDelta::FromMicroseconds(4900000)); 299 base::TimeDelta::FromMicroseconds(4900000));
298 } 300 }
299 301
300 TEST(SdkMediaCodecBridgeTest, CreateUnsupportedCodec) { 302 TEST(SdkMediaCodecBridgeTest, CreateUnsupportedCodec) {
301 EXPECT_EQ(nullptr, AudioCodecBridge::Create(kUnknownAudioCodec)); 303 EXPECT_EQ(nullptr, AudioCodecBridge::Create(kUnknownAudioCodec));
302 EXPECT_EQ(nullptr, VideoCodecBridge::CreateDecoder(kUnknownVideoCodec, false, 304 EXPECT_EQ(nullptr,
303 gfx::Size(320, 240), 305 VideoCodecBridge::CreateDecoder(
304 nullptr, nullptr)); 306 kUnknownVideoCodec, false, gfx::Size(320, 240), nullptr,
307 nullptr, std::vector<uint8_t>(), std::vector<uint8_t>()));
305 } 308 }
306 309
307 } // namespace media 310 } // namespace media
OLDNEW
« no previous file with comments | « media/base/android/sdk_media_codec_bridge.cc ('k') | media/filters/gpu_video_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698