From patchwork Mon Jun 5 20:08:00 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Vittorio Giovara X-Patchwork-Id: 3852 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.10.2 with SMTP id 2csp1524727vsk; Mon, 5 Jun 2017 13:16:03 -0700 (PDT) X-Received: by 10.28.157.74 with SMTP id g71mr7918771wme.74.1496693763754; Mon, 05 Jun 2017 13:16:03 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1496693763; cv=none; d=google.com; s=arc-20160816; b=OGz9PmtudelGaPrE6IT0aR0yw0gu7LyT0lBlOjF9X1s1+jJB9HDQCeQgCWnRJU3mxu TfRKSesfz4z6VpugD/QDsHQuNtGd8wV7Yn39KA3MfB5PpItMDAqNBUrmbvZN25Gkc1Qm KoiA9ad9AxqkhmpswCc+AbyNDghf4dfrqX7xADBVaOFe+NRcqhyBM39DXJ1TssCHo1pT 7iYrwueQmjXH2yw3V0qe+DW9kZOD0ynC1z26VbgfpQpaZHC/Pmzpe2UZPmzTXR5n5x0C 6wsJrjqEkDZ7HfWWpFBDdcTHeR7CzsUq3bXFxyww9iSlSAezzJ3oE9bF9EU3w/vWt1JM VioA== 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:message-id:date:to:from:dkim-signature :delivered-to:arc-authentication-results; bh=WdIpI9YF0N+HlBLPaRzjbUeU4ZNkL9uyeTHt+BERsBo=; b=EV+mykWbFFWgdqH1TqDYJj3q9UNkLwV+8ilCqu3EqvY4i6Iss/Q4LaKlE9tPCb+bdq Jdb++3u1s+hcrbrAvCv684+MIRhiow0bStTPj0ETS2Q2PrYyhUd4L5/3qVrTFL0BDUUr YE6UAgAFEmtOui2vKOCLJQKLZS7Ug+eeGwiwqHFsYRZwTmWR4ZyTC7WCWfZN8qeZQo71 gh6KpnWkMDphXGWl6MrddrZz+/ATMqT4PgWlDOqCKzZClP8jjMqDiaQS9UFGMqXfL7uU vgIgWD7vLpiDgg8U1UJN8u8cf7251djesv+YJmomIXiHVc5a+sk7XkI2QgWegIIlRZbr gamQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.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; 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 b82si13072964wmc.155.2017.06.05.13.16.03; Mon, 05 Jun 2017 13:16:03 -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; 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 7FDC9689DCB; Mon, 5 Jun 2017 23:15:53 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-qt0-f196.google.com (mail-qt0-f196.google.com [209.85.216.196]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id E7280689DCB for ; Mon, 5 Jun 2017 23:15:46 +0300 (EEST) Received: by mail-qt0-f196.google.com with SMTP id s33so11339818qtg.3 for ; Mon, 05 Jun 2017 13:15: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; bh=FbeMLK09fqAazE7PaIHfZtBcNBAlpsF1hhiu3M/BgGM=; b=mRp8rbhJQn/p+KZQWLhCXifGRNUpbrB8+/2REl+nYGUOxgMhRrEUF18gn2JF65Gfh9 wvQR4mw2rrDlJciMbE5K5bmVSZlRfQMTGMQ9lJUKQpW2RMMMip7lQFCkd68g2BuOdwtD RHnnjDuc82cz6V9bR+CqwTk5BBBz+ZaTvWraH2wgBE8I95n1ZbjdaIQHfEx3Qti+wC8n 6pUq2BNft9DK7O4LBM0XaObZY+q5cOMC3+SopFEiZWQ3RHq1DqQTRu6VUsY1CiAYLUjJ 3q0nc5wDbPT9vR7NJhU5kHleWKmPmm6e84HsbwGm2buZpSJkulJUOzJGJ8PHHW5WrkCL 7sbg== 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; bh=FbeMLK09fqAazE7PaIHfZtBcNBAlpsF1hhiu3M/BgGM=; b=KQsw5GfjZcBiWayaOglI2EYJ1UFD7tRjn5tVTDvIQhud70nwKwoXFzJBqO4EEcZohf N9o64fJ2fRjKVWYLRXMmjxyeo7ILB9kl6Bk9nf7umQ+WDRtXbxuBnPhOqR0JMdS4MaTu KPV5qsUS83oWkVSRp/EfT1kiyBtGq1BHPUGaU+7cObICkoCsP5n3uqBpO7pSYd3yPUgD x38pgHIkRxQatusngogSp6xfet+QKm5TSEWWVnVhNKwikxFRSafo+pgNfSIrcHNYVS4K YdKryiKp08fVVaQmdfYValorCWp4/sKAKUQ7O8v+A2y9jC89hpK+Alj3fqslmnMRW8Du Ge2Q== X-Gm-Message-State: AODbwcDXLlAzZKTiPM8BKXQVK/nJnv1zgmK3gTdY8m3GUWacSQBcH1RE ayNbFooXNAcU2X+0 X-Received: by 10.200.2.168 with SMTP id p40mr10701536qtg.34.1496693282817; Mon, 05 Jun 2017 13:08:02 -0700 (PDT) Received: from vimacbookpro.vimeows.com ([8.40.92.161]) by smtp.gmail.com with ESMTPSA id a15sm21678625qkb.24.2017.06.05.13.08.01 for (version=TLS1 cipher=AES128-SHA bits=128/128); Mon, 05 Jun 2017 13:08:01 -0700 (PDT) From: Vittorio Giovara To: ffmpeg-devel@ffmpeg.org Date: Mon, 5 Jun 2017 16:08:00 -0400 Message-Id: <20170605200800.81435-1-vittorio.giovara@gmail.com> X-Mailer: git-send-email 2.12.0 Subject: [FFmpeg-devel] [PATCH] vf_colorspace: Add support for gbr color space 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" Signed-off-by: Vittorio Giovara --- libavfilter/vf_colorspace.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/libavfilter/vf_colorspace.c b/libavfilter/vf_colorspace.c index 0024505a44..0b1bc81f99 100644 --- a/libavfilter/vf_colorspace.c +++ b/libavfilter/vf_colorspace.c @@ -183,6 +183,13 @@ static const double ycgco_matrix[3][3] = { 0.5, 0, -0.5 }, }; +static const double gbr_matrix[3][3] = +{ + { 0, 1, 0 }, + { 0, -0.5, 0.5 }, + { 0.5, -0.5, 0 }, +}; + /* * All constants explained in e.g. https://linuxtv.org/downloads/v4l-dvb-apis/ch02s06.html * The older ones (bt470bg/m) are also explained in their respective ITU docs @@ -196,6 +203,7 @@ static const struct LumaCoefficients luma_coefficients[AVCOL_SPC_NB] = { [AVCOL_SPC_BT709] = { 0.2126, 0.7152, 0.0722 }, [AVCOL_SPC_SMPTE240M] = { 0.212, 0.701, 0.087 }, [AVCOL_SPC_YCOCG] = { 0.25, 0.5, 0.25 }, + [AVCOL_SPC_RGB] = { 1, 1, 1 }, [AVCOL_SPC_BT2020_NCL] = { 0.2627, 0.6780, 0.0593 }, [AVCOL_SPC_BT2020_CL] = { 0.2627, 0.6780, 0.0593 }, }; @@ -222,6 +230,9 @@ static void fill_rgb2yuv_table(const struct LumaCoefficients *coeffs, if (coeffs->cr == 0.25 && coeffs->cg == 0.5 && coeffs->cb == 0.25) { memcpy(rgb2yuv, ycgco_matrix, sizeof(double) * 9); return; + } else if (coeffs->cr == 1 && coeffs->cg == 1 && coeffs->cb == 1) { + memcpy(rgb2yuv, gbr_matrix, sizeof(double) * 9); + return; } rgb2yuv[0][0] = coeffs->cr; @@ -1074,6 +1085,7 @@ static const AVOption colorspace_options[] = { ENUM("smpte170m", AVCOL_SPC_SMPTE170M, "csp"), ENUM("smpte240m", AVCOL_SPC_SMPTE240M, "csp"), ENUM("ycgco", AVCOL_SPC_YCGCO, "csp"), + ENUM("gbr", AVCOL_SPC_RGB, "csp"), ENUM("bt2020ncl", AVCOL_SPC_BT2020_NCL, "csp"), { "range", "Output color range",