@@ -45,10 +45,11 @@ uint8_t __aligned(4) unpadded_surround_left[] = {37, 38, 39, 40, 41, 42, 43, 44,
4545uint8_t __aligned (4 ) unpadded_surround_right [] = {49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 , 59 , 60 };
4646uint8_t stereo_split [] = {1 , 13 , 2 , 14 , 3 , 15 , 4 , 16 , 5 , 17 , 6 , 18 ,
4747 7 , 19 , 8 , 20 , 9 , 21 , 10 , 22 , 11 , 23 , 12 , 24 };
48- uint8_t multi_split [] = {1 , 13 , 25 , 37 , 49 , 2 , 14 , 26 , 38 , 50 , 3 , 15 , 27 , 39 , 51 ,
49- 4 , 16 , 28 , 40 , 52 , 5 , 17 , 29 , 41 , 53 , 6 , 18 , 30 , 42 , 54 ,
50- 7 , 19 , 31 , 43 , 55 , 8 , 20 , 32 , 44 , 56 , 9 , 21 , 33 , 45 , 57 ,
51- 10 , 22 , 34 , 46 , 58 , 11 , 23 , 35 , 47 , 59 , 12 , 24 , 36 , 48 , 60 };
48+ uint8_t __aligned (4 ) multi_split [] = {
49+ 1 , 13 , 25 , 37 , 49 , 2 , 14 , 26 , 38 , 50 , 3 , 15 , 27 , 39 , 51 ,
50+ 4 , 16 , 28 , 40 , 52 , 5 , 17 , 29 , 41 , 53 , 6 , 18 , 30 , 42 , 54 ,
51+ 7 , 19 , 31 , 43 , 55 , 8 , 20 , 32 , 44 , 56 , 9 , 21 , 33 , 45 , 57 ,
52+ 10 , 22 , 34 , 46 , 58 , 11 , 23 , 35 , 47 , 59 , 12 , 24 , 36 , 48 , 60 };
5253
5354/* Result arrays */
5455uint8_t left_zero_padded_8 [] = {1 , 0 , 2 , 0 , 3 , 0 , 4 , 0 , 5 , 0 , 6 , 0 ,
@@ -57,17 +58,17 @@ uint8_t right_zero_padded_8[] = {0, 13, 0, 14, 0, 15, 0, 16, 0, 17, 0, 18,
5758 0 , 19 , 0 , 20 , 0 , 21 , 0 , 22 , 0 , 23 , 0 , 24 };
5859uint8_t copy_padded_8 [] = {1 , 1 , 2 , 2 , 3 , 3 , 4 , 4 , 5 , 5 , 6 , 6 ,
5960 7 , 7 , 8 , 8 , 9 , 9 , 10 , 10 , 11 , 11 , 12 , 12 };
60- uint8_t combine_8_ch2 [] = {1 , 13 , 2 , 14 , 3 , 15 , 4 , 16 , 5 , 17 , 6 , 18 ,
61- 7 , 19 , 8 , 20 , 9 , 21 , 10 , 22 , 11 , 23 , 12 , 24 };
61+ uint8_t __aligned ( 4 ) combine_8_ch2 [] = {1 , 13 , 2 , 14 , 3 , 15 , 4 , 16 , 5 , 17 , 6 , 18 ,
62+ 7 , 19 , 8 , 20 , 9 , 21 , 10 , 22 , 11 , 23 , 12 , 24 };
6263
6364uint8_t left_zero_padded_16 [] = {1 , 2 , 0 , 0 , 3 , 4 , 0 , 0 , 5 , 6 , 0 , 0 ,
6465 7 , 8 , 0 , 0 , 9 , 10 , 0 , 0 , 11 , 12 , 0 , 0 };
6566uint8_t right_zero_padded_16 [] = {0 , 0 , 1 , 2 , 0 , 0 , 3 , 4 , 0 , 0 , 5 , 6 ,
6667 0 , 0 , 7 , 8 , 0 , 0 , 9 , 10 , 0 , 0 , 11 , 12 };
6768uint8_t copy_padded_16 [] = {1 , 2 , 1 , 2 , 3 , 4 , 3 , 4 , 5 , 6 , 5 , 6 ,
6869 7 , 8 , 7 , 8 , 9 , 10 , 9 , 10 , 11 , 12 , 11 , 12 };
69- uint8_t combine_16 [] = {1 , 2 , 13 , 14 , 3 , 4 , 15 , 16 , 5 , 6 , 17 , 18 ,
70- 7 , 8 , 19 , 20 , 9 , 10 , 21 , 22 , 11 , 12 , 23 , 24 };
70+ uint8_t __aligned ( 4 ) combine_16 [] = {1 , 2 , 13 , 14 , 3 , 4 , 15 , 16 , 5 , 6 , 17 , 18 ,
71+ 7 , 8 , 19 , 20 , 9 , 10 , 21 , 22 , 11 , 12 , 23 , 24 };
7172uint8_t stereo_split_left_16 [] = {1 , 13 , 3 , 15 , 5 , 17 , 7 , 19 , 9 , 21 , 11 , 23 };
7273uint8_t stereo_split_right_16 [] = {2 , 14 , 4 , 16 , 6 , 18 , 8 , 20 , 10 , 22 , 12 , 24 };
7374
@@ -77,8 +78,8 @@ uint8_t right_zero_padded_24[] = {0, 0, 0, 1, 2, 3, 0, 0, 0, 4, 5, 6,
7778 0 , 0 , 0 , 7 , 8 , 9 , 0 , 0 , 0 , 10 , 11 , 12 };
7879uint8_t copy_padded_24 [] = {1 , 2 , 3 , 1 , 2 , 3 , 4 , 5 , 6 , 4 , 5 , 6 ,
7980 7 , 8 , 9 , 7 , 8 , 9 , 10 , 11 , 12 , 10 , 11 , 12 };
80- uint8_t combine_24 [] = {1 , 2 , 3 , 13 , 14 , 15 , 4 , 5 , 6 , 16 , 17 , 18 ,
81- 7 , 8 , 9 , 19 , 20 , 21 , 10 , 11 , 12 , 22 , 23 , 24 };
81+ uint8_t __aligned ( 4 ) combine_24 [] = {1 , 2 , 3 , 13 , 14 , 15 , 4 , 5 , 6 , 16 , 17 , 18 ,
82+ 7 , 8 , 9 , 19 , 20 , 21 , 10 , 11 , 12 , 22 , 23 , 24 };
8283uint8_t stereo_split_left_24 [] = {1 , 13 , 2 , 4 , 16 , 5 , 7 , 19 , 8 , 10 , 22 , 11 };
8384uint8_t stereo_split_right_24 [] = {14 , 3 , 15 , 17 , 6 , 18 , 20 , 9 , 21 , 23 , 12 , 24 };
8485
@@ -88,8 +89,8 @@ uint8_t right_zero_padded_32[] = {0, 0, 0, 0, 1, 2, 3, 4, 0, 0, 0, 0,
8889 5 , 6 , 7 , 8 , 0 , 0 , 0 , 0 , 9 , 10 , 11 , 12 };
8990uint8_t copy_padded_32 [] = {1 , 2 , 3 , 4 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 ,
9091 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 9 , 10 , 11 , 12 };
91- uint8_t combine_32 [] = {1 , 2 , 3 , 4 , 13 , 14 , 15 , 16 , 5 , 6 , 7 , 8 ,
92- 17 , 18 , 19 , 20 , 9 , 10 , 11 , 12 , 21 , 22 , 23 , 24 };
92+ uint8_t __aligned ( 4 ) combine_32 [] = {1 , 2 , 3 , 4 , 13 , 14 , 15 , 16 , 5 , 6 , 7 , 8 ,
93+ 17 , 18 , 19 , 20 , 9 , 10 , 11 , 12 , 21 , 22 , 23 , 24 };
9394uint8_t stereo_split_left_32 [] = {1 , 13 , 2 , 14 , 5 , 17 , 6 , 18 , 9 , 21 , 10 , 22 };
9495uint8_t stereo_split_right_32 [] = {3 , 15 , 4 , 16 , 7 , 19 , 8 , 20 , 11 , 23 , 12 , 24 };
9596
@@ -160,7 +161,7 @@ ZTEST(suite_pscm_int, test_pscm_interleave_api_parameters)
160161ZTEST (suite_pscm_deint , test_pscm_deinterleave_api_parameters )
161162{
162163 int ret ;
163- uint8_t input [2 ], output [2 ];
164+ uint8_t __aligned ( 4 ) input [2 ], output [2 ];
164165 size_t input_size = sizeof (input );
165166 size_t output_size = sizeof (output );
166167 size_t test_output_size = 0 ;
@@ -205,6 +206,17 @@ ZTEST(suite_pscm_deint, test_pscm_deinterleave_api_parameters)
205206 ret = pscm_deinterleave (input , input_size , input_channels , channel , pcm_bit_depth , & output ,
206207 test_output_size );
207208 zassert_equal (ret , - EINVAL , "Failed de-interleave for output size too small: ret %d" , ret );
209+
210+ uint8_t * misaligned_input = (uint8_t * )input + 1 ;
211+ uint8_t * misaligned_output = (uint8_t * )output + 1 ;
212+
213+ ret = pscm_deinterleave (misaligned_input , input_size , input_channels , channel ,
214+ pcm_bit_depth , output , output_size );
215+ zassert_equal (ret , - EINVAL , "Failed de-interleave for misaligned input: ret %d" , ret );
216+
217+ ret = pscm_deinterleave (input , input_size , input_channels , channel , pcm_bit_depth ,
218+ misaligned_output , output_size );
219+ zassert_equal (ret , - EINVAL , "Failed de-interleave for misaligned output: ret %d" , ret );
208220}
209221
210222int interleave_test (void const * const input , size_t input_size , uint8_t pcm_bit_depth ,
@@ -233,7 +245,7 @@ int deinterleave_test(void const *const input, size_t input_size, uint8_t pcm_bi
233245 size_t test_result_size )
234246{
235247 int ret ;
236- uint8_t output [TEST_PCM_DEINT_SIZE ];
248+ uint8_t __aligned ( 4 ) output [TEST_PCM_DEINT_SIZE ];
237249 size_t output_size = sizeof (output );
238250
239251 ret = pscm_deinterleave (input , input_size , input_channels , channel , pcm_bit_depth , & output ,
0 commit comments