On Wed, Sep 27, 2023 at 03:56:15PM +0200, Niklas Haas wrote: > From: Niklas Haas > > The spec specifies x^31 + x^3 + 1 as the polynomial, but the diagram in > Figure 1-1 omits the +1 offset. The initial implementation was based on > the diagram, but this is wrong (produces subtly incorrect results). > --- > libavcodec/h274.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/libavcodec/h274.c b/libavcodec/h274.c > index a69f9411429..fc111cdb50d 100644 > --- a/libavcodec/h274.c > +++ b/libavcodec/h274.c > @@ -38,7 +38,7 @@ static void prng_shift(uint32_t *state) > { > // Primitive polynomial x^31 + x^3 + 1 (modulo 2) > uint32_t x = *state; > - uint8_t feedback = (x >> 2) ^ (x >> 30); > + uint8_t feedback = 1u ^ (x >> 2) ^ (x >> 30); > *state = (x << 1) | (feedback & 1u); where can i find the text describing this that you refer to ? thx [...] -- Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB Rewriting code that is poorly written but fully understood is good. Rewriting code that one doesnt understand is a sign that one is less smart than the original author, trying to rewrite it will not make it better.