Chromium Code Reviews| Index: content/browser/renderer_host/media/audio_input_debug_writer.h |
| diff --git a/content/browser/renderer_host/media/audio_input_debug_writer.h b/content/browser/renderer_host/media/audio_input_debug_writer.h |
| index 3525ec8c69d71558ef4fd8fcecac74fa3e60b084..7d411cdeaef6ef3512b0f58ebdc8ac6f94ebabb1 100644 |
| --- a/content/browser/renderer_host/media/audio_input_debug_writer.h |
| +++ b/content/browser/renderer_host/media/audio_input_debug_writer.h |
| @@ -11,8 +11,7 @@ |
| #include "base/files/file.h" |
| #include "base/macros.h" |
| -#include "base/memory/ref_counted.h" |
| -#include "base/memory/weak_ptr.h" |
| +#include "base/sequence_checker.h" |
| #include "content/common/content_export.h" |
| #include "media/audio/audio_input_writer.h" |
| #include "media/base/audio_parameters.h" |
| @@ -20,50 +19,31 @@ |
| namespace media { |
| class AudioBus; |
| -class AudioBusRefCounted; |
| } // namespace media |
| namespace content { |
| -// Writes audio input data used for debugging purposes. Can be created on any |
| -// thread. Must be destroyed on the FILE thread. Write call can be made on any |
| -// thread. This object must be unregistered in Write caller before destroyed. |
| -// When created, it takes ownership of |file|. |
| +// Writes audio input data used for debugging purposes. The only blocking |
| +// operation is IsRecording(), with a very small scope (1 flag update). |
| class CONTENT_EXPORT AudioInputDebugWriter |
| : public NON_EXPORTED_BASE(media::AudioInputWriter) { |
| public: |
| - AudioInputDebugWriter(base::File file, const media::AudioParameters& params); |
| - |
| + AudioInputDebugWriter(const media::AudioParameters& params); |
|
Henrik Grunell
2016/10/10 10:56:59
explicit
o1ka
2016/10/10 13:48:01
Done.
|
| ~AudioInputDebugWriter() override; |
| - // Write data from |data| to file. |
| + void Start(const base::FilePath& file) override; |
| + void Stop() override; |
| void Write(std::unique_ptr<media::AudioBus> data) override; |
| + bool IsRecording() override; |
| private: |
| - // Write data from |data| to file. Called on the FILE thread. |
| - void DoWrite(std::unique_ptr<media::AudioBus> data); |
| - |
| - // Write wave header to file. Called on the FILE thread twice: on construction |
| - // of AudioInputDebugWriter size of the wave data is unknown, so the header is |
| - // written with zero sizes; then on destruction it is re-written with the |
| - // actual size info accumulated throughout the object lifetime. |
| - void WriteHeader(); |
| - |
| - // The file to write to. |
| - base::File file_; |
| - |
| - // Number of written samples. |
| - uint64_t samples_; |
| - |
| - // Input audio parameters required to build wave header. |
| - media::AudioParameters params_; |
| - |
| - // Intermediate buffer to be written to file. Interleaved 16 bit audio data. |
| - std::unique_ptr<int16_t[]> interleaved_data_; |
| - int interleaved_data_size_; |
| - |
| - base::WeakPtrFactory<AudioInputDebugWriter> weak_factory_; |
| + class AudioFileWriter; |
| + std::unique_ptr<AudioFileWriter> file_writer_; |
| + const media::AudioParameters params_; |
| + base::Lock recording_lock_; |
| + bool is_recording_ = false; |
| + base::SequenceChecker client_sequence_checker_; |
| }; |
| } // namspace content |