diff --git a/0001-Revert-libFLAC-stream_decoder.c-Use-current-position.patch b/0001-Revert-libFLAC-stream_decoder.c-Use-current-position.patch deleted file mode 100644 index 8bd097a..0000000 --- a/0001-Revert-libFLAC-stream_decoder.c-Use-current-position.patch +++ /dev/null @@ -1,48 +0,0 @@ -From 2834dd4eb51a1847a424a3d7ea799b38a62487e9 Mon Sep 17 00:00:00 2001 -From: Takashi Iwai -Date: Tue, 1 Mar 2022 08:16:45 +0100 -Subject: [PATCH] Revert "libFLAC/stream_decoder.c: Use current position as - bound when seeking" - -This reverts commit 159cd6c41a6ec17b36d74043c45a3aa64de90d5e. ---- - src/libFLAC/stream_decoder.c | 17 +++-------------- - 1 file changed, 3 insertions(+), 14 deletions(-) - -diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c -index 4380b486fd5f..0e7264809dbf 100644 ---- a/src/libFLAC/stream_decoder.c -+++ b/src/libFLAC/stream_decoder.c -@@ -3067,26 +3067,15 @@ FLAC__bool seek_to_absolute_sample_(FLAC__StreamDecoder *decoder, FLAC__uint64 s - - /* - * First, we set an upper and lower bound on where in the -- * stream we will search. For now we take the current position -- * as one bound and, depending on where the target position lies, -- * the beginning of the first frame or the end of the stream as -- * the other bound. -+ * stream we will search. For now we assume the worst case -+ * scenario, which is our best guess at the beginning of -+ * the first frame and end of the stream. - */ - lower_bound = first_frame_offset; - lower_bound_sample = 0; - upper_bound = stream_length; - upper_bound_sample = total_samples > 0 ? total_samples : target_sample /*estimate it*/; - -- if(decoder->protected_->state == FLAC__STREAM_DECODER_READ_FRAME) { -- if(target_sample < decoder->private_->samples_decoded) { -- if(FLAC__stream_decoder_get_decode_position(decoder, &upper_bound)) -- upper_bound_sample = decoder->private_->samples_decoded; -- } else { -- if(FLAC__stream_decoder_get_decode_position(decoder, &lower_bound)) -- lower_bound_sample = decoder->private_->samples_decoded; -- } -- } -- - /* - * Now we refine the bounds if we have a seektable with - * suitable points. Note that according to the spec they --- -2.31.1 - diff --git a/baselibs.conf b/baselibs.conf index 01ed91c..afe90ad 100644 --- a/baselibs.conf +++ b/baselibs.conf @@ -1,8 +1,8 @@ -libFLAC8 +libFLAC12 obsoletes "flac- <= " obsoletes "libflac- <= " -libFLAC++6 +libFLAC++10 flac-devel requires -flac- - requires "libFLAC8- = " - requires "libFLAC++6- = " + requires "libFLAC12- = " + requires "libFLAC++10- = " diff --git a/flac-1.3.4.tar.xz b/flac-1.3.4.tar.xz deleted file mode 100644 index a5edf0d..0000000 --- a/flac-1.3.4.tar.xz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737 -size 1038356 diff --git a/flac-1.4.0.tar.xz b/flac-1.4.0.tar.xz new file mode 100644 index 0000000..8d70ad9 --- /dev/null +++ b/flac-1.4.0.tar.xz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af41c0733c93c237c3e52f64dd87e3b0d9af38259f1c7d11e8cbf583c48c2506 +size 783372 diff --git a/flac-cflags.patch b/flac-cflags.patch index ac87aea..f989475 100644 --- a/flac-cflags.patch +++ b/flac-cflags.patch @@ -2,11 +2,11 @@ configure.ac | 4 ---- 1 file changed, 4 deletions(-) -Index: flac-1.3.3/configure.ac +Index: flac-1.4.0/configure.ac =================================================================== ---- flac-1.3.3.orig/configure.ac -+++ flac-1.3.3/configure.ac -@@ -468,10 +468,6 @@ if test x$ac_cv_c_compiler_gnu = xyes ; +--- flac-1.4.0.orig/configure.ac ++++ flac-1.4.0/configure.ac +@@ -550,10 +550,6 @@ if test x$ac_cv_c_compiler_gnu = xyes -o XIPH_ADD_CFLAGS([-fno-inline-small-functions]) fi diff --git a/flac.changes b/flac.changes index cca9521..06227c4 100644 --- a/flac.changes +++ b/flac.changes @@ -1,3 +1,146 @@ +------------------------------------------------------------------- +Sun Sep 11 16:31:56 UTC 2022 - Bjørn Lie + +- Update to version 1.4.0: + + General: + * It is now possible to limit the minimum bitrate of a FLAC + file generated by libFLAC and with the flac tool to 1 + bit/sample. This function can be used to aid live streaming, + for example for internet radio + * Encoding files with sample rates up to 1'048'575Hz is now + possible. + * Compression of preset -3 through -8 was slightly improved at + the cost of a small decrease in encoding speed by increasing + the precision with which autocorrelation was calculated + * Encoding speed of preset -0, -1 and -2 was slightly improved + * Compression of presets -1 and -4 was slighly improved on + certain material by changing the adaptive mid-side heuristics + * Speedups specifically targeting 64-bit ARMv8 devices using + NEON were integrated + * Speedups for x86_64 CPUs having the FMA instruction set + extention are added + * Encoding and decoding of 32-bit PCM is now possible + + (Ogg) FLAC format: + * The FLAC format document is being rewritten by the IETF + CELLAR working group. The latest draft can be found on + https://datatracker.ietf.org/doc/draft-ietf-cellar-flac/ + * The FLAC format document specifies no bounds for the + residual. In other to match current decoder implementations, + it is proposed to bound the residual to the range provided by + a 32-bit int signed two's complement. This limit must be + checked by FLAC encoders as to keep FLAC decoders free from + the complexity of being to decode a residual exceeding a + 32-bit int. + * There is now a set of files available to test whether a FLAC + decoder implements the format correctly. This FLAC decoder + testbench can be found at + https://github.com/ietf-wg-cellar/flac-test-files. Also, + results of testing hard- and software can be found here at + https://wiki.hydrogenaud.io/index.php?title=FLAC_decoder_testbench. + + flac: + * The option --limit-min-bitrate was added to aid streaming, + see github #264 + * The option --keep-foreign-metadata-if-present is added. This + option works the same as --keep-foreign-metadata, but does + return a warning instead of an error if no foreign metadata + was found to store or restore + * The warning returned by the foreign metadata handling is now + clearer in case a user tries to restore foreign metadata of + the wrong type, for example decoding a FLAC file containing + AIFF foreign metadata to a WAV file + * A problem when using the analyse function causing the first + frame to have a wrong size and offset was fixed + * Fix bug where channel mask of a file is unintentionally + reused when several files are processed with one command + * The order of compression-related commands is no longer + important, i.e. -8ep gives the same result as -ep8. + Previously, a compression level (like -8) would override a + more specific setting (like -e or -p). This is no longer the + case + * flac now checks the block-align property of WAV files to + ensure non-standard WAV files (for which flac has no + handling) are not mangled + + build system: + * MSVC and Makefile.lite build system files have been removed. + Building with MSVC (Visual Studio) can be done by using CMake + * Various CMake improvements, especially for creating MSVC + build files + * Various fixes for MinGW + * Removed obsolete autotools macro's to silence warnings + * Fixes for FreeBSD PowerPC + * Fixed some compiler warnings + * Fix building with uclibc + + testing/validation: + * Addition of new encoder fuzzer, adding fuzzing for 8, 24 and + 32-bit inputs + * Addition of new decoder fuzzer, adding coverage of seeking + code + * Addition of metadata fuzzer, adding coverage of metadata APIs + * Various improvements to fuzzers to improve code coverage, + fuzzing speed and stability + * Many changes to test suite to improve cross-platform + compatibility + * Windows CI now also builds the whole test suite + * Clang-format file added + * Add warning on using v141_xp platform toolset with /MT + + libraries: + * Various seeking fixes + * Various bugs fixed found by fuzzing + * On decoding, it is now checked whether residuals can be + contained by a 32-bit int, preventing integer overflow + * Add check that samples supplied to libFLAC actually fall + within the bps set + * Add checks when parsing metadata blocks to not allocate + excessive amounts of memory and not overread + * Undocumented Windows-only utf8 functions are no longer + exported to the DLL interface + * Removed all assembler and intrinsics code from the decoder to + improve fuzzing, as they provided only a small speed benefit + * The bitwriter buffer is limited in size to 2^24 bytes, so it + cannot write excessively large files. This is a backup in + case another bug in this area creeps (back) in. + * The metadata iterations should now never return a + vorbiscomment entry with NULL as an entry, now always at + least an empty string is returned + + documentation: Removed html documentation and generate man + pages from markdown + + Interface changes: + * libFLAC: + . Addition of FLAC__stream_encoder_set_limit_min_bitrate() + and FLAC__stream_encoder_get_limit_min_bitrate(), see + github #264 + . get_client_data_from_decoder is renamed + FLAC__get_decoder_client_data(), see github #124 + . All API functions taking a filename as an argument now take + UTF-8 filenames on Windows, and no longer accept filenames + using the current codepage + . FLAC__Frame struct has changed: warmup samples are now + stored in FLAC__int64 instead of FLAC__int32 types, and + verbatim samples can now be stored in either FLAC__int32 or + FLAC__int64 depending on whether samples fix the former or + latter + . The FLAC__StreamMetadata struct now has a tag, so it can be + forward declared + * libFLAC++: + . Addition of ::set_limit_min_bitrate() and + ::get_limit_min_bitrate(), see github #264 + . All API functions taking a filename as an argument now take + UTF-8 filenames on Windows, and no longer accept filenames + using the current codepage + . The ::FLAC__Frame struct has changed, see the libFLAC + interface change. +- Rebase flac-cflags.patch with quilt. +- Drop patch fixed differently upstream, see github #329 + + 0001-Revert-libFLAC-stream_decoder.c-Use-current-position.patch +- Bump sonames following upstream changes (also in baselibs.conf). +- Add sover and sover_plus defines, ease future soname bumps. +- Use ldconfig_scriptlets macro for post(un) handling. +- Use make_build macro. +- Update Git-Web and Git-Clone urls to new home on github. +- Replace gcc-c++ BuildRequires with generic c++_compiler and + c_compiler BuildRequires: Package needs a c and c++ compiler, not + explicitly gcc-c++. + ------------------------------------------------------------------- Tue Mar 1 08:18:11 CET 2022 - tiwai@suse.de diff --git a/flac.spec b/flac.spec index 31be6aa..b617a7b 100644 --- a/flac.spec +++ b/flac.spec @@ -16,23 +16,27 @@ # +%define sover 12 +%define sover_plus 10 + Name: flac -Version: 1.3.4 +Version: 1.4.0 Release: 0 Summary: Free Lossless Audio Codec License: BSD-3-Clause AND GPL-2.0-or-later AND GFDL-1.2-only Group: Productivity/Multimedia/Sound/Utilities URL: https://xiph.org/flac/ -#Git-Web: https://git.xiph.org/?p=flac.git -#Git-Clone: git://git.xiph.org/flac +#Git-Web: https://github.com/xiph/flac +#Git-Clone: https://github.com/xiph/flac.git #Changelog: https://xiph.org/flac/changelog.html Source: https://downloads.xiph.org/releases/flac/%{name}-%{version}.tar.xz Source2: baselibs.conf Patch0: flac-cflags.patch -Patch1: 0001-Revert-libFLAC-stream_decoder.c-Use-current-position.patch + BuildRequires: autoconf >= 2.60 BuildRequires: automake >= 1.11 -BuildRequires: gcc-c++ +BuildRequires: c++_compiler +BuildRequires: c_compiler BuildRequires: libtool BuildRequires: pkgconfig BuildRequires: xz @@ -50,24 +54,24 @@ algorithm can typically be reduced to between 50 and 70 percent of its original size, and decompresses to an identical copy of the original audio data. -%package -n libFLAC8 +%package -n libFLAC%{sover} Summary: Free Lossless Audio Codec Library Group: System/Libraries Obsoletes: libflac < %{version} Provides: libflac = %{version} -%description -n libFLAC8 +%description -n libFLAC%{sover} FLAC is an audio coding format for lossless compression of digital audio, and is also the name of the reference software package that includes a codec implementation. This package contains the C API library for FLAC. -%package -n libFLAC++6 +%package -n libFLAC++%{sover_plus} Summary: Free Lossless Audio Codec Library Group: System/Libraries -%description -n libFLAC++6 +%description -n libFLAC++%{sover_plus} FLAC is an audio coding format for lossless compression of digital audio, and is also the name of the reference software package that includes a codec implementation. @@ -78,13 +82,13 @@ This package contains the C++ API library for FLAC. Summary: FLAC Library Development Package Group: Development/Libraries/C and C++ Requires: glibc-devel -Requires: libFLAC++6 = %{version} -Requires: libFLAC8 = %{version} +Requires: libFLAC%{sover} = %{version} +Requires: libFLAC++%{sover_plus} = %{version} Requires: libstdc++-devel %description devel -This package contains the files needed to compile programs that use the -FLAC library. +This package contains the files needed to compile programs that use +the FLAC library. %prep %autosetup -p1 @@ -98,7 +102,7 @@ autoreconf -fvi --disable-static \ --disable-rpath \ --enable-sse -make %{?_smp_mflags} +%make_build %install %make_install docdir="%{_docdir}/%{name}" @@ -109,23 +113,21 @@ rm -rf %{buildroot}%{_datadir}/doc/%{name}-%{version}/ %check make check %{?_smp_mflags} -%post -n libFLAC8 -p /sbin/ldconfig -%postun -n libFLAC8 -p /sbin/ldconfig -%post -n libFLAC++6 -p /sbin/ldconfig -%postun -n libFLAC++6 -p /sbin/ldconfig +%ldconfig_scriptlets -n libFLAC%{sover} +%ldconfig_scriptlets -n libFLAC++%{sover_plus} %files -%doc README +%doc README.md %{_bindir}/* %{_mandir}/man*/* -%files -n libFLAC8 +%files -n libFLAC%{sover} %license COPYING* -%{_libdir}/libFLAC.so.8* +%{_libdir}/libFLAC.so.%{sover}* -%files -n libFLAC++6 +%files -n libFLAC++%{sover_plus} %license COPYING* -%{_libdir}/libFLAC++.so.6* +%{_libdir}/libFLAC++.so.%{sover_plus}* %files devel %{_libdir}/lib*.so @@ -133,6 +135,6 @@ make check %{?_smp_mflags} %{_libdir}/pkgconfig/*.pc %{_datadir}/aclocal/*.m4 %{_docdir}/%{name}/ -%exclude %{_docdir}/%{name}/README +%exclude %{_docdir}/%{name}/README.md %changelog