|  | // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 
|  | // Use of this source code is governed by a BSD-style license that can be | 
|  | // found in the LICENSE file. | 
|  |  | 
|  | #include "remoting/codec/audio_decoder_verbatim.h" | 
|  |  | 
|  | #include "base/logging.h" | 
|  | #include "remoting/proto/audio.pb.h" | 
|  |  | 
|  | namespace remoting { | 
|  |  | 
|  | AudioDecoderVerbatim::AudioDecoderVerbatim() {} | 
|  | AudioDecoderVerbatim::~AudioDecoderVerbatim() {} | 
|  |  | 
|  | std::unique_ptr<AudioPacket> AudioDecoderVerbatim::Decode( | 
|  | std::unique_ptr<AudioPacket> packet) { | 
|  | // Return a null scoped_ptr if we get a corrupted packet. | 
|  | if ((packet->encoding() != AudioPacket::ENCODING_RAW) || | 
|  | (packet->data_size() != 1) || | 
|  | (packet->sampling_rate() == AudioPacket::SAMPLING_RATE_INVALID) || | 
|  | (packet->bytes_per_sample() != AudioPacket::BYTES_PER_SAMPLE_2) || | 
|  | (packet->channels() != AudioPacket::CHANNELS_STEREO) || | 
|  | (packet->data(0).size() % | 
|  | (AudioPacket::CHANNELS_STEREO * AudioPacket::BYTES_PER_SAMPLE_2) != 0)) { | 
|  | LOG(WARNING) << "Verbatim decoder received an invalid packet."; | 
|  | return nullptr; | 
|  | } | 
|  | return packet; | 
|  | } | 
|  |  | 
|  | }  // namespace remoting |