From: Gyorgy Sarvari <[email protected]>

While working on audiofile recipe from meta-oe, a test that is using flac
to convert a flac file failed with this particular version of the recipe.

Bisecting the issue pointed to a code snippet that later was modifed with the
patch that is introduced here: in version 1.3.4 there is a bug with seeking
in flac files, returning incorrect pointers.

This backported patch fixes this (and fixes the ptest also, that triggered 
this).

Signed-off-by: Gyorgy Sarvari <[email protected]>
Signed-off-by: Steve Sakoman <[email protected]>
---
 .../flac/files/0001-Fix-seeking-bug.patch     | 34 +++++++++++++++++++
 meta/recipes-multimedia/flac/flac_1.3.4.bb    |  3 +-
 2 files changed, 36 insertions(+), 1 deletion(-)
 create mode 100644 
meta/recipes-multimedia/flac/files/0001-Fix-seeking-bug.patch

diff --git a/meta/recipes-multimedia/flac/files/0001-Fix-seeking-bug.patch 
b/meta/recipes-multimedia/flac/files/0001-Fix-seeking-bug.patch
new file mode 100644
index 0000000000..dadedcc168
--- /dev/null
+++ b/meta/recipes-multimedia/flac/files/0001-Fix-seeking-bug.patch
@@ -0,0 +1,34 @@
+From 1817916388cd8180f4411e6d0eb89a8c6916dce6 Mon Sep 17 00:00:00 2001
+From: Martijn van Beurden <[email protected]>
+Date: Mon, 25 Apr 2022 20:29:57 +0200
+Subject: [PATCH] Fix seeking bug
+
+Commit 159cd6c introduced a bug that only triggered upon seeking
+from the start of a headerless FLAC file to the first frame (so
+really not a seek at all). Furthermore that commit did nothing
+else in any other circumstance. This commit fixes that, by both
+fixing the problem and the behaviour the commit mentioned earlier
+meant to introduce.
+
+Co-authored-by: Robert Kausch <[email protected]>
+
+Upstream-Status: Backport 
[https://github.com/xiph/flac/commit/7e785eb9a84f9147246eb2b0e5e35ec01db5a815]
+Signed-off-by: Gyorgy Sarvari <[email protected]>
+---
+ src/libFLAC/stream_decoder.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/libFLAC/stream_decoder.c b/src/libFLAC/stream_decoder.c
+index ef6da44..bc78645 100644
+--- a/src/libFLAC/stream_decoder.c
++++ b/src/libFLAC/stream_decoder.c
+@@ -3077,7 +3077,8 @@ FLAC__bool seek_to_absolute_sample_(FLAC__StreamDecoder 
*decoder, FLAC__uint64 s
+       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(decoder->protected_->state == 
FLAC__STREAM_DECODER_SEARCH_FOR_FRAME_SYNC &&
++         decoder->private_->samples_decoded != 0) {
+               if(target_sample < decoder->private_->samples_decoded) {
+                       if(FLAC__stream_decoder_get_decode_position(decoder, 
&upper_bound))
+                               upper_bound_sample = 
decoder->private_->samples_decoded;
diff --git a/meta/recipes-multimedia/flac/flac_1.3.4.bb 
b/meta/recipes-multimedia/flac/flac_1.3.4.bb
index 1a44718bba..6df0668783 100644
--- a/meta/recipes-multimedia/flac/flac_1.3.4.bb
+++ b/meta/recipes-multimedia/flac/flac_1.3.4.bb
@@ -16,7 +16,8 @@ DEPENDS = "libogg"
 
 SRC_URI = "http://downloads.xiph.org/releases/flac/${BP}.tar.xz \
            file://CVE-2020-22219.patch \
-"
+           file://0001-Fix-seeking-bug.patch \
+           "
 
 SRC_URI[sha256sum] = 
"8ff0607e75a322dd7cd6ec48f4f225471404ae2730d0ea945127b1355155e737"
 
-- 
2.43.0

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#226784): 
https://lists.openembedded.org/g/openembedded-core/message/226784
Mute This Topic: https://lists.openembedded.org/mt/116475678/21656
Group Owner: [email protected]
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to