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(); |
} |