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

Side by Side Diff: chromecast/media/cma/backend/alsa/slew_volume.h

Issue 2860673003: [Chromecast] Correct libcast_governor behavior. (Closed)
Patch Set: bcf's comments pt 2: Electric Boogaloo Created 3 years, 7 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 // Copyright 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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 // Scale volume with slew rate limiting 5 // Scale volume with slew rate limiting
6 6
7 #ifndef CHROMECAST_MEDIA_CMA_BACKEND_ALSA_SLEW_VOLUME_H_ 7 #ifndef CHROMECAST_MEDIA_CMA_BACKEND_ALSA_SLEW_VOLUME_H_
8 #define CHROMECAST_MEDIA_CMA_BACKEND_ALSA_SLEW_VOLUME_H_ 8 #define CHROMECAST_MEDIA_CMA_BACKEND_ALSA_SLEW_VOLUME_H_
9 9
10 #include <stdint.h> 10 #include <stdint.h>
(...skipping 19 matching lines...) Expand all
30 30
31 // Assumes 1 channel float data that is 16-byte aligned. Smoothly calculates 31 // Assumes 1 channel float data that is 16-byte aligned. Smoothly calculates
32 // dest[i] += src[i] * volume_scaling 32 // dest[i] += src[i] * volume_scaling
33 // ProcessFMAC will be called once for each channel of audio present and 33 // ProcessFMAC will be called once for each channel of audio present and
34 // |repeat_transition| will be true for channels 2 through n. 34 // |repeat_transition| will be true for channels 2 through n.
35 void ProcessFMAC(bool repeat_transition, 35 void ProcessFMAC(bool repeat_transition,
36 const float* src, 36 const float* src,
37 int frames, 37 int frames,
38 float* dest); 38 float* dest);
39 39
40 // Processes a single channel of float data
41 // dest[i] = src[i] * volume_scaling.
42 // ProcessFMUL will be called once for each channel of audio present.
43 // |repeat_transition| should be true for channels 2 through n.
40 // Assumes 2 channels. 44 // Assumes 2 channels.
41 bool ProcessInterleaved(int32_t* data, int frames); 45 void ProcessFMUL(bool repeat_transition,
46 const float* src,
47 int frames,
48 float* dest);
42 49
43 private: 50 private:
44 double sample_rate_; 51 double sample_rate_;
45 double volume_scale_ = 1.0; 52 double volume_scale_ = 1.0;
46 double current_volume_ = 1.0; 53 double current_volume_ = 1.0;
47 double last_starting_volume_ = 1.0; 54 double last_starting_volume_ = 1.0;
48 double max_slew_time_ms_; 55 double max_slew_time_ms_;
49 double max_slew_per_sample_; 56 double max_slew_per_sample_;
50 bool interrupted_ = true; 57 bool interrupted_ = true;
51 58
52 DISALLOW_COPY_AND_ASSIGN(SlewVolume); 59 DISALLOW_COPY_AND_ASSIGN(SlewVolume);
53 }; 60 };
54 61
55 } // namespace media 62 } // namespace media
56 } // namespace chromecast 63 } // namespace chromecast
57 64
58 #endif // CHROMECAST_MEDIA_CMA_BACKEND_ALSA_SLEW_VOLUME_H_ 65 #endif // CHROMECAST_MEDIA_CMA_BACKEND_ALSA_SLEW_VOLUME_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698