|  | @@ -45,6 +45,7 @@ struct helixaac {
 | 
	
		
			
				|  |  |  	HAACDecoder hAac;
 | 
	
		
			
				|  |  |  	u8_t type;
 | 
	
		
			
				|  |  |  	u8_t *write_buf;
 | 
	
		
			
				|  |  | +	u8_t *wrap_buf;
 | 
	
		
			
				|  |  |  	// following used for mp4 only
 | 
	
		
			
				|  |  |  	u32_t consume;
 | 
	
		
			
				|  |  |  	u32_t pos;
 | 
	
	
		
			
				|  | @@ -418,13 +419,11 @@ static decode_state helixaac_decode(void) {
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	if (bytes_wrap < WRAPBUF_LEN && bytes_total > WRAPBUF_LEN) {
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  		// make a local copy of frames which may have wrapped round the end of streambuf
 | 
	
		
			
				|  |  | -		static u8_t buf[WRAPBUF_LEN];
 | 
	
		
			
				|  |  | -		memcpy(buf, streambuf->readp, bytes_wrap);
 | 
	
		
			
				|  |  | -		memcpy(buf + bytes_wrap, streambuf->buf, WRAPBUF_LEN - bytes_wrap);
 | 
	
		
			
				|  |  | +		memcpy(a->wrap_buf, streambuf->readp, bytes_wrap);
 | 
	
		
			
				|  |  | +		memcpy(a->wrap_buf + bytes_wrap, streambuf->buf, WRAPBUF_LEN - bytes_wrap);
 | 
	
		
			
				|  |  |  		
 | 
	
		
			
				|  |  | -		sptr = buf;
 | 
	
		
			
				|  |  | +		sptr = a->wrap_buf;
 | 
	
		
			
				|  |  |  		bytes = bytes_wrap = WRAPBUF_LEN;
 | 
	
		
			
				|  |  |  	} else {
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -590,6 +589,7 @@ static void helixaac_open(u8_t size, u8_t rate, u8_t chan, u8_t endianness) {
 | 
	
		
			
				|  |  |  	} else {
 | 
	
		
			
				|  |  |  		a->hAac = HAAC(a, InitDecoder);	
 | 
	
		
			
				|  |  |  		a->write_buf = malloc(FRAME_BUF * BYTES_PER_FRAME);
 | 
	
		
			
				|  |  | +		a->wrap_buf = malloc(WRAPBUF_LEN);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -605,6 +605,7 @@ static void helixaac_close(void) {
 | 
	
		
			
				|  |  |  		a->stsc = NULL;
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	free(a->write_buf);
 | 
	
		
			
				|  |  | +	free(a->wrap_buf);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  static bool load_helixaac() {
 |