Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(19)

Side by Side Diff: webrtc/api/audio_codec/audio_decoder.h

Issue 2668523004: Move AudioDecoder and related stuff to the api/ directory (Closed)
Patch Set: sort #includes + git cl format Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 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 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 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
11 #ifndef WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_ 11 #ifndef WEBRTC_API_AUDIO_CODEC_AUDIO_DECODER_H_
12 #define WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_ 12 #define WEBRTC_API_AUDIO_CODEC_AUDIO_DECODER_H_
13 13
14 #include <memory> 14 #include <memory>
15 #include <vector> 15 #include <vector>
16 16
17 #include "webrtc/base/array_view.h" 17 #include "webrtc/base/array_view.h"
18 #include "webrtc/base/buffer.h" 18 #include "webrtc/base/buffer.h"
19 #include "webrtc/base/constructormagic.h" 19 #include "webrtc/base/constructormagic.h"
20 #include "webrtc/base/optional.h" 20 #include "webrtc/base/optional.h"
21 #include "webrtc/typedefs.h" 21 #include "webrtc/typedefs.h"
22 22
23 namespace webrtc { 23 namespace webrtc {
24 24
25 // This is the interface class for decoders in NetEQ. Each codec type will have
26 // and implementation of this class.
27 class AudioDecoder { 25 class AudioDecoder {
28 public: 26 public:
29 enum SpeechType { 27 enum SpeechType { kSpeech = 1, kComfortNoise = 2 };
ossu 2017/02/01 15:05:26 I think these should be left as-is, i.e. one-per-l
kwiberg-webrtc 2017/02/01 20:15:02 Since I moved this file, "git cl format" considere
ossu 2017/02/06 12:54:16 Yeah, I figured that might've been the case. I've
kwiberg-webrtc 2017/02/06 14:19:36 Fair enough. If a human really cares, that human s
ossu 2017/02/06 14:44:06 Thanks! :)
kwiberg-webrtc 2017/02/09 20:08:30 Aha! If I add a trailing comma just before the clo
30 kSpeech = 1,
31 kComfortNoise = 2
32 };
33 28
34 // Used by PacketDuration below. Save the value -1 for errors. 29 // Used by PacketDuration below. Save the value -1 for errors.
35 enum { kNotImplemented = -2 }; 30 enum { kNotImplemented = -2 };
36 31
37 AudioDecoder() = default; 32 AudioDecoder() = default;
38 virtual ~AudioDecoder() = default; 33 virtual ~AudioDecoder() = default;
39 34
40 class EncodedAudioFrame { 35 class EncodedAudioFrame {
41 public: 36 public:
42 struct DecodeResult { 37 struct DecodeResult {
(...skipping 30 matching lines...) Expand all
73 // The timestamp of the frame is in samples per channel. 68 // The timestamp of the frame is in samples per channel.
74 uint32_t timestamp; 69 uint32_t timestamp;
75 // The relative priority of the frame compared to other frames of the same 70 // The relative priority of the frame compared to other frames of the same
76 // payload and the same timeframe. A higher value means a lower priority. 71 // payload and the same timeframe. A higher value means a lower priority.
77 // The highest priority is zero - negative values are not allowed. 72 // The highest priority is zero - negative values are not allowed.
78 int priority; 73 int priority;
79 std::unique_ptr<EncodedAudioFrame> frame; 74 std::unique_ptr<EncodedAudioFrame> frame;
80 }; 75 };
81 76
82 // Let the decoder parse this payload and prepare zero or more decodable 77 // Let the decoder parse this payload and prepare zero or more decodable
83 // frames. Each frame must be between 10 ms and 120 ms long. The caller must 78 // frames. Each frame must be between 10 ms and 120 ms long. The caller must
the sun 2017/02/02 21:02:29 nit: it must be from 10 ms up to 120 ms long? can
kwiberg-webrtc 2017/02/03 09:50:11 Yes, I believe that's what NetEq et al. expect.
ossu 2017/02/06 12:54:16 Wait, what?
kwiberg-webrtc 2017/02/06 14:19:36 I think we've probably already talked about most o
ossu 2017/02/06 14:44:06 Oh, right, yes, I agree. I was thinking this was r
84 // ensure that the AudioDecoder object outlives any frame objects returned by 79 // ensure that the AudioDecoder object outlives any frame objects returned by
85 // this call. The decoder is free to swap or move the data from the |payload| 80 // this call. The decoder is free to swap or move the data from the |payload|
86 // buffer. |timestamp| is the input timestamp, in samples, corresponding to 81 // buffer. |timestamp| is the input timestamp, in samples, corresponding to
87 // the start of the payload. 82 // the start of the payload.
88 virtual std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload, 83 virtual std::vector<ParseResult> ParsePayload(rtc::Buffer&& payload,
89 uint32_t timestamp); 84 uint32_t timestamp);
90 85
91 // Decodes |encode_len| bytes from |encoded| and writes the result in 86 // Decodes |encode_len| bytes from |encoded| and writes the result in
92 // |decoded|. The maximum bytes allowed to be written into |decoded| is 87 // |decoded|. The maximum bytes allowed to be written into |decoded| is
93 // |max_decoded_bytes|. Returns the total number of samples across all 88 // |max_decoded_bytes|. Returns the total number of samples across all
(...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after
169 size_t encoded_len, 164 size_t encoded_len,
170 int sample_rate_hz, 165 int sample_rate_hz,
171 int16_t* decoded, 166 int16_t* decoded,
172 SpeechType* speech_type); 167 SpeechType* speech_type);
173 168
174 private: 169 private:
175 RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoder); 170 RTC_DISALLOW_COPY_AND_ASSIGN(AudioDecoder);
176 }; 171 };
177 172
178 } // namespace webrtc 173 } // namespace webrtc
179 #endif // WEBRTC_MODULES_AUDIO_CODING_CODECS_AUDIO_DECODER_H_ 174 #endif // WEBRTC_API_AUDIO_CODEC_AUDIO_DECODER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698