| 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 #ifndef MEDIA_FILTERS_CHUNK_DEMUXER_H_ | 5 #ifndef MEDIA_FILTERS_CHUNK_DEMUXER_H_ |
| 6 #define MEDIA_FILTERS_CHUNK_DEMUXER_H_ | 6 #define MEDIA_FILTERS_CHUNK_DEMUXER_H_ |
| 7 | 7 |
| 8 #include <stddef.h> | 8 #include <stddef.h> |
| 9 #include <stdint.h> | 9 #include <stdint.h> |
| 10 | 10 |
| (...skipping 199 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 210 void StartWaitingForSeek(base::TimeDelta seek_time) override; | 210 void StartWaitingForSeek(base::TimeDelta seek_time) override; |
| 211 void CancelPendingSeek(base::TimeDelta seek_time) override; | 211 void CancelPendingSeek(base::TimeDelta seek_time) override; |
| 212 | 212 |
| 213 // Registers a new |id| to use for AppendData() calls. |type| indicates | 213 // Registers a new |id| to use for AppendData() calls. |type| indicates |
| 214 // the MIME type for the data that we intend to append for this ID. | 214 // the MIME type for the data that we intend to append for this ID. |
| 215 // kOk is returned if the demuxer has enough resources to support another ID | 215 // kOk is returned if the demuxer has enough resources to support another ID |
| 216 // and supports the format indicated by |type|. | 216 // and supports the format indicated by |type|. |
| 217 // kNotSupported is returned if |type| is not a supported format. | 217 // kNotSupported is returned if |type| is not a supported format. |
| 218 // kReachedIdLimit is returned if the demuxer cannot handle another ID right | 218 // kReachedIdLimit is returned if the demuxer cannot handle another ID right |
| 219 // now. | 219 // now. |
| 220 Status AddId(const std::string& id, const std::string& type, | 220 Status AddId(const std::string& id, |
| 221 std::vector<std::string>& codecs); | 221 const std::string& type, |
| 222 const std::string& codecs); |
| 222 | 223 |
| 223 // Notifies a caller via |tracks_updated_cb| that the set of media tracks | 224 // Notifies a caller via |tracks_updated_cb| that the set of media tracks |
| 224 // for a given |id| has changed. | 225 // for a given |id| has changed. |
| 225 void SetTracksWatcher(const std::string& id, | 226 void SetTracksWatcher(const std::string& id, |
| 226 const MediaTracksUpdatedCB& tracks_updated_cb); | 227 const MediaTracksUpdatedCB& tracks_updated_cb); |
| 227 | 228 |
| 228 // Removed an ID & associated resources that were previously added with | 229 // Removed an ID & associated resources that were previously added with |
| 229 // AddId(). | 230 // AddId(). |
| 230 void RemoveId(const std::string& id); | 231 void RemoveId(const std::string& id); |
| 231 | 232 |
| (...skipping 169 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 // MediaLog for reporting messages and properties to debug content and engine. | 402 // MediaLog for reporting messages and properties to debug content and engine. |
| 402 scoped_refptr<MediaLog> media_log_; | 403 scoped_refptr<MediaLog> media_log_; |
| 403 | 404 |
| 404 PipelineStatusCB init_cb_; | 405 PipelineStatusCB init_cb_; |
| 405 // Callback to execute upon seek completion. | 406 // Callback to execute upon seek completion. |
| 406 // TODO(wolenetz/acolwell): Protect against possible double-locking by first | 407 // TODO(wolenetz/acolwell): Protect against possible double-locking by first |
| 407 // releasing |lock_| before executing this callback. See | 408 // releasing |lock_| before executing this callback. See |
| 408 // http://crbug.com/308226 | 409 // http://crbug.com/308226 |
| 409 PipelineStatusCB seek_cb_; | 410 PipelineStatusCB seek_cb_; |
| 410 | 411 |
| 411 std::unique_ptr<ChunkDemuxerStream> audio_; | 412 std::vector<std::unique_ptr<ChunkDemuxerStream>> audio_streams_; |
| 412 std::unique_ptr<ChunkDemuxerStream> video_; | 413 std::vector<std::unique_ptr<ChunkDemuxerStream>> video_streams_; |
| 413 | 414 |
| 414 // Counter to ensure that we do not transition too early to INITIALIZED. | 415 // Counter to ensure that we do not transition too early to INITIALIZED. |
| 415 // Incremented in AddId(), decremented in OnSourceInitDone(). | 416 // Incremented in AddId(), decremented in OnSourceInitDone(). |
| 416 int pending_source_init_done_count_; | 417 int pending_source_init_done_count_; |
| 417 | 418 |
| 418 base::TimeDelta duration_; | 419 base::TimeDelta duration_; |
| 419 | 420 |
| 420 // The duration passed to the last SetDuration(). If | 421 // The duration passed to the last SetDuration(). If |
| 421 // SetDuration() is never called or an AppendData() call or | 422 // SetDuration() is never called or an AppendData() call or |
| 422 // a EndOfStream() call changes |duration_|, then this | 423 // a EndOfStream() call changes |duration_|, then this |
| 423 // variable is set to < 0 to indicate that the |duration_| represents | 424 // variable is set to < 0 to indicate that the |duration_| represents |
| 424 // the actual duration instead of a user specified value. | 425 // the actual duration instead of a user specified value. |
| 425 double user_specified_duration_; | 426 double user_specified_duration_; |
| 426 | 427 |
| 427 base::Time timeline_offset_; | 428 base::Time timeline_offset_; |
| 428 DemuxerStream::Liveness liveness_; | 429 DemuxerStream::Liveness liveness_; |
| 429 | 430 |
| 430 typedef std::map<std::string, MediaSourceState*> MediaSourceStateMap; | 431 typedef std::map<std::string, MediaSourceState*> MediaSourceStateMap; |
| 431 MediaSourceStateMap source_state_map_; | 432 MediaSourceStateMap source_state_map_; |
| 432 | 433 |
| 433 // Used to ensure that (1) config data matches the type and codec provided in | |
| 434 // AddId(), (2) only 1 audio and 1 video sources are added, and (3) ids may be | |
| 435 // removed with RemoveID() but can not be re-added (yet). | |
| 436 std::string source_id_audio_; | |
| 437 std::string source_id_video_; | |
| 438 | |
| 439 // Indicates that splice frame generation is enabled. | 434 // Indicates that splice frame generation is enabled. |
| 440 const bool splice_frames_enabled_; | 435 const bool splice_frames_enabled_; |
| 441 | 436 |
| 442 // Accumulate, by type, detected track counts across the SourceBuffers. | 437 // Accumulate, by type, detected track counts across the SourceBuffers. |
| 443 int detected_audio_track_count_; | 438 int detected_audio_track_count_; |
| 444 int detected_video_track_count_; | 439 int detected_video_track_count_; |
| 445 int detected_text_track_count_; | 440 int detected_text_track_count_; |
| 446 | 441 |
| 447 std::map<MediaTrack::Id, const DemuxerStream*> track_id_to_demux_stream_map_; | 442 std::map<MediaTrack::Id, DemuxerStream*> track_id_to_demux_stream_map_; |
| 448 | 443 |
| 449 DISALLOW_COPY_AND_ASSIGN(ChunkDemuxer); | 444 DISALLOW_COPY_AND_ASSIGN(ChunkDemuxer); |
| 450 }; | 445 }; |
| 451 | 446 |
| 452 } // namespace media | 447 } // namespace media |
| 453 | 448 |
| 454 #endif // MEDIA_FILTERS_CHUNK_DEMUXER_H_ | 449 #endif // MEDIA_FILTERS_CHUNK_DEMUXER_H_ |
| OLD | NEW |