Up Tempo & FFmpeg

Up Tempo uses FFmpeg to decode audio files. FFmpeg is licensed under the LGPLv2.1. This page exists to provide a download link to the FFmpeg sources as used in Up Tempo and to explain how FFmpeg has been built.

You can disable FFmpeg in the preferences menu if you prefer to use your device’s build in media decoders.

Up Tempo 2.12.0 and later

FFmpeg source code

Up Tempo 2.12.0 and later uses an unmodified version of FFmpeg version 6.1. You can download the source used here.

Building FFmpeg

We build FFmpeg for using ffmpeg-android-maker.

We configure FFmpeg to only include audio decoders (no encoders or video decoders, we rely on built in device codecs for these). To achieve this we added the following configure flags to ffmpeg-android-makers’s scripts/ffmpeg/build.sh:

--disable-runtime-cpudetect \
--disable-muxers \
--disable-encoders \
--disable-avdevice \
--disable-postproc \
--disable-avfilter \
--disable-doc \
--disable-debug \
--disable-pthreads \
--disable-network \
--disable-bsfs \
--disable-protocols \
--disable-devices \
--disable-filters \
--disable-swscale \
--disable-decoders \
--enable-small \
--disable-pixelutils \
--disable-error-resilience \
--disable-demuxer=h264 \
--disable-parser=h264 \
--enable-decoder=8svx_exp \
--enable-decoder=8svx_fib \
--enable-decoder=aac \
--enable-decoder=aac_fixed \
--enable-decoder=aac_latm \
--enable-decoder=ac3 \
--enable-decoder=ac3_fixed \
--enable-decoder=acelp.kelvin \
--enable-decoder=adpcm_4xm \
--enable-decoder=adpcm_adx \
--enable-decoder=adpcm_afc \
--enable-decoder=adpcm_agm \
--enable-decoder=adpcm_aica \
--enable-decoder=adpcm_argo \
--enable-decoder=adpcm_ct \
--enable-decoder=adpcm_dtk \
--enable-decoder=adpcm_ea \
--enable-decoder=adpcm_ea_maxis_xa \
--enable-decoder=adpcm_ea_r1 \
--enable-decoder=adpcm_ea_r2 \
--enable-decoder=adpcm_ea_r3 \
--enable-decoder=adpcm_ea_xas \
--enable-decoder=g722 \
--enable-decoder=g726 \
--enable-decoder=g726le \
--enable-decoder=adpcm_ima_acorn \
--enable-decoder=adpcm_ima_alp \
--enable-decoder=adpcm_ima_amv \
--enable-decoder=adpcm_ima_apc \
--enable-decoder=adpcm_ima_apm \
--enable-decoder=adpcm_ima_cunning \
--enable-decoder=adpcm_ima_dat4 \
--enable-decoder=adpcm_ima_dk3 \
--enable-decoder=adpcm_ima_dk4 \
--enable-decoder=adpcm_ima_ea_eacs \
--enable-decoder=adpcm_ima_ea_sead \
--enable-decoder=adpcm_ima_iss \
--enable-decoder=adpcm_ima_moflex \
--enable-decoder=adpcm_ima_mtf \
--enable-decoder=adpcm_ima_oki \
--enable-decoder=adpcm_ima_qt \
--enable-decoder=adpcm_ima_rad \
--enable-decoder=adpcm_ima_smjpeg \
--enable-decoder=adpcm_ima_ssi \
--enable-decoder=adpcm_ima_wav \
--enable-decoder=adpcm_ima_ws \
--enable-decoder=adpcm_ms \
--enable-decoder=adpcm_mtaf \
--enable-decoder=adpcm_psx \
--enable-decoder=adpcm_sbpro_2 \
--enable-decoder=adpcm_sbpro_3 \
--enable-decoder=adpcm_sbpro_4 \
--enable-decoder=adpcm_swf \
--enable-decoder=adpcm_thp \
--enable-decoder=adpcm_thp_le \
--enable-decoder=adpcm_vima \
--enable-decoder=adpcm_xa \
--enable-decoder=adpcm_xmd \
--enable-decoder=adpcm_yamaha \
--enable-decoder=adpcm_zork \
--enable-decoder=alac \
--enable-decoder=amrnb \
--enable-decoder=amrwb \
--enable-decoder=anull \
--enable-decoder=apac \
--enable-decoder=ape \
--enable-decoder=aptx \
--enable-decoder=aptx_hd \
--enable-decoder=atrac1 \
--enable-decoder=atrac3 \
--enable-decoder=atrac3al \
--enable-decoder=atrac3plus \
--enable-decoder=atrac3plusal \
--enable-decoder=atrac9 \
--enable-decoder=on2avc \
--enable-decoder=binkaudio_dct \
--enable-decoder=binkaudio_rdft \
--enable-decoder=bmv_audio \
--enable-decoder=bonk \
--enable-decoder=cbd2_dpcm \
--enable-decoder=comfortnoise \
--enable-decoder=cook \
--enable-decoder=derf_dpcm \
--enable-decoder=dfpwm \
--enable-decoder=dolby_e \
--enable-decoder=dsd_lsbf \
--enable-decoder=dsd_lsbf_planar \
--enable-decoder=dsd_msbf \
--enable-decoder=dsd_msbf_planar \
--enable-decoder=dsicinaudio \
--enable-decoder=dss_sp \
--enable-decoder=dst \
--enable-decoder=dca \
--enable-decoder=dvaudio \
--enable-decoder=eac3 \
--enable-decoder=evrc \
--enable-decoder=fastaudio \
--enable-decoder=flac \
--enable-decoder=ftr \
--enable-decoder=g723_1 \
--enable-decoder=g729 \
--enable-decoder=gremlin_dpcm \
--enable-decoder=gsm \
--enable-decoder=gsm_ms \
--enable-decoder=hca \
--enable-decoder=hcom \
--enable-decoder=iac \
--enable-decoder=ilbc \
--enable-decoder=imc \
--enable-decoder=interplay_dpcm \
--enable-decoder=interplayacm \
--enable-decoder=mace3 \
--enable-decoder=mace6 \
--enable-decoder=metasound \
--enable-decoder=misc4 \
--enable-decoder=mlp \
--enable-decoder=mp1 \
--enable-decoder=mp1float \
--enable-decoder=mp2 \
--enable-decoder=mp2float \
--enable-decoder=mp3float \
--enable-decoder=mp3 \
--enable-decoder=mp3adufloat \
--enable-decoder=mp3adu \
--enable-decoder=mp3on4float \
--enable-decoder=mp3on4 \
--enable-decoder=als \
--enable-decoder=msnsiren \
--enable-decoder=mpc7 \
--enable-decoder=mpc8 \
--enable-decoder=nellymoser \
--enable-decoder=opus \
--enable-decoder=osq \
--enable-decoder=paf_audio \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_bluray \
--enable-decoder=pcm_dvd \
--enable-decoder=pcm_f16le \
--enable-decoder=pcm_f24le \
--enable-decoder=pcm_f32be \
--enable-decoder=pcm_f32le \
--enable-decoder=pcm_f64be \
--enable-decoder=pcm_f64le \
--enable-decoder=pcm_lxf \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_s16be \
--enable-decoder=pcm_s16be_planar \
--enable-decoder=pcm_s16le \
--enable-decoder=pcm_s16le_planar \
--enable-decoder=pcm_s24be \
--enable-decoder=pcm_s24daud \
--enable-decoder=pcm_s24le \
--enable-decoder=pcm_s24le_planar \
--enable-decoder=pcm_s32be \
--enable-decoder=pcm_s32le \
--enable-decoder=pcm_s32le_planar \
--enable-decoder=pcm_s64be \
--enable-decoder=pcm_s64le \
--enable-decoder=pcm_s8 \
--enable-decoder=pcm_s8_planar \
--enable-decoder=pcm_sga \
--enable-decoder=pcm_u16be \
--enable-decoder=pcm_u16le \
--enable-decoder=pcm_u24be \
--enable-decoder=pcm_u24le \
--enable-decoder=pcm_u32be \
--enable-decoder=pcm_u32le \
--enable-decoder=pcm_u8 \
--enable-decoder=pcm_vidc \
--enable-decoder=qcelp \
--enable-decoder=qdm2 \
--enable-decoder=qdmc \
--enable-decoder=real_144 \
--enable-decoder=real_288 \
--enable-decoder=ralf \
--enable-decoder=rka \
--enable-decoder=roq_dpcm \
--enable-decoder=s302m \
--enable-decoder=sbc \
--enable-decoder=sdx2_dpcm \
--enable-decoder=shorten \
--enable-decoder=sipr \
--enable-decoder=siren \
--enable-decoder=smackaud \
--enable-decoder=sol_dpcm \
--enable-decoder=sonic \
--enable-decoder=speex \
--enable-decoder=tak \
--enable-decoder=truehd \
--enable-decoder=truespeech \
--enable-decoder=tta \
--enable-decoder=twinvq \
--enable-decoder=vmdaudio \
--enable-decoder=vorbis \
--enable-decoder=wady_dpcm \
--enable-decoder=wavarc \
--enable-decoder=wavesynth \
--enable-decoder=wavpack \
--enable-decoder=ws_snd1 \
--enable-decoder=wmalossless \
--enable-decoder=wmapro \
--enable-decoder=wmav1 \
--enable-decoder=wmav2 \
--enable-decoder=wmavoice \
--enable-decoder=xan_dpcm \
--enable-decoder=xma1 \
--enable-decoder=xma2

