From patchwork Wed Jun 6 18:47:23 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerome Borsboom X-Patchwork-Id: 9271 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:11c:0:0:0:0:0 with SMTP id c28-v6csp1186226jad; Wed, 6 Jun 2018 11:47:38 -0700 (PDT) X-Google-Smtp-Source: ADUXVKLBwkF7dugxM8fH1cMOIvlbUAzsg+0DZw/byV5iMuqZCRt2nX7UhAl9ahh7jQLKG47iDNm3 X-Received: by 2002:a1c:8893:: with SMTP id k141-v6mr2646173wmd.133.1528310858564; Wed, 06 Jun 2018 11:47:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1528310858; cv=none; d=google.com; s=arc-20160816; b=uInisjSyf/X01K2t0f3mDR2DROlQaTrjaLlrFBS4bzPWqitS3lAJNSQDtzjFIqkeyd HvTTP4kDQTvj/2To17eMLVn3p5j2/htvx08Z3epG1Pxgq+77Jo39qHd8S4QGbqQap+Fb o6qhRmpG6uW813KnuB6Y6nGTOR057Iaqx3Dotextt+DT6fzRnDUjWW8oR5FFCmmNewuH 8kXGMfC9WSR/alTdZQLoFlkMYq3Oz24CelhQQvLjaPjzu/fJmhJKs0969x1KktLtFelE NluoLTPZYjUBPOzxUrPUf4LrmpSk6PKnNxYavVjAz+JfGaILJZ/sBPK7Xu029JyyrKVt 2TwA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:content-language:mime-version:user-agent:date :message-id:from:to:dkim-signature:delivered-to :arc-authentication-results; bh=wb/rTD4Bq1INcMLbZyx5p5bwtk4FRmbWnz8NIyQ6VTo=; b=lwdqlGOwfJ5EYoKtfB6Pe7GC2zQqo1OJ+/nbT7okikNLCbKwqq9IQzh3+9P6hYzpPG cs5manvelUJ10obiVUJL+EZZZJt3xXFXTSkD1leq+kdo2L1PlfDO3Av+LC7Xk6DKQXZI q6ZFMbgUHrwOU6UMVTPdb7CAUdz4rxJ9VBjq3mX6gqS3ZmKVLJsoUc4bN2Tc8NEiSLGg shHxK4c6K7fa1VBsTBDgnaghWS08vazeSE2vEU3HD4HnGRSYvUkfFZ1gXQQYNuI7Tr3G hY7ZjRHAOYJt4hBA/cqNANCUvXJ5FOtUPn5cdM32br8yf27Ccsy6bc0k7gxUmQ+Fj4QJ BQJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@carpalis.nl header.s=default header.b=Geex+PtH; 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 b84-v6si3562309wmd.34.2018.06.06.11.47.38; Wed, 06 Jun 2018 11:47:38 -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=@carpalis.nl header.s=default header.b=Geex+PtH; 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 3742A68A779; Wed, 6 Jun 2018 21:46:43 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from kyoto.xs4all.nl (kyoto.xs4all.nl [83.161.153.34]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 4768968A42F for ; Wed, 6 Jun 2018 21:46:37 +0300 (EEST) Received: from [IPv6:2001:980:9507:0:8e70:5aff:fec6:83fc] ([IPv6:2001:980:9507:0:8e70:5aff:fec6:83fc]) (authenticated bits=0) by kyoto.xs4all.nl (8.14.7/8.14.7) with ESMTP id w56IlNK2014979 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Wed, 6 Jun 2018 20:47:23 +0200 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=carpalis.nl; s=default; t=1528310843; bh=AqSR9RdOaWSN9bSmQaW37/jxBIURBOXSILGGpGe48hQ=; h=To:From:Subject:Date; b=Geex+PtHf7MNYb1VMb6/bAsbHUSsWWJEYLyKUTuGwPSmRb5sQOPkKo5Xj/N2vH7pD BvtoLnNxy7HK8srX3w70j/DNnKWs2Y6w72rIRhQKwddXlv1iGSfwAS1PrhikZ5rFVh SsppfSMofXJ8cmrbnH/pfmi1L4iFT4v5LjbfSHxUwiG+8rS8Xp94BvFHBhE2947CDP 3Nm7m3fTMD9P0uUUGSjobYmF4sEKTzqjnJN7KgpsB5s/9EJORCYOVjktBky4DCKEUZ oZE7k/3/bSgzrEECjxrD2t//chdqPejrFqbNPaDE5B73n+zt5XWjron7SblMz3R46B lkAXp8N6XYe3A== To: ffmpeg-devel@ffmpeg.org From: Jerome Borsboom Message-ID: <6908e49b-4603-1be5-2cf6-d543d65fd166@carpalis.nl> Date: Wed, 6 Jun 2018 20:47:23 +0200 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.8.0 MIME-Version: 1.0 Content-Language: nl Subject: [FFmpeg-devel] [PATCH 2/4] avcodec/vc1: add Simple and Main profile to vc1_put_signed_blocks_clamped 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Simple and Main profile also need unsigned put_pixels_clamped. Add an argument to choose between signed and unsigned put_pixels and change function name to vc1_put_blocks_clamped. Signed-off-by: Jerome Borsboom --- libavcodec/vc1_block.c | 54 ++++++++++++++++++++++++++++++++++---------------- 1 file changed, 37 insertions(+), 17 deletions(-) diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c index caf1596812..ae179a15cc 100644 --- a/libavcodec/vc1_block.c +++ b/libavcodec/vc1_block.c @@ -66,7 +66,7 @@ static inline void init_block_index(VC1Context *v) /** @} */ //Bitplane group -static void vc1_put_signed_blocks_clamped(VC1Context *v) +static void vc1_put_blocks_clamped(VC1Context *v, int put_signed) { MpegEncContext *s = &v->s; uint8_t *dest; @@ -85,9 +85,14 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) if (i > 3 ? v->mb_type[0][s->block_index[i] - s->block_wrap[i] - 1] : v->mb_type[0][s->block_index[i] - 2 * s->block_wrap[i] - 2]) { dest = s->dest[0] + ((i & 2) - 4) * 4 * s->linesize + ((i & 1) - 2) * 8; - s->idsp.put_signed_pixels_clamped(v->block[v->topleft_blk_idx][i], - i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, - i > 3 ? s->uvlinesize : s->linesize); + if (put_signed) + s->idsp.put_signed_pixels_clamped(v->block[v->topleft_blk_idx][i], + i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, + i > 3 ? s->uvlinesize : s->linesize); + else + s->idsp.put_pixels_clamped(v->block[v->topleft_blk_idx][i], + i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize - 8 : dest, + i > 3 ? s->uvlinesize : s->linesize); } } } @@ -96,9 +101,14 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) if (i > 3 ? v->mb_type[0][s->block_index[i] - s->block_wrap[i]] : v->mb_type[0][s->block_index[i] - 2 * s->block_wrap[i]]) { dest = s->dest[0] + ((i & 2) - 4) * 4 * s->linesize + (i & 1) * 8; - s->idsp.put_signed_pixels_clamped(v->block[v->top_blk_idx][i], - i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, - i > 3 ? s->uvlinesize : s->linesize); + if (put_signed) + s->idsp.put_signed_pixels_clamped(v->block[v->top_blk_idx][i], + i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, + i > 3 ? s->uvlinesize : s->linesize); + else + s->idsp.put_pixels_clamped(v->block[v->top_blk_idx][i], + i > 3 ? s->dest[i - 3] - 8 * s->uvlinesize : dest, + i > 3 ? s->uvlinesize : s->linesize); } } } @@ -114,9 +124,14 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) dest = s->dest[0] + ((i & 2) >> 1) * s->linesize + ((i & 1) - 2) * 8; else dest = s->dest[0] + (i & 2) * 4 * s->linesize + ((i & 1) - 2) * 8; - s->idsp.put_signed_pixels_clamped(v->block[v->left_blk_idx][i], - i > 3 ? s->dest[i - 3] - 8 : dest, - i > 3 ? s->uvlinesize : s->linesize << fieldtx); + if (put_signed) + s->idsp.put_signed_pixels_clamped(v->block[v->left_blk_idx][i], + i > 3 ? s->dest[i - 3] - 8 : dest, + i > 3 ? s->uvlinesize : s->linesize << fieldtx); + else + s->idsp.put_pixels_clamped(v->block[v->left_blk_idx][i], + i > 3 ? s->dest[i - 3] - 8 : dest, + i > 3 ? s->uvlinesize : s->linesize << fieldtx); } } } @@ -129,9 +144,14 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) dest = s->dest[0] + ((i & 2) >> 1) * s->linesize + (i & 1) * 8; else dest = s->dest[0] + (i & 2) * 4 * s->linesize + (i & 1) * 8; - s->idsp.put_signed_pixels_clamped(v->block[v->cur_blk_idx][i], - i > 3 ? s->dest[i - 3] : dest, - i > 3 ? s->uvlinesize : s->linesize << fieldtx); + if (put_signed) + s->idsp.put_signed_pixels_clamped(v->block[v->cur_blk_idx][i], + i > 3 ? s->dest[i - 3] : dest, + i > 3 ? s->uvlinesize : s->linesize << fieldtx); + else + s->idsp.put_pixels_clamped(v->block[v->cur_blk_idx][i], + i > 3 ? s->dest[i - 3] : dest, + i > 3 ? s->uvlinesize : s->linesize << fieldtx); } } } @@ -1469,7 +1489,7 @@ static int vc1_decode_p_mb(VC1Context *v) end: if (v->overlap && v->pq >= 9) ff_vc1_p_overlap_filter(v); - vc1_put_signed_blocks_clamped(v); + vc1_put_blocks_clamped(v, 1); v->cbp[s->mb_x] = block_cbp; v->ttblk[s->mb_x] = block_tt; @@ -1680,7 +1700,7 @@ static int vc1_decode_p_mb_intfr(VC1Context *v) } if (v->overlap && v->pq >= 9) ff_vc1_p_overlap_filter(v); - vc1_put_signed_blocks_clamped(v); + vc1_put_blocks_clamped(v, 1); v->cbp[s->mb_x] = block_cbp; v->ttblk[s->mb_x] = block_tt; @@ -1800,7 +1820,7 @@ static int vc1_decode_p_mb_intfi(VC1Context *v) } if (v->overlap && v->pq >= 9) ff_vc1_p_overlap_filter(v); - vc1_put_signed_blocks_clamped(v); + vc1_put_blocks_clamped(v, 1); v->cbp[s->mb_x] = block_cbp; v->ttblk[s->mb_x] = block_tt; @@ -2727,7 +2747,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v) if (v->overlap && v->condover != CONDOVER_NONE) ff_vc1_i_overlap_filter(v); - vc1_put_signed_blocks_clamped(v); + vc1_put_blocks_clamped(v, 1); if (v->s.loop_filter) ff_vc1_i_loop_filter(v);