avfilter/af_sofalizer: allow up to 64 channels
This commit is contained in:
		
							parent
							
								
									aa125fd06a
								
							
						
					
					
						commit
						f7fd205f11
					
				@ -255,11 +255,11 @@ static int get_speaker_pos(AVFilterContext *ctx,
 | 
			
		||||
{
 | 
			
		||||
    struct SOFAlizerContext *s = ctx->priv;
 | 
			
		||||
    uint64_t channels_layout = ctx->inputs[0]->channel_layout;
 | 
			
		||||
    float azim[16] = { 0 };
 | 
			
		||||
    float elev[16] = { 0 };
 | 
			
		||||
    float azim[64] = { 0 };
 | 
			
		||||
    float elev[64] = { 0 };
 | 
			
		||||
    int m, ch, n_conv = ctx->inputs[0]->channels; /* get no. input channels */
 | 
			
		||||
 | 
			
		||||
    if (n_conv > 16)
 | 
			
		||||
    if (n_conv < 0 || n_conv > 64)
 | 
			
		||||
        return AVERROR(EINVAL);
 | 
			
		||||
 | 
			
		||||
    s->lfe_channel = -1;
 | 
			
		||||
@ -360,7 +360,7 @@ static int sofalizer_convolute(AVFilterContext *ctx, void *arg, int jobnr, int n
 | 
			
		||||
    const int buffer_length = s->buffer_length;
 | 
			
		||||
    /* -1 for AND instead of MODULO (applied to powers of 2): */
 | 
			
		||||
    const uint32_t modulo = (uint32_t)buffer_length - 1;
 | 
			
		||||
    float *buffer[16]; /* holds ringbuffer for each input channel */
 | 
			
		||||
    float *buffer[64]; /* holds ringbuffer for each input channel */
 | 
			
		||||
    int wr = *write;
 | 
			
		||||
    int read;
 | 
			
		||||
    int i, l;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user