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 395 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
406 // MediaLog for reporting messages and properties to debug content and engine. | 406 // MediaLog for reporting messages and properties to debug content and engine. |
407 scoped_refptr<MediaLog> media_log_; | 407 scoped_refptr<MediaLog> media_log_; |
408 | 408 |
409 PipelineStatusCB init_cb_; | 409 PipelineStatusCB init_cb_; |
410 // Callback to execute upon seek completion. | 410 // Callback to execute upon seek completion. |
411 // TODO(wolenetz/acolwell): Protect against possible double-locking by first | 411 // TODO(wolenetz/acolwell): Protect against possible double-locking by first |
412 // releasing |lock_| before executing this callback. See | 412 // releasing |lock_| before executing this callback. See |
413 // http://crbug.com/308226 | 413 // http://crbug.com/308226 |
414 PipelineStatusCB seek_cb_; | 414 PipelineStatusCB seek_cb_; |
415 | 415 |
416 std::vector<std::unique_ptr<ChunkDemuxerStream>> audio_streams_; | 416 using OwnedChunkDemuxerStreamVector = |
417 std::vector<std::unique_ptr<ChunkDemuxerStream>> video_streams_; | 417 std::vector<std::unique_ptr<ChunkDemuxerStream>>; |
| 418 OwnedChunkDemuxerStreamVector audio_streams_; |
| 419 OwnedChunkDemuxerStreamVector video_streams_; |
| 420 OwnedChunkDemuxerStreamVector text_streams_; |
418 | 421 |
419 // Keep track of which ids still remain uninitialized so that we transition | 422 // Keep track of which ids still remain uninitialized so that we transition |
420 // into the INITIALIZED only after all ids/SourceBuffers got init segment. | 423 // into the INITIALIZED only after all ids/SourceBuffers got init segment. |
421 std::set<std::string> pending_source_init_ids_; | 424 std::set<std::string> pending_source_init_ids_; |
422 | 425 |
423 base::TimeDelta duration_; | 426 base::TimeDelta duration_; |
424 | 427 |
425 // The duration passed to the last SetDuration(). If | 428 // The duration passed to the last SetDuration(). If |
426 // SetDuration() is never called or an AppendData() call or | 429 // SetDuration() is never called or an AppendData() call or |
427 // a EndOfStream() call changes |duration_|, then this | 430 // a EndOfStream() call changes |duration_|, then this |
428 // variable is set to < 0 to indicate that the |duration_| represents | 431 // variable is set to < 0 to indicate that the |duration_| represents |
429 // the actual duration instead of a user specified value. | 432 // the actual duration instead of a user specified value. |
430 double user_specified_duration_; | 433 double user_specified_duration_; |
431 | 434 |
432 base::Time timeline_offset_; | 435 base::Time timeline_offset_; |
433 DemuxerStream::Liveness liveness_; | 436 DemuxerStream::Liveness liveness_; |
434 | 437 |
435 typedef std::map<std::string, MediaSourceState*> MediaSourceStateMap; | 438 std::map<std::string, std::unique_ptr<MediaSourceState>> source_state_map_; |
436 MediaSourceStateMap source_state_map_; | |
437 | 439 |
438 std::map<std::string, std::vector<ChunkDemuxerStream*>> id_to_streams_map_; | 440 std::map<std::string, std::vector<ChunkDemuxerStream*>> id_to_streams_map_; |
439 // Used to hold alive the demuxer streams that were created for removed / | 441 // Used to hold alive the demuxer streams that were created for removed / |
440 // released MediaSourceState objects. Demuxer clients might still have | 442 // released MediaSourceState objects. Demuxer clients might still have |
441 // references to these streams, so we need to keep them alive. But they'll be | 443 // references to these streams, so we need to keep them alive. But they'll be |
442 // in a shut down state, so reading from them will return EOS. | 444 // in a shut down state, so reading from them will return EOS. |
443 std::vector<std::unique_ptr<ChunkDemuxerStream>> removed_streams_; | 445 std::vector<std::unique_ptr<ChunkDemuxerStream>> removed_streams_; |
444 | 446 |
445 // Indicates that splice frame generation is enabled. | 447 // Indicates that splice frame generation is enabled. |
446 const bool splice_frames_enabled_; | 448 const bool splice_frames_enabled_; |
447 | 449 |
448 // Accumulate, by type, detected track counts across the SourceBuffers. | 450 // Accumulate, by type, detected track counts across the SourceBuffers. |
449 int detected_audio_track_count_; | 451 int detected_audio_track_count_; |
450 int detected_video_track_count_; | 452 int detected_video_track_count_; |
451 int detected_text_track_count_; | 453 int detected_text_track_count_; |
452 | 454 |
453 std::map<MediaTrack::Id, DemuxerStream*> track_id_to_demux_stream_map_; | 455 std::map<MediaTrack::Id, DemuxerStream*> track_id_to_demux_stream_map_; |
454 | 456 |
455 DISALLOW_COPY_AND_ASSIGN(ChunkDemuxer); | 457 DISALLOW_COPY_AND_ASSIGN(ChunkDemuxer); |
456 }; | 458 }; |
457 | 459 |
458 } // namespace media | 460 } // namespace media |
459 | 461 |
460 #endif // MEDIA_FILTERS_CHUNK_DEMUXER_H_ | 462 #endif // MEDIA_FILTERS_CHUNK_DEMUXER_H_ |
OLD | NEW |