Chromium Code Reviews| Index: media/filters/ffmpeg_demuxer.cc |
| diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc |
| index 093e4f539b13847a1f7f6beb0e140674af037f69..be41e0f56756756331426618a93eb5f6b8e329e4 100644 |
| --- a/media/filters/ffmpeg_demuxer.cc |
| +++ b/media/filters/ffmpeg_demuxer.cc |
| @@ -275,6 +275,7 @@ FFmpegDemuxerStream::FFmpegDemuxerStream( |
| video_rotation_(VIDEO_ROTATION_0), |
| is_enabled_(true), |
| waiting_for_keyframe_(false), |
| + aborted_(false), |
| fixup_negative_timestamps_(false) { |
| DCHECK(demuxer_); |
| @@ -591,9 +592,11 @@ void FFmpegDemuxerStream::FlushBuffers() { |
| end_of_stream_ = false; |
| last_packet_timestamp_ = kNoTimestamp; |
| last_packet_duration_ = kNoTimestamp; |
| + aborted_ = false; |
| } |
| void FFmpegDemuxerStream::Abort() { |
| + aborted_ = true; |
| if (!read_cb_.is_null()) |
| base::ResetAndReturn(&read_cb_).Run(DemuxerStream::kAborted, nullptr); |
| } |
| @@ -641,6 +644,9 @@ void FFmpegDemuxerStream::Read(const ReadCB& read_cb) { |
| return; |
| } |
| + if (aborted_) |
| + base::ResetAndReturn(&read_cb_).Run(kAborted, nullptr); |
|
DaleCurtis
2016/12/03 01:11:08
return;
sandersd (OOO until July 31)
2016/12/03 01:15:17
Done.
|
| + |
| SatisfyPendingRead(); |
| } |