From patchwork Fri Jun 23 15:02:07 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Ronald S. Bultje" X-Patchwork-Id: 4092 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.22.4 with SMTP id 4csp167474vsw; Fri, 23 Jun 2017 08:09:20 -0700 (PDT) X-Received: by 10.28.66.215 with SMTP id k84mr3454482wmi.65.1498230560453; Fri, 23 Jun 2017 08:09:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1498230560; cv=none; d=google.com; s=arc-20160816; b=Wox7W8dpYpXqwNeraaDpdcb/P9Y+S5jNy+PNQMqdoQOmFdP/r0HASFuzWVu7VAA/As DDgQhcafM6mENK+xDykZKPoeLwV8YJYh+DeTmQwIAk46Zth7ro9QZEm3HeP5wEHe31XL qcr5lR92Vj3tUPlxgzdIW03XcMsQ+E35PyTgGxgpY00N+OFeBIbAU4Tu5b420kK2g36S wmcCECHoxajoYISRjqEuwX+RDxpFF6Sw9nF9KI9od3dgxD4Axv2kp7+w2agfYBqAnhTn wLQCAEKmjx9aQi7BYYwobvsG2TZ7BfpxT0dUDErHleUpfGM1OqGYAQSgjpGoYoKRnEwp Hazw== 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=fbvklRq1UbSJCOYKKcQFiMkz7E/lL44Oz6s4iilNt5k=; b=OhMRO9+22AcpEzEHOP/Q+NMSYt6FxCjivC0n1COKbtklk1sLA9q/WnOEC1NPbRMXVQ r8xbdnKo721/G8AycmWh4GLJJH+nCE+j0Ph+SkC1zT6JIhfdr6NniNmjP5ta33kYrI+D vSjpkMEtdagVVcda9tuc1qlmvClKSnieN1cqk20l05PXNTTCiGXHYeri+GrQv9rz4LnM X8PDKeLfD6MLqNFQe0+vxb613E9q9jmtvOuYJ2FEV2SV6sq96TaQWoeC08qVRpFI6Q1C lnej7xebjkWzjD9QrcNVpz6bdehuNQPCne1sV8KfYPH03kFYczauDcXNuHDBj1zhRJpM ClFw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=Xf11dbma; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id v137si4339936wmd.52.2017.06.23.08.09.19; Fri, 23 Jun 2017 08:09:20 -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=@gmail.com header.b=Xf11dbma; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 54E7A689D27; Fri, 23 Jun 2017 18:09:17 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qk0-f195.google.com (mail-qk0-f195.google.com [209.85.220.195]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6CEE5689B83 for ; Fri, 23 Jun 2017 18:09:11 +0300 (EEST) Received: by mail-qk0-f195.google.com with SMTP id p21so6563739qke.0 for ; Fri, 23 Jun 2017 08:09:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=1Vh1Z8agBefAb8KM6/LNeSHHGTLZXDH5Bmvn68rMopw=; b=Xf11dbmazU/H/6HBlxOYjlmYPHIODfZZbw9/Q3IsFmYerkAn0gqMHsEIX7Atv2STjJ eqrNl+LGjz3uwQ5xHcPT6OCoNClVtciy+S3eP4NCuQPNd9JbkVJB2rSQEkAb6FIcWpRh ThsJgwQry9VEek07M8IDJwk2b3JOsLz+dvT97g+cuAwXNXhmcxpm2oO7NSQDkBVLUdHN Wul4IGu3vv09k/k009uN8c4Y1YBajvfSO8+YfBqUKwj10Rq9ViryaxU2/zLh44lQuTi0 g8Y+FyiYChmwJo/Qs5ylGxTCRCGQjwqDjrXIPtX6RB/gX+DMJoR+8lQcM3lTBFyTAALb TQww== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=1Vh1Z8agBefAb8KM6/LNeSHHGTLZXDH5Bmvn68rMopw=; b=GpDWhZJVviMw4Vv8XmNyU8VAYvZL6RZspGBK8+sJZTBi+8umsZVLn64rwqV8uELmq3 x+1JLDTVXmtPHcNf+QMFh6p6Oglb+AxczhRD22mwejK+7efTiV7iX2aFOM+Rx3AK2JWT Pdrwi8xXkrR8IsxPsBzIQOH3DqBej29sogsgZhdpHJTiV+xZ3zdztM7XKrabJiadrdz4 lOoJR27K/NeXtQ0oaEP8HDjFWt1tGb3WSzavyWgLBsPXZEpPQLqxy7ONGjmb/+2ed6e+ 857CNjAn1Uly9ysq4iSut+C40YLAdwVkGG0rJ7a73w95j4TXMjpbjBFHQEfBBn4tmJnI 9HHw== X-Gm-Message-State: AKS2vOygg1GlEIO5wEB5tQCvOpF5Zgfp3vMMO7xsbcMyNi4cyDVRm44/ VXBWi3jRtQzCIV6ehS0= X-Received: by 10.55.113.197 with SMTP id m188mr9101666qkc.227.1498230130266; Fri, 23 Jun 2017 08:02:10 -0700 (PDT) Received: from localhost.localdomain ([65.206.95.146]) by smtp.gmail.com with ESMTPSA id x11sm3408760qkb.12.2017.06.23.08.02.09 (version=TLS1 cipher=AES128-SHA bits=128/128); Fri, 23 Jun 2017 08:02:09 -0700 (PDT) From: "Ronald S. Bultje" To: ffmpeg-devel@ffmpeg.org Date: Fri, 23 Jun 2017 11:02:07 -0400 Message-Id: <1498230127-8896-1-git-send-email-rsbultje@gmail.com> X-Mailer: git-send-email 2.8.1 In-Reply-To: <20170622202835.GO4727@nb4> References: <20170622202835.GO4727@nb4> Subject: [FFmpeg-devel] [PATCH] vf_spp: only assign function pointers if permutation matches expectations. 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" --- libavfilter/x86/vf_spp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavfilter/x86/vf_spp.c b/libavfilter/x86/vf_spp.c index 45a9eb0..7d5da61 100644 --- a/libavfilter/x86/vf_spp.c +++ b/libavfilter/x86/vf_spp.c @@ -21,6 +21,7 @@ #include "libavutil/attributes.h" #include "libavutil/cpu.h" +#include "libavutil/crc.h" #include "libavutil/mem.h" #include "libavutil/x86/asm.h" #include "libavfilter/vf_spp.h" @@ -223,10 +224,15 @@ av_cold void ff_spp_init_x86(SPPContext *s) int cpu_flags = av_get_cpu_flags(); if (cpu_flags & AV_CPU_FLAG_MMX) { + static const uint32_t mmx_idct_perm_crc = 0xe5e8adc4; + uint32_t idct_perm_crc = + av_crc(av_crc_get_table(AV_CRC_32_IEEE), 0, + s->dct->idct_permutation, + sizeof(s->dct->idct_permutation)); int64_t bps; s->store_slice = store_slice_mmx; av_opt_get_int(s->dct, "bits_per_sample", 0, &bps); - if (bps <= 8) { + if (bps <= 8 && idct_perm_crc == mmx_idct_perm_crc) { switch (s->mode) { case 0: s->requantize = hardthresh_mmx; break; case 1: s->requantize = softthresh_mmx; break;