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->get_data(), |
109 buffer->GetData() + buffer->GetDataSize()); | 109 buffer->get_data() + buffer->get_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->get_data(), buffer->get_data() + buffer->get_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 |