1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "remoting/codec/audio_decoder_verbatim.h" 6 7 #include "base/logging.h" 8 #include "remoting/proto/audio.pb.h" 9 10 namespace remoting { 11 12 AudioDecoderVerbatim::AudioDecoderVerbatim() { 13 } 14 15 AudioDecoderVerbatim::~AudioDecoderVerbatim() { 16 } 17 18 scoped_ptr<AudioPacket> AudioDecoderVerbatim::Decode( 19 scoped_ptr<AudioPacket> packet) { 20 // Return a null scoped_ptr if we get a corrupted packet. 21 if ((packet->encoding() != AudioPacket::ENCODING_RAW) || 22 (packet->data_size() != 1) || 23 (packet->sampling_rate() == AudioPacket::SAMPLING_RATE_INVALID) || 24 (packet->bytes_per_sample() != AudioPacket::BYTES_PER_SAMPLE_2) || 25 (packet->channels() != AudioPacket::CHANNELS_STEREO) || 26 (packet->data(0).size() % 27 (AudioPacket::CHANNELS_STEREO * AudioPacket::BYTES_PER_SAMPLE_2) != 0)) { 28 LOG(WARNING) << "Verbatim decoder received an invalid packet."; 29 return scoped_ptr<AudioPacket>(); 30 } 31 return packet.Pass(); 32 } 33 34 } // namespace remoting 35