Index: media/base/audio_decoder.h |
diff --git a/media/base/audio_decoder.h b/media/base/audio_decoder.h |
index aa2eeb80ea8af3ac2936ad70f9e73e43d2b786a3..5aefb84aa67e486971f5836cbdccb3e338abdb08 100644 |
--- a/media/base/audio_decoder.h |
+++ b/media/base/audio_decoder.h |
@@ -28,14 +28,14 @@ class MEDIA_EXPORT AudioDecoder { |
AudioDecoder(); |
virtual ~AudioDecoder(); |
- // Initialize an AudioDecoder with the given DemuxerStream, executing the |
+ // Initializes an AudioDecoder with the given DemuxerStream, executing the |
// callback upon completion. |
// statistics_cb is used to update global pipeline statistics. |
virtual void Initialize(DemuxerStream* stream, |
const PipelineStatusCB& status_cb, |
const StatisticsCB& statistics_cb) = 0; |
- // Request samples to be decoded and returned via the provided callback. |
+ // Requests samples to be decoded and returned via the provided callback. |
// Only one read may be in flight at any given time. |
// |
// Implementations guarantee that the callback will not be called from within |
@@ -49,9 +49,16 @@ class MEDIA_EXPORT AudioDecoder { |
ReadCB; |
virtual void Read(const ReadCB& read_cb) = 0; |
- // Reset decoder state, dropping any queued encoded data. |
+ // Resets decoder state, dropping any queued encoded data. |
virtual void Reset(const base::Closure& closure) = 0; |
+ // Stops decoder, fires any pending callbacks and sets the decoder to an |
+ // uninitialized state. An AudioDecoder cannot be re-initialized after it has |
+ // been stopped. |
+ // Note that if Initialize() has been called, Stop() must be called and |
+ // complete before deleting the decoder. |
+ virtual void Stop(const base::Closure& closure) = 0; |
+ |
// Returns various information about the decoded audio format. |
virtual int bits_per_channel() = 0; |
virtual ChannelLayout channel_layout() = 0; |