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

Side by Side Diff: webrtc/common_audio/audio_converter.h

Issue 1316523002: Convert channel counts to size_t. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc@master
Patch Set: Fix compile Created 4 years, 11 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
« no previous file with comments | « webrtc/audio/audio_sink.h ('k') | webrtc/common_audio/audio_converter.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2014 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2014 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_COMMON_AUDIO_AUDIO_CONVERTER_H_ 11 #ifndef WEBRTC_COMMON_AUDIO_AUDIO_CONVERTER_H_
12 #define WEBRTC_COMMON_AUDIO_AUDIO_CONVERTER_H_ 12 #define WEBRTC_COMMON_AUDIO_AUDIO_CONVERTER_H_
13 13
14 #include "webrtc/base/constructormagic.h" 14 #include "webrtc/base/constructormagic.h"
15 #include "webrtc/base/scoped_ptr.h" 15 #include "webrtc/base/scoped_ptr.h"
16 16
17 namespace webrtc { 17 namespace webrtc {
18 18
19 // Format conversion (remixing and resampling) for audio. Only simple remixing 19 // Format conversion (remixing and resampling) for audio. Only simple remixing
20 // conversions are supported: downmix to mono (i.e. |dst_channels| == 1) or 20 // conversions are supported: downmix to mono (i.e. |dst_channels| == 1) or
21 // upmix from mono (i.e. |src_channels == 1|). 21 // upmix from mono (i.e. |src_channels == 1|).
22 // 22 //
23 // The source and destination chunks have the same duration in time; specifying 23 // The source and destination chunks have the same duration in time; specifying
24 // the number of frames is equivalent to specifying the sample rates. 24 // the number of frames is equivalent to specifying the sample rates.
25 class AudioConverter { 25 class AudioConverter {
26 public: 26 public:
27 // Returns a new AudioConverter, which will use the supplied format for its 27 // Returns a new AudioConverter, which will use the supplied format for its
28 // lifetime. Caller is responsible for the memory. 28 // lifetime. Caller is responsible for the memory.
29 static rtc::scoped_ptr<AudioConverter> Create(int src_channels, 29 static rtc::scoped_ptr<AudioConverter> Create(size_t src_channels,
30 size_t src_frames, 30 size_t src_frames,
31 int dst_channels, 31 size_t dst_channels,
32 size_t dst_frames); 32 size_t dst_frames);
33 virtual ~AudioConverter() {}; 33 virtual ~AudioConverter() {};
34 34
35 // Convert |src|, containing |src_size| samples, to |dst|, having a sample 35 // Convert |src|, containing |src_size| samples, to |dst|, having a sample
36 // capacity of |dst_capacity|. Both point to a series of buffers containing 36 // capacity of |dst_capacity|. Both point to a series of buffers containing
37 // the samples for each channel. The sizes must correspond to the format 37 // the samples for each channel. The sizes must correspond to the format
38 // passed to Create(). 38 // passed to Create().
39 virtual void Convert(const float* const* src, size_t src_size, 39 virtual void Convert(const float* const* src, size_t src_size,
40 float* const* dst, size_t dst_capacity) = 0; 40 float* const* dst, size_t dst_capacity) = 0;
41 41
42 int src_channels() const { return src_channels_; } 42 size_t src_channels() const { return src_channels_; }
43 size_t src_frames() const { return src_frames_; } 43 size_t src_frames() const { return src_frames_; }
44 int dst_channels() const { return dst_channels_; } 44 size_t dst_channels() const { return dst_channels_; }
45 size_t dst_frames() const { return dst_frames_; } 45 size_t dst_frames() const { return dst_frames_; }
46 46
47 protected: 47 protected:
48 AudioConverter(); 48 AudioConverter();
49 AudioConverter(int src_channels, size_t src_frames, int dst_channels, 49 AudioConverter(size_t src_channels, size_t src_frames, size_t dst_channels,
50 size_t dst_frames); 50 size_t dst_frames);
51 51
52 // Helper to RTC_CHECK that inputs are correctly sized. 52 // Helper to RTC_CHECK that inputs are correctly sized.
53 void CheckSizes(size_t src_size, size_t dst_capacity) const; 53 void CheckSizes(size_t src_size, size_t dst_capacity) const;
54 54
55 private: 55 private:
56 const int src_channels_; 56 const size_t src_channels_;
57 const size_t src_frames_; 57 const size_t src_frames_;
58 const int dst_channels_; 58 const size_t dst_channels_;
59 const size_t dst_frames_; 59 const size_t dst_frames_;
60 60
61 RTC_DISALLOW_COPY_AND_ASSIGN(AudioConverter); 61 RTC_DISALLOW_COPY_AND_ASSIGN(AudioConverter);
62 }; 62 };
63 63
64 } // namespace webrtc 64 } // namespace webrtc
65 65
66 #endif // WEBRTC_COMMON_AUDIO_AUDIO_CONVERTER_H_ 66 #endif // WEBRTC_COMMON_AUDIO_AUDIO_CONVERTER_H_
OLDNEW
« no previous file with comments | « webrtc/audio/audio_sink.h ('k') | webrtc/common_audio/audio_converter.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698