From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 05EB642915 for ; Thu, 6 Oct 2022 07:38:40 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id DF38068BC07; Thu, 6 Oct 2022 10:38:15 +0300 (EEST) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A723468BC05 for ; Thu, 6 Oct 2022 10:38:08 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665041893; x=1696577893; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=sODq3rTXUECfR/Ia7pmzHHWesofClCZ1mHsiN2pbn0A=; b=guMvvznLZKRCphIITWRosQaVcnhsZwv5rLNPKHN+TXDk8kfkQLtp7ty+ ZRp2k+SYR90tulmxvLjayoYlM0XhK06eZ99AMXL+R54MNTw+sJPppCX+8 VseiO+6XCs/CtXm8f3/r7IqfjVzI8i2L88bFIkCUH8c3q7mij4mPk1S4n SeGZO7cvDy9ymcW1Sdgzvp4rccLIMX7zeIG3iyrSN9p2snChNhWNC2hI0 yPO4M1hHB8eMT8GWxyX2dA/y1FafajU8+rZ8uvoPbV7LzFaEAczB1ZCCC J6vNqtsyJrYRHEYjPjo2b0aZkB/i30gejWu4IuTdbbrNDRNx55+kNKPWD A==; X-IronPort-AV: E=McAfee;i="6500,9779,10491"; a="300974398" X-IronPort-AV: E=Sophos;i="5.95,163,1661842800"; d="scan'208";a="300974398" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2022 00:38:03 -0700 X-IronPort-AV: E=McAfee;i="6500,9779,10491"; a="687319000" X-IronPort-AV: E=Sophos;i="5.95,163,1661842800"; d="scan'208";a="687319000" Received: from xhh-dg164.sh.intel.com ([10.238.5.169]) by fmsmga008-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 06 Oct 2022 00:38:02 -0700 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Thu, 6 Oct 2022 15:35:36 +0800 Message-Id: <20221006073538.27710-4-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20221006073538.27710-1-haihao.xiang@intel.com> References: <20221006073538.27710-1-haihao.xiang@intel.com> Subject: [FFmpeg-devel] [PATCH 4/6] lavc/qsv: add support for decoding & encoding 10bit 4:4:4 content 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 Cc: Haihao Xiang MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: From: Haihao Xiang AV_PIX_FMT_XV30 is used in FFmpeg and MFX_FOURCC_Y410 is used in the SDK. Signed-off-by: Haihao Xiang --- libavcodec/qsv.c | 9 +++++++++ libavcodec/qsvdec.c | 2 ++ libavcodec/qsvenc_hevc.c | 1 + libavcodec/qsvenc_vp9.c | 1 + 4 files changed, 13 insertions(+) diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index 4e11b33a7d..f38c617fc3 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -212,6 +212,7 @@ enum AVPixelFormat ff_qsv_map_fourcc(uint32_t fourcc) case MFX_FOURCC_YUY2: return AV_PIX_FMT_YUYV422; case MFX_FOURCC_Y210: return AV_PIX_FMT_Y210; case MFX_FOURCC_AYUV: return AV_PIX_FMT_VUYX; + case MFX_FOURCC_Y410: return AV_PIX_FMT_XV30; #endif } return AV_PIX_FMT_NONE; @@ -254,6 +255,10 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc, uint16_t *shi *fourcc = MFX_FOURCC_AYUV; *shift = 0; return AV_PIX_FMT_VUYX; + case AV_PIX_FMT_XV30: + *fourcc = MFX_FOURCC_Y410; + *shift = 0; + return AV_PIX_FMT_XV30; #endif default: return AVERROR(ENOSYS); @@ -298,6 +303,10 @@ int ff_qsv_map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface) surface->Data.A = frame->data[0] + 3; break; + case AV_PIX_FMT_XV30: + surface->Data.U = frame->data[0]; + break; + default: return AVERROR(ENOSYS); } diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c index 0254a394bd..912d58965a 100644 --- a/libavcodec/qsvdec.c +++ b/libavcodec/qsvdec.c @@ -142,6 +142,7 @@ static int qsv_get_continuous_buffer(AVCodecContext *avctx, AVFrame *frame, break; case AV_PIX_FMT_Y210: case AV_PIX_FMT_VUYX: + case AV_PIX_FMT_XV30: frame->linesize[0] = 4 * FFALIGN(avctx->width, 128); break; default: @@ -1043,6 +1044,7 @@ const FFCodec ff_##x##_qsv_decoder = { \ AV_PIX_FMT_YUYV422, \ AV_PIX_FMT_Y210, \ AV_PIX_FMT_VUYX, \ + AV_PIX_FMT_XV30, \ AV_PIX_FMT_QSV, \ AV_PIX_FMT_NONE }, \ .hw_configs = qsv_hw_configs, \ diff --git a/libavcodec/qsvenc_hevc.c b/libavcodec/qsvenc_hevc.c index a5bf915954..1e1574a6f2 100644 --- a/libavcodec/qsvenc_hevc.c +++ b/libavcodec/qsvenc_hevc.c @@ -316,6 +316,7 @@ const FFCodec ff_hevc_qsv_encoder = { AV_PIX_FMT_BGRA, AV_PIX_FMT_X2RGB10, AV_PIX_FMT_VUYX, + AV_PIX_FMT_XV30, AV_PIX_FMT_NONE }, .p.priv_class = &class, .defaults = qsv_enc_defaults, diff --git a/libavcodec/qsvenc_vp9.c b/libavcodec/qsvenc_vp9.c index 044a882d1a..d0340ef94b 100644 --- a/libavcodec/qsvenc_vp9.c +++ b/libavcodec/qsvenc_vp9.c @@ -115,6 +115,7 @@ const FFCodec ff_vp9_qsv_encoder = { AV_PIX_FMT_P010, AV_PIX_FMT_VUYX, AV_PIX_FMT_QSV, + AV_PIX_FMT_XV30, AV_PIX_FMT_NONE }, .p.priv_class = &class, .defaults = qsv_enc_defaults, -- 2.17.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".