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

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

Issue 149153002: MSE: Add StreamParser buffer remuxing utility and tests (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Address comments from PS4 Created 6 years, 10 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 | Annotate | Revision Log
« no previous file with comments | « media/filters/source_buffer_stream_unittest.cc ('k') | media/formats/mp2t/es_parser_h264.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 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_adts.h" 5 #include "media/formats/mp2t/es_parser_adts.h"
6 6
7 #include <list> 7 #include <list>
8 8
9 #include "base/basictypes.h" 9 #include "base/basictypes.h"
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 audio_timestamp_helper_->SetBaseTimestamp(pts_list_.front().second); 190 audio_timestamp_helper_->SetBaseTimestamp(pts_list_.front().second);
191 pts_list_.pop_front(); 191 pts_list_.pop_front();
192 } 192 }
193 193
194 base::TimeDelta current_pts = audio_timestamp_helper_->GetTimestamp(); 194 base::TimeDelta current_pts = audio_timestamp_helper_->GetTimestamp();
195 base::TimeDelta frame_duration = 195 base::TimeDelta frame_duration =
196 audio_timestamp_helper_->GetFrameDuration(kNumberSamplesPerAACFrame); 196 audio_timestamp_helper_->GetFrameDuration(kNumberSamplesPerAACFrame);
197 197
198 // Emit an audio frame. 198 // Emit an audio frame.
199 bool is_key_frame = true; 199 bool is_key_frame = true;
200
201 // TODO(wolenetz/acolwell): Validate and use a common cross-parser TrackId
202 // type and allow multiple audio tracks. See https://crbug.com/341581.
200 scoped_refptr<StreamParserBuffer> stream_parser_buffer = 203 scoped_refptr<StreamParserBuffer> stream_parser_buffer =
201 StreamParserBuffer::CopyFrom( 204 StreamParserBuffer::CopyFrom(
202 &raw_es[es_position], 205 &raw_es[es_position],
203 frame_size, 206 frame_size,
204 is_key_frame); 207 is_key_frame,
208 DemuxerStream::AUDIO, 0);
205 stream_parser_buffer->SetDecodeTimestamp(current_pts); 209 stream_parser_buffer->SetDecodeTimestamp(current_pts);
206 stream_parser_buffer->set_timestamp(current_pts); 210 stream_parser_buffer->set_timestamp(current_pts);
207 stream_parser_buffer->set_duration(frame_duration); 211 stream_parser_buffer->set_duration(frame_duration);
208 emit_buffer_cb_.Run(stream_parser_buffer); 212 emit_buffer_cb_.Run(stream_parser_buffer);
209 213
210 // Update the PTS of the next frame. 214 // Update the PTS of the next frame.
211 audio_timestamp_helper_->AddFrames(kNumberSamplesPerAACFrame); 215 audio_timestamp_helper_->AddFrames(kNumberSamplesPerAACFrame);
212 216
213 // Skip the current frame. 217 // Skip the current frame.
214 es_position += frame_size; 218 es_position += frame_size;
(...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after
297 for (EsPtsList::iterator it = pts_list_.begin(); it != pts_list_.end(); ++it) 301 for (EsPtsList::iterator it = pts_list_.begin(); it != pts_list_.end(); ++it)
298 it->first -= nbytes; 302 it->first -= nbytes;
299 303
300 // Discard |nbytes| of ES. 304 // Discard |nbytes| of ES.
301 es_byte_queue_.Pop(nbytes); 305 es_byte_queue_.Pop(nbytes);
302 } 306 }
303 307
304 } // namespace mp2t 308 } // namespace mp2t
305 } // namespace media 309 } // namespace media
306 310
OLDNEW
« no previous file with comments | « media/filters/source_buffer_stream_unittest.cc ('k') | media/formats/mp2t/es_parser_h264.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698