summaryrefslogtreecommitdiffstats
path: root/media/base/demuxer.h
diff options
context:
space:
mode:
authorscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-22 00:31:05 +0000
committerscherkus@chromium.org <scherkus@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-22 00:31:05 +0000
commit8b75455ad5532e06efd24f9b6d3bc13569adc281 (patch)
tree775c840f2ac6d9d25a514dff9158b442839b8187 /media/base/demuxer.h
parent580ef53cbdefb6e8a515cc004b1a2691817e32eb (diff)
downloadchromium_src-8b75455ad5532e06efd24f9b6d3bc13569adc281.zip
chromium_src-8b75455ad5532e06efd24f9b6d3bc13569adc281.tar.gz
chromium_src-8b75455ad5532e06efd24f9b6d3bc13569adc281.tar.bz2
Make calling FFmpegDemuxer::Stop() multiple times illegal.
First attempt r218110 was reverted in r218333 for two reasons: 1) There were still cases where Pipeline could call Stop() twice aside from test code, causing a null pointer dereference of data_source_ 2) FFmpegDemuxer::OnFindStreamInfoDone() could run inbetween Stop() and OnDataSourceStopped(), causing a null pointer dereference of data_source_ The fix for (1) landed in r218625. The fix for (2) is included in this change. BUG=235933 Review URL: https://chromiumcodereview.appspot.com/23191006 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@218878 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media/base/demuxer.h')
-rw-r--r--media/base/demuxer.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/media/base/demuxer.h b/media/base/demuxer.h
index 6a91aab..81ac33b 100644
--- a/media/base/demuxer.h
+++ b/media/base/demuxer.h
@@ -47,8 +47,10 @@ class MEDIA_EXPORT Demuxer {
// callback upon completion.
virtual void Seek(base::TimeDelta time, const PipelineStatusCB& status_cb);
- // The pipeline is being stopped either as a result of an error or because
- // the client called Stop().
+ // Starts stopping this demuxer, executing the callback upon completion.
+ //
+ // After the callback completes the demuxer may be destroyed. It is illegal to
+ // call any method (including Stop()) after a demuxer has stopped.
virtual void Stop(const base::Closure& callback);
// This method is called from the pipeline when the audio renderer