From patchwork Thu Apr 19 21:25:54 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Marton Balint X-Patchwork-Id: 8513 Delivered-To: ffmpegpatchwork@gmail.com Received: by 2002:a02:155:0:0:0:0:0 with SMTP id c82-v6csp1137149jad; Thu, 19 Apr 2018 14:26:16 -0700 (PDT) X-Google-Smtp-Source: AIpwx4+QmdaEloIi0dvunVzW3bAsxrbgZsx/Ew9EB5+8Qa7vuQXMsfqVU3FTt4bcoF7uHshgV3O+ X-Received: by 2002:adf:d207:: with SMTP id g7-v6mr5733554wri.59.1524173176089; Thu, 19 Apr 2018 14:26:16 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1524173176; cv=none; d=google.com; s=arc-20160816; b=Ld9O+09DzAC7ISqkY2c45k5PrAhJxTSDDJQQpbB9bRcjhYd2JiwRaLuz7W9z6QHv6h ZveO5S7bYiqyDspSJRjb8hmemcNNMIJEqyeOAQWfPQIRBy77AXMjmrACesW4wRXogBm3 5LobL8D6yDEUadTLCBL2BZUWpciOuFKGsTFc28crMU2JP4DyU1hi/AmWMawPciDpmgRD WqfhXxKH+V3hTLxGGpGHTOlJQ0OFomXuBTprDwEg/6+EcPVhsZb9yq/3dkkfGcM1W6ay Avit5/U8Z9ql1yfLiyIGhN1OhVG3VyptNUtmikpUsMe/hNhojside9NWWCEnDsCNizu/ WWmA== 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:delivered-to:arc-authentication-results; bh=Z9luj9rwjQxBDJP0Rz6q4eDeAXut4ID9l4Rvu6pZUpQ=; b=syNvmJmH95GbcxtnaAUPLWKKJnyxr1Di2xsPwA+cMHm39V67rEmV9vroGbfRgIGZzA eQmjwNR/RMcxuHLedFtoIYxt8R95ipfcpPzP9KPI4Em/a3fezNIYi54bl0L0BMSegPEQ qEBnVSXzf4CfnjmW9UVGrTkavYR+oBU2vF20XbDaC3FFmmMA/6Sa+reK0VzGNRXbGa2Q f09QXtUbBK9CbSgvLaMO4J8+wdxl+TrS6sFJDlg7kQQzvQiIcj3DLzi3k1nUIgL2wMHt fqT2wKg8RO2UVK0cP+OgOM2yWLz1VFbBHRn69ihmfTDOyzUNHfMxyA/duZ2IMQCDY2OI ONIQ== ARC-Authentication-Results: i=1; mx.google.com; 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 l8si29532wmf.231.2018.04.19.14.26.15; Thu, 19 Apr 2018 14:26:16 -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; 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 0B48E689F17; Fri, 20 Apr 2018 00:25:47 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from iq.passwd.hu (iq.passwd.hu [217.27.212.140]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 9FA7368046B for ; Fri, 20 Apr 2018 00:25:40 +0300 (EEST) Received: from localhost (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 6D32BE113D; Thu, 19 Apr 2018 23:26:08 +0200 (CEST) X-Virus-Scanned: amavisd-new at passwd.hu Received: from iq.passwd.hu ([127.0.0.1]) by localhost (iq.passwd.hu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Lr9oGTaoUqq4; Thu, 19 Apr 2018 23:26:07 +0200 (CEST) Received: from bluegene.passwd.hu (localhost [127.0.0.1]) by iq.passwd.hu (Postfix) with ESMTP id 56DE9E0FC8; Thu, 19 Apr 2018 23:26:07 +0200 (CEST) From: Marton Balint To: ffmpeg-devel@ffmpeg.org Date: Thu, 19 Apr 2018 23:25:54 +0200 Message-Id: <20180419212554.8289-1-cus@passwd.hu> X-Mailer: git-send-email 2.13.6 In-Reply-To: <20180419193221.21712-4-cus@passwd.hu> References: <20180419193221.21712-4-cus@passwd.hu> Subject: [FFmpeg-devel] [PATCHv2 4/4] Use AV_PIX_FMT_FLAG_ALPHA for detecting transparency where nb_components was used 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: Marton Balint MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Signed-off-by: Marton Balint --- fftools/ffmpeg_filter.c | 2 +- libavcodec/ffv1enc.c | 4 ++-- libavfilter/avfiltergraph.c | 2 +- libavutil/pixdesc.c | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/fftools/ffmpeg_filter.c b/fftools/ffmpeg_filter.c index 877fd670e6..fff2e55027 100644 --- a/fftools/ffmpeg_filter.c +++ b/fftools/ffmpeg_filter.c @@ -65,7 +65,7 @@ enum AVPixelFormat choose_pixel_fmt(AVStream *st, AVCodecContext *enc_ctx, AVCod if (codec && codec->pix_fmts) { const enum AVPixelFormat *p = codec->pix_fmts; const AVPixFmtDescriptor *desc = av_pix_fmt_desc_get(target); - int has_alpha = desc ? desc->nb_components % 2 == 0 : 0; + int has_alpha = desc ? !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA) : 0; enum AVPixelFormat best= AV_PIX_FMT_NONE; if (enc_ctx->strict_std_compliance <= FF_COMPLIANCE_UNOFFICIAL) { diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c index dd4d7429f5..b7b4edb858 100644 --- a/libavcodec/ffv1enc.c +++ b/libavcodec/ffv1enc.c @@ -620,7 +620,7 @@ FF_ENABLE_DEPRECATION_WARNINGS case AV_PIX_FMT_YUVA420P: s->chroma_planes = desc->nb_components < 3 ? 0 : 1; s->colorspace = 0; - s->transparency = desc->nb_components == 4 || desc->nb_components == 2; + s->transparency = !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA); if (!avctx->bits_per_raw_sample && !s->bits_per_raw_sample) s->bits_per_raw_sample = 8; else if (!s->bits_per_raw_sample) @@ -672,7 +672,7 @@ FF_ENABLE_DEPRECATION_WARNINGS s->bits_per_raw_sample = 16; else if (!s->bits_per_raw_sample) s->bits_per_raw_sample = avctx->bits_per_raw_sample; - s->transparency = desc->nb_components == 4 || desc->nb_components == 2; + s->transparency = !!(desc->flags & AV_PIX_FMT_FLAG_ALPHA); s->colorspace = 1; s->chroma_planes = 1; if (s->bits_per_raw_sample >= 16) { diff --git a/libavfilter/avfiltergraph.c b/libavfilter/avfiltergraph.c index e18f733e23..a37d4ddf53 100644 --- a/libavfilter/avfiltergraph.c +++ b/libavfilter/avfiltergraph.c @@ -679,7 +679,7 @@ static int pick_format(AVFilterLink *link, AVFilterLink *ref) if (link->type == AVMEDIA_TYPE_VIDEO) { if(ref && ref->type == AVMEDIA_TYPE_VIDEO){ - int has_alpha= av_pix_fmt_desc_get(ref->format)->nb_components % 2 == 0 || (av_pix_fmt_desc_get(ref->format)->flags & AV_PIX_FMT_FLAG_PAL); + int has_alpha = !!(av_pix_fmt_desc_get(ref->format)->flags & AV_PIX_FMT_FLAG_ALPHA); enum AVPixelFormat best= AV_PIX_FMT_NONE; int i; for (i=0; iin_formats->nb_formats; i++) { diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index a8be7b66e6..df03b3372d 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -2482,7 +2482,7 @@ enum AVPixelFormat av_pix_fmt_swap_endianness(enum AVPixelFormat pix_fmt) #define FF_COLOR_XYZ 4 #define pixdesc_has_alpha(pixdesc) \ - ((pixdesc)->nb_components == 2 || (pixdesc)->nb_components == 4 || (pixdesc)->flags & AV_PIX_FMT_FLAG_PAL) + ((pixdesc)->flags & AV_PIX_FMT_FLAG_ALPHA) static int get_color_type(const AVPixFmtDescriptor *desc) {