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

Unified Diff: content/browser/renderer_host/media/audio_debug_file_writer.cc

Issue 2582703003: Audio output debug recording. (Closed)
Patch Set: Two more fixes. 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: content/browser/renderer_host/media/audio_debug_file_writer.cc
diff --git a/content/browser/renderer_host/media/audio_debug_file_writer.cc b/content/browser/renderer_host/media/audio_debug_file_writer.cc
index 1656a1cca232a2d020da4a5df59f96eb597bafdf..38951dc54f9f056d28700d4e870a1e96c6a05f14 100644
--- a/content/browser/renderer_host/media/audio_debug_file_writer.cc
+++ b/content/browser/renderer_host/media/audio_debug_file_writer.cc
@@ -13,6 +13,7 @@
#include "base/sys_byteorder.h"
#include "content/public/browser/browser_thread.h"
#include "media/base/audio_bus.h"
+#include "media/base/audio_sample_types.h"
namespace content {
@@ -63,7 +64,9 @@ class CharBufferWriter {
size_ += data_size;
}
- void Write(const char(&data)[4]) { Write(static_cast<const char*>(data), 4); }
+ void Write(const char (&data)[4]) {
+ Write(static_cast<const char*>(data), 4);
+ }
void WriteLE16(uint16_t data) {
uint16_t val = base::ByteSwapToLE16(data);
@@ -160,7 +163,8 @@ class AudioDebugFileWriter::AudioFileWriter {
// Number of written samples.
uint64_t samples_;
- // Input audio parameters required to build wave header.
+ // Audio parameters required to build wave header. Number of channels and
+ // sample rate are used.
const media::AudioParameters params_;
// Intermediate buffer to be written to file. Interleaved 16 bit audio data.
@@ -186,9 +190,7 @@ AudioDebugFileWriter::AudioFileWriter::Create(
AudioDebugFileWriter::AudioFileWriter::AudioFileWriter(
const media::AudioParameters& params)
- : samples_(0), params_(params), interleaved_data_size_(0) {
- DCHECK_EQ(params.bits_per_sample(), kBytesPerSample * 8);
-}
+ : samples_(0), params_(params), interleaved_data_size_(0) {}
AudioDebugFileWriter::AudioFileWriter::~AudioFileWriter() {
DCHECK_CURRENTLY_ON(BrowserThread::FILE);
@@ -196,9 +198,9 @@ AudioDebugFileWriter::AudioFileWriter::~AudioFileWriter() {
WriteHeader();
}
-void AudioDebugFileWriter::AudioFileWriter::Write(
- const media::AudioBus* data) {
+void AudioDebugFileWriter::AudioFileWriter::Write(const media::AudioBus* data) {
DCHECK_CURRENTLY_ON(BrowserThread::FILE);
+ DCHECK_EQ(params_.channels(), data->channels());
if (!file_.IsValid())
return;
@@ -209,8 +211,8 @@ void AudioDebugFileWriter::AudioFileWriter::Write(
interleaved_data_size_ = data_size;
}
samples_ += data_size;
- data->ToInterleaved(data->frames(), sizeof(interleaved_data_[0]),
- interleaved_data_.get());
+ data->ToInterleaved<media::SignedInt16SampleTypeTraits>(
+ data->frames(), interleaved_data_.get());
#ifndef ARCH_CPU_LITTLE_ENDIAN
static_assert(sizeof(interleaved_data_[0]) == sizeof(uint16_t),
@@ -260,8 +262,7 @@ void AudioDebugFileWriter::AudioFileWriter::CreateRecordingFile(
<< file_.error_details();
}
-AudioDebugFileWriter::AudioDebugFileWriter(
- const media::AudioParameters& params)
+AudioDebugFileWriter::AudioDebugFileWriter(const media::AudioParameters& params)
: params_(params) {
client_sequence_checker_.DetachFromSequence();
}
@@ -270,6 +271,12 @@ AudioDebugFileWriter::~AudioDebugFileWriter() {
// |file_writer_| will be deleted on FILE thread.
}
+// static
+std::unique_ptr<media::AudioFileWriter> AudioDebugFileWriter::Create(
+ const media::AudioParameters& params) {
+ return base::MakeUnique<AudioDebugFileWriter>(params);
+}
+
void AudioDebugFileWriter::Start(const base::FilePath& file_name) {
DCHECK(client_sequence_checker_.CalledOnValidSequence());
DCHECK(!file_writer_);
@@ -305,4 +312,8 @@ bool AudioDebugFileWriter::WillWrite() {
return !!file_writer_;
}
+const base::FilePath::CharType* AudioDebugFileWriter::GetFileNameExtension() {
+ return FILE_PATH_LITERAL("wav");
+}
+
} // namspace content

Powered by Google App Engine
This is Rietveld 408576698