OLD | NEW |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef MEDIA_CAST_AUDIO_RECEIVER_AUDIO_DECODER_H_ | 5 #ifndef MEDIA_CAST_RECEIVER_AUDIO_DECODER_H_ |
6 #define MEDIA_CAST_AUDIO_RECEIVER_AUDIO_DECODER_H_ | 6 #define MEDIA_CAST_RECEIVER_AUDIO_DECODER_H_ |
7 | 7 |
8 #include "base/callback.h" | 8 #include "base/callback.h" |
9 #include "base/memory/ref_counted.h" | 9 #include "base/memory/ref_counted.h" |
10 #include "media/base/audio_bus.h" | 10 #include "media/base/audio_bus.h" |
11 #include "media/cast/cast_config.h" | 11 #include "media/cast/cast_config.h" |
12 #include "media/cast/cast_environment.h" | 12 #include "media/cast/cast_environment.h" |
13 #include "media/cast/transport/cast_transport_config.h" | 13 #include "media/cast/transport/cast_transport_config.h" |
14 | 14 |
15 namespace media { | 15 namespace media { |
16 namespace cast { | 16 namespace cast { |
17 | 17 |
18 class AudioDecoder { | 18 class AudioDecoder { |
19 public: | 19 public: |
20 // Callback passed to DecodeFrame, to deliver decoded audio data from the | 20 // Callback passed to DecodeFrame, to deliver decoded audio data from the |
21 // decoder. The number of samples in |audio_bus| may vary, and |audio_bus| | 21 // decoder. The number of samples in |audio_bus| may vary, and |audio_bus| |
22 // can be NULL when errors occur. |is_continuous| is normally true, but will | 22 // can be NULL when errors occur. |is_continuous| is normally true, but will |
23 // be false if the decoder has detected a frame skip since the last decode | 23 // be false if the decoder has detected a frame skip since the last decode |
24 // operation; and the client should take steps to smooth audio discontinuities | 24 // operation; and the client should take steps to smooth audio discontinuities |
25 // in this case. | 25 // in this case. |
26 typedef base::Callback<void(scoped_ptr<AudioBus> audio_bus, | 26 typedef base::Callback<void(scoped_ptr<AudioBus> audio_bus, |
27 bool is_continuous)> DecodeFrameCallback; | 27 bool is_continuous)> DecodeFrameCallback; |
28 | 28 |
29 AudioDecoder(const scoped_refptr<CastEnvironment>& cast_environment, | 29 AudioDecoder(const scoped_refptr<CastEnvironment>& cast_environment, |
30 const FrameReceiverConfig& audio_config); | 30 int channels, |
| 31 int sampling_rate, |
| 32 transport::AudioCodec codec); |
31 virtual ~AudioDecoder(); | 33 virtual ~AudioDecoder(); |
32 | 34 |
33 // Returns STATUS_AUDIO_INITIALIZED if the decoder was successfully | 35 // Returns STATUS_AUDIO_INITIALIZED if the decoder was successfully |
34 // constructed from the given FrameReceiverConfig. If this method returns any | 36 // constructed from the given FrameReceiverConfig. If this method returns any |
35 // other value, calls to DecodeFrame() will not succeed. | 37 // other value, calls to DecodeFrame() will not succeed. |
36 CastInitializationStatus InitializationResult() const; | 38 CastInitializationStatus InitializationResult() const; |
37 | 39 |
38 // Decode the payload in |encoded_frame| asynchronously. |callback| will be | 40 // Decode the payload in |encoded_frame| asynchronously. |callback| will be |
39 // invoked on the CastEnvironment::MAIN thread with the result. | 41 // invoked on the CastEnvironment::MAIN thread with the result. |
40 // | 42 // |
(...skipping 11 matching lines...) Expand all Loading... |
52 | 54 |
53 const scoped_refptr<CastEnvironment> cast_environment_; | 55 const scoped_refptr<CastEnvironment> cast_environment_; |
54 scoped_refptr<ImplBase> impl_; | 56 scoped_refptr<ImplBase> impl_; |
55 | 57 |
56 DISALLOW_COPY_AND_ASSIGN(AudioDecoder); | 58 DISALLOW_COPY_AND_ASSIGN(AudioDecoder); |
57 }; | 59 }; |
58 | 60 |
59 } // namespace cast | 61 } // namespace cast |
60 } // namespace media | 62 } // namespace media |
61 | 63 |
62 #endif // MEDIA_CAST_AUDIO_RECEIVER_AUDIO_DECODER_H_ | 64 #endif // MEDIA_CAST_RECEIVER_AUDIO_DECODER_H_ |
OLD | NEW |