commit e3061abbca5bff0bc7b2a7fa6bea92d45e27b660 Author: Jakub Bogusz <qbo...@pld-linux.org> Date: Sat Mar 23 08:52:31 2024 +0100
- up to 1.4.1, adjusted .pc file for pipewire compatibility, bcond to choose fixed/floating point CMakeLists.txt.in | 186 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ LC3plus.pc.in | 12 ++++ libLC3plus.spec | 40 +++++++----- 3 files changed, 223 insertions(+), 15 deletions(-) --- diff --git a/libLC3plus.spec b/libLC3plus.spec index ea8fbf6..569c8df 100644 --- a/libLC3plus.spec +++ b/libLC3plus.spec @@ -1,22 +1,34 @@ +# +# Conditional build: +%bcond_with fixed # fixed point implementation + Summary: Fraunhofer LC3plus Codec library Summary(pl.UTF-8): Biblioteka kodeka Fraunhofer LC3plus Name: libLC3plus -Version: 1.3.6 +Version: 1.4.1 %define gitref 887a9e1b3dd5e51462bc60b0400152eab51337ec Release: 1 -# build system from BlueKitchen is BSD-licensed -License: ETSI IPR + BSD +License: ETSI IPR Group: Libraries -NoSource0: https://www.etsi.org/deliver/etsi_ts/103600_103699/103634/01.03.01_60/ts_103634v010301p0.zip -# NoSource0-md5: 3a3bc7c3ef7dcaede82caa73cd641b61 -Source1: https://github.com/bluekitchen/libLC3plus/archive/%{gitref}/%{name}-%{gitref}.tar.gz -# Source1-md5: ec70471250a579d418b728a76ff685c3 +# search for newer releases at etsi.org +# also (unofficially?) mirrored at https://github.com/arkq/LC3plus/tags with nice versioning +Source0: https://www.etsi.org/deliver/etsi_ts/103600_103699/103634/01.04.01_60/ts_103634v010401p0.zip +# NoSource0-md5: 9baaf65d7cf4f6cddfba278a7b8b85f2 +# inspired by https://github.com/bluekitchen/libLC3plus and https://github.com/Quackdoc/libLC3plus +Source1: CMakeLists.txt.in +Source2: LC3plus.pc.in Patch0: %{name}-dirs.patch NoSource: 0 URL: https://www.iis.fraunhofer.de/en/ff/amm/communication/lc3.html BuildRequires: cmake >= 3.8 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) +%if %{with fixed_point} +%define srcdir src/fixed_point +%else +%define srcdir src/floating_point +%endif + %description LC3plus (Low Complexity Communication Codec Plus) codec library. @@ -40,15 +52,13 @@ Pliki nagłówkowe biblioteki LC3plus. %{__mv} LC3plus_ETSI_src_* LC3plus_src -%{__tar} xf %{SOURCE1} -C LC3plus_src/src/fixed_point --strip-components=1 -%patch0 -p1 +%{__sed} -e 's,@VERSION@,%{version},' %{SOURCE1} >LC3plus_src/%{srcdir}/CMakeLists.txt +cp -p %{SOURCE2} LC3plus_src/%{srcdir} %build -install -d build -cd build -%cmake ../LC3plus_src/src/fixed_point +%cmake -B build -S LC3plus_src/%{srcdir} -%{__make} +%{__make} -C build %install rm -rf $RPM_BUILD_ROOT @@ -64,11 +74,11 @@ rm -rf $RPM_BUILD_ROOT %files %defattr(644,root,root,755) -%doc LC3plus_src/Readme.txt LC3plus_src/src/fixed_point/{LICENSE,README.md} +%doc LC3plus_src/Readme.txt %attr(755,root,root) %{_libdir}/libLC3plus.so.*.*.* %files devel %defattr(644,root,root,755) %attr(755,root,root) %{_libdir}/libLC3plus.so %{_includedir}/LC3plus -%{_pkgconfigdir}/LC3plus.pc +%{_pkgconfigdir}/lc3plus.pc diff --git a/CMakeLists.txt.in b/CMakeLists.txt.in new file mode 100644 index 0000000..daaf354 --- /dev/null +++ b/CMakeLists.txt.in @@ -0,0 +1,186 @@ +cmake_minimum_required(VERSION 3.13) + +project(lc3plus + VERSION @VERSION@ + DESCRIPTION "LC3plus library" + HOMEPAGE_URL "https://www.iis.fraunhofer.de/en/ff/amm/communication/lc3.html" + LANGUAGES C) + +add_definitions(-DWMOPS=0 -DDONT_COUNT_MEM) + +option(FIXED_POINT ON) + +if (FIXED_POINT) +add_library(LC3plus + adjust_global_gain_fx.c + al_fec.c + apply_global_gain_fx.c + ari_codec.c + attack_detector_fx.c + basop_mpy.c + basop_util.c + constants.c + cutoff_bandwidth.c + dct2_fx.c + dct4_fx.c + dec_entropy.c + dec_lc3.c + detect_cutoff_warped_fx.c + enc_entropy.c + enc_lc3.c + estimate_global_gain_fx.c + fft.c + imdct_fx.c + lc3.c + levinson_fx.c + ltpf_coder_fx.c + ltpf_decoder_fx.c + mdct_fx.c + mdct_shaping_fx.c + near_nyquist_detector_fx.c + noise_factor_fx.c + noise_filling_fx.c + olpa_fx.c + pc_apply_fx.c + pc_classify_fx.c + pc_main_fx.c + pc_update_fx.c + per_band_energy_fx.c + plc_apply_fx.c + plc_classify_fx.c + plc_damping_scrambling_fx.c + plc_lpc_scaling_fx.c + plc_main_fx.c + plc_noise_substitution_fx.c + plc_phecu_f0_refine_first_fx.c + plc_phecu_fec_hq_fx.c + plc_phecu_lf_peak_analysis_fx.c + plc_phecu_peak_locator_fx.c + plc_phecu_setf0hz_fx.c + plc_phecu_tools_fx.c + plc_tdac_fx.c + plc_tdc_inverse_odft_fx.c + plc_tdc_lagwin_fx.c + plc_tdc_main_fx.c + plc_tdc_pre_emphasis_fx.c + plc_update_aft_imdct_fx.c + plc_update_fx.c + plc_xcorr_fx.c + pvq_dec_fx.c + pvq_enc_fx.c + pvq_index_fx.c + quantize_spec_fx.c + reorder_bitstream_fx.c + resamp12k8_fx.c + residual_coding_fx.c + residual_decoding_fx.c + rom_basop_util.c + scale_signal24_fx.c + setup_dec_lc3.c + setup_enc_lc3.c + sns_compute_scf_fx.c + sns_interpolate_scf_fx.c + sns_quantize_scf_fx.c + tns_coder_fx.c + tns_decoder_fx.c + basic_op/basop32.c + basic_op/control.c + basic_op/count.c + basic_op/dynmem.c + basic_op/enh1632.c + basic_op/enh40.c + basic_op/enhUL32.c +) + +include_directories(basic_op) +else () +add_library(LC3plus + adjust_global_gain.c + al_fec_fl.c + apply_global_gain.c + ari_codec.c + attack_detector.c + CMakeLists.txt + codec_exe.c + constants.c + cutoff_bandwidth.c + dct4.c + dec_entropy.c + dec_lc3_fl.c + detect_cutoff_warped.c + enc_entropy.c + enc_lc3_fl.c + estimate_global_gain.c + fft.c + imdct.c + lc3.c + LC3plus.pc.in + ltpf_coder.c + ltpf_decoder.c + makefile + mdct.c + mdct_shaping.c + near_nyquist_detector.c + noise_factor.c + noise_filling.c + olpa.c + pc_apply.c + pc_classify.c + pc_main.c + pc_update.c + per_band_energy.c + plc_classify.c + plc_compute_stab_fac.c + plc_damping_scrambling.c + plc_main.c + plc_noise_substitution0.c + plc_noise_substitution.c + plc_phecu_f0_refine_first.c + plc_phecu_fec_hq.c + plc_phecu_hq_ecu.c + plc_phecu_lf_peak_analysis.c + plc_phecu_rec_frame.c + plc_phecu_setf0hz.c + plc_phecu_spec_ana.c + plc_phecu_subst_spec.c + plc_phecu_tba_per_band_gain.c + plc_phecu_tba_spect_Xavg.c + plc_phecu_tba_trans_dect_gains.c + plc_phecu_trans_burst_ana_sub.c + plc_tdc.c + plc_tdc_tdac.c + plc_update.c + quantize_spec.c + reorder_bitstream.c + resamp12k8.c + residual_coding.c + residual_decoding.c + setup_com_lc3.c + setup_dec_lc3.c + setup_enc_lc3.c + sns_compute_scf.c + sns_interpolate_scf.c + sns_quantize_scf.c + tns_coder.c + tns_decoder.c +) + +include_directories(fft) +endif () + +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -W -Wextra -Wno-long-long") +SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror=implicit-function-declaration") + +set_target_properties(LC3plus PROPERTIES VERSION ${PROJECT_VERSION}) +set_target_properties(LC3plus PROPERTIES PUBLIC_HEADER lc3.h) +target_link_libraries(LC3plus m) + +include(GNUInstallDirs) + +install(TARGETS LC3plus + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/LC3plus) + +configure_file(LC3plus.pc.in lc3plus.pc @ONLY) + +install(FILES ${CMAKE_BINARY_DIR}/lc3plus.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig) diff --git a/LC3plus.pc.in b/LC3plus.pc.in new file mode 100644 index 0000000..65564b2 --- /dev/null +++ b/LC3plus.pc.in @@ -0,0 +1,12 @@ +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=@CMAKE_INSTALL_PREFIX@ +libdir=@CMAKE_INSTALL_FULL_LIBDIR@ +includedir=@CMAKE_INSTALL_FULL_INCLUDEDIR@ + +Name: @PROJECT_NAME@ +Description: @PROJECT_DESCRIPTION@ +Version: @PROJECT_VERSION@ + +Requires: +Libs: -L${libdir} -lLC3plus +Cflags: -I${includedir} -DENABLE_HR_MODE ================================================================ ---- gitweb: http://git.pld-linux.org/gitweb.cgi/packages/libLC3plus.git/commitdiff/e3061abbca5bff0bc7b2a7fa6bea92d45e27b660 _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit