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.
5 #include "remoting/codec/audio_decoder_verbatim.h"
7 #include "base/logging.h"
8 #include "remoting/proto/audio.pb.h"
12 AudioDecoderVerbatim::AudioDecoderVerbatim() {
15 AudioDecoderVerbatim::~AudioDecoderVerbatim() {
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
>();
34 } // namespace remoting