X-Git-Url: http://research.m1stereo.tv/gitweb?a=blobdiff_plain;f=src%2Fmodules%2Fresample%2Ffilter_resample.c;h=09be434623c8620a9c0ffad557bd2da97a05bb99;hb=34c7916b96a65dbfb6d9414aca781d6292474f98;hp=c2f81445431af2934bbc16fd7e6e3636c9495a1e;hpb=021ef038007bbde4d3a54a37c3e614f74c68bdb3;p=melted diff --git a/src/modules/resample/filter_resample.c b/src/modules/resample/filter_resample.c index c2f8144..09be434 100644 --- a/src/modules/resample/filter_resample.c +++ b/src/modules/resample/filter_resample.c @@ -37,13 +37,13 @@ static int resample_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_format *format, int *frequency, int *channels, int *samples ) { // Get the properties of the frame - mlt_properties properties = mlt_frame_properties( frame ); + mlt_properties properties = MLT_FRAME_PROPERTIES( frame ); // Get the filter service mlt_filter filter = mlt_frame_pop_audio( frame ); // Get the filter properties - mlt_properties filter_properties = mlt_filter_properties( filter ); + mlt_properties filter_properties = MLT_FILTER_PROPERTIES( filter ); // Get the resample information int output_rate = mlt_properties_get_int( filter_properties, "frequency" ); @@ -58,9 +58,6 @@ static int resample_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_form if ( output_rate == 0 ) output_rate = *frequency; - // Restore the original get_audio - frame->get_audio = mlt_frame_pop_audio( frame ); - // Get the producer's audio mlt_frame_get_audio( frame, buffer, format, frequency, &channels_avail, samples ); @@ -164,11 +161,10 @@ static int resample_get_audio( mlt_frame frame, int16_t **buffer, mlt_audio_form static mlt_frame filter_process( mlt_filter this, mlt_frame frame ) { - if ( frame->get_audio != NULL ) + if ( mlt_frame_is_test_audio( frame ) == 0 ) { - mlt_frame_push_audio( frame, frame->get_audio ); mlt_frame_push_audio( frame, this ); - frame->get_audio = resample_get_audio; + mlt_frame_push_audio( frame, resample_get_audio ); } return frame; @@ -190,11 +186,11 @@ mlt_filter filter_resample_init( char *arg ) void *output_buffer = mlt_pool_alloc( BUFFER_LEN ); this->process = filter_process; if ( arg != NULL ) - mlt_properties_set_int( mlt_filter_properties( this ), "frequency", atoi( arg ) ); - mlt_properties_set_int( mlt_filter_properties( this ), "channels", 2 ); - mlt_properties_set_data( mlt_filter_properties( this ), "state", state, 0, (mlt_destructor)src_delete, NULL ); - mlt_properties_set_data( mlt_filter_properties( this ), "input_buffer", input_buffer, BUFFER_LEN, mlt_pool_release, NULL ); - mlt_properties_set_data( mlt_filter_properties( this ), "output_buffer", output_buffer, BUFFER_LEN, mlt_pool_release, NULL ); + mlt_properties_set_int( MLT_FILTER_PROPERTIES( this ), "frequency", atoi( arg ) ); + mlt_properties_set_int( MLT_FILTER_PROPERTIES( this ), "channels", 2 ); + mlt_properties_set_data( MLT_FILTER_PROPERTIES( this ), "state", state, 0, (mlt_destructor)src_delete, NULL ); + mlt_properties_set_data( MLT_FILTER_PROPERTIES( this ), "input_buffer", input_buffer, BUFFER_LEN, mlt_pool_release, NULL ); + mlt_properties_set_data( MLT_FILTER_PROPERTIES( this ), "output_buffer", output_buffer, BUFFER_LEN, mlt_pool_release, NULL ); } else {