From 99c2e49e795757cb1b00c649925e5afeb2423342 Mon Sep 17 00:00:00 2001 From: Larry Snizek Date: Mon, 9 Sep 2019 11:05:32 +0100 Subject: [PATCH 01/12] Use a non-numbered version tag in changelog --- CHANGELOG.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.rst b/CHANGELOG.rst index dbfd354d..a4779ce3 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -1,8 +1,8 @@ lib_mic_array change log ======================== -3.2.0_demo_1 ------------- +3.2.0_demo +---------- * Optimised two-microphone version that runs in a single thread From 76a35a32167180373998a8b14ec5918f2d60b932 Mon Sep 17 00:00:00 2001 From: Larry Snizek Date: Wed, 9 Oct 2019 12:46:16 +0100 Subject: [PATCH 02/12] Remove debug print --- lib_mic_array/src/mic_array_dual.xc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib_mic_array/src/mic_array_dual.xc b/lib_mic_array/src/mic_array_dual.xc index dbacf18a..f87ba941 100644 --- a/lib_mic_array/src/mic_array_dual.xc +++ b/lib_mic_array/src/mic_array_dual.xc @@ -395,7 +395,7 @@ void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c break; default: //The host doesn't start sending ref audio for a while at startup so we have to be prepared for nothing on channel - printstr("."); //This is debug and can be removed + //printstr("."); //This is debug and can be removed break; } @@ -429,4 +429,4 @@ void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c //if (t1-t0 > 600) printintln(t1-t0); //printintln(t1-t0); } -} \ No newline at end of file +} From 0342fc470e7780fb18482cc33bf0ad1c7cb53128 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Wed, 13 Nov 2019 15:37:33 +0000 Subject: [PATCH 03/12] Merge from develop branch. This merge was deferred to allow for some additional checking which has now concluded. --- lib_mic_array/src/mic_array_dual.xc | 83 +++++++++++++++++++---------- 1 file changed, 55 insertions(+), 28 deletions(-) diff --git a/lib_mic_array/src/mic_array_dual.xc b/lib_mic_array/src/mic_array_dual.xc index f87ba941..5e3a1db7 100644 --- a/lib_mic_array/src/mic_array_dual.xc +++ b/lib_mic_array/src/mic_array_dual.xc @@ -1,3 +1,4 @@ +// Copyright (c) 2019, XMOS Ltd, All rights reserved #include #include #include @@ -8,13 +9,29 @@ extern const int [[aligned(8)]] g_third_stage_div_6_fir_dual[192]; //From fir_coefs_dual.xc. We make a LL aligned copy of this #include "dsp_qformat.h" //Gain compensation +#if (defined(MIC_DUAL_ENABLED) && (MIC_DUAL_ENABLED == 1)) +#error MIC_DUAL_ENABLED is defined as 1 +#endif -#define MIC_PAIR_OUTPUT_BLOCK_SIZE MIC_ARRAY_FRAME_SIZE -#define MIC_GAIN_COMPENSATION 2.117307f //Value needed to bring mic level up to inputNear[] compared with lib_mic_array +#if (defined(MIC_DUAL_ENABLED) && (MIC_DUAL_ENABLED == 0)) +#undef MIC_DUAL_ENABLED +#endif + +#ifndef MIC_DUAL_ENABLED + #ifndef MIC_DUAL_FRAME_SIZE + #define MIC_DUAL_FRAME_SIZE 1 + #else + #error "Set MIC_DUAL_ENABLED to 1." + #endif +#endif + +#define MIC_DUAL_OUTPUT_BLOCK_SIZE MIC_DUAL_FRAME_SIZE +#define MIC_DUAL_GAIN_COMPENSATION 2.117307f //Value needed to bring mic level up to inputNear[] compared with lib_mic_array //Max is 7.999 due to Q28 format -#define MIC_PAIR_NUM_OUT_BUFFERS 2 //Single (1) or double (2) buffered -#define MIC_PAIR_NUM_CHANNELS 2 //Always 2 because it's a pair of mics we are decimating -#define MIC_PAIR_NUM_REF_CHANNELS 2 //Always 2 in xvf3510 case +#define MIC_DUAL_NUM_OUT_BUFFERS 2 //Single (1) or double (2) buffered +#define MIC_DUAL_NUM_CHANNELS 2 //Always 2 because it's a pair of mics we are decimating +#define MIC_DUAL_NUM_REF_CHANNELS 2 //Always 2 in xvf3510 case + #pragma unsafe arrays //This effectively implements a delayline of 6 chars of bits, the later three reversed @@ -286,39 +303,49 @@ static int dc_eliminate(int x, int &prev_x, long long &state){ } +// If not MIC_DUAL_ENABLED, cause a link error +#ifdef MIC_DUAL_ENABLED + #pragma unsafe arrays void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c_2x_pdm_mic, streaming chanend c_ref_audio[]){ +#else + +#pragma unsafe arrays +void mic_dual_pdm_rx_decimate_DEFAULT_DEFINES(buffered in port:32 p_pdm_mic, streaming chanend c_2x_pdm_mic, streaming chanend c_ref_audio[]){ + +#endif + //Send initial request to UBM c_ref_audio[0] <: 0; c_ref_audio[1] <: 0; - unsigned delay_line[MIC_PAIR_NUM_CHANNELS][2] = {{0xaaaaaaaa, 0x55555555}, {0xaaaaaaaa, 0x55555555}}; //48 taps, init to pdm zero - int [[aligned(8)]] out_first_stage[MIC_PAIR_NUM_CHANNELS][4] = {{0}}; + unsigned delay_line[MIC_DUAL_NUM_CHANNELS][2] = {{0xaaaaaaaa, 0x55555555}, {0xaaaaaaaa, 0x55555555}}; //48 taps, init to pdm zero + int [[aligned(8)]] out_first_stage[MIC_DUAL_NUM_CHANNELS][4] = {{0}}; unsigned mid_stage_delay_idx = 0; const unsigned mid_stage_decimation_factor = 4; const unsigned mid_stage_ntaps = 16; - int [[aligned(8)]] mid_stage_delay[MIC_PAIR_NUM_CHANNELS][16 * 2]; //Double length for circular buffer simulation + int [[aligned(8)]] mid_stage_delay[MIC_DUAL_NUM_CHANNELS][16 * 2]; //Double length for circular buffer simulation memset(mid_stage_delay, 0, sizeof(mid_stage_delay)); - int final_stage_in_pcm[MIC_PAIR_NUM_CHANNELS] = {0, 0}; + int final_stage_in_pcm[MIC_DUAL_NUM_CHANNELS] = {0, 0}; unsigned block_sample_count = 0; //Used for assembling blocks from individual samples unsigned block_buffer_idx = 0; //Optional double buffer for output blocks int * unsafe phase_coeff_ptrs[6]; - int [[aligned(8)]] final_stage_delay_poly[MIC_PAIR_NUM_CHANNELS][6][32] = {{{0}}}; + int [[aligned(8)]] final_stage_delay_poly[MIC_DUAL_NUM_CHANNELS][6][32] = {{{0}}}; memset(final_stage_delay_poly, 0, sizeof(final_stage_delay_poly)); unsigned final_stage_phase = 0; - int pcm_output[MIC_PAIR_NUM_CHANNELS] = {0, 0}; + int pcm_output[MIC_DUAL_NUM_CHANNELS] = {0, 0}; - int dc_elim_prev[MIC_PAIR_NUM_CHANNELS] = {0, 0}; - long long dc_elim_state[MIC_PAIR_NUM_CHANNELS] = {0, 0}; + int dc_elim_prev[MIC_DUAL_NUM_CHANNELS] = {0, 0}; + long long dc_elim_state[MIC_DUAL_NUM_CHANNELS] = {0, 0}; - int output_block[MIC_PAIR_NUM_OUT_BUFFERS][MIC_PAIR_OUTPUT_BLOCK_SIZE][MIC_PAIR_NUM_CHANNELS + MIC_PAIR_NUM_REF_CHANNELS]; + int output_block[MIC_DUAL_NUM_OUT_BUFFERS][MIC_DUAL_OUTPUT_BLOCK_SIZE][MIC_DUAL_NUM_CHANNELS + MIC_DUAL_NUM_REF_CHANNELS]; memset(output_block, 0, sizeof(output_block)); //Setup nice array of pointers for each phase of coefficients @@ -346,7 +373,7 @@ void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c #pragma loop unroll for (int i = 0; i < 4; i++){ #pragma loop unroll - for (int ch = 0; ch < MIC_PAIR_NUM_CHANNELS; ch++){ + for (int ch = 0; ch < MIC_DUAL_NUM_CHANNELS; ch++){ unsigned char pdm = port_data[ch] >> (8 * i); //printbinln(pdm); int out_first_stage_tmp = first_stage_fir(pdm, delay_line[ch]); @@ -358,14 +385,14 @@ void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c //CALL MID STAGE FIR #pragma loop unroll - for (int ch = 0; ch < MIC_PAIR_NUM_CHANNELS; ch++){ + for (int ch = 0; ch < MIC_DUAL_NUM_CHANNELS; ch++){ int * first_stage_out_src_ptr = out_first_stage[ch]; ciruclar_buffer_sim_cpy(first_stage_out_src_ptr, (int * unsafe)&mid_stage_delay[ch][mid_stage_delay_idx]); } mid_stage_delay_idx += mid_stage_decimation_factor; //Increment before FIR so we get a proper buffer history #pragma loop unroll - for (int ch = 0; ch < MIC_PAIR_NUM_CHANNELS; ch++){ + for (int ch = 0; ch < MIC_DUAL_NUM_CHANNELS; ch++){ final_stage_in_pcm[ch] = mid_stage_fir(g_second_stage_fir, mid_stage_delay[ch], mid_stage_delay_idx); } //printintln(final_stage_in_pcm[0]); @@ -375,7 +402,7 @@ void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c //CALL FINAL STAGE POLYPHASE FIR #pragma loop unroll - for (int ch = 0; ch < MIC_PAIR_NUM_CHANNELS; ch++){ + for (int ch = 0; ch < MIC_DUAL_NUM_CHANNELS; ch++){ pcm_output[ch] += final_stage_poly_fir(final_stage_in_pcm[ch], final_stage_delay_poly[ch][final_stage_phase], phase_coeff_ptrs[final_stage_phase]); } @@ -386,12 +413,12 @@ void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c //If we have reached stage 6 then we are ready to send a pair of decimated 16kHz mic signals //and also receive reference audio - unsigned ref_audio[MIC_PAIR_NUM_REF_CHANNELS]; + unsigned ref_audio[MIC_DUAL_NUM_REF_CHANNELS]; select{ case c_ref_audio[0] :> ref_audio[0]: - for (int ch = 1; ch < MIC_PAIR_NUM_REF_CHANNELS; ch++) c_ref_audio[ch] :> ref_audio[ch]; + for (int ch = 1; ch < MIC_DUAL_NUM_REF_CHANNELS; ch++) c_ref_audio[ch] :> ref_audio[ch]; //Request some more samples - for (int ch = 0; ch < MIC_PAIR_NUM_REF_CHANNELS; ch++) c_ref_audio[ch] <: 0; + for (int ch = 0; ch < MIC_DUAL_NUM_REF_CHANNELS; ch++) c_ref_audio[ch] <: 0; break; default: //The host doesn't start sending ref audio for a while at startup so we have to be prepared for nothing on channel @@ -400,24 +427,24 @@ void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c } #pragma loop unroll - for (int ch = 0; ch < MIC_PAIR_NUM_CHANNELS; ch++){ + for (int ch = 0; ch < MIC_DUAL_NUM_CHANNELS; ch++){ //Now remove DC and apply some gain pcm_output[ch] = dc_eliminate(pcm_output[ch], dc_elim_prev[ch], dc_elim_state[ch]); - pcm_output[ch] = (int)( ( (long long)pcm_output[ch] * Q28(MIC_GAIN_COMPENSATION) ) >> (28)); + pcm_output[ch] = (int)( ( (long long)pcm_output[ch] * Q28(MIC_DUAL_GAIN_COMPENSATION) ) >> (28)); output_block[block_buffer_idx][block_sample_count][ch] = pcm_output[ch]; } - for (int ch = 0; ch < MIC_PAIR_NUM_REF_CHANNELS; ch++){ - output_block[block_buffer_idx][block_sample_count][MIC_PAIR_NUM_CHANNELS + ch] = ref_audio[ch]; + for (int ch = 0; ch < MIC_DUAL_NUM_REF_CHANNELS; ch++){ + output_block[block_buffer_idx][block_sample_count][MIC_DUAL_NUM_CHANNELS + ch] = ref_audio[ch]; } block_sample_count++; //We have assembled a block so pass a pointer to the consumer - if (block_sample_count == MIC_PAIR_OUTPUT_BLOCK_SIZE){ + if (block_sample_count == MIC_DUAL_OUTPUT_BLOCK_SIZE){ c_2x_pdm_mic <: (unsigned)output_block[block_buffer_idx]; block_sample_count = 0; - block_buffer_idx ^= (MIC_PAIR_NUM_OUT_BUFFERS - 1); //Toggle if double buffer, else do nothing + block_buffer_idx ^= (MIC_DUAL_NUM_OUT_BUFFERS - 1); //Toggle if double buffer, else do nothing } #pragma loop unroll - for (int ch = 0; ch < MIC_PAIR_NUM_CHANNELS; ch++){ + for (int ch = 0; ch < MIC_DUAL_NUM_CHANNELS; ch++){ pcm_output[ch] = 0; } final_stage_phase = 0; From 9c5f469802c1437a72a2ce254680d07038411d07 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Wed, 13 Nov 2019 16:30:14 +0000 Subject: [PATCH 04/12] Remove debugging code. --- lib_mic_array/src/mic_array_dual.xc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib_mic_array/src/mic_array_dual.xc b/lib_mic_array/src/mic_array_dual.xc index 5e3a1db7..7c366ea4 100644 --- a/lib_mic_array/src/mic_array_dual.xc +++ b/lib_mic_array/src/mic_array_dual.xc @@ -9,10 +9,6 @@ extern const int [[aligned(8)]] g_third_stage_div_6_fir_dual[192]; //From fir_coefs_dual.xc. We make a LL aligned copy of this #include "dsp_qformat.h" //Gain compensation -#if (defined(MIC_DUAL_ENABLED) && (MIC_DUAL_ENABLED == 1)) -#error MIC_DUAL_ENABLED is defined as 1 -#endif - #if (defined(MIC_DUAL_ENABLED) && (MIC_DUAL_ENABLED == 0)) #undef MIC_DUAL_ENABLED #endif From eec2323af09ac45df32a41fe35dea471f3bdaa6f Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Thu, 21 Nov 2019 16:50:43 +0000 Subject: [PATCH 05/12] Add default values for configuration constants. --- lib_mic_array/api/mic_array_frame.h | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/lib_mic_array/api/mic_array_frame.h b/lib_mic_array/api/mic_array_frame.h index fc9654d6..79dc80fc 100644 --- a/lib_mic_array/api/mic_array_frame.h +++ b/lib_mic_array/api/mic_array_frame.h @@ -6,6 +6,18 @@ #include "mic_array_conf.h" #include "dsp_fft.h" +#ifndef MIC_DUAL_FRAME_SIZE + #define MIC_DUAL_FRAME_SIZE (1) +#endif + +#ifndef MIC_ARRAY_FRAME_SIZE + #define MIC_ARRAY_FRAME_SIZE (1) +#endif + +#ifndef MIC_ARRAY_MAX_FRAME_SIZE_LOG2 + #define MIC_ARRAY_FRAME_SIZE (0) +#endif + #ifndef MIC_ARRAY_WORD_LENGTH_SHORT #define MIC_ARRAY_WORD_LENGTH_SHORT 0 #endif From 696159a9e74350edba35a2e5064f03dfb30a3c46 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Thu, 21 Nov 2019 16:53:27 +0000 Subject: [PATCH 06/12] Remove the default definition for the MIC_DUAL_FRAME_SIZE configuration constant since it has been defined in mic_array_frame.h. Instead of throwing a link error if MIC_DUAL_ENABLED is not set greater than 0, throw a compilation error. --- lib_mic_array/src/mic_array_dual.xc | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/lib_mic_array/src/mic_array_dual.xc b/lib_mic_array/src/mic_array_dual.xc index 7c366ea4..193deb3c 100644 --- a/lib_mic_array/src/mic_array_dual.xc +++ b/lib_mic_array/src/mic_array_dual.xc @@ -14,9 +14,7 @@ extern const int [[aligned(8)]] g_third_stage_div_6_fir_dual[192]; //From fir_co #endif #ifndef MIC_DUAL_ENABLED - #ifndef MIC_DUAL_FRAME_SIZE - #define MIC_DUAL_FRAME_SIZE 1 - #else + #ifdef MIC_DUAL_FRAME_SIZE #error "Set MIC_DUAL_ENABLED to 1." #endif #endif @@ -305,13 +303,6 @@ static int dc_eliminate(int x, int &prev_x, long long &state){ #pragma unsafe arrays void mic_dual_pdm_rx_decimate(buffered in port:32 p_pdm_mic, streaming chanend c_2x_pdm_mic, streaming chanend c_ref_audio[]){ -#else - -#pragma unsafe arrays -void mic_dual_pdm_rx_decimate_DEFAULT_DEFINES(buffered in port:32 p_pdm_mic, streaming chanend c_2x_pdm_mic, streaming chanend c_ref_audio[]){ - -#endif - //Send initial request to UBM c_ref_audio[0] <: 0; c_ref_audio[1] <: 0; @@ -453,3 +444,4 @@ void mic_dual_pdm_rx_decimate_DEFAULT_DEFINES(buffered in port:32 p_pdm_mic, str //printintln(t1-t0); } } +#endif From 9f1786207116b2c859bd899263e3494f2701274b Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Thu, 21 Nov 2019 17:17:38 +0000 Subject: [PATCH 07/12] Define the correct symbol! --- lib_mic_array/api/mic_array_frame.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_mic_array/api/mic_array_frame.h b/lib_mic_array/api/mic_array_frame.h index 79dc80fc..1c1d94e5 100644 --- a/lib_mic_array/api/mic_array_frame.h +++ b/lib_mic_array/api/mic_array_frame.h @@ -15,7 +15,7 @@ #endif #ifndef MIC_ARRAY_MAX_FRAME_SIZE_LOG2 - #define MIC_ARRAY_FRAME_SIZE (0) + #define MIC_ARRAY_FRAME_SIZE_LOG2 (0) #endif #ifndef MIC_ARRAY_WORD_LENGTH_SHORT From 961dbe7d39a3c57ba375cec4fa593cc360a341e2 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Thu, 21 Nov 2019 17:19:46 +0000 Subject: [PATCH 08/12] Define the correct symbol (take 2)! --- lib_mic_array/api/mic_array_frame.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_mic_array/api/mic_array_frame.h b/lib_mic_array/api/mic_array_frame.h index 1c1d94e5..b87db243 100644 --- a/lib_mic_array/api/mic_array_frame.h +++ b/lib_mic_array/api/mic_array_frame.h @@ -15,7 +15,7 @@ #endif #ifndef MIC_ARRAY_MAX_FRAME_SIZE_LOG2 - #define MIC_ARRAY_FRAME_SIZE_LOG2 (0) + #define MIC_ARRAY_MAX_FRAME_SIZE_LOG2 (0) #endif #ifndef MIC_ARRAY_WORD_LENGTH_SHORT From da483e9bdd388136dd5cafd4f386b37384eb0f31 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Thu, 21 Nov 2019 17:34:03 +0000 Subject: [PATCH 09/12] Move the default definition of MIC_ARRAY_MAX_FRAME_SIZE_LOG2 to mic_array_conf.h so that an assembler file can pick it up using a #include. --- lib_mic_array/api/mic_array_frame.h | 4 ---- 1 file changed, 4 deletions(-) diff --git a/lib_mic_array/api/mic_array_frame.h b/lib_mic_array/api/mic_array_frame.h index b87db243..1900b90d 100644 --- a/lib_mic_array/api/mic_array_frame.h +++ b/lib_mic_array/api/mic_array_frame.h @@ -14,10 +14,6 @@ #define MIC_ARRAY_FRAME_SIZE (1) #endif -#ifndef MIC_ARRAY_MAX_FRAME_SIZE_LOG2 - #define MIC_ARRAY_MAX_FRAME_SIZE_LOG2 (0) -#endif - #ifndef MIC_ARRAY_WORD_LENGTH_SHORT #define MIC_ARRAY_WORD_LENGTH_SHORT 0 #endif From df0d7657a27e14526fdb7c435866513a8cfa89a3 Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Fri, 22 Nov 2019 10:07:20 +0000 Subject: [PATCH 10/12] Add a default definition of MIC_DUAL_ENABLED and set it to false. --- lib_mic_array/api/mic_array_frame.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib_mic_array/api/mic_array_frame.h b/lib_mic_array/api/mic_array_frame.h index 1900b90d..9f7d562b 100644 --- a/lib_mic_array/api/mic_array_frame.h +++ b/lib_mic_array/api/mic_array_frame.h @@ -6,6 +6,10 @@ #include "mic_array_conf.h" #include "dsp_fft.h" +#ifndef MIC_DUAL_ENABLED + #define MIC_DUAL_ENABLED (0) +#endif + #ifndef MIC_DUAL_FRAME_SIZE #define MIC_DUAL_FRAME_SIZE (1) #endif From f98c838b4805249502277825a5b22fc7cd16f31f Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Fri, 22 Nov 2019 10:36:25 +0000 Subject: [PATCH 11/12] Do not establish a default value for MIC_DUAL_FRAME_SIZE if MIC_DUAL_ENABLED doesn't exist or is false. MIC_DUAL_FRAME_SIZE has no meaning unless MIC_DUAL_ENABLED is true. --- lib_mic_array/api/mic_array_frame.h | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib_mic_array/api/mic_array_frame.h b/lib_mic_array/api/mic_array_frame.h index 9f7d562b..59cae2a5 100644 --- a/lib_mic_array/api/mic_array_frame.h +++ b/lib_mic_array/api/mic_array_frame.h @@ -10,8 +10,12 @@ #define MIC_DUAL_ENABLED (0) #endif +// MIC_DUAL_FRAME_SIZE has no meaning if MIC_DUAL_ENABLED is false. +// Only define MIC_DUAL_FRAME_SIZE to a default value if MIC_DUAL_ENABLED is true. #ifndef MIC_DUAL_FRAME_SIZE - #define MIC_DUAL_FRAME_SIZE (1) + #if defined(MIC_DUAL_ENABLED) && (MIC_DUAL_ENABLED != 0) + #define MIC_DUAL_FRAME_SIZE (1) + #endif #endif #ifndef MIC_ARRAY_FRAME_SIZE From e49f3e247e9236c5a555d7467e4d2c767e2a63de Mon Sep 17 00:00:00 2001 From: Michael Banther Date: Fri, 22 Nov 2019 12:11:44 +0000 Subject: [PATCH 12/12] Update copyright date range. --- lib_mic_array/api/mic_array_frame.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib_mic_array/api/mic_array_frame.h b/lib_mic_array/api/mic_array_frame.h index 59cae2a5..d5340b34 100644 --- a/lib_mic_array/api/mic_array_frame.h +++ b/lib_mic_array/api/mic_array_frame.h @@ -1,4 +1,4 @@ -// Copyright (c) 2015-2017, XMOS Ltd, All rights reserved +// Copyright (c) 2015-2019, XMOS Ltd, All rights reserved #ifndef MIC_ARRAY_FRAME_H_ #define MIC_ARRAY_FRAME_H_