forked from pool/MozillaFirefox
e72a516450
* mozilla-bmo1504834-part1.patch * mozilla-bmo1504834-part2.patch * mozilla-bmo1504834-part3.patch * mozilla-bmo1511604.patch * mozilla-bmo1554971.patch * mozilla-bmo1573381.patch * mozilla-nestegg-big-endian.patch OBS-URL: https://build.opensuse.org/package/show/mozilla:Factory/MozillaFirefox?expand=0&rev=763
39 lines
1.2 KiB
Diff
39 lines
1.2 KiB
Diff
# HG changeset patch
|
|
# Parent 381102061fccdec40efda75c7423a766f68201ba
|
|
Bug-behavior: Youtube-videos using VP9 and opus as audio-codec started loading but did not play
|
|
Reason: While parsing the audio-stream, the sampling frequency (short rate) was wrongly parsed by
|
|
nestegg, returning 0 all the time. This led to the audio-track reporting that it neither had
|
|
valid video nor audio. Which led to an endless-loop in the video state machine.
|
|
Solution: Correct parsing of rate in nestegg, which is a float and cuts of bytes.
|
|
Link: https://github.com/kinetiknz/nestegg/issues/64
|
|
|
|
diff -r 381102061fcc -r 8da4be020b1e media/libnestegg/src/nestegg.c
|
|
--- a/media/libnestegg/src/nestegg.c Tue Aug 13 07:51:27 2019 +0200
|
|
+++ b/media/libnestegg/src/nestegg.c Tue Aug 20 07:59:54 2019 +0200
|
|
@@ -768,7 +768,15 @@
|
|
{
|
|
union {
|
|
uint64_t u;
|
|
- float f;
|
|
+ struct {
|
|
+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__
|
|
+ uint32_t _pad;
|
|
+ float f;
|
|
+#else
|
|
+ float f;
|
|
+ uint32_t _pad;
|
|
+#endif
|
|
+ } f;
|
|
double d;
|
|
} value;
|
|
int r;
|
|
@@ -780,7 +788,7 @@
|
|
if (r != 1)
|
|
return r;
|
|
if (length == 4)
|
|
- *val = value.f;
|
|
+ *val = value.f.f;
|
|
else
|
|
*val = value.d;
|
|
return 1;
|