| // 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() { |
| } |
| |
| scoped_ptr<AudioPacket> AudioDecoderVerbatim::Decode( |
| scoped_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.Pass(); |
| } |
| |
| } // namespace remoting |