Index: media/filters/audio_file_reader.h |
diff --git a/media/filters/audio_file_reader.h b/media/filters/audio_file_reader.h |
index 1e42abd7b018fde25b2d6fce976fa26807de0b63..653dfa78ee4acc9bfc124388e2b5b5bce5767e4c 100644 |
--- a/media/filters/audio_file_reader.h |
+++ b/media/filters/audio_file_reader.h |
@@ -6,6 +6,7 @@ |
#define MEDIA_FILTERS_AUDIO_FILE_READER_H_ |
#include <memory> |
+#include <vector> |
#include "base/macros.h" |
#include "media/base/audio_codecs.h" |
@@ -38,19 +39,24 @@ class MEDIA_EXPORT AudioFileReader { |
bool Open(); |
void Close(); |
- // After a call to Open(), attempts to fully fill |audio_bus| with decoded |
- // audio data. Any unfilled frames will be zeroed out. |
- // |audio_data| must be of the same size as channels(). |
- // The audio data will be decoded as floating-point linear PCM with |
- // a nominal range of -1.0 -> +1.0. |
- // Returns the number of sample-frames actually read which will always be |
- // <= audio_bus->frames() |
- int Read(AudioBus* audio_bus); |
+ // After a call to Open(), attempts to decode the entire data, |
+ // updating |decodedAudioPackets| with each decoded packet in order. |
+ // The caller must convert these packets into one complete set of |
+ // decoded audio data. The audio data will be decoded as |
+ // floating-point linear PCM with a nominal range of -1.0 -> +1.0. |
+ // Returns the number of sample-frames actually read which will |
+ // always be the total size of all the frames in |
+ // |decodedAudioPackets|. |
+ int Read(std::vector<std::unique_ptr<AudioBus>>* decoded_audio_packets); |
// These methods can be called once Open() has been called. |
int channels() const { return channels_; } |
int sample_rate() const { return sample_rate_; } |
+ // Returns true if (an estimated) duration of the audio data is |
+ // known. Must be called after Open(); |
+ bool HasKnownDuration() const; |
+ |
// Please note that GetDuration() and GetNumberOfFrames() attempt to be |
// accurate, but are only estimates. For some encoded formats, the actual |
// duration of the file can only be determined once all the file data has been |