From patchwork Tue Jul 18 13:50:12 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vittorio Giovara X-Patchwork-Id: 4352 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.1.76 with SMTP id 73csp1602308vsb; Tue, 18 Jul 2017 06:56:07 -0700 (PDT) X-Received: by 10.223.147.132 with SMTP id 4mr1183075wrp.107.1500386167602; Tue, 18 Jul 2017 06:56:07 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1500386167; cv=none; d=google.com; s=arc-20160816; b=SPiYccUL3/MbJ0hheD9rHh3QKswTp4OQJDRgggYLDr4CNNujkG2Mwpj4LUQJ3iSDjT 1B+RUxuZw+bX9f5e/32G2OHyl3DiV279kYyH9XBMLSizWDnN3DYTgDWWqwYQqITOxV7C O74xN5YfUYcanPlLzmFrUomjruVUC450keR3wRiNdef93BFZSVDzzZ7Gykf3ZO46kYzV DaIae8/WRd1uhPbbnNanBPsiK5VMyJMpMrkwddtGPeIRb6L2m10gTW6M3qtbkMi1zRU4 KDwdgiX2vmOpMMXrJVnKTujNbFPjzYwg4dsk9Co8beRSos72HPSpNjzM/nr5oncW640z PcOQ== 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: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=6Kgg41r2Vh/42lhJoMi/HFX7RtKYIDbrRGNyX98wYKc=; b=x16jYp7peOa3nm7kZNhbZiDu+prdAS9Uz36hpPpSOkZ1uzwqZWKUq3OGOVRuWi5588 S2Kh5mZVhmQx5wJyq9c+zneIYtyf35arcsvlCq7dDlnJisZxWNx2mnU2eHMVju+YxvRN QBQ12wJbCz66aSZG0Lv+dHCEdxC98NvWSmMtTAj/UEFWgm9WI3l0EUetFdYpizom5rWS r879pcptoLCqxtj1mlGeKemFyxvQpXxjG4wuw2kiYjeXpis395+6YUP98DW1GKyNaJDN owEY3qJI3S5yG1oPArnclJI7ygLcnD47msdPTCxuYy7JmogiqeEt/3I/eMZ0NP00ZjLy impg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.b=b1fN0AA3; 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 98si1691833wrb.362.2017.07.18.06.56.06; Tue, 18 Jul 2017 06:56: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.b=b1fN0AA3; 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 D4B086805E9; Tue, 18 Jul 2017 16:55:52 +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 6AB646883E9 for ; Tue, 18 Jul 2017 16:55:46 +0300 (EEST) Received: by mail-qk0-f195.google.com with SMTP id u126so1533851qka.0 for ; Tue, 18 Jul 2017 06:55:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:in-reply-to:references; bh=uffLzWN4fmf7E0zOiEAzTcOSvDZARttrFu/biuWXjFc=; b=b1fN0AA3qq4FJoCTOc4SnR7li13ONAdDZXtb8eMP9eIJXERR5XrJmIMIJW2GyDm7QN yDK0zB/DMbQy1QrhjW7G+Bj77NGsY+8O8dpR1sSOZw72Lrl+kzN08D5SG9XxhrusI7oL j4wQRAjbCVtLaMRk8DI+XOO5FniC9Tya+HlamQOoI+eXM4EO1Cwhkczn33tbJiVhhkMF luaDjOX56OFFoCPOlw24P9MyC5hLeyJlILZcz603TXDBU0I3+xtPja2QVWJI422prjiw 3I4GGofi12j1WxP2BGcdfN7ct3CrWyoMt0D2NQdB9V8d5iI0GpSPloFnm/XJNrkEAOei T4bA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references; bh=uffLzWN4fmf7E0zOiEAzTcOSvDZARttrFu/biuWXjFc=; b=Jykap3jok2I82akRZVsVraqg+4VaozVbibpzn1r2cvgD1CTFPkFYKDf9ONLUdg0C1K mZGysZURz/a5zymqV/Ij1xn+ObIPM18Rd9cfALn0WM5S5yZxdGIzm3ngZiAFPCt5y03E bb+g7FABhYfjlze/5qiy/L+KQBSB4qTLUGWjQwT9y+nGXB81R205gHVpy4Z/ZL/TPjWY rEb59EWPOHKrBkDHAf9Tqmm/WNJWNDEMvthk1cDPFu2rmss8Mw2y868xbkphoWALcjMk JF0JC+Z5sUyuvMNNU4ntE+Y8Iewmrk7aCR+GEgysRLz7Na4+aMthF+FdupS2pka50Ppo IvDA== X-Gm-Message-State: AIVw113vUZxZwZ7bj7TvzIT8Q2k2AL/v160aw6BscTb1VhaI26+xMNRb SfXW2rejebFK9/jD X-Received: by 10.55.27.83 with SMTP id b80mr2038497qkb.148.1500385824009; Tue, 18 Jul 2017 06:50:24 -0700 (PDT) Received: from vimacbookpro.vimeo.iac.corp (93-40-167-184.ip39.fastwebnet.it. [93.40.167.184]) by smtp.gmail.com with ESMTPSA id j39sm1767590qtj.19.2017.07.18.06.50.22 for (version=TLS1 cipher=AES128-SHA bits=128/128); Tue, 18 Jul 2017 06:50:23 -0700 (PDT) From: Vittorio Giovara To: ffmpeg-devel@ffmpeg.org Date: Tue, 18 Jul 2017 15:50:12 +0200 Message-Id: <20170718135015.52683-2-vittorio.giovara@gmail.com> X-Mailer: git-send-email 2.13.2 In-Reply-To: <20170718135015.52683-1-vittorio.giovara@gmail.com> References: <20170718135015.52683-1-vittorio.giovara@gmail.com> Subject: [FFmpeg-devel] [PATCH 2/5] zscale: Factor out format initialization 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 MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" --- libavfilter/vf_zscale.c | 46 +++++++++++++++++++++------------------------- 1 file changed, 21 insertions(+), 25 deletions(-) diff --git a/libavfilter/vf_zscale.c b/libavfilter/vf_zscale.c index d7b1612f3c..a128db6267 100644 --- a/libavfilter/vf_zscale.c +++ b/libavfilter/vf_zscale.c @@ -421,6 +421,23 @@ static int convert_range(enum AVColorRange color_range) return ZIMG_RANGE_LIMITED; } +static void format_init(zimg_image_format *format, AVFrame *frame, const AVPixFmtDescriptor *desc, + int colorspace, int primaries, int transfer, int range, int location) +{ + format->width = frame->width; + format->height = frame->height; + format->subsample_w = desc->log2_chroma_w; + format->subsample_h = desc->log2_chroma_h; + format->depth = desc->comp[0].depth; + format->pixel_type = desc->comp[0].depth > 8 ? ZIMG_PIXEL_WORD : ZIMG_PIXEL_BYTE; + format->color_family = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_COLOR_RGB : ZIMG_COLOR_YUV; + format->matrix_coefficients = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_MATRIX_RGB : colorspace == -1 ? convert_matrix(frame->colorspace) : colorspace; + format->color_primaries = primaries == -1 ? convert_primaries(frame->color_primaries) : primaries; + format->transfer_characteristics = transfer == - 1 ? convert_trc(frame->color_trc) : transfer; + format->pixel_range = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_RANGE_FULL : range == -1 ? convert_range(frame->color_range) : range; + format->chroma_location = location == -1 ? convert_chroma_location(frame->chroma_location) : location; +} + static int filter_frame(AVFilterLink *link, AVFrame *in) { ZScaleContext *s = link->dst->priv; @@ -483,31 +500,10 @@ static int filter_frame(AVFilterLink *link, AVFrame *in) s->params.nominal_peak_luminance = s->nominal_peak_luminance; s->params.allow_approximate_gamma = s->approximate_gamma; - s->src_format.width = in->width; - s->src_format.height = in->height; - s->src_format.subsample_w = desc->log2_chroma_w; - s->src_format.subsample_h = desc->log2_chroma_h; - s->src_format.depth = desc->comp[0].depth; - s->src_format.pixel_type = desc->comp[0].depth > 8 ? ZIMG_PIXEL_WORD : ZIMG_PIXEL_BYTE; - s->src_format.color_family = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_COLOR_RGB : ZIMG_COLOR_YUV; - s->src_format.matrix_coefficients = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_MATRIX_RGB : s->colorspace_in == -1 ? convert_matrix(in->colorspace) : s->colorspace_in; - s->src_format.transfer_characteristics = s->trc_in == - 1 ? convert_trc(in->color_trc) : s->trc_in; - s->src_format.color_primaries = s->primaries_in == -1 ? convert_primaries(in->color_primaries) : s->primaries_in; - s->src_format.pixel_range = (desc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_RANGE_FULL : s->range_in == -1 ? convert_range(in->color_range) : s->range_in; - s->src_format.chroma_location = s->chromal_in == -1 ? convert_chroma_location(in->chroma_location) : s->chromal_in; - - s->dst_format.width = out->width; - s->dst_format.height = out->height; - s->dst_format.subsample_w = odesc->log2_chroma_w; - s->dst_format.subsample_h = odesc->log2_chroma_h; - s->dst_format.depth = odesc->comp[0].depth; - s->dst_format.pixel_type = odesc->comp[0].depth > 8 ? ZIMG_PIXEL_WORD : ZIMG_PIXEL_BYTE; - s->dst_format.color_family = (odesc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_COLOR_RGB : ZIMG_COLOR_YUV; - s->dst_format.matrix_coefficients = (odesc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_MATRIX_RGB : s->colorspace == -1 ? convert_matrix(out->colorspace) : s->colorspace; - s->dst_format.transfer_characteristics = s->trc == -1 ? convert_trc(out->color_trc) : s->trc; - s->dst_format.color_primaries = s->primaries == -1 ? convert_primaries(out->color_primaries) : s->primaries; - s->dst_format.pixel_range = (odesc->flags & AV_PIX_FMT_FLAG_RGB) ? ZIMG_RANGE_FULL : s->range == -1 ? convert_range(out->color_range) : s->range; - s->dst_format.chroma_location = s->chromal == -1 ? convert_chroma_location(out->chroma_location) : s->chromal; + format_init(&s->src_format, in, desc, s->colorspace_in, + s->primaries_in, s->trc_in, s->range_in, s->chromal_in); + format_init(&s->dst_format, out, odesc, s->colorspace, + s->primaries, s->trc, s->range, s->chromal); if (s->colorspace != -1) out->colorspace = (int)s->dst_format.matrix_coefficients;