mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	module-equalizer-sink:
fix for peek returning a null memblock
    pa_log -> pa_log_debug for fft size
    updated module description
    fixed a comment in dbus error for incorrect x positions
			
			
This commit is contained in:
		
							parent
							
								
									684ad6ddb7
								
							
						
					
					
						commit
						8c2f9763df
					
				
					 1 changed files with 7 additions and 5 deletions
				
			
		| 
						 | 
				
			
			@ -2,8 +2,8 @@
 | 
			
		|||
This file is part of PulseAudio.
 | 
			
		||||
 | 
			
		||||
This module is based off Lennart Poettering's LADSPA sink and swaps out
 | 
			
		||||
LADSPA functionality for a STFT OLA based digital equalizer.  All new work
 | 
			
		||||
is published under Pulseaudio's original license.
 | 
			
		||||
LADSPA functionality for a dbus-aware STFT OLA based digital equalizer.
 | 
			
		||||
All new work is published under Pulseaudio's original license.
 | 
			
		||||
Copyright 2009 Jason Newton <nevion@gmail.com>
 | 
			
		||||
 | 
			
		||||
Original Author:
 | 
			
		||||
| 
						 | 
				
			
			@ -562,11 +562,13 @@ static int sink_input_pop_cb(pa_sink_input *i, size_t nbytes, pa_memchunk *chunk
 | 
			
		|||
        //buffer->index = 0;
 | 
			
		||||
        //pa_memblock_ref(buffer->memblock);
 | 
			
		||||
        //pa_sink_render_into(u->sink, buffer);
 | 
			
		||||
        while(pa_memblockq_peek(u->input_q, &tchunk) < 0){
 | 
			
		||||
        while(pa_memblockq_peek(u->input_q, &tchunk) < 0 || tchunk.memblock == NULL){
 | 
			
		||||
            pa_sink_render(u->sink, input_remaining*fs, &tchunk);
 | 
			
		||||
            pa_assert(tchunk.memblock);
 | 
			
		||||
            pa_memblockq_push(u->input_q, &tchunk);
 | 
			
		||||
            pa_memblock_unref(tchunk.memblock);
 | 
			
		||||
        }
 | 
			
		||||
        pa_assert(tchunk.memblock);
 | 
			
		||||
        tchunk.length = PA_MIN(input_remaining*fs, tchunk.length);
 | 
			
		||||
        pa_memblockq_drop(u->input_q, tchunk.length);
 | 
			
		||||
        //pa_log_debug("asked for %ld input samples, got %ld samples",input_remaining,buffer->length/fs);
 | 
			
		||||
| 
						 | 
				
			
			@ -878,7 +880,7 @@ int pa__init(pa_module*m) {
 | 
			
		|||
 | 
			
		||||
    u->channels = ss.channels;
 | 
			
		||||
    u->fft_size = pow(2, ceil(log(ss.rate)/log(2)));
 | 
			
		||||
    pa_log("fft size: %ld", u->fft_size);
 | 
			
		||||
    pa_log_debug("fft size: %ld", u->fft_size);
 | 
			
		||||
    u->window_size = 15999;
 | 
			
		||||
    u->R = (u->window_size+1)/2;
 | 
			
		||||
    u->overlap_size = u->window_size-u->R;
 | 
			
		||||
| 
						 | 
				
			
			@ -1442,7 +1444,7 @@ void equalizer_handle_seed_filter(DBusConnection *conn, DBusMessage *msg, void *
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
    if(!is_monotonic(xs,x_npoints) || !points_good){
 | 
			
		||||
        pa_dbus_send_error(conn, msg, DBUS_ERROR_INVALID_ARGS, "xs must be monotonic and 0<x<%ld", u->fft_size / 2);
 | 
			
		||||
        pa_dbus_send_error(conn, msg, DBUS_ERROR_INVALID_ARGS, "xs must be monotonic and 0<=x<=%ld", u->fft_size / 2);
 | 
			
		||||
        dbus_error_free(&error);
 | 
			
		||||
        return;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue