]> git.sesse.net Git - mlt/blobdiff - src/modules/resample/filter_resample.c
Add service locks for parallelism.
[mlt] / src / modules / resample / filter_resample.c
index 8a4543ee40ffad7ab8839e91d40c3bb7065daccb..4533a0b2704fdf08f9a931c2a116150401f797ee 100644 (file)
@@ -63,6 +63,9 @@ static int resample_get_audio( mlt_frame frame, void **buffer, mlt_audio_format
                        *format = mlt_audio_float;
                        mlt_frame_get_audio( frame, buffer, format, frequency, channels, samples );
                }
+
+               mlt_service_lock( MLT_FILTER_SERVICE(filter) );
+
                float *input_buffer = mlt_properties_get_data( filter_properties, "input_buffer", NULL );
                float *output_buffer = mlt_properties_get_data( filter_properties, "output_buffer", NULL );
                SRC_DATA data;
@@ -119,9 +122,13 @@ static int resample_get_audio( mlt_frame frame, void **buffer, mlt_audio_format
                        // Update output variables
                        *samples = data.output_frames_gen;
                        *frequency = output_rate;
+
                }
                else
+               {
                        mlt_log_error( MLT_FILTER_SERVICE( filter ), "%s %d,%d,%d\n", src_strerror( error ), *frequency, *samples, output_rate );
+               }
+               mlt_service_unlock( MLT_FILTER_SERVICE(filter) );
        }
 
        return error;