Line data Source code
1 : /*
2 : * Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
3 : *
4 : * Use of this source code is governed by a BSD-style license
5 : * that can be found in the LICENSE file in the root of the source
6 : * tree. An additional intellectual property rights grant can be found
7 : * in the file PATENTS. All contributing project authors may
8 : * be found in the AUTHORS file in the root of the source tree.
9 : */
10 :
11 : #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_LEGACY_ENCODED_AUDIO_FRAME_H_
12 : #define WEBRTC_MODULES_AUDIO_CODING_CODECS_LEGACY_ENCODED_AUDIO_FRAME_H_
13 :
14 : #include <vector>
15 :
16 : #include "webrtc/base/array_view.h"
17 : #include "webrtc/modules/audio_coding/codecs/audio_decoder.h"
18 :
19 : namespace webrtc {
20 :
21 0 : class LegacyEncodedAudioFrame final : public AudioDecoder::EncodedAudioFrame {
22 : public:
23 : LegacyEncodedAudioFrame(AudioDecoder* decoder, rtc::Buffer&& payload);
24 : ~LegacyEncodedAudioFrame() override;
25 :
26 : static std::vector<AudioDecoder::ParseResult> SplitBySamples(
27 : AudioDecoder* decoder,
28 : rtc::Buffer&& payload,
29 : uint32_t timestamp,
30 : size_t bytes_per_ms,
31 : uint32_t timestamps_per_ms);
32 :
33 : size_t Duration() const override;
34 :
35 : rtc::Optional<DecodeResult> Decode(
36 : rtc::ArrayView<int16_t> decoded) const override;
37 :
38 : // For testing:
39 : const rtc::Buffer& payload() const { return payload_; }
40 :
41 : private:
42 : AudioDecoder* const decoder_;
43 : const rtc::Buffer payload_;
44 : };
45 :
46 : } // namespace webrtc
47 :
48 : #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_LEGACY_ENCODED_AUDIO_FRAME_H_
|