Index: media/filters/ffmpeg_demuxer.h |
diff --git a/media/filters/ffmpeg_demuxer.h b/media/filters/ffmpeg_demuxer.h |
index 1a95e11736c2b17eaaf3eb88a610b08ad1089e44..1e90bad723642f80d2c8573c5a1363a78d65920f 100644 |
--- a/media/filters/ffmpeg_demuxer.h |
+++ b/media/filters/ffmpeg_demuxer.h |
@@ -135,6 +135,11 @@ class FFmpegDemuxerStream : public DemuxerStream { |
// Returns an empty string if the key is not present. |
std::string GetMetadata(const char* key) const; |
+ AVStream* av_stream() const { return stream_; } |
+ |
+ base::TimeDelta start_time() const { return start_time_; } |
+ void set_start_time(base::TimeDelta time) { start_time_ = time; } |
+ |
private: |
friend class FFmpegDemuxerTest; |
@@ -164,6 +169,7 @@ class FFmpegDemuxerStream : public DemuxerStream { |
FFmpegDemuxer* demuxer_; |
scoped_refptr<base::SingleThreadTaskRunner> task_runner_; |
AVStream* stream_; |
+ base::TimeDelta start_time_; |
std::unique_ptr<AudioDecoderConfig> audio_config_; |
std::unique_ptr<VideoDecoderConfig> video_config_; |
Type type_; |
@@ -316,16 +322,11 @@ class MEDIA_EXPORT FFmpegDemuxer : public Demuxer { |
// based timeline. |
base::TimeDelta start_time_; |
- // The index and start time of the preferred streams for seeking. Filled upon |
- // completion of OnFindStreamInfoDone(). Each info entry represents an index |
- // into |streams_| and the start time of that stream. |
- // |
- // Seek() will attempt to use |preferred_stream_for_seeking_| if the seek |
- // point occurs after its associated start time. Otherwise it will use |
- // |fallback_stream_for_seeking_|. |
- typedef std::pair<int, base::TimeDelta> StreamSeekInfo; |
- StreamSeekInfo preferred_stream_for_seeking_; |
- StreamSeekInfo fallback_stream_for_seeking_; |
+ // Finds a preferred stream for seeking to |seek_time|. Preference is |
+ // typically given to video streams, unless the |seek_time| is earlier than |
+ // the start time of the video stream. In that case a stream with the earliest |
+ // start time is preferred. Disabled streams are not considered. |
+ FFmpegDemuxerStream* FindPreferredStreamForSeeking(base::TimeDelta seek_time); |
// The Time associated with timestamp 0. Set to a null |
// time if the file doesn't have an association to Time. |