Up Tempo 2.0 to 2.11.2

FFmpeg source code

Up Tempo uses an unmodified version of FFmpeg version 4.4. You can download the source used here.

Building FFmpeg

We build FFmpeg for using ffmpeg-android-maker.

We configure FFmpeg to only include audio decoders (no encoders or video decoders, we rely on built in device codecs for these). To achieve this we added the following configure flags to ffmpeg-android-makers’s scripts/ffmpeg/build.sh:

--disable-runtime-cpudetect \
--disable-muxers \
--disable-encoders \
--disable-avdevice \
--disable-postproc \
--disable-avfilter \
--disable-doc \
--disable-debug \
--disable-pthreads \
--disable-network \
--disable-bsfs \
--disable-protocols \
--disable-devices \
--disable-filters \
--disable-swscale \
--disable-decoders \
--enable-small \
--disable-pixelutils \
--disable-error-resilience \
--disable-demuxer=h264 \
--disable-parser=h264 \
--enable-decoder=8svx_exp \
--enable-decoder=8svx_fib \
--enable-decoder=aac \
--enable-decoder=aac_fixed \
--enable-decoder=aac_latm \
--enable-decoder=ac3 \
--enable-decoder=ac3_fixed \
--enable-decoder=acelp.kelvin \
--enable-decoder=adpcm_4xm \
--enable-decoder=adpcm_adx \
--enable-decoder=adpcm_afc \
--enable-decoder=adpcm_agm \
--enable-decoder=adpcm_aica \
--enable-decoder=adpcm_argo \
--enable-decoder=adpcm_ct \
--enable-decoder=adpcm_dtk \
--enable-decoder=adpcm_ea \
--enable-decoder=adpcm_ea_maxis_xa \
--enable-decoder=adpcm_ea_r1 \
--enable-decoder=adpcm_ea_r2 \
--enable-decoder=adpcm_ea_r3 \
--enable-decoder=adpcm_ea_xas \
--enable-decoder=g722 \
--enable-decoder=g726 \
--enable-decoder=g726le \
--enable-decoder=adpcm_ima_alp \
--enable-decoder=adpcm_ima_amv \
--enable-decoder=adpcm_ima_apc \
--enable-decoder=adpcm_ima_apm \
--enable-decoder=adpcm_ima_cunning \
--enable-decoder=adpcm_ima_dat4 \
--enable-decoder=adpcm_ima_dk3 \
--enable-decoder=adpcm_ima_dk4 \
--enable-decoder=adpcm_ima_ea_eacs \
--enable-decoder=adpcm_ima_ea_sead \
--enable-decoder=adpcm_ima_iss \
--enable-decoder=adpcm_ima_mtf \
--enable-decoder=adpcm_ima_oki \
--enable-decoder=adpcm_ima_qt \
--enable-decoder=adpcm_ima_rad \
--enable-decoder=adpcm_ima_smjpeg \
--enable-decoder=adpcm_ima_ssi \
--enable-decoder=adpcm_ima_wav \
--enable-decoder=adpcm_ima_ws \
--enable-decoder=adpcm_ms \
--enable-decoder=adpcm_mtaf \
--enable-decoder=adpcm_psx \
--enable-decoder=adpcm_sbpro_2 \
--enable-decoder=adpcm_sbpro_3 \
--enable-decoder=adpcm_sbpro_4 \
--enable-decoder=adpcm_swf \
--enable-decoder=adpcm_thp \
--enable-decoder=adpcm_thp_le \
--enable-decoder=adpcm_vima \
--enable-decoder=adpcm_xa \
--enable-decoder=adpcm_yamaha \
--enable-decoder=adpcm_zork \
--enable-decoder=alac \
--enable-decoder=amrnb \
--enable-decoder=amrwb \
--enable-decoder=ape \
--enable-decoder=aptx \
--enable-decoder=aptx_hd \
--enable-decoder=atrac1 \
--enable-decoder=atrac3 \
--enable-decoder=atrac3al \
--enable-decoder=atrac3plus \
--enable-decoder=atrac3plusal \
--enable-decoder=atrac9 \
--enable-decoder=on2avc \
--enable-decoder=binkaudio_dct \
--enable-decoder=binkaudio_rdft \
--enable-decoder=bmv_audio \
--enable-decoder=comfortnoise \
--enable-decoder=cook \
--enable-decoder=derf_dpcm \
--enable-decoder=dolby_e \
--enable-decoder=dsd_lsbf \
--enable-decoder=dsd_lsbf_planar \
--enable-decoder=dsd_msbf \
--enable-decoder=dsd_msbf_planar \
--enable-decoder=dsicinaudio \
--enable-decoder=dss_sp \
--enable-decoder=dst \
--enable-decoder=dca \
--enable-decoder=dvaudio \
--enable-decoder=eac3 \
--enable-decoder=evrc \
--enable-decoder=flac \
--enable-decoder=g723_1 \
--enable-decoder=g729 \
--enable-decoder=gremlin_dpcm \
--enable-decoder=gsm \
--enable-decoder=gsm_ms \
--enable-decoder=hca \
--enable-decoder=hcom \
--enable-decoder=iac \
--enable-decoder=ilbc \
--enable-decoder=imc \
--enable-decoder=interplay_dpcm \
--enable-decoder=interplayacm \
--enable-decoder=mace3 \
--enable-decoder=mace6 \
--enable-decoder=metasound \
--enable-decoder=mlp \
--enable-decoder=mp1 \
--enable-decoder=mp1float \
--enable-decoder=mp2 \
--enable-decoder=mp2float \
--enable-decoder=mp3float \
--enable-decoder=mp3 \
--enable-decoder=mp3adufloat \
--enable-decoder=mp3adu \
--enable-decoder=mp3on4float \
--enable-decoder=mp3on4 \
--enable-decoder=als \
--enable-decoder=mpc7 \
--enable-decoder=mpc8 \
--enable-decoder=nellymoser \
--enable-decoder=opus \
--enable-decoder=paf_audio \
--enable-decoder=pcm_alaw \
--enable-decoder=pcm_bluray \
--enable-decoder=pcm_dvd \
--enable-decoder=pcm_f16le \
--enable-decoder=pcm_f24le \
--enable-decoder=pcm_f32be \
--enable-decoder=pcm_f32le \
--enable-decoder=pcm_f64be \
--enable-decoder=pcm_f64le \
--enable-decoder=pcm_lxf \
--enable-decoder=pcm_mulaw \
--enable-decoder=pcm_s16be \
--enable-decoder=pcm_s16be_planar \
--enable-decoder=pcm_s16le \
--enable-decoder=pcm_s16le_planar \
--enable-decoder=pcm_s24be \
--enable-decoder=pcm_s24daud \
--enable-decoder=pcm_s24le \
--enable-decoder=pcm_s24le_planar \
--enable-decoder=pcm_s32be \
--enable-decoder=pcm_s32le \
--enable-decoder=pcm_s32le_planar \
--enable-decoder=pcm_s64be \
--enable-decoder=pcm_s64le \
--enable-decoder=pcm_s8 \
--enable-decoder=pcm_s8_planar \
--enable-decoder=pcm_u16be \
--enable-decoder=pcm_u16le \
--enable-decoder=pcm_u24be \
--enable-decoder=pcm_u24le \
--enable-decoder=pcm_u32be \
--enable-decoder=pcm_u32le \
--enable-decoder=pcm_u8 \
--enable-decoder=pcm_vidc \
--enable-decoder=qcelp \
--enable-decoder=qdm2 \
--enable-decoder=qdmc \
--enable-decoder=real_144 \
--enable-decoder=real_288 \
--enable-decoder=ralf \
--enable-decoder=roq_dpcm \
--enable-decoder=s302m \
--enable-decoder=sbc \
--enable-decoder=sdx2_dpcm \
--enable-decoder=shorten \
--enable-decoder=sipr \
--enable-decoder=siren \
--enable-decoder=smackaud \
--enable-decoder=sol_dpcm \
--enable-decoder=sonic \
--enable-decoder=tak \
--enable-decoder=truehd \
--enable-decoder=truespeech \
--enable-decoder=tta \
--enable-decoder=twinvq \
--enable-decoder=vmdaudio \
--enable-decoder=vorbis \
--enable-decoder=wavesynth \
--enable-decoder=wavpack \
--enable-decoder=ws_snd1 \
--enable-decoder=wmalossless \
--enable-decoder=wmapro \
--enable-decoder=wmav1 \
--enable-decoder=wmav2 \
--enable-decoder=wmavoice \
--enable-decoder=xan_dpcm \
--enable-decoder=xma1 \
--enable-decoder=xma2