| Index: media/filters/ffmpeg_demuxer.cc
|
| diff --git a/media/filters/ffmpeg_demuxer.cc b/media/filters/ffmpeg_demuxer.cc
|
| index f59c665a0ed35d73fea6e9fa8c34e02b86108bd6..2860c0cc05a1dcc5b1af4408d0485fea40ec74d4 100644
|
| --- a/media/filters/ffmpeg_demuxer.cc
|
| +++ b/media/filters/ffmpeg_demuxer.cc
|
| @@ -160,6 +160,15 @@ void FFmpegDemuxerStream::Read(const ReadCallback& read_callback) {
|
| DCHECK(!read_callback.is_null());
|
|
|
| base::AutoLock auto_lock(lock_);
|
| + // Don't accept any additional reads if we've been told to stop.
|
| + // The demuxer_ may have been destroyed in the pipleine thread.
|
| + //
|
| + // TODO(scherkus): it would be cleaner if we replied with an error message.
|
| + if (stopped_) {
|
| + read_callback.Run(new DataBuffer(0));
|
| + return;
|
| + }
|
| +
|
| if (!buffer_queue_.empty()) {
|
| // Dequeue a buffer send back.
|
| scoped_refptr<Buffer> buffer = buffer_queue_.front();
|
| @@ -185,6 +194,7 @@ void FFmpegDemuxerStream::ReadTask(const ReadCallback& read_callback) {
|
| //
|
| // TODO(scherkus): it would be cleaner if we replied with an error message.
|
| if (stopped_) {
|
| + read_callback.Run(new DataBuffer(0));
|
| return;
|
| }
|
|
|
|
|