From patchwork Sun Nov 20 21:59:34 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Philip Langdale X-Patchwork-Id: 1501 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.90.1 with SMTP id o1csp1265908vsb; Sun, 20 Nov 2016 13:59:53 -0800 (PST) X-Received: by 10.194.96.110 with SMTP id dr14mr6911675wjb.209.1479679193914; Sun, 20 Nov 2016 13:59:53 -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 e133si10682184wmf.127.2016.11.20.13.59.52; Sun, 20 Nov 2016 13:59:53 -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 CEE82689FC7; Sun, 20 Nov 2016 23:59:47 +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 01F0B689E2D for ; Sun, 20 Nov 2016 23:59:40 +0200 (EET) DKIM-Signature: a=rsa-sha256; v=1; c=relaxed/relaxed; d=overt.org; q=dns/txt; s=k1; t=1479679181; h=Message-Id: Date: Subject: Cc: To: From: Sender; bh=mcxBumBu4hbW4Fy18pE7POpyQarqFG8IIGKcOSrNXio=; b=recDQvvCSXpqu0dOonk6NdmiUglIVywR8OPUwVADBoYc7X7OmG9RPIKatOx9GRt2Z9hQwzq4 bomR0fx6yuPAWqY1VvMXLijJAbXenIhnFys1VgrUvSVILBLvaITImAIOJKXazCmN8vFmCWPn RdVUDmmK7JGMgbA0D5mjMnQA704= DomainKey-Signature: a=rsa-sha1; c=nofws; d=overt.org; s=k1; q=dns; h=Sender: From: To: Cc: Subject: Date: Message-Id; b=QPFy6y+/3NyYMLiw3hoOGRyaWme6IqNuoKVoaLUMshOzFQMTQ3KYN7zdwt1/HFKQ8T5NmA LMeApj/57Lv47CWMW/wPn1oL62gSrVqiEjk+X50aDMOYzj/6iwQ51ouRNEqMfOFpcYpAtt6A rWnKafwtBE8HqwX5irsF9pWHcPTrk= 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 58321ccd.7f06046c7ca8-smtp-out-n02; Sun, 20 Nov 2016 21:59:41 -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 9F72760008; Sun, 20 Nov 2016 21:59:39 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=overt.org; s=mail; t=1479679179; bh=Vq4cGqxPPU/DiggRoupbBtyZPQ/grfhg8Im4b3mootg=; h=From:To:Cc:Subject:Date:From; b=q6OTPI7mxCQOAY+3dXjTnqLnUQDVS0NJZBoGLBqHJMQq+qBSeAOaobxRyT9JjmsMv xN9EtcMYZI4FGWHH3wn5TVFSTAp3MY8M16FWwJb2Fpu03el0zSHoct3Zc7sSMb4MEv k87pNJhU0BPbV0y4QreKGE6LLLhYuxXFlimWgDwj+70bgsPBgNxp+qVvaINdorY5A1 4av9zaTUmfDSSaviPLR3hwaNsCbj5zknvmBCwSYHW+j32dWYnfvhzWZ8t0OE5WkmLE Fedv89YtkqHSWfkf7NO/pJ0jwaTq/22ol4YtU9lTIvPoiwqoQkWSsh0fGlkq7A5gLK /R9L4I0hvXXpA== From: Philip Langdale To: ffmpeg-devel@ffmpeg.org Date: Sun, 20 Nov 2016 13:59:34 -0800 Message-Id: <20161120215934.12774-1-philipl@overt.org> Subject: [FFmpeg-devel] [PATCH] 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 | 3 +++ 2 files changed, 27 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..4cd3a77 100644 --- a/libavutil/pixfmt.h +++ b/libavutil/pixfmt.h @@ -297,6 +297,8 @@ enum AVPixelFormat { AV_PIX_FMT_P010LE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, little-endian AV_PIX_FMT_P010BE, ///< like NV12, with 10bpp per component, data in the high bits, zeros in the low bits, big-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_GBRAP12BE, ///< planar GBR 4:4:4:4 48bpp, big-endian AV_PIX_FMT_GBRAP12LE, ///< planar GBR 4:4:4:4 48bpp, little-endian @@ -389,6 +391,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.