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 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
46 kEndOfStream | 46 kEndOfStream |
47 }; | 47 }; |
48 | 48 |
49 enum Type { | 49 enum Type { |
50 kAudio, | 50 kAudio, |
51 kVideo, | 51 kVideo, |
52 kText | 52 kText |
53 }; | 53 }; |
54 | 54 |
55 SourceBufferStream(const AudioDecoderConfig& audio_config, | 55 SourceBufferStream(const AudioDecoderConfig& audio_config, |
56 const LogCB& log_cb); | 56 const LogCB& log_cb, |
| 57 bool splice_frames_enabled); |
57 SourceBufferStream(const VideoDecoderConfig& video_config, | 58 SourceBufferStream(const VideoDecoderConfig& video_config, |
58 const LogCB& log_cb); | 59 const LogCB& log_cb, |
| 60 bool splice_frames_enabled); |
59 SourceBufferStream(const TextTrackConfig& text_config, | 61 SourceBufferStream(const TextTrackConfig& text_config, |
60 const LogCB& log_cb); | 62 const LogCB& log_cb, |
| 63 bool splice_frames_enabled); |
61 | 64 |
62 ~SourceBufferStream(); | 65 ~SourceBufferStream(); |
63 | 66 |
64 // Signals that the next buffers appended are part of a new media segment | 67 // Signals that the next buffers appended are part of a new media segment |
65 // starting at |media_segment_start_time|. | 68 // starting at |media_segment_start_time|. |
66 void OnNewMediaSegment(base::TimeDelta media_segment_start_time); | 69 void OnNewMediaSegment(base::TimeDelta media_segment_start_time); |
67 | 70 |
68 // Add the |buffers| to the SourceBufferStream. Buffers within the queue are | 71 // Add the |buffers| to the SourceBufferStream. Buffers within the queue are |
69 // expected to be in order, but multiple calls to Append() may add buffers out | 72 // expected to be in order, but multiple calls to Append() may add buffers out |
70 // of order or overlapping. Assumes all buffers within |buffers| are in | 73 // of order or overlapping. Assumes all buffers within |buffers| are in |
(...skipping 317 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
388 | 391 |
389 // Used by GetNextBuffer() when a buffer with fade out is returned from | 392 // Used by GetNextBuffer() when a buffer with fade out is returned from |
390 // GetNextBufferInternal(). Will be set to the returned buffer and will be | 393 // GetNextBufferInternal(). Will be set to the returned buffer and will be |
391 // destroyed after the splice_buffers() section has been exhausted. | 394 // destroyed after the splice_buffers() section has been exhausted. |
392 scoped_refptr<StreamParserBuffer> splice_buffer_; | 395 scoped_refptr<StreamParserBuffer> splice_buffer_; |
393 | 396 |
394 // Indicates which of the splice buffers in |splice_buffer_| should be | 397 // Indicates which of the splice buffers in |splice_buffer_| should be |
395 // handled out next. | 398 // handled out next. |
396 size_t splice_buffers_index_; | 399 size_t splice_buffers_index_; |
397 | 400 |
| 401 // Indicates that splice frame generation is enabled. |
| 402 const bool splice_frames_enabled_; |
| 403 |
398 DISALLOW_COPY_AND_ASSIGN(SourceBufferStream); | 404 DISALLOW_COPY_AND_ASSIGN(SourceBufferStream); |
399 }; | 405 }; |
400 | 406 |
401 } // namespace media | 407 } // namespace media |
402 | 408 |
403 #endif // MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ | 409 #endif // MEDIA_FILTERS_SOURCE_BUFFER_STREAM_H_ |
OLD | NEW |