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#ifndef REMOTING_CODEC_AUDIO_DECODER_H_
6#define REMOTING_CODEC_AUDIO_DECODER_H_
7
8#include "base/memory/scoped_ptr.h"
9
10namespace remoting {
11
12namespace protocol {
13class SessionConfig;
14}  // namespace protocol
15
16class AudioPacket;
17
18class AudioDecoder {
19 public:
20  static scoped_ptr<AudioDecoder> CreateAudioDecoder(
21      const protocol::SessionConfig& config);
22
23  virtual ~AudioDecoder() {}
24
25  // Returns the decoded packet. If the packet is invalid, then a NULL
26  // scoped_ptr is returned.
27  virtual scoped_ptr<AudioPacket> Decode(scoped_ptr<AudioPacket> packet) = 0;
28};
29
30}  // namespace remoting
31
32#endif  // REMOTING_CODEC_AUDIO_DECODER_H_
33