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 46A4D43AE7 for ; Fri, 12 Aug 2022 04:21:33 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 3AE0B68B95F; Fri, 12 Aug 2022 07:21:32 +0300 (EEST) Received: from mga17.intel.com (mga17.intel.com [192.55.52.151]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 36D9D68B5A2 for ; Fri, 12 Aug 2022 07:21:25 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1660278090; x=1691814090; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=XXwCz8jmuhelqlnJlRJ2L5t17ECKpBPrEpBjODCTKtg=; b=DlgmiEp+8NBpXBWz0tlSnDylmTJjnQLnpVqr/HgHFOS66yrEpKtshIrA WNjFgH7ivyTPZd2M5wkwjQjIp+OJZTo5R3ERGRqangwE4o+YuJwrizBcX 5SSD4mggToL7ChM4W1bQAH6Okunlj9rES4NNrBtu4n6n6dD3Xd0I/Cww3 YOrKPAdRKp3Y3EYDGTBnW88qe95QRmhx9/ImXTkFt90ZVl8N3yv0a9/q+ Yu1yelRHjFHFxt5umnSseM/2AlFaTCZzdjahdZHPyw58DEssxCaaRDbuh VBl+9monlSl35af1UeEqj7HTbBPN9YesofOqh+GYDY3p/eJMdLU6CAnk2 g==; X-IronPort-AV: E=McAfee;i="6400,9594,10436"; a="271902261" X-IronPort-AV: E=Sophos;i="5.93,231,1654585200"; d="scan'208";a="271902261" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by fmsmga107.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2022 21:21:23 -0700 X-IronPort-AV: E=Sophos;i="5.93,231,1654585200"; d="scan'208";a="602395169" Received: from xhh-dg164.sh.intel.com ([10.238.5.169]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Aug 2022 21:21:22 -0700 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Fri, 12 Aug 2022 12:20:53 +0800 Message-Id: <20220812042053.9662-2-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20220812042053.9662-1-haihao.xiang@intel.com> References: <20220812042053.9662-1-haihao.xiang@intel.com> Subject: [FFmpeg-devel] [PATCH 2/2] lavc/qsv: Add support for decoding & encoding 8bit 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_VUYA is used in FFmpeg and MFX_FOURCC_AYUV is used in the SDK --- libavcodec/qsv.c | 12 ++++++++++++ libavcodec/qsvdec.c | 2 ++ libavcodec/qsvenc_hevc.c | 1 + libavcodec/qsvenc_vp9.c | 1 + 4 files changed, 16 insertions(+) diff --git a/libavcodec/qsv.c b/libavcodec/qsv.c index 3449789a2c..6a4730a482 100644 --- a/libavcodec/qsv.c +++ b/libavcodec/qsv.c @@ -211,6 +211,7 @@ enum AVPixelFormat ff_qsv_map_fourcc(uint32_t fourcc) #if CONFIG_VAAPI 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_VUYA; #endif } return AV_PIX_FMT_NONE; @@ -243,6 +244,9 @@ int ff_qsv_map_pixfmt(enum AVPixelFormat format, uint32_t *fourcc) case AV_PIX_FMT_Y210: *fourcc = MFX_FOURCC_Y210; return AV_PIX_FMT_Y210; + case AV_PIX_FMT_VUYA: + *fourcc = MFX_FOURCC_AYUV; + return AV_PIX_FMT_VUYA; #endif default: return AVERROR(ENOSYS); @@ -277,6 +281,14 @@ int ff_qsv_map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface) surface->Data.U16 = (mfxU16 *)frame->data[0] + 1; surface->Data.V16 = (mfxU16 *)frame->data[0] + 3; break; + + case AV_PIX_FMT_VUYA: + surface->Data.V = frame->data[0]; + surface->Data.U = frame->data[0] + 1; + surface->Data.Y = frame->data[0] + 2; + surface->Data.A = frame->data[0] + 3; + break; + default: return AVERROR(ENOSYS); } diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c index 89ec5dcee8..f7b1371586 100644 --- a/libavcodec/qsvdec.c +++ b/libavcodec/qsvdec.c @@ -141,6 +141,7 @@ static int qsv_get_continuous_buffer(AVCodecContext *avctx, AVFrame *frame, frame->linesize[0] = 2 * FFALIGN(avctx->width, 128); break; case AV_PIX_FMT_Y210: + case AV_PIX_FMT_VUYA: frame->linesize[0] = 4 * FFALIGN(avctx->width, 128); break; default: @@ -1041,6 +1042,7 @@ const FFCodec ff_##x##_qsv_decoder = { \ AV_PIX_FMT_P010, \ AV_PIX_FMT_YUYV422, \ AV_PIX_FMT_Y210, \ + AV_PIX_FMT_VUYA, \ 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 e11f5dec4a..df6bb40648 100644 --- a/libavcodec/qsvenc_hevc.c +++ b/libavcodec/qsvenc_hevc.c @@ -311,6 +311,7 @@ const FFCodec ff_hevc_qsv_encoder = { AV_PIX_FMT_QSV, AV_PIX_FMT_BGRA, AV_PIX_FMT_X2RGB10, + AV_PIX_FMT_VUYA, 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 c738da3904..5b3e24ed54 100644 --- a/libavcodec/qsvenc_vp9.c +++ b/libavcodec/qsvenc_vp9.c @@ -113,6 +113,7 @@ const FFCodec ff_vp9_qsv_encoder = { .p.capabilities = AV_CODEC_CAP_DELAY | AV_CODEC_CAP_HYBRID, .p.pix_fmts = (const enum AVPixelFormat[]){ AV_PIX_FMT_NV12, AV_PIX_FMT_P010, + AV_PIX_FMT_VUYA, AV_PIX_FMT_QSV, AV_PIX_FMT_NONE }, .p.priv_class = &class, -- 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".