| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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 // SourceBufferStream is a data structure that stores media Buffers in ranges. | 5 // SourceBufferStream is a data structure that stores media Buffers in ranges. |
| 6 // Buffers can be appended out of presentation order. Buffers are retrieved by | 6 // Buffers can be appended out of presentation order. Buffers are retrieved by |
| 7 // seeking to the desired start point and calling GetNextBuffer(). Buffers are | 7 // seeking to the desired start point and calling GetNextBuffer(). Buffers are |
| 8 // returned in sequential presentation order. | 8 // returned in sequential presentation order. |
| 9 | 9 |
| 10 #ifndef MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ | 10 #ifndef MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 47 kEndOfStream | 47 kEndOfStream |
| 48 }; | 48 }; |
| 49 | 49 |
| 50 enum Type { | 50 enum Type { |
| 51 kAudio, | 51 kAudio, |
| 52 kVideo, | 52 kVideo, |
| 53 kText | 53 kText |
| 54 }; | 54 }; |
| 55 | 55 |
| 56 SourceBufferStream(const AudioDecoderConfig& audio_config, | 56 SourceBufferStream(const AudioDecoderConfig& audio_config, |
| 57 const LogCB& log_cb, | 57 const scoped_refptr<MediaLog>& media_log, |
| 58 bool splice_frames_enabled); | 58 bool splice_frames_enabled); |
| 59 SourceBufferStream(const VideoDecoderConfig& video_config, | 59 SourceBufferStream(const VideoDecoderConfig& video_config, |
| 60 const LogCB& log_cb, | 60 const scoped_refptr<MediaLog>& media_log, |
| 61 bool splice_frames_enabled); | 61 bool splice_frames_enabled); |
| 62 SourceBufferStream(const TextTrackConfig& text_config, | 62 SourceBufferStream(const TextTrackConfig& text_config, |
| 63 const LogCB& log_cb, | 63 const scoped_refptr<MediaLog>& media_log, |
| 64 bool splice_frames_enabled); | 64 bool splice_frames_enabled); |
| 65 | 65 |
| 66 ~SourceBufferStream(); | 66 ~SourceBufferStream(); |
| 67 | 67 |
| 68 // Signals that the next buffers appended are part of a new media segment | 68 // Signals that the next buffers appended are part of a new media segment |
| 69 // starting at |media_segment_start_time|. | 69 // starting at |media_segment_start_time|. |
| 70 // TODO(acolwell/wolenetz): This should be changed to a presentation | 70 // TODO(acolwell/wolenetz): This should be changed to a presentation |
| 71 // timestamp. See http://crbug.com/402502 | 71 // timestamp. See http://crbug.com/402502 |
| 72 void OnNewMediaSegment(DecodeTimestamp media_segment_start_time); | 72 void OnNewMediaSegment(DecodeTimestamp media_segment_start_time); |
| 73 | 73 |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 321 // Called by PrepareRangesForNextAppend() before pruning overlapped buffers to | 321 // Called by PrepareRangesForNextAppend() before pruning overlapped buffers to |
| 322 // generate a splice frame with a small portion of the overlapped buffers. If | 322 // generate a splice frame with a small portion of the overlapped buffers. If |
| 323 // a splice frame is generated, the first buffer in |new_buffers| will have | 323 // a splice frame is generated, the first buffer in |new_buffers| will have |
| 324 // its timestamps, duration, and fade out preroll updated. | 324 // its timestamps, duration, and fade out preroll updated. |
| 325 void GenerateSpliceFrame(const BufferQueue& new_buffers); | 325 void GenerateSpliceFrame(const BufferQueue& new_buffers); |
| 326 | 326 |
| 327 // If |out_buffer| has splice buffers or preroll, sets |pending_buffer_| | 327 // If |out_buffer| has splice buffers or preroll, sets |pending_buffer_| |
| 328 // appropriately and returns true. Otherwise returns false. | 328 // appropriately and returns true. Otherwise returns false. |
| 329 bool SetPendingBuffer(scoped_refptr<StreamParserBuffer>* out_buffer); | 329 bool SetPendingBuffer(scoped_refptr<StreamParserBuffer>* out_buffer); |
| 330 | 330 |
| 331 // Callback used to report log messages that can help the web developer figure | 331 // Used to report log messages that can help the web developer figure out what |
| 332 // out what is wrong with the content. | 332 // is wrong with the content. |
| 333 LogCB log_cb_; | 333 scoped_refptr<MediaLog> media_log_; |
| 334 | 334 |
| 335 // List of disjoint buffered ranges, ordered by start time. | 335 // List of disjoint buffered ranges, ordered by start time. |
| 336 RangeList ranges_; | 336 RangeList ranges_; |
| 337 | 337 |
| 338 // Indicates which decoder config is being used by the decoder. | 338 // Indicates which decoder config is being used by the decoder. |
| 339 // GetNextBuffer() is only allows to return buffers that have a | 339 // GetNextBuffer() is only allows to return buffers that have a |
| 340 // config ID that matches this index. If there is a mismatch then | 340 // config ID that matches this index. If there is a mismatch then |
| 341 // it must signal that a config change is needed. | 341 // it must signal that a config change is needed. |
| 342 int current_config_index_; | 342 int current_config_index_; |
| 343 | 343 |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 418 | 418 |
| 419 // Indicates that splice frame generation is enabled. | 419 // Indicates that splice frame generation is enabled. |
| 420 const bool splice_frames_enabled_; | 420 const bool splice_frames_enabled_; |
| 421 | 421 |
| 422 DISALLOW_COPY_AND_ASSIGN(SourceBufferStream); | 422 DISALLOW_COPY_AND_ASSIGN(SourceBufferStream); |
| 423 }; | 423 }; |
| 424 | 424 |
| 425 } // namespace media | 425 } // namespace media |
| 426 | 426 |
| 427 #endif // MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ | 427 #endif // MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ |
| OLD | NEW |