| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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 <string> | 5 #include <string> |
| 6 | 6 |
| 7 #include "base/basictypes.h" | 7 #include "base/basictypes.h" |
| 8 #include "base/memory/scoped_ptr.h" | 8 #include "base/memory/scoped_ptr.h" |
| 9 #include "media/base/android/media_codec_bridge.h" | 9 #include "media/base/android/media_codec_bridge.h" |
| 10 #include "media/base/android/media_player_manager.h" | 10 #include "media/base/android/media_player_manager.h" |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 98 | 98 |
| 99 // Starts an audio decoder job. | 99 // Starts an audio decoder job. |
| 100 void StartAudioDecoderJob() { | 100 void StartAudioDecoderJob() { |
| 101 MediaPlayerHostMsg_DemuxerReady_Params params; | 101 MediaPlayerHostMsg_DemuxerReady_Params params; |
| 102 params.audio_codec = kCodecVorbis; | 102 params.audio_codec = kCodecVorbis; |
| 103 params.audio_channels = 2; | 103 params.audio_channels = 2; |
| 104 params.audio_sampling_rate = 44100; | 104 params.audio_sampling_rate = 44100; |
| 105 params.is_audio_encrypted = false; | 105 params.is_audio_encrypted = false; |
| 106 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("vorbis-extradata"); | 106 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("vorbis-extradata"); |
| 107 params.audio_extra_data = std::vector<uint8>( | 107 params.audio_extra_data = std::vector<uint8>( |
| 108 buffer->GetData(), | 108 buffer->data(), |
| 109 buffer->GetData() + buffer->GetDataSize()); | 109 buffer->data() + buffer->data_size()); |
| 110 Start(params); | 110 Start(params); |
| 111 } | 111 } |
| 112 | 112 |
| 113 void StartVideoDecoderJob() { | 113 void StartVideoDecoderJob() { |
| 114 MediaPlayerHostMsg_DemuxerReady_Params params; | 114 MediaPlayerHostMsg_DemuxerReady_Params params; |
| 115 params.video_codec = kCodecVP8; | 115 params.video_codec = kCodecVP8; |
| 116 params.video_size = gfx::Size(320, 240); | 116 params.video_size = gfx::Size(320, 240); |
| 117 params.is_video_encrypted = false; | 117 params.is_video_encrypted = false; |
| 118 Start(params); | 118 Start(params); |
| 119 } | 119 } |
| 120 | 120 |
| 121 // Starts decoding the data. | 121 // Starts decoding the data. |
| 122 void Start(const MediaPlayerHostMsg_DemuxerReady_Params& params) { | 122 void Start(const MediaPlayerHostMsg_DemuxerReady_Params& params) { |
| 123 player_->DemuxerReady(params); | 123 player_->DemuxerReady(params); |
| 124 player_->Start(); | 124 player_->Start(); |
| 125 } | 125 } |
| 126 | 126 |
| 127 MediaPlayerHostMsg_ReadFromDemuxerAck_Params | 127 MediaPlayerHostMsg_ReadFromDemuxerAck_Params |
| 128 CreateReadFromDemuxerAckForAudio() { | 128 CreateReadFromDemuxerAckForAudio() { |
| 129 MediaPlayerHostMsg_ReadFromDemuxerAck_Params ack_params; | 129 MediaPlayerHostMsg_ReadFromDemuxerAck_Params ack_params; |
| 130 ack_params.type = DemuxerStream::AUDIO; | 130 ack_params.type = DemuxerStream::AUDIO; |
| 131 ack_params.access_units.resize(1); | 131 ack_params.access_units.resize(1); |
| 132 ack_params.access_units[0].status = DemuxerStream::kOk; | 132 ack_params.access_units[0].status = DemuxerStream::kOk; |
| 133 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("vorbis-packet-0"); | 133 scoped_refptr<DecoderBuffer> buffer = ReadTestDataFile("vorbis-packet-0"); |
| 134 ack_params.access_units[0].data = std::vector<uint8>( | 134 ack_params.access_units[0].data = std::vector<uint8>( |
| 135 buffer->GetData(), buffer->GetData() + buffer->GetDataSize()); | 135 buffer->data(), buffer->data() + buffer->data_size()); |
| 136 // Vorbis needs 4 extra bytes padding on Android to decode properly. Check | 136 // Vorbis needs 4 extra bytes padding on Android to decode properly. Check |
| 137 // NuMediaExtractor.cpp in Android source code. | 137 // NuMediaExtractor.cpp in Android source code. |
| 138 uint8 padding[4] = { 0xff , 0xff , 0xff , 0xff }; | 138 uint8 padding[4] = { 0xff , 0xff , 0xff , 0xff }; |
| 139 ack_params.access_units[0].data.insert( | 139 ack_params.access_units[0].data.insert( |
| 140 ack_params.access_units[0].data.end(), padding, padding + 4); | 140 ack_params.access_units[0].data.end(), padding, padding + 4); |
| 141 return ack_params; | 141 return ack_params; |
| 142 } | 142 } |
| 143 | 143 |
| 144 protected: | 144 protected: |
| 145 scoped_ptr<MockMediaPlayerManager> manager_; | 145 scoped_ptr<MockMediaPlayerManager> manager_; |
| (...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 319 EXPECT_EQ(decoder_job, GetMediaDecoderJob(true)); | 319 EXPECT_EQ(decoder_job, GetMediaDecoderJob(true)); |
| 320 EXPECT_EQ(1, manager_->num_requests()); | 320 EXPECT_EQ(1, manager_->num_requests()); |
| 321 EXPECT_TRUE(GetMediaDecoderJob(true)->is_decoding()); | 321 EXPECT_TRUE(GetMediaDecoderJob(true)->is_decoding()); |
| 322 manager_->message_loop()->Run(); | 322 manager_->message_loop()->Run(); |
| 323 // The decoder job should finish and a new request will be sent. | 323 // The decoder job should finish and a new request will be sent. |
| 324 EXPECT_EQ(2, manager_->num_requests()); | 324 EXPECT_EQ(2, manager_->num_requests()); |
| 325 EXPECT_FALSE(GetMediaDecoderJob(true)->is_decoding()); | 325 EXPECT_FALSE(GetMediaDecoderJob(true)->is_decoding()); |
| 326 } | 326 } |
| 327 | 327 |
| 328 } // namespace media | 328 } // namespace media |
| OLD | NEW |