From patchwork Mon Nov 22 20:53:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: rcombs X-Patchwork-Id: 31528 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a6b:d206:0:0:0:0:0 with SMTP id q6csp7582843iob; Mon, 22 Nov 2021 12:54:20 -0800 (PST) X-Google-Smtp-Source: ABdhPJylQ1ZPNuL+fhjUjwwKzi6BNg2vmDb2RdNkj+Zwo9QhNMZ4PeicfLaCo5yT4L6S/VOssATf X-Received: by 2002:a17:906:f0d4:: with SMTP id dk20mr70495ejb.257.1637614460541; Mon, 22 Nov 2021 12:54:20 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1637614460; cv=none; d=google.com; s=arc-20160816; b=nA91ZTCe0O8EPIS9RxskdUYXNW05QgWTwErsdUp7K/p34JLaZpEDwEp0HmRrQjbz5J BfF6S8ag/ypzp1yjtyp3nJ0R5lb5RRqeRmPzc3WB3aOrU5YLVpIkkUrky7OXc02gxoMg lSyue5uQoYK8bk0l7dWERIzPX8aShqlHqyuRWHAV7fVDfUsus0dLuqjgffaxlWqpEM9i eYjX0WQZ2EnWlalTji77Ni4Nus+pH3E9XJBkypV2xH/q+IIK777IjkwmWtZA/nVHrJnm PjVfAtUV8IzwwVVoV0wq0SCR2GjewwGpGYi+0L9oD9bIEo+CZRll9cKwGoNv+3u1ciDO HJ5w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:reply-to:list-subscribe :list-help:list-post:list-archive:list-unsubscribe:list-id :precedence:subject:mime-version:references:in-reply-to:message-id :date:to:from:dkim-signature:delivered-to; bh=srTRvVH+hebzDZTHFSVMmTStOO76PkGg5px9ANmvyRI=; b=qTcdR6glx7h7PawJ6S7x2Uwi6sa8sE70YlI9HPhVyrSM6Wtgzlh+h870v/g0kKg6iW Y9LfrbzmYK6vGc6cOGM/Q0rMK80FQItUGhfIqqXK2ABDtsDKl+aghJ0byg05dlZnLxTB P69Feqt/CUiADZRrnj3reexg/yJ69pDb7CGR5FxUdMZf90231BFIfyyGo7VM7y2lal8a R1mnwrdpKGjJLtJAVqVhbNL4DZk/gykYPjdsqSG9XRGca/RRKWcIJcVTf/3uIwuIwBbl kctvERYeUbl7DopAogc7GQm/rew+RveYbrVU1ry93QGOcdQfdxdYOKzGUYBPvQJpsL2q CXpw== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@rcombs.me header.s=google header.b=A9wQuDUs; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id g19si26230865edu.311.2021.11.22.12.54.20; Mon, 22 Nov 2021 12:54:20 -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=@rcombs.me header.s=google header.b=A9wQuDUs; 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=rcombs.me Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DCD9368A940; Mon, 22 Nov 2021 22:53:46 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id C41C6689F59 for ; Mon, 22 Nov 2021 22:53:37 +0200 (EET) Received: by mail-io1-f45.google.com with SMTP id e144so25093831iof.3 for ; Mon, 22 Nov 2021 12:53:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=rcombs.me; s=google; h=from:to:subject:date:message-id:in-reply-to:references:mime-version :content-transfer-encoding; bh=Zxhfn7NPJs8PCgIItTNh/yfcO8YZF7Q3/kQwCPck1y0=; b=A9wQuDUs5elA9M4GoIx0x/dSuXq1w2ofZuoxY6wR8fbxBTDOkp75Y7mJfjU6tU1wmF 6pARAtfyp+ZyOTE5HiEQuEo/ICZW7UDCYBU4W3ngCyyZZBdLKrolyz2w0exH0D9t4gZu 9fT99mWMZ7/ikmXbprvpdFvp8DHiRCKuPN5C6e1oM0NDBv4SrN1aKS/GQ4Qvt+EPbU8e KI1WoytNWUqPvVb/A3xXIzP6F0mpWHGMGxUb/2TajPzKoeNXC9lMm50mrm6YGxW9X52x 6rfRdYyCsNjo4slY1E0VA5VAhtQplJCc+EjgtTkpjm5Gs5l/25cMZ1hvUhqBk/MILJA5 8Y1g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Zxhfn7NPJs8PCgIItTNh/yfcO8YZF7Q3/kQwCPck1y0=; b=SrdIIkMFDaauI7umhUigTDy4/2h2pedekFCBDGftV020JfrxvGGjr4S669GTVtuqeL UjuBrgsXEeqUox+3hNEIpzX8+bib6CorKfG60lAXKEvGR/W5tpq1pzNqMtMVRqR+O3jB hb+XZcly4wgjvSLzf8HFIDifVFo9yziXnINGnMYigfi2rRPHVY4K/TPH8PRr2RuY4tWr 1rWKaEV3l3+RpS8xcAI9VWe7fF2oJg3jPNlbzKtYfIQYF+//0F5ljYVfS4vIk0YBARQ3 k8Yft/YVIvqAT/70HiafZ3Mc5VZJDr2z2qFkSpy9sa4fXrz2pgzgigzmDqplcCyxoMEz kbIQ== X-Gm-Message-State: AOAM532XAVCRCGKh3OSUwLgm1VtAYwqzB0R3av7oiVdgl/VVyk3Il6/P gN9vZAv4MxpYnsO1y5xr2oS7btoVKb8efTY= X-Received: by 2002:a05:6602:2ac5:: with SMTP id m5mr23020895iov.156.1637614416085; Mon, 22 Nov 2021 12:53:36 -0800 (PST) Received: from rcombs-mbp.localdomain ([2601:243:2000:5ac:edf5:499:2479:42a8]) by smtp.gmail.com with ESMTPSA id b3sm3571580ile.26.2021.11.22.12.53.35 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Mon, 22 Nov 2021 12:53:35 -0800 (PST) From: rcombs To: ffmpeg-devel@ffmpeg.org Date: Mon, 22 Nov 2021 14:53:18 -0600 Message-Id: <20211122205330.43546-4-rcombs@rcombs.me> X-Mailer: git-send-email 2.33.1 In-Reply-To: <20211122205330.43546-1-rcombs@rcombs.me> References: <20211122205330.43546-1-rcombs@rcombs.me> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 04/16] lavu/videotoolbox: add 422 and 444 pixel format mappings X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: pn8sx8Dja0fd --- configure | 12 ++++++++ libavutil/hwcontext_videotoolbox.c | 44 ++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/configure b/configure index d068b11073..cc79b5b793 100755 --- a/configure +++ b/configure @@ -2329,6 +2329,12 @@ TYPES_LIST=" kCMVideoCodecType_HEVC kCMVideoCodecType_HEVCWithAlpha kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange + kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange + kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange + kCVPixelFormatType_422YpCbCr16BiPlanarVideoRange + kCVPixelFormatType_444YpCbCr8BiPlanarVideoRange + kCVPixelFormatType_444YpCbCr10BiPlanarVideoRange + kCVPixelFormatType_444YpCbCr16BiPlanarVideoRange kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ kCVImageBufferTransferFunction_ITU_R_2100_HLG kCVImageBufferTransferFunction_Linear @@ -6282,6 +6288,12 @@ enabled videotoolbox && { check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVC "-framework CoreMedia" check_func_headers CoreMedia/CMFormatDescription.h kCMVideoCodecType_HEVCWithAlpha "-framework CoreMedia" check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_422YpCbCr16BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_444YpCbCr8BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_444YpCbCr10BiPlanarVideoRange "-framework CoreVideo" + check_func_headers CoreVideo/CVPixelBuffer.h kCVPixelFormatType_444YpCbCr16BiPlanarVideoRange "-framework CoreVideo" check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_SMPTE_ST_2084_PQ "-framework CoreVideo" check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_ITU_R_2100_HLG "-framework CoreVideo" check_func_headers CoreVideo/CVImageBuffer.h kCVImageBufferTransferFunction_Linear "-framework CoreVideo" diff --git a/libavutil/hwcontext_videotoolbox.c b/libavutil/hwcontext_videotoolbox.c index 25f4e17715..f7a1299cc3 100644 --- a/libavutil/hwcontext_videotoolbox.c +++ b/libavutil/hwcontext_videotoolbox.c @@ -53,13 +53,57 @@ static const struct { { kCVPixelFormatType_420YpCbCr10BiPlanarVideoRange, false, AV_PIX_FMT_P010 }, { kCVPixelFormatType_420YpCbCr10BiPlanarFullRange, true, AV_PIX_FMT_P010 }, #endif +#if HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE + { kCVPixelFormatType_422YpCbCr8BiPlanarVideoRange, false, AV_PIX_FMT_NV16 }, + { kCVPixelFormatType_422YpCbCr8BiPlanarFullRange, true, AV_PIX_FMT_NV16 }, +#endif +#if HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE + { kCVPixelFormatType_422YpCbCr10BiPlanarVideoRange, false, AV_PIX_FMT_P210 }, + { kCVPixelFormatType_422YpCbCr10BiPlanarFullRange, true, AV_PIX_FMT_P210 }, +#endif +#if HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE + { kCVPixelFormatType_422YpCbCr16BiPlanarVideoRange, false, AV_PIX_FMT_P216 }, +#endif +#if HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE + { kCVPixelFormatType_444YpCbCr8BiPlanarVideoRange, false, AV_PIX_FMT_NV24 }, + { kCVPixelFormatType_444YpCbCr8BiPlanarFullRange, true, AV_PIX_FMT_NV24 }, +#endif +#if HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE + { kCVPixelFormatType_444YpCbCr10BiPlanarVideoRange, false, AV_PIX_FMT_P410 }, + { kCVPixelFormatType_444YpCbCr10BiPlanarFullRange, true, AV_PIX_FMT_P410 }, +#endif +#if HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE + { kCVPixelFormatType_444YpCbCr16BiPlanarVideoRange, false, AV_PIX_FMT_P416 }, +#endif }; static const enum AVPixelFormat supported_formats[] = { +#ifdef kCFCoreFoundationVersionNumber10_7 AV_PIX_FMT_NV12, +#endif AV_PIX_FMT_YUV420P, AV_PIX_FMT_UYVY422, +#if HAVE_KCVPIXELFORMATTYPE_420YPCBCR10BIPLANARVIDEORANGE AV_PIX_FMT_P010, +#endif +#if HAVE_KCVPIXELFORMATTYPE_422YPCBCR8BIPLANARVIDEORANGE + AV_PIX_FMT_NV16, +#endif +#if HAVE_KCVPIXELFORMATTYPE_422YPCBCR10BIPLANARVIDEORANGE + AV_PIX_FMT_P210, +#endif +#if HAVE_KCVPIXELFORMATTYPE_422YPCBCR16BIPLANARVIDEORANGE + AV_PIX_FMT_P216, +#endif +#if HAVE_KCVPIXELFORMATTYPE_444YPCBCR8BIPLANARVIDEORANGE + AV_PIX_FMT_NV24, +#endif +#if HAVE_KCVPIXELFORMATTYPE_444YPCBCR10BIPLANARVIDEORANGE + AV_PIX_FMT_P410, +#endif +#if HAVE_KCVPIXELFORMATTYPE_444YPCBCR16BIPLANARVIDEORANGE + AV_PIX_FMT_P416, +#endif AV_PIX_FMT_BGRA, };