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

Side by Side Diff: media/formats/mp2t/es_parser_mpeg1audio.cc

Issue 1534273002: Switch to standard integer types in media/. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: more Created 5 years 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 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/mp2t/es_parser_mpeg1audio.h" 5 #include "media/formats/mp2t/es_parser_mpeg1audio.h"
6 6
7 #include <vector> 7 #include <vector>
8 8
9 #include "base/basictypes.h"
10 #include "base/bind.h" 9 #include "base/bind.h"
11 #include "base/logging.h" 10 #include "base/logging.h"
12 #include "base/strings/string_number_conversions.h" 11 #include "base/strings/string_number_conversions.h"
13 #include "media/base/audio_timestamp_helper.h" 12 #include "media/base/audio_timestamp_helper.h"
14 #include "media/base/bit_reader.h" 13 #include "media/base/bit_reader.h"
15 #include "media/base/channel_layout.h" 14 #include "media/base/channel_layout.h"
16 #include "media/base/stream_parser_buffer.h" 15 #include "media/base/stream_parser_buffer.h"
17 #include "media/base/timestamp_constants.h" 16 #include "media/base/timestamp_constants.h"
18 #include "media/formats/common/offset_byte_queue.h" 17 #include "media/formats/common/offset_byte_queue.h"
19 #include "media/formats/mp2t/mp2t_common.h" 18 #include "media/formats/mp2t/mp2t_common.h"
20 #include "media/formats/mpeg/mpeg1_audio_stream_parser.h" 19 #include "media/formats/mpeg/mpeg1_audio_stream_parser.h"
21 20
22 namespace media { 21 namespace media {
23 namespace mp2t { 22 namespace mp2t {
24 23
25 struct EsParserMpeg1Audio::Mpeg1AudioFrame { 24 struct EsParserMpeg1Audio::Mpeg1AudioFrame {
26 // Pointer to the ES data. 25 // Pointer to the ES data.
27 const uint8* data; 26 const uint8_t* data;
28 27
29 // Frame size. 28 // Frame size.
30 int size; 29 int size;
31 30
32 // Number of samples in the frame. 31 // Number of samples in the frame.
33 int sample_count; 32 int sample_count;
34 33
35 // Frame offset in the ES queue. 34 // Frame offset in the ES queue.
36 int64 queue_offset; 35 int64_t queue_offset;
37 }; 36 };
38 37
39 EsParserMpeg1Audio::EsParserMpeg1Audio( 38 EsParserMpeg1Audio::EsParserMpeg1Audio(
40 const NewAudioConfigCB& new_audio_config_cb, 39 const NewAudioConfigCB& new_audio_config_cb,
41 const EmitBufferCB& emit_buffer_cb, 40 const EmitBufferCB& emit_buffer_cb,
42 const scoped_refptr<MediaLog>& media_log) 41 const scoped_refptr<MediaLog>& media_log)
43 : media_log_(media_log), 42 : media_log_(media_log),
44 new_audio_config_cb_(new_audio_config_cb), 43 new_audio_config_cb_(new_audio_config_cb),
45 emit_buffer_cb_(emit_buffer_cb) { 44 emit_buffer_cb_(emit_buffer_cb) {
46 } 45 }
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 void EsParserMpeg1Audio::Flush() { 100 void EsParserMpeg1Audio::Flush() {
102 } 101 }
103 102
104 void EsParserMpeg1Audio::ResetInternal() { 103 void EsParserMpeg1Audio::ResetInternal() {
105 last_audio_decoder_config_ = AudioDecoderConfig(); 104 last_audio_decoder_config_ = AudioDecoderConfig();
106 } 105 }
107 106
108 bool EsParserMpeg1Audio::LookForMpeg1AudioFrame( 107 bool EsParserMpeg1Audio::LookForMpeg1AudioFrame(
109 Mpeg1AudioFrame* mpeg1audio_frame) { 108 Mpeg1AudioFrame* mpeg1audio_frame) {
110 int es_size; 109 int es_size;
111 const uint8* es; 110 const uint8_t* es;
112 es_queue_->Peek(&es, &es_size); 111 es_queue_->Peek(&es, &es_size);
113 112
114 int max_offset = es_size - MPEG1AudioStreamParser::kHeaderSize; 113 int max_offset = es_size - MPEG1AudioStreamParser::kHeaderSize;
115 if (max_offset <= 0) 114 if (max_offset <= 0)
116 return false; 115 return false;
117 116
118 for (int offset = 0; offset < max_offset; offset++) { 117 for (int offset = 0; offset < max_offset; offset++) {
119 const uint8* cur_buf = &es[offset]; 118 const uint8_t* cur_buf = &es[offset];
120 if (cur_buf[0] != 0xff) 119 if (cur_buf[0] != 0xff)
121 continue; 120 continue;
122 121
123 int remaining_size = es_size - offset; 122 int remaining_size = es_size - offset;
124 DCHECK_GE(remaining_size, MPEG1AudioStreamParser::kHeaderSize); 123 DCHECK_GE(remaining_size, MPEG1AudioStreamParser::kHeaderSize);
125 MPEG1AudioStreamParser::Header header; 124 MPEG1AudioStreamParser::Header header;
126 if (!MPEG1AudioStreamParser::ParseHeader(media_log_, cur_buf, &header)) 125 if (!MPEG1AudioStreamParser::ParseHeader(media_log_, cur_buf, &header))
127 continue; 126 continue;
128 127
129 if (remaining_size < header.frame_size) { 128 if (remaining_size < header.frame_size) {
(...skipping 24 matching lines...) Expand all
154 << base::HexEncode(mpeg1audio_frame->data, 153 << base::HexEncode(mpeg1audio_frame->data,
155 MPEG1AudioStreamParser::kHeaderSize); 154 MPEG1AudioStreamParser::kHeaderSize);
156 return true; 155 return true;
157 } 156 }
158 157
159 es_queue_->Pop(max_offset); 158 es_queue_->Pop(max_offset);
160 return false; 159 return false;
161 } 160 }
162 161
163 bool EsParserMpeg1Audio::UpdateAudioConfiguration( 162 bool EsParserMpeg1Audio::UpdateAudioConfiguration(
164 const uint8* mpeg1audio_header) { 163 const uint8_t* mpeg1audio_header) {
165 MPEG1AudioStreamParser::Header header; 164 MPEG1AudioStreamParser::Header header;
166 if (!MPEG1AudioStreamParser::ParseHeader(media_log_, mpeg1audio_header, 165 if (!MPEG1AudioStreamParser::ParseHeader(media_log_, mpeg1audio_header,
167 &header)) { 166 &header)) {
168 return false; 167 return false;
169 } 168 }
170 169
171 // TODO(damienv): Verify whether Android playback requires the extra data 170 // TODO(damienv): Verify whether Android playback requires the extra data
172 // field for Mpeg1 audio. If yes, we should generate this field. 171 // field for Mpeg1 audio. If yes, we should generate this field.
173 AudioDecoderConfig audio_decoder_config( 172 AudioDecoderConfig audio_decoder_config(
174 kCodecMP3, 173 kCodecMP3,
(...skipping 26 matching lines...) Expand all
201 } 200 }
202 201
203 void EsParserMpeg1Audio::SkipMpeg1AudioFrame( 202 void EsParserMpeg1Audio::SkipMpeg1AudioFrame(
204 const Mpeg1AudioFrame& mpeg1audio_frame) { 203 const Mpeg1AudioFrame& mpeg1audio_frame) {
205 DCHECK_EQ(mpeg1audio_frame.queue_offset, es_queue_->head()); 204 DCHECK_EQ(mpeg1audio_frame.queue_offset, es_queue_->head());
206 es_queue_->Pop(mpeg1audio_frame.size); 205 es_queue_->Pop(mpeg1audio_frame.size);
207 } 206 }
208 207
209 } // namespace mp2t 208 } // namespace mp2t
210 } // namespace media 209 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698