vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Fri May 4 18:12:39 2018 +0300| [f80f542a97e5c4c660c0c7c3c6d16e2ff7148991] | committer: Rémi Denis-Courmont
aout: use float rate for filters > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=f80f542a97e5c4c660c0c7c3c6d16e2ff7148991 --- include/vlc_aout.h | 2 +- modules/stream_out/transcode/audio.c | 3 +-- src/audio_output/dec.c | 8 +------- src/audio_output/filters.c | 9 ++++----- 4 files changed, 7 insertions(+), 15 deletions(-) diff --git a/include/vlc_aout.h b/include/vlc_aout.h index 97e6468da2..e3153b8e25 100644 --- a/include/vlc_aout.h +++ b/include/vlc_aout.h @@ -399,7 +399,7 @@ VLC_API void aout_FiltersDelete(vlc_object_t *, aout_filters_t *); #define aout_FiltersDelete(o,f) \ aout_FiltersDelete(VLC_OBJECT(o),f) VLC_API bool aout_FiltersAdjustResampling(aout_filters_t *, int); -VLC_API block_t *aout_FiltersPlay(aout_filters_t *, block_t *, int rate); +VLC_API block_t *aout_FiltersPlay(aout_filters_t *, block_t *, float rate); VLC_API block_t *aout_FiltersDrain(aout_filters_t *); VLC_API void aout_FiltersFlush(aout_filters_t *); VLC_API void aout_FiltersChangeViewpoint(aout_filters_t *, const vlc_viewpoint_t *vp); diff --git a/modules/stream_out/transcode/audio.c b/modules/stream_out/transcode/audio.c index 055473198b..1b2414f28f 100644 --- a/modules/stream_out/transcode/audio.c +++ b/modules/stream_out/transcode/audio.c @@ -365,8 +365,7 @@ int transcode_audio_process( sout_stream_t *p_stream, p_audio_buf->i_dts = p_audio_buf->i_pts; /* Run filter chain */ - p_audio_buf = aout_FiltersPlay( id->p_af_chain, p_audio_buf, - INPUT_RATE_DEFAULT ); + p_audio_buf = aout_FiltersPlay( id->p_af_chain, p_audio_buf, 1.f ); if( !p_audio_buf ) goto error; diff --git a/src/audio_output/dec.c b/src/audio_output/dec.c index f1a8fc3b86..2d330c3348 100644 --- a/src/audio_output/dec.c +++ b/src/audio_output/dec.c @@ -34,7 +34,6 @@ #include <vlc_common.h> #include <vlc_aout.h> -#include <vlc_input.h> #include "aout_internal.h" #include "libvlc.h" @@ -349,7 +348,6 @@ static void aout_DecSynchronize(audio_output_t *aout, mtime_t dec_pts) int aout_DecPlay(audio_output_t *aout, block_t *block) { aout_owner_t *owner = aout_owner (aout); - int input_rate; assert (block->i_pts != VLC_TS_INVALID); @@ -385,11 +383,7 @@ int aout_DecPlay(audio_output_t *aout, block_t *block) vlc_mutex_unlock (&owner->vp.lock); } - input_rate = lroundf(owner->sync.rate * 1000.f); - assert(input_rate >= INPUT_RATE_DEFAULT / AOUT_MAX_INPUT_RATE); - assert(input_rate <= INPUT_RATE_DEFAULT * AOUT_MAX_INPUT_RATE); - - block = aout_FiltersPlay (owner->filters, block, input_rate); + block = aout_FiltersPlay(owner->filters, block, owner->sync.rate); if (block == NULL) goto lost; diff --git a/src/audio_output/filters.c b/src/audio_output/filters.c index af06bec043..99b3a7648d 100644 --- a/src/audio_output/filters.c +++ b/src/audio_output/filters.c @@ -28,6 +28,7 @@ # include "config.h" #endif +#include <math.h> #include <string.h> #include <assert.h> @@ -37,7 +38,6 @@ #include <vlc_aout.h> #include <vlc_filter.h> #include <vlc_vout.h> /* for vout_Request */ -#include <vlc_input.h> #include <libvlc.h> #include "aout_internal.h" @@ -699,11 +699,11 @@ bool aout_FiltersAdjustResampling (aout_filters_t *filters, int adjust) return filters->resampling != 0; } -block_t *aout_FiltersPlay (aout_filters_t *filters, block_t *block, int rate) +block_t *aout_FiltersPlay(aout_filters_t *filters, block_t *block, float rate) { int nominal_rate = 0; - if (rate != INPUT_RATE_DEFAULT) + if (rate != 1.f) { filter_t *rate_filter = filters->rate_filter; @@ -712,8 +712,7 @@ block_t *aout_FiltersPlay (aout_filters_t *filters, block_t *block, int rate) /* Override input rate */ nominal_rate = rate_filter->fmt_in.audio.i_rate; - rate_filter->fmt_in.audio.i_rate = - (nominal_rate * INPUT_RATE_DEFAULT) / rate; + rate_filter->fmt_in.audio.i_rate = lroundf(nominal_rate / rate); } block = aout_FiltersPipelinePlay (filters->tab, filters->count, block); _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
