Index: media/filters/ffmpeg_demuxer.h |
diff --git a/media/filters/ffmpeg_demuxer.h b/media/filters/ffmpeg_demuxer.h |
index def9d2a45d987fd8b9613eff6c895dc25322e043..550316f8918ab001e9970e2fbafd5f7ece69e03a 100644 |
--- a/media/filters/ffmpeg_demuxer.h |
+++ b/media/filters/ffmpeg_demuxer.h |
@@ -110,6 +110,9 @@ class FFmpegDemuxerStream : public DemuxerStream { |
AudioDecoderConfig audio_decoder_config() override; |
VideoDecoderConfig video_decoder_config() override; |
VideoRotation video_rotation() override; |
+ bool enabled() const override; |
+ void set_enabled(bool enabled, base::TimeDelta timestamp) override; |
+ void SetStreamRestartedCB(const StreamRestartedCB& cb) override; |
void SetLiveness(Liveness liveness); |
@@ -171,9 +174,12 @@ class FFmpegDemuxerStream : public DemuxerStream { |
base::TimeDelta last_packet_duration_; |
Ranges<base::TimeDelta> buffered_ranges_; |
VideoRotation video_rotation_; |
+ bool is_enabled_; |
+ bool waiting_for_keyframe_; |
DecoderBufferQueue buffer_queue_; |
ReadCB read_cb_; |
+ StreamRestartedCB stream_restarted_cb_; |
#if defined(USE_PROPRIETARY_CODECS) |
std::unique_ptr<FFmpegBitstreamConverter> bitstream_converter_; |
@@ -218,6 +224,12 @@ class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { |
void NotifyCapacityAvailable(); |
void NotifyBufferingChanged(); |
+ void OnEnabledAudioTracksChanged(const std::vector<MediaTrack::Id>& track_ids, |
+ base::TimeDelta currTime) override; |
+ // |track_ids| is either empty or contains a single video track id. |
+ void OnSelectedVideoTrackChanged(const std::vector<MediaTrack::Id>& track_ids, |
+ base::TimeDelta currTime) override; |
+ |
// The lowest demuxed timestamp. If negative, DemuxerStreams must use this to |
// adjust packet timestamps such that external clients see a zero-based |
// timeline. |
@@ -334,6 +346,8 @@ class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { |
const MediaTracksUpdatedCB media_tracks_updated_cb_; |
+ std::map<MediaTrack::Id, const DemuxerStream*> track_id_to_demux_stream_map_; |
+ |
// NOTE: Weak pointers must be invalidated before all other member variables. |
base::WeakPtrFactory<FFmpegDemuxer> weak_factory_; |