bug fixes
[melted] / src / modules / resample / filter_resample.c
index 402a278..b4fd13d 100644 (file)
@@ -45,12 +45,21 @@ static int resample_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_form
        float *output_buffer = mlt_properties_get_data( properties, "resample.output_buffer", NULL );
        int i;
 
+       if ( output_rate == 0 )
+               output_rate = *frequency;
+
        // Restore the original get_audio
        frame->get_audio = mlt_properties_get_data( properties, "resample.get_audio", NULL );
 
        // Get the producer's audio
        mlt_frame_get_audio( frame, buffer, format, frequency, channels, samples );
 
+       //fprintf( stderr, "resample_get_audio: output_rate %d\n", output_rate );
+       
+       // Return now if now work to do
+       if ( output_rate == *frequency )
+               return 0;
+
        // Convert to floating point
        for ( i = 0; i < *samples * *channels; ++i )
                input_buffer[ i ] = ( float )( (*buffer)[ i ] ) / 32768;
@@ -88,7 +97,7 @@ static int resample_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_form
                }
        }
        else
-               fprintf( stderr, "resample_get_audio: %s\n", src_strerror( i ) );
+               fprintf( stderr, "resample_get_audio: %s %d,%d,%d\n", src_strerror( i ), *frequency, *samples, output_rate );
        
        return 0;
 }