| Index: media/audio/simple_sources.cc
|
| diff --git a/media/audio/simple_sources.cc b/media/audio/simple_sources.cc
|
| index 877f9fd5bdac20866823b14574e1c46e03c7e23e..347b21305fe0fa0a3bdf7bc78fdacc6a3a030724 100644
|
| --- a/media/audio/simple_sources.cc
|
| +++ b/media/audio/simple_sources.cc
|
| @@ -49,17 +49,6 @@ static scoped_ptr<uint8[]> ReadWavFile(const base::FilePath& wav_filename,
|
| return scoped_ptr<uint8[]>(wav_file_data);
|
| }
|
|
|
| -// Opens |wav_filename|, reads it and loads it as a wav file. This function will
|
| -// bluntly trigger CHECKs if we can't read the file or if it's malformed.
|
| -static scoped_ptr<WavAudioHandler> CreateWavAudioHandler(
|
| - const base::FilePath& wav_filename, const uint8* wav_file_data,
|
| - size_t wav_file_length, const AudioParameters& expected_params) {
|
| - base::StringPiece wav_data(reinterpret_cast<const char*>(wav_file_data),
|
| - wav_file_length);
|
| - scoped_ptr<WavAudioHandler> wav_audio_handler(new WavAudioHandler(wav_data));
|
| - return wav_audio_handler.Pass();
|
| -}
|
| -
|
| // These values are based on experiments for local-to-local
|
| // PeerConnection to demonstrate audio/video synchronization.
|
| static const int kBeepDurationMilliseconds = 20;
|
| @@ -179,8 +168,14 @@ void FileSource::LoadWavFile(const base::FilePath& path_to_wav_file) {
|
| return;
|
| }
|
|
|
| - wav_audio_handler_ = CreateWavAudioHandler(
|
| - path_to_wav_file, wav_file_data_.get(), file_length, params_);
|
| + // Attempt to create a handler with this data. If the data is invalid, return.
|
| + wav_audio_handler_ = WavAudioHandler::Create(base::StringPiece(
|
| + reinterpret_cast<const char*>(wav_file_data_.get()), file_length));
|
| + if (!wav_audio_handler_) {
|
| + LOG(ERROR) << "WAV data could be read but is not valid";
|
| + load_failed_ = true;
|
| + return;
|
| + }
|
|
|
| // Hook us up so we pull in data from the file into the converter. We need to
|
| // modify the wav file's audio parameters since we'll be reading small slices
|
|
|