aacenc: reset marked IS and M/S bands upon frame encoding
This commit resets any bands marked as M/S or IS upon encoding a frame. This is needed because the arrays may contain some residual information upon allocation on startup and because there isn't any mechanism to reset the arrays once the frame has been encoded. Reviewed-by: Claudio Freire <klaussfreire@gmail.com> Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
				
					committed by
					
						
						Michael Niedermayer
					
				
			
			
				
	
			
			
			
						parent
						
							57848ef3c6
						
					
				
				
					commit
					9f4f578704
				
			@@ -617,6 +617,8 @@ static int aac_encode_frame(AVCodecContext *avctx, AVPacket *avpkt,
 | 
				
			|||||||
            tag      = s->chan_map[i+1];
 | 
					            tag      = s->chan_map[i+1];
 | 
				
			||||||
            chans    = tag == TYPE_CPE ? 2 : 1;
 | 
					            chans    = tag == TYPE_CPE ? 2 : 1;
 | 
				
			||||||
            cpe      = &s->cpe[i];
 | 
					            cpe      = &s->cpe[i];
 | 
				
			||||||
 | 
					            memset(cpe->is_mask, 0, sizeof(cpe->is_mask));
 | 
				
			||||||
 | 
					            memset(cpe->ms_mask, 0, sizeof(cpe->ms_mask));
 | 
				
			||||||
            put_bits(&s->pb, 3, tag);
 | 
					            put_bits(&s->pb, 3, tag);
 | 
				
			||||||
            put_bits(&s->pb, 4, chan_el_counter[tag]++);
 | 
					            put_bits(&s->pb, 4, chan_el_counter[tag]++);
 | 
				
			||||||
            for (ch = 0; ch < chans; ch++)
 | 
					            for (ch = 0; ch < chans; ch++)
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user