Commit 8ba5dc011b for ffmpeg

commit 8ba5dc011b304781eade0a1ed057f1af80fceeb7
Author: Michael Niedermayer <michael@niedermayer.cc>
Date:   Sat Oct 10 23:59:54 2026 +0200

    avcodec/dcaenc: compute the LFE FIR table in double precision

    0xffffff800000 is not representable as a float, so the float product
    rounds differently with SSE arithmetic than under x87 excess precision
    and the encoded LFE channel differed between x86-64 and x86-32. The
    product is exact in double, which makes the table identical everywhere.

diff --git a/libavcodec/dcaenc.c b/libavcodec/dcaenc.c
index d06287b3f2..6862444431 100644
--- a/libavcodec/dcaenc.c
+++ b/libavcodec/dcaenc.c
@@ -306,8 +306,8 @@ static av_cold int encode_init(AVCodecContext *avctx)

     for (k = 0; k < 32; k++) {
         for (j = 0; j < 8; j++) {
-            c->lfe_fir_64i[64 * j + k] = (int32_t)(0xffffff800000ULL * ff_dca_lfe_fir_64[8 * k + j]);
-            c->lfe_fir_64i[64 * (7-j) + (63 - k)] = (int32_t)(0xffffff800000ULL * ff_dca_lfe_fir_64[8 * k + j]);
+            c->lfe_fir_64i[64 * j + k] = (int32_t)(0xffffff800000ULL * (double)ff_dca_lfe_fir_64[8 * k + j]);
+            c->lfe_fir_64i[64 * (7-j) + (63 - k)] = (int32_t)(0xffffff800000ULL * (double)ff_dca_lfe_fir_64[8 * k + j]);
         }
     }