--- a/dom/media/AudioStream.cpp
+++ b/dom/media/AudioStream.cpp
@@ -235,17 +235,17 @@ static void SetUint16LE(uint8_t* aDest,
static void SetUint32LE(uint8_t* aDest, uint32_t aValue)
{
SetUint16LE(aDest, aValue & 0xFFFF);
SetUint16LE(aDest + 2, aValue >> 16);
}
static FILE*
-OpenDumpFile(AudioStream* aStream)
+OpenDumpFile(uint32_t aChannels, uint32_t aRate)
{
if (!getenv("MOZ_DUMP_AUDIO"))
return nullptr;
char buf[100];
snprintf_literal(buf, "dumped-audio-%d.wav", gDumpedAudioCount);
FILE* f = fopen(buf, "wb");
if (!f)
return nullptr;
@@ -258,19 +258,19 @@ OpenDumpFile(AudioStream* aStream)
0x66, 0x6d, 0x74, 0x20, 0x10, 0x00, 0x00, 0x00, 0x01, 0x00, 0xFF, 0xFF,
0xFF, 0xFF, 0xFF, 0xFF, 0x00, 0x00, 0x00, 0x00, 0xFF, 0xFF, 0x10, 0x00,
// data chunk
0x64, 0x61, 0x74, 0x61, 0xFE, 0xFF, 0xFF, 0x7F
};
static const int CHANNEL_OFFSET = 22;
static const int SAMPLE_RATE_OFFSET = 24;
static const int BLOCK_ALIGN_OFFSET = 32;
- SetUint16LE(header + CHANNEL_OFFSET, aStream->GetChannels());
- SetUint32LE(header + SAMPLE_RATE_OFFSET, aStream->GetRate());
- SetUint16LE(header + BLOCK_ALIGN_OFFSET, aStream->GetChannels()*2);
+ SetUint16LE(header + CHANNEL_OFFSET, aChannels);
+ SetUint32LE(header + SAMPLE_RATE_OFFSET, aRate);
+ SetUint16LE(header + BLOCK_ALIGN_OFFSET, aChannels * 2);
fwrite(header, sizeof(header), 1, f);
return f;
}
template <typename T>
typename EnableIf<IsSame<T, int16_t>::value, void>::Type
WriteDumpFileHelper(T* aInput, size_t aSamples, FILE* aFile) {
@@ -327,17 +327,17 @@ AudioStream::Init(uint32_t aNumChannels,
auto startTime = TimeStamp::Now();
auto isFirst = CubebUtils::GetFirstStream();
LOG("%s channels: %d, rate: %d", __FUNCTION__, aNumChannels, aRate);
mInRate = mOutRate = aRate;
mChannels = aNumChannels;
mOutChannels = aNumChannels;
- mDumpFile = OpenDumpFile(this);
+ mDumpFile = OpenDumpFile(aNumChannels, aRate);
cubeb_stream_params params;
params.rate = aRate;
params.channels = mOutChannels;
#if defined(__ANDROID__)
#if defined(MOZ_B2G)
params.stream_type = CubebUtils::ConvertChannelToCubebType(aAudioChannel);
#else