From patchwork Wed Mar 21 04:54:33 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gagandeep Singh X-Patchwork-Id: 8065 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.1.70 with SMTP id c67csp4726008jad; Tue, 20 Mar 2018 22:22:08 -0700 (PDT) X-Google-Smtp-Source: AG47ELsW3RTKz4qhtA6DfwZryRGqbAq4YRepJyRGSZdEWIDZzvQkq1jirZrhvCVYtr7G7T2k6kpa X-Received: by 10.28.43.66 with SMTP id r63mr1642544wmr.93.1521609727963; Tue, 20 Mar 2018 22:22:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521609727; cv=none; d=google.com; s=arc-20160816; b=XXge9PaAcJJhldOGZyxto4H4tGtutszXQXFxpEZ8WqNMoLI6pWBMsIe89pGqhVZ7sO dETzxgreox5I1TcMcLj8PvYxmBxitGIiTUVkGuY7LsjUl0OHRwy3fHjX08qQ6C/oymOs 2+lnqzTntyeTIJYiyVbGkzZqLf/ME1WwSu0bz3/WLuHc0ZV2SgE9d8AKI6we24Q96nMc zJj2AJzJxilU3qblnFDDRrQhFaq8eSFeLAV1MPDlB3U7CJUFw8x43rWDHIBdKJ9wHPsa 09boTT15xBF5Q+oiELYyEf0n9+kiA0gNvQYmvnUsHEQu7XfyALdGGP7aOAEKHk0yN5L0 /F5Q== 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:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=F+eXlyf5omqnuuNuQa3v3OFNpARGUgprHRSkpIbd6TE=; b=qoQ0CFuqf51xblVFXflbDgaLJk4c4H7WMDpGApbajn1DHzJfgoEt+nzvlAeQabe4ZT FHlH2gOyPD3aRAnOZjf4ys3o++6zq5ZS9nndDb0H1fdoxw3dA9CPPQ2weOupENGv9V/N r2DlmEC5QtT1srXfEdPoKTc2aEjS368e1GRaqKiNbxtBNGHvYPb1Qkly9HS4c2KV5N/S 192AYRUFr+EYeP11fM5ZlnDxPCOGymFTVqJLJon6Q9eeQ+71Rf6aPzdnuzeeKfESdsrS R2Jtpq5pI35jNL9NJnsoMg95ZZ3yL3a4B1Sga8zK8wBbZNIA5RiPs0ySOWPgW53vUOpb OSJw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=e2q2UOXp; 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=QUARANTINE 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 h28si2638283wrf.546.2018.03.20.22.22.07; Tue, 20 Mar 2018 22:22:07 -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.s=20161025 header.b=e2q2UOXp; 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=QUARANTINE 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 D1CE668035A; Wed, 21 Mar 2018 07:21:50 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pf0-f194.google.com (mail-pf0-f194.google.com [209.85.192.194]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id DA34868035A for ; Wed, 21 Mar 2018 07:21:43 +0200 (EET) Received: by mail-pf0-f194.google.com with SMTP id j20so1604095pfi.1 for ; Tue, 20 Mar 2018 22:21:58 -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; bh=qfa+eEvSa5wh6mOZXBS1o7t4nDqG5SS2z5JtrKLpMLo=; b=e2q2UOXpQxsbNB8sEINGRKgyNYFQz7RAc4xSLuHoinEmdbj8z2sOPtCXqrZQW1Qxbj 6Vdi7dDP4uqP0StJq70F4151/c4ROaqBgVMsu4H5pRQnAi6zu1vXzF1LBPGxIlaF3pEJ 2mXQAxerRUlekPjFvBfwiAkukACM7NIBJVnZkSZ3OTL1xGPs77PVGCn0cRlTF6akrOQ7 WaiCF+2xnzuGrxe6lVT5ck9fam4SSzTct1Jstjpbuv+rxbzGDQRtK7zaV50u/w15uoof JLin1FiVl8wxx0ZVusb4PODZh5JpkovnpSpQA5GScgs3695hI/8wVYTys0ZzLBnSeMGC 9/sA== 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; bh=qfa+eEvSa5wh6mOZXBS1o7t4nDqG5SS2z5JtrKLpMLo=; b=ZOTCL4Itu32C35+inqQWenoZO1QlB1vuISsXjTUP4CkNuL5fQgOXRfzcI9YZd84ZyJ vnXLTfkMnZftX2Jb+EKJbFmGZYJY4u/+x/66hKhzm1Yop7lJ4MCp7NJfk6xRwtpxfo9Y 0yTFCgrutwFzOL5SXEiGVK4Unop/WVldAL+iPcOW4XC1FgJmEmcMs5uR1OtzJ+YmLYnF lcn76O9ibs0KCNkYHd4E8MvCRaIMH5oJ44lQxx4QDNSIFZrBd/dUfSMIWEkpbXg220eP rRMHSa8lzSqq75a5f4IfV7Vr3askRGC4I+fABHy1BjaCMgzEuRbjyYbD+oBPRc32A1/L LzfA== X-Gm-Message-State: AElRT7HEi1VRtIk2ctnTfLrNibaqYq8ZTPFuH2q4U1WiPM7Q+sqE3nrf LVdO7g768X7I2mzKbl81aMFCpw== X-Received: by 10.99.114.2 with SMTP id n2mr14215346pgc.274.1521608112503; Tue, 20 Mar 2018 21:55:12 -0700 (PDT) Received: from localhost.localdomain ([103.246.106.24]) by smtp.googlemail.com with ESMTPSA id t66sm6278230pgc.0.2018.03.20.21.55.10 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 20 Mar 2018 21:55:12 -0700 (PDT) From: Gagandeep Singh To: ffmpeg-devel@ffmpeg.org Date: Wed, 21 Mar 2018 10:24:33 +0530 Message-Id: <20180321045433.16506-1-deepgagan231197@gmail.com> X-Mailer: git-send-email 2.14.1 Subject: [FFmpeg-devel] [PATCH] lavc/cfhd: alpha decompanding added to rgba12 output 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: Gagandeep Singh MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" decompanding curve or offset were required ticket #6265 --- libavcodec/cfhd.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/libavcodec/cfhd.c b/libavcodec/cfhd.c index a064cd1599..480bf93566 100644 --- a/libavcodec/cfhd.c +++ b/libavcodec/cfhd.c @@ -94,6 +94,22 @@ static inline int dequant_and_decompand(int level, int quantisation) FFSIGN(level) * quantisation; } +static inline void process_alpha(int16_t *alpha, int width) +{ + int alphacompandDCoffset = 256; + int alphacompandGain = 9400; + int i, channel; + for (i = 0; i < width; i++) { + channel = alpha[i]; + channel -= alphacompandDCoffset; + channel <<= 3; + channel *= alphacompandGain; + channel >>= 16; + channel = av_clip_uintp2(channel, 12); + alpha[i] = channel; + } +} + static inline void filter(int16_t *output, ptrdiff_t out_stride, int16_t *low, ptrdiff_t low_stride, int16_t *high, ptrdiff_t high_stride, @@ -792,6 +808,9 @@ static int cfhd_decode(AVCodecContext *avctx, void *data, int *got_frame, high = s->plane[plane].l_h[7]; for (i = 0; i < lowpass_height * 2; i++) { horiz_filter_clip(dst, low, high, lowpass_width, s->bpc); + if (act_plane == 3) { + process_alpha(dst, lowpass_width * 2); + } low += lowpass_width; high += lowpass_width; dst += pic->linesize[act_plane] / 2;