mirror of
				https://github.com/PabloMK7/citra.git
				synced 2025-10-31 05:40:04 +00:00 
			
		
		
		
	Merge pull request #2958 from Subv/audio_buffer_datatype
Audio: Use std::deque instead of std::vector for the audio buffer type (StereoBuffer16)
This commit is contained in:
		
						commit
						0c20da7fde
					
				
					 5 changed files with 9 additions and 7 deletions
				
			
		|  | @ -117,7 +117,9 @@ StereoBuffer16 DecodePCM16(const unsigned num_channels, const u8* const data, | |||
|             ret[i].fill(sample); | ||||
|         } | ||||
|     } else { | ||||
|         std::memcpy(ret.data(), data, sample_count * 2 * sizeof(u16)); | ||||
|         for (size_t i = 0; i < sample_count; ++i) { | ||||
|             std::memcpy(&ret[i], data + i * sizeof(s16) * 2, 2 * sizeof(s16)); | ||||
|         } | ||||
|     } | ||||
| 
 | ||||
|     return ret; | ||||
|  |  | |||
|  | @ -5,13 +5,13 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <array> | ||||
| #include <vector> | ||||
| #include <deque> | ||||
| #include "common/common_types.h" | ||||
| 
 | ||||
| namespace Codec { | ||||
| 
 | ||||
| /// A variable length buffer of signed PCM16 stereo samples.
 | ||||
| using StereoBuffer16 = std::vector<std::array<s16, 2>>; | ||||
| using StereoBuffer16 = std::deque<std::array<s16, 2>>; | ||||
| 
 | ||||
| /// See: Codec::DecodeADPCM
 | ||||
| struct ADPCMState { | ||||
|  |  | |||
|  | @ -108,7 +108,7 @@ private: | |||
| 
 | ||||
|         u32 current_sample_number = 0; | ||||
|         u32 next_sample_number = 0; | ||||
|         std::vector<std::array<s16, 2>> current_buffer; | ||||
|         AudioInterp::StereoBuffer16 current_buffer; | ||||
| 
 | ||||
|         // buffer_id state
 | ||||
| 
 | ||||
|  |  | |||
|  | @ -47,7 +47,7 @@ static void StepOverSamples(State& state, StereoBuffer16& input, float rate, | |||
|     state.xn1 = input[inputi + 1]; | ||||
|     state.fposition = fposition - inputi * scale_factor; | ||||
| 
 | ||||
|     input.erase(input.begin(), input.begin() + inputi + 2); | ||||
|     input.erase(input.begin(), std::next(input.begin(), inputi + 2)); | ||||
| } | ||||
| 
 | ||||
| void None(State& state, StereoBuffer16& input, float rate, DSP::HLE::StereoFrame16& output, | ||||
|  |  | |||
|  | @ -5,14 +5,14 @@ | |||
| #pragma once | ||||
| 
 | ||||
| #include <array> | ||||
| #include <vector> | ||||
| #include <deque> | ||||
| #include "audio_core/hle/common.h" | ||||
| #include "common/common_types.h" | ||||
| 
 | ||||
| namespace AudioInterp { | ||||
| 
 | ||||
| /// A variable length buffer of signed PCM16 stereo samples.
 | ||||
| using StereoBuffer16 = std::vector<std::array<s16, 2>>; | ||||
| using StereoBuffer16 = std::deque<std::array<s16, 2>>; | ||||
| 
 | ||||
| struct State { | ||||
|     /// Two historical samples.
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue