Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(228)

Unified Diff: media/audio/audio_debug_file_writer.h

Issue 2702323002: Move AudioDebugFileWriter from content/ to media/. (Closed)
Patch Set: Code review. Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/audio/audio_debug_file_writer.h
diff --git a/media/audio/audio_file_writer.h b/media/audio/audio_debug_file_writer.h
similarity index 36%
rename from media/audio/audio_file_writer.h
rename to media/audio/audio_debug_file_writer.h
index dabfa23dd95566b78e32f34e6312a5608a9a2b9d..49be963ab3303674a64dd6f4d1fe9f0b64f84551 100644
--- a/media/audio/audio_file_writer.h
+++ b/media/audio/audio_debug_file_writer.h
@@ -1,45 +1,72 @@
-// Copyright 2015 The Chromium Authors. All rights reserved.
+// Copyright 2017 The Chromium Authors. All rights reserved.
DaleCurtis 2017/02/21 18:00:58 We don't update copyright when moving IIRC.
Henrik Grunell 2017/02/22 10:47:43 Done.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#ifndef MEDIA_AUDIO_AUDIO_FILE_WRITER_H_
-#define MEDIA_AUDIO_AUDIO_FILE_WRITER_H_
+#ifndef MEDIA_AUDIO_AUDIO_DEBUG_FILE_WRITER_H_
+#define MEDIA_AUDIO_AUDIO_DEBUG_FILE_WRITER_H_
+
+#include <stdint.h>
#include <memory>
-namespace base {
-class FilePath;
-}
+#include "base/files/file.h"
+#include "base/macros.h"
+#include "base/memory/ref_counted.h"
+#include "base/sequence_checker.h"
+#include "base/single_thread_task_runner.h"
+#include "media/base/audio_parameters.h"
+#include "media/base/media_export.h"
namespace media {
class AudioBus;
-// A writer interface used for writing audio data to file for debugging
-// purposes.
-class AudioFileWriter {
+// Writes audio data used for debugging purposes. All operations are
+// non-blocking.
+class MEDIA_EXPORT AudioDebugFileWriter {
public:
- virtual ~AudioFileWriter() {}
+ AudioDebugFileWriter(
+ const AudioParameters& params,
+ scoped_refptr<base::SingleThreadTaskRunner> file_task_runner);
+ ~AudioDebugFileWriter();
// Must be called before calling Write() for the first time after creation or
// Stop() call. Can be called on any sequence; Write() and Stop() must be
// called on the same sequence as Start().
- virtual void Start(const base::FilePath& file) = 0;
+ void Start(const base::FilePath& file);
// Must be called to finish recording. Each call to Start() requires a call to
// Stop(). Will be automatically called on destruction.
- virtual void Stop() = 0;
+ void Stop();
// Write |data| to file.
- virtual void Write(std::unique_ptr<AudioBus> data) = 0;
+ void Write(std::unique_ptr<AudioBus> data);
// Returns true if Write() call scheduled at this point will most likely write
// data to the file, and false if it most likely will be a no-op. The result
// may be ambigulous if Start() or Stop() is executed at the moment. Can be
// called from any sequence.
- virtual bool WillWrite() = 0;
+ bool WillWrite();
+
+ private:
+ class AudioFileWriter;
+
+ // AudioFileWriter deleter.
+ struct DeleteOnFileThread {
+ void operator()(AudioFileWriter* ptr) const;
+ };
+
+ using AudioFileWriterUniquePtr =
+ std::unique_ptr<AudioFileWriter, DeleteOnFileThread>;
+
+ AudioFileWriterUniquePtr file_writer_;
+ const AudioParameters params_;
+ base::SequenceChecker client_sequence_checker_;
+
+ // The task runner to do file output operations on.
+ scoped_refptr<base::SingleThreadTaskRunner> file_task_runner_;
};
DaleCurtis 2017/02/21 18:00:58 DISALLOW_COPY_AND_ASSIGN()
Henrik Grunell 2017/02/22 10:47:43 Done.
-} // namespace media
+} // namspace media
-#endif // MEDIA_AUDIO_AUDIO_FILE_WRITER_H_
+#endif // MEDIA_AUDIO_AUDIO_DEBUG_FILE_WRITER_H_

Powered by Google App Engine
This is Rietveld 408576698