This is an automated email from the git hooks/post-receive script.

Git pushed a commit to branch master
in repository ffmpeg.

commit 7b3b537d55128c5fa14df73cd216701e0ea79c41
Author:     Martin Mirchev <[email protected]>
AuthorDate: Tue Oct 27 11:45:20 2026 +0800
Commit:     Peter Ross <[email protected]>
CommitDate: Fri Oct 30 04:22:49 2026 +0000

    avcodec/vp3: fix quantizer matrix update with frame threading
    
    vp3_update_thread_context() compared every s->qps[i] with s1->qps[1]
    instead of s1->qps[i]. When a thread's previous qps[i] happened to
    equal the new qps[1], qmat[i] was not copied while qps[] still was, so
    the next frame with the same quantizers was dequantized with a stale
    matrix and the output depended on the number of threads.
    
    This only affects Theora streams that use more than one quantizer per
    frame.
    
    Signed-off-by: Martin Mirchev <[email protected]>
---
 libavcodec/vp3.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/libavcodec/vp3.c b/libavcodec/vp3.c
index ca468b047c..9b6b9901d8 100644
--- a/libavcodec/vp3.c
+++ b/libavcodec/vp3.c
@@ -2517,7 +2517,7 @@ static int vp3_update_thread_context(AVCodecContext *dst, 
const AVCodecContext *
     if (s != s1) {
         // copy qscale data if necessary
         for (int i = 0; i < 3; i++) {
-            if (s->qps[i] != s1->qps[1]) {
+            if (s->qps[i] != s1->qps[i]) {
                 qps_changed = 1;
                 memcpy(&s->qmat[i], &s1->qmat[i], sizeof(s->qmat[i]));
             }

-- 
To stop receiving notification emails like this one, please contact
[email protected].
_______________________________________________
ffmpeg-cvslog mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to