author | Wolfgang Rosenauer <wr@rosenauer.org> |
Thu, 05 Sep 2019 08:27:52 +0200 | |
branch | firefox69 |
changeset 1105 | 611baabe5b83 |
parent 1101 | a4709640638e |
permissions | -rw-r--r-- |
1101
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
1 |
# HG changeset patch |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
2 |
# Parent 381102061fccdec40efda75c7423a766f68201ba |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
3 |
Bug-behavior: Youtube-videos using VP9 and opus as audio-codec started loading but did not play |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
4 |
Reason: While parsing the audio-stream, the sampling frequency (short rate) was wrongly parsed by |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
5 |
nestegg, returning 0 all the time. This led to the audio-track reporting that it neither had |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
6 |
valid video nor audio. Which led to an endless-loop in the video state machine. |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
7 |
Solution: Correct parsing of rate in nestegg, which is a float and cuts of bytes. |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
8 |
Link: https://github.com/kinetiknz/nestegg/issues/64 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
9 |
|
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
10 |
diff -r 381102061fcc -r 8da4be020b1e media/libnestegg/src/nestegg.c |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
11 |
--- a/media/libnestegg/src/nestegg.c Tue Aug 13 07:51:27 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
12 |
+++ b/media/libnestegg/src/nestegg.c Tue Aug 20 07:59:54 2019 +0200 |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
13 |
@@ -768,7 +768,15 @@ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
14 |
{ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
15 |
union { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
16 |
uint64_t u; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
17 |
- float f; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
18 |
+ struct { |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
19 |
+#if __FLOAT_WORD_ORDER__ == __ORDER_BIG_ENDIAN__ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
20 |
+ uint32_t _pad; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
21 |
+ float f; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
22 |
+#else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
23 |
+ float f; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
24 |
+ uint32_t _pad; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
25 |
+#endif |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
26 |
+ } f; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
27 |
double d; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
28 |
} value; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
29 |
int r; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
30 |
@@ -780,7 +788,7 @@ |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
31 |
if (r != 1) |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
32 |
return r; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
33 |
if (length == 4) |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
34 |
- *val = value.f; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
35 |
+ *val = value.f.f; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
36 |
else |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
37 |
*val = value.d; |
a4709640638e
added several arch specific (mainly BE) patches
Wolfgang Rosenauer <wr@rosenauer.org>
parents:
diff
changeset
|
38 |
return 1; |