From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id A2216445CA for ; Sat, 19 Nov 2022 15:55:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5A6CC68B7DA; Sat, 19 Nov 2022 17:55:31 +0200 (EET) Received: from mail-ed1-f41.google.com (mail-ed1-f41.google.com [209.85.208.41]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3874668AA3D for ; Sat, 19 Nov 2022 17:55:25 +0200 (EET) Received: by mail-ed1-f41.google.com with SMTP id s5so10894839edc.12 for ; Sat, 19 Nov 2022 07:55:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=soUjSfVdJ0Q4K93TWsTtshUY+bq19pSLbA2PW/x0yhs=; b=o1gCakoHEGWpVnr8KK14ZuemPTMzL/Z0tBvg9hyPyokZqRaV+vajkKjk9xHjbDZsTX outgfOGm0Xb1NXRLPgeaxsv5qgt+8vvbX9EG+x1+MIEcIEjpdPoi3xSlmxUc48zUq0U9 So1dhXsT8PDN971w9lq4XpZv+vFfihUF8+8vDhwNhNb8ye/mwdxyTVS4fnwEDyy8jc14 QzeK+Zo/dXJ633f5BcPamOckioHaGtuyp0KVBHZCkt9wmPmLLwi2hkkEw9CsjPbB7vCu TDsbXmPRYvKVwbNb2vehOkUAQrCMLDtUQpS6jrEEuXjmReHbeTej5HpKkxcMx2znhGvq NbWw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=soUjSfVdJ0Q4K93TWsTtshUY+bq19pSLbA2PW/x0yhs=; b=grSSZq8pJqVJaooAEmNk/qSafoN0r5R3n4DLYSEVHYp4U7O7frgsCeq5gfQ7lXwj8C VSdfjgVa2T82TgUBhVCUGVO9JGUMQpEn3UeLpqqUV8uKME3vH+17uA1KxV4fysspGuK1 6E3kHCwx3mjE9wuf/0PIIicMz+uT5ngYVSLXxzelJNNF7A/ZR/BepRDU/tHAnYreobUG keR+cK0//eeMyYYUbW6HwehGoWl4KlgGoPB2jBeDnAuT15GqD6e9JBTcIFZFvNIl3Z4h pcDeOzYleh+14Q6cgmCXBNzEiYqx0qhkotL1m/NO9iAPFxKmD7lL5qjv8j+C+6SMZ5WG LIEw== X-Gm-Message-State: ANoB5pnRJTb1Y7xQGDvOtBnbXbRHJV0M+nYb7pusHSesIQ9fKyZRH+go KVk4S8GCzueLQFmUtYKQJQDZtSaB1Gcj9z7ZG9YeQaRa X-Google-Smtp-Source: AA0mqf61lOixOHhG2pgd1F+8SuAg+vyjSvAgMEf58lKcZeB/GcmXLtoIrh9q/RLsiMEsGaku/hH6Xa4a3jSqRo0cyHk= X-Received: by 2002:aa7:dd4d:0:b0:45c:98a9:7bbf with SMTP id o13-20020aa7dd4d000000b0045c98a97bbfmr10081554edw.372.1668873324161; Sat, 19 Nov 2022 07:55:24 -0800 (PST) MIME-Version: 1.0 References: <20221118132850.5020-1-rsbultje@gmail.com> <20221118133738.5065-1-rsbultje@gmail.com> In-Reply-To: <20221118133738.5065-1-rsbultje@gmail.com> From: "Ronald S. Bultje" Date: Sat, 19 Nov 2022 10:55:12 -0500 Message-ID: To: ffmpeg-devel@ffmpeg.org X-Content-Filtered-By: Mailman/MimeDel 2.1.29 Subject: Re: [FFmpeg-devel] [PATCH] avcodec/vp8: Fix wrong vpx_rac_is_end() check X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Cc: Hirokazu Honda Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: Hi, On Fri, Nov 18, 2022 at 8:37 AM Ronald S. Bultje wrote: > From: Hirokazu Honda > > The check of vpx_rac_is_end check(s) are added originally from > 1afd246960202917e244c844c534e9c1e3c323f5. It causes a regression > of some vp8 stream. b6b9ac5698c8f911841b469af77199153278c55c fixes > the regression by a sort of band-aid way. This fixes the wrongness > of the original commit. vpx_rac_is_end() should be called against > the bool decoder for the vp8 headr context, not one for each > coefficient. Reference is vp8_dixie_tokens_process_row() in token.c > in spec 20.16. > > Fixes: Ticket 8069 > Fixes: regression of 1afd246960202917e244c844c534e9c1e3c323f5. > Fixes: b6b9ac5698c8f911841b469af77199153278c55c > > Co-authored-by: Ronald S. Bultje > Signed-off-by: Hirokazu Honda > Signed-off-by: Ronald S. Bultje > --- > libavcodec/vp8.c | 14 +++++++++----- > 1 file changed, 9 insertions(+), 5 deletions(-) > > diff --git a/libavcodec/vp8.c b/libavcodec/vp8.c > index 67f36d8933..db2419deaf 100644 > --- a/libavcodec/vp8.c > +++ b/libavcodec/vp8.c > @@ -2404,7 +2404,8 @@ static av_always_inline int > decode_mb_row_no_filter(AVCodecContext *avctx, void > int num_jobs = s->num_jobs; > const VP8Frame *prev_frame = s->prev_frame; > VP8Frame *curframe = s->curframe; > - VPXRangeCoder *c = &s->coeff_partition[mb_y & > (s->num_coeff_partitions - 1)]; > + VPXRangeCoder *coeff_c = &s->coeff_partition[mb_y & > (s->num_coeff_partitions - 1)]; > + > VP8Macroblock *mb; > uint8_t *dst[3] = { > curframe->tf.f->data[0] + 16 * mb_y * s->linesize, > @@ -2412,7 +2413,7 @@ static av_always_inline int > decode_mb_row_no_filter(AVCodecContext *avctx, void > curframe->tf.f->data[2] + 8 * mb_y * s->uvlinesize > }; > > - if (vpx_rac_is_end(c)) > + if (vpx_rac_is_end(&s->c)) > return AVERROR_INVALIDDATA; > > if (mb_y == 0) > @@ -2443,7 +2444,7 @@ static av_always_inline int > decode_mb_row_no_filter(AVCodecContext *avctx, void > td->mv_bounds.mv_max.x = ((s->mb_width - 1) << 6) + MARGIN; > > for (mb_x = 0; mb_x < s->mb_width; mb_x++, mb_xy++, mb++) { > - if (vpx_rac_is_end(c)) > + if (vpx_rac_is_end(&s->c)) > return AVERROR_INVALIDDATA; > // Wait for previous thread to read mb_x+2, and reach mb_y-1. > if (prev_td != td) { > @@ -2470,8 +2471,11 @@ static av_always_inline int > decode_mb_row_no_filter(AVCodecContext *avctx, void > > prefetch_motion(s, mb, mb_x, mb_y, mb_xy, VP8_FRAME_PREVIOUS); > > - if (!mb->skip) > - decode_mb_coeffs(s, td, c, mb, s->top_nnz[mb_x], > td->left_nnz, is_vp7); > + if (!mb->skip) { > + if (vpx_rac_is_end(coeff_c)) > + return AVERROR_INVALIDDATA; > + decode_mb_coeffs(s, td, coeff_c, mb, s->top_nnz[mb_x], > td->left_nnz, is_vp7); > + } > > if (mb->mode <= MODE_I4x4) > intra_predict(s, td, dst, mb, mb_x, mb_y, is_vp7); > -- > 2.38.1 > Pushed. Ronald _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".