From patchwork Mon Jun 19 15:10:58 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: James Darnley X-Patchwork-Id: 4042 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.22.4 with SMTP id 4csp962060vsw; Mon, 19 Jun 2017 08:24:45 -0700 (PDT) X-Received: by 10.28.144.20 with SMTP id s20mr10808048wmd.35.1497885885408; Mon, 19 Jun 2017 08:24:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497885885; cv=none; d=google.com; s=arc-20160816; b=pSZt2TXj3+OLFVJkp47KAruYma9mKP4ztqtmjyEUP80UC50wNvgAIuK2pxcmNPtWG4 bBCFSYhUtIV9eHeLqlKxMaMZT+HyTBfYxnwBv61j54eLkF/BZEXz4qUFxX2naRFj/5o6 RCTukcwKVJc0Q3lqCIYrTOPW5vmfIlEkY8s+uffDv+b8CvGUfoQi0BjF7xwGybX3UNi0 E6DXnfYNI+zlKRGCNISRCHo3QxKowqZ7CXFQYPYtQosTf8p31u7yKS2stjip7T/jO2Qu MgswudNFTtDd/dlJO7jLmPmASDh0nUIQABVO3KismMhKzd9yyLXUnKkbVh36n2LYZpCO U9oQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to:arc-authentication-results; bh=qyDdc98t8QxbQW9XZ/gy4P9y8LCO0wjtWtAh9MZrp+8=; b=mlpXzhtEHRrPxEh/T4QpxjmsvycXNo5yoQIseSMy1n3h11RFaomwUiKHo6+2wRCjIh 7dPkktvkBSgJXr10yhQBqAlrECO9HccPvDsZbf2BgJW7Nr9tOMwMzUkxVjROeWtJdQ+2 WKndDh1FP4FqnEFaWPvlKt7V1Bby0UxnD9EL5qUpgdDrgu+uGCo8ySD1Ls7deUbsxQeJ 1WXZ+UKkwGqc/PIX2JRIv3Se+mQPe4XEOwjTNlo2eiHs5kWZXzSCJqe2qlw3UuuFnyS6 70hVbcHqb9tTLKh/vihDd7I0EvIoTtLRERnzIEF4FJlQE2vDSbUXBaUVv6LmR77jEqJi ExsA== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@ob-encoder-com.20150623.gappssmtp.com header.b=fbZKpx9j; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id 70si11064345wrm.347.2017.06.19.08.24.44; Mon, 19 Jun 2017 08:24:45 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@ob-encoder-com.20150623.gappssmtp.com header.b=fbZKpx9j; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF63068A509; Mon, 19 Jun 2017 18:24:37 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-wm0-f65.google.com (mail-wm0-f65.google.com [74.125.82.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 2C3A868A4CB for ; Mon, 19 Jun 2017 18:24:36 +0300 (EEST) Received: by mail-wm0-f65.google.com with SMTP id 70so17055473wme.1 for ; Mon, 19 Jun 2017 08:24:40 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ob-encoder-com.20150623.gappssmtp.com; s=20150623; h=sender:from:to:cc:subject:date:message-id:in-reply-to:references; bh=/VYVdav7skXYjF4xst3lUJ1Fj5RYYkaBWyw2OvgGxzs=; b=fbZKpx9jQIWAigtdUfqjitYWjfKPRIlLro1I4G15w51g/1zPoBFrrAGlWD52i4hP0x h/JyCesrTiFvqnr+gmRFjlVASfCkE/b7kGzxuHL8z00tnRCk9mJyDeLECxsAdCzHjVyx FngbbBsL3N5lQ8x+c6X9w4+1dE3mN6WQzlfP6cDX+SRukcPiMIgoEkHHo7+TQaR9qGYR m3DJv+h7Vg2Uv4C1gKO7KZP+OWxBpnm2CloUHht5J8uaO8YUcJtsw0FZxouedOazLigQ 2ii0gvb8Yh4c4UHEwZ4CN7T+G2SmrwvkaGQmKMjjPq2/GTwWsIFbhebnLZm66ezeHJy0 Mx5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :in-reply-to:references; bh=/VYVdav7skXYjF4xst3lUJ1Fj5RYYkaBWyw2OvgGxzs=; b=ePXQVrM808M/htvG/DJkX+IfthdCHqC3GO9xZ+JQzniJLfFqVCUXHz8wNRPW4OBrS7 6j1glb3JLlPYOpSVXCe4gW37WIzqJk6UUIHhsxp8liPqN0YeQqhmNqP5J0rl8034PJ3N 4QWtqMOSuyP9x2J3JuLu5x9SfcurV29DcRgYCttSLZf4jsZbOma0cBvKeyrhL0a6Oy94 ZPx9a3RKiEifhAGB6m6okaWuaeVldO7gQZr6P3Lt7tNQd63qKJE4ep0LjLrtvzJQAr0D 2+5zcDNJWH9Ues66JAqNeEvj/blfnZLu3sPLv42+7gvZxzzJP4FT3gb2J/+5rhR/5Lo5 SkFQ== X-Gm-Message-State: AKS2vOw06K+JpI3CN820K+uAu59sBFXv3I5HdQGPB3nCgaVYl7yK9FwO zq91Hwbulh4hVBMVN98= X-Received: by 10.28.72.212 with SMTP id v203mr16505504wma.90.1497885461625; Mon, 19 Jun 2017 08:17:41 -0700 (PDT) Received: from Ifrit.systemlords.lan (d51a44418.access.telenet.be. [81.164.68.24]) by smtp.gmail.com with ESMTPSA id 6sm8059540wrg.61.2017.06.19.08.17.40 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 19 Jun 2017 08:17:41 -0700 (PDT) From: James Darnley To: FFmpeg development discussions and patches Date: Mon, 19 Jun 2017 17:10:58 +0200 Message-Id: <20170619151104.31273-6-jdarnley@obe.tv> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20170619151104.31273-1-jdarnley@obe.tv> References: <20170619151104.31273-1-jdarnley@obe.tv> Subject: [FFmpeg-devel] [PATCH 05/11] avcodec/mpegenc: do not use unquantize shortcuts for wmv1 X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 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: "Ronald S. Bultje" MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" From: "Ronald S. Bultje" Commit message by James Darnley The shortcut is based on end-of-block positions. This leads to some coefficients not being unquantized. This is the symptom of the bug. A possible candidate for the real bug is the scan table used here in unquantize does not appear to match the one used in wmv1. That might be because h263_unquantize_intra uses the inter scan table. We can avoid the bug by not using the shortcut. --- libavcodec/mpegvideo.c | 2 +- libavcodec/x86/mpegvideo.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c index e5424cbacf..568e782dd6 100644 --- a/libavcodec/mpegvideo.c +++ b/libavcodec/mpegvideo.c @@ -222,7 +222,7 @@ static void dct_unquantize_h263_intra_c(MpegEncContext *s, }else{ qadd = 0; } - if(s->ac_pred) + if(s->ac_pred || s->avctx->codec_id == AV_CODEC_ID_WMV1) nCoeffs=63; else nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ]; diff --git a/libavcodec/x86/mpegvideo.c b/libavcodec/x86/mpegvideo.c index 35a8264804..43df9a71b5 100644 --- a/libavcodec/x86/mpegvideo.c +++ b/libavcodec/x86/mpegvideo.c @@ -48,7 +48,7 @@ static void dct_unquantize_h263_intra_mmx(MpegEncContext *s, qadd = 0; level= block[0]; } - if(s->ac_pred) + if(s->ac_pred || s->avctx->codec_id == AV_CODEC_ID_WMV1) nCoeffs=63; else nCoeffs= s->inter_scantable.raster_end[ s->block_last_index[n] ];