some bugfixes, westley property handling reorg, make rescale respect the aspect ratio...
[melted] / src / modules / resample / filter_resample.c
index d4a87e1..e2e52e8 100644 (file)
@@ -45,12 +45,20 @@ 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, *frequency );
+       // 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;
@@ -87,8 +95,8 @@ static int resample_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_form
                                (*buffer)[ i ] = lrint( 32768.0 * sample );
                }
        }
-       //else
-               //fprintf( stderr, "resample_get_audio: %s\n", src_strerror( i ) );
+       else
+               fprintf( stderr, "resample_get_audio: %s %d,%d,%d\n", src_strerror( i ), *frequency, *samples, output_rate );
        
        return 0;
 }
@@ -144,7 +152,7 @@ mlt_filter filter_resample_init( char *arg )
                }
                else
                {
-                       //fprintf( stderr, "filter_resample_init: %s\n", src_strerror( error ) );
+                       fprintf( stderr, "filter_resample_init: %s\n", src_strerror( error ) );
                }
        }
        return this;