From patchwork Sun Nov 20 22:35:51 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philip Langdale X-Patchwork-Id: 1503 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp1278354vsb; Sun, 20 Nov 2016 14:36:15 -0800 (PST) X-Received: by 10.28.129.81 with SMTP id c78mr11698947wmd.94.1479681374957; Sun, 20 Nov 2016 14:36:14 -0800 (PST) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j127si10812531wmg.82.2016.11.20.14.36.14; Sun, 20 Nov 2016 14:36:14 -0800 (PST) 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=@overt.org; dkim=neutral (body hash did not verify) header.i=@overt.org; 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 3051868A04D; Mon, 21 Nov 2016 00:36:04 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from so254-29.mailgun.net (so254-29.mailgun.net [198.61.254.29]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id BF434689D09 for ; Mon, 21 Nov 2016 00:35:56 +0200 (EET) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=overt.org; q=dns/txt; s=k1; t=1479681358; h=References: In-Reply-To: Message-Id: Date: Subject: Cc: To: From: Sender; bh=ZvpJKxuMUjroxsYdkGGvQOWEwqc3fORawqeKRjk3vJs=; b=OVXLQ+dOmRd1oPftXVe8A+Agh4pz7S10oa1djwIpN23AulVOdFZSi48fJWIv5XkoNEm41o5Y rBxnsWM0Ad9wnbeugM2Ki8xMAiHEk/dPC8w7ydWUh6/cKRtEKINqdUyF019vvga4VPpbSYQM 0WHSacJzQBjIPHteBRUYOEh4iOI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=overt.org; s=k1; q=dns; h=Sender: From: To: Cc: Subject: Date: Message-Id: In-Reply-To: References; b=y2ynBxStnJIjAG1RBmkzys20ssWtseJ0vz8kgXmoqtIrRWB0Fa/qihzH1HKR3YDYvR6WHu rJD4EJlgh3z4/V7jftBTMRgIW3G0YMTrw8EW4RO4Y/Z8IBOmLPXwl+WDJ5ydDwmAP44ZaNYd jCIiXsGDsBiubQ4BDa0Rnsf4y3soM= X-Mailgun-Sending-Ip: 198.61.254.29 X-Mailgun-Sid: WyIyM2Q3MCIsICJmZm1wZWctZGV2ZWxAZmZtcGVnLm9yZyIsICI0YTg5NjEiXQ== Received: from mail.overt.org (155.208.178.107.bc.googleusercontent.com [107.178.208.155]) by mxa.mailgun.org with ESMTP id 5832254d.7fbb48367490-smtp-out-n01; Sun, 20 Nov 2016 22:35:57 -0000 (UTC) Received: from authenticated-user (mail.overt.org [107.178.208.155]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by mail.overt.org (Postfix) with ESMTPSA id 405F268193; Sun, 20 Nov 2016 22:35:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=overt.org; s=mail; t=1479681357; bh=6/n4z16kq2oIDhPq1rmsRY0elT6Q6+v0af5FQFqiQLE=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=dH5tBTL0VP+jZDAlMV8h+u+prTv4jQFER+nAH7yj9U95ATMaDrqvUrTJ4aH4Mn4EK NTQ2W3zNbUrJ+s2EQWPIJH//tAFdeD2D7DazwNAgemJX02e4wrHn6k183+NXFk29Vv eVnAcrXxxqeNl51gq10KfTZYriv8gLwsHvN420UfebtNhReNLDVpw4ORVTJnQpB0hw WebRWik1u2q5dskBoGcTsCQNUZBrCmZTkzH1K6w68vzLrmPDQKGqo8AMSUHFrehRbF 3bvPUrWaQ3do1ky/SKI+/gkLkCHBel/OZBjt185VapW8b1ZHIW0wWsEuMheg3m55Vu Z9/rPXMXFzRVA== From: Philip Langdale To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Nov 2016 14:35:51 -0800 Message-Id: <20161120223552.16375-2-philipl@overt.org> In-Reply-To: <20161120223552.16375-1-philipl@overt.org> References: <20161120223552.16375-1-philipl@overt.org> Subject: [FFmpeg-devel] [PATCH 1/2] avutil: add P016 pixel format 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: Philip Langdale MIME-Version: 1.0 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" P016 is the 16-bit variant of NV12 (planar luma, packed chroma), using two bytes per component. It may, and in fact is most likely to, be used in situations where there are less than 16 bits of data. It is the responsibility of the writer to zero out any unused LSBs. Signed-off-by: Philip Langdale --- libavutil/pixdesc.c | 24 ++++++++++++++++++++++++ libavutil/pixfmt.h | 4 ++++ 2 files changed, 28 insertions(+) diff --git a/libavutil/pixdesc.c b/libavutil/pixdesc.c index f8092ef..3b9c45d 100644 --- a/libavutil/pixdesc.c +++ b/libavutil/pixdesc.c @@ -2078,6 +2078,30 @@ static const AVPixFmtDescriptor av_pix_fmt_descriptors[AV_PIX_FMT_NB] = { }, .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE, }, + [AV_PIX_FMT_P016LE] = { + .name = "p016le", + .nb_components = 3, + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .comp = { + { 0, 2, 0, 0, 16, 1, 15, 1 }, /* Y */ + { 1, 4, 0, 0, 16, 3, 15, 1 }, /* U */ + { 1, 4, 2, 0, 16, 3, 15, 3 }, /* V */ + }, + .flags = AV_PIX_FMT_FLAG_PLANAR, + }, + [AV_PIX_FMT_P016BE] = { + .name = "p016be", + .nb_components = 3, + .log2_chroma_w = 1, + .log2_chroma_h = 1, + .comp = { + { 0, 2, 0, 0, 16, 1, 15, 1 }, /* Y */ + { 1, 4, 0, 0, 16, 3, 15, 1 }, /* U */ + { 1, 4, 2, 0, 16, 3, 15, 3 }, /* V */ + }, + .flags = AV_PIX_FMT_FLAG_PLANAR | AV_PIX_FMT_FLAG_BE, + }, [AV_PIX_FMT_GBRAP12LE] = { .name = "gbrap12le", .nb_components = 4, diff --git a/libavutil/pixfmt.h b/libavutil/pixfmt.h index 96860ce..dfb1b11 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -311,6 +311,9 @@ enum AVPixelFormat { AV_PIX_FMT_GRAY10BE, ///< Y , 10bpp, big-endian AV_PIX_FMT_GRAY10LE, ///< Y , 10bpp, little-endian + AV_PIX_FMT_P016LE, ///< like NV12, with 16bpp per component, little-endian + AV_PIX_FMT_P016BE, ///< like NV12, with 16bpp per component, big-endian + AV_PIX_FMT_NB ///< number of pixel formats, DO NOT USE THIS if you want to link with shared libav* because the number of formats might differ between versions }; @@ -389,6 +392,7 @@ enum AVPixelFormat { #define AV_PIX_FMT_NV20 AV_PIX_FMT_NE(NV20BE, NV20LE) #define AV_PIX_FMT_AYUV64 AV_PIX_FMT_NE(AYUV64BE, AYUV64LE) #define AV_PIX_FMT_P010 AV_PIX_FMT_NE(P010BE, P010LE) +#define AV_PIX_FMT_P016 AV_PIX_FMT_NE(P016BE, P016LE) /** * Chromaticity coordinates of the source primaries.