From patchwork Fri Feb 3 06:34:47 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 40233 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp955231pzk; Thu, 2 Feb 2023 22:35:17 -0800 (PST) X-Google-Smtp-Source: AK7set8MbnKW+TEsbF6n036pNpT2yk77ed4s0lzZPPgBUtM6mah8tMr3Wn0+0S5c+fW1VJjzKFsm X-Received: by 2002:a17:906:8559:b0:884:fd73:8053 with SMTP id h25-20020a170906855900b00884fd738053mr8459048ejy.9.1675406117304; Thu, 02 Feb 2023 22:35:17 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675406117; cv=none; d=google.com; s=arc-20160816; b=UCnCp29s2dbWYZwFdvyuWvQughTf4AFr7OfpVQQqsMFcsrRYAqABGttgaBw8QJflY/ uY31FdqK0DUHSSrKNS9ZqoY3GCiA6r/BO7heU0NZMCzZx1fTZGvxE0fZ3vNAQg/T7yLq sTktAvTUHuY8Ih3qWTBfBEiakDmSJ4lVzuvInDWyoQHxHOH9vbrMyE7OtLKzjcFxjyr4 uW1VqEeikgjheWx368V9B83tlf/qQlJNQQk0RDObHHm+Oc4UT+U+S0e9hMAkYQwYgXNa hE5Th/xCTBqb5lS06kLdnituRJOcMVlO3OAG7/E/szmQzalQIn3zoNL295YkLgwjBabP Wu+A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:message-id:date:to:from:dkim-signature :delivered-to; bh=EFwmsPeF6EdEzFkuwRvoPlkBZy/dSZV2ZnmxkHRyiYU=; b=LbbmXLiNSX8S1zMx2/UcBnmj2JW9uIQtVSTQIOHxcvWpQqrziUCQSzvrELs9VPbx8b UzDCXhGehKdeJLTZNngTBd6W7JeeNiEJiYbyRRCUWYb0lOTixRG5uMpZyOeIS0zDMyai phWOkAL+NlgiZgYkHouZJEG7hkSeVI9VoKxjkKbOjbM8yy7x05eELMgiWsJILhPozKOV qNEeOpR0oyWXEl9T3Bij98gabjstKqp/BkBIAyhdSN9HVIW+ktKFDVNANTbfgtI2cAVy KxcVRyRYqcrIJS09FM+8yuaYG0QvclXq9GC8Np2pQlRo35RdXuP5DeoSe7zgE/WNc3T7 9cbg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=cGChUa0n; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id j3-20020a170906104300b0088ce3b14b9fsi2445739ejj.940.2023.02.02.22.35.15; Thu, 02 Feb 2023 22:35:17 -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=@intel.com header.s=Intel header.b=cGChUa0n; 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 AD3B668BE17; Fri, 3 Feb 2023 08:35:11 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id CFA5A68BC2A for ; Fri, 3 Feb 2023 08:35:04 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675406110; x=1706942110; h=from:to:cc:subject:date:message-id; bh=lSa/VXFCC7XZ60uEhP/yTVOB+X5ctacMvNvJdVPB3Rs=; b=cGChUa0neSfmZjXokLi4QT2wN4zWyd/KO3FUP4lNR0M/hEWurtmH0RZU f5QpedjeiaX90FY4+T7B9OKlRP2qRu3zajYa1x2PQoQDXrclKnDm/JUU4 Mn48rSDCQ4QbGjCBFVBWxD/5wD3woRhMDO0VQAUpLzXdNrpoxSUJYSs2F xb9YHOkIoLzyOFyVdALxamCc3UbbJf6FhdyK2t86AvL1Y9doJEk0Fog1W +qc1DBNYP7ENqMs0tr6jTEIJfxNFDgBa2gK0nLgz6FySUqIPgL+bo1WQP T84r+gXcsoIeMSZEdKriAinsZ9Szqzan9gr7uKK53aKedxQH96DViLABJ w==; X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="326367543" X-IronPort-AV: E=Sophos;i="5.97,269,1669104000"; d="scan'208";a="326367543" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Feb 2023 22:35:01 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="615596556" X-IronPort-AV: E=Sophos;i="5.97,269,1669104000"; d="scan'208";a="615596556" Received: from xhh-dg164.sh.intel.com ([10.238.5.169]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Feb 2023 22:35:00 -0800 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Fri, 3 Feb 2023 14:34:47 +0800 Message-Id: <20230203063448.4440-1-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 Subject: [FFmpeg-devel] [PATCH 1/2] lavu/hwcontext_qsv: add support for UYVY 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: YWMtI96fToRZ From: Haihao Xiang The SDK supports UYVY from version 1.17, and VPP may support UYVY input on Linux [1] $ ffmpeg -loglevel verbose -init_hw_device qsv=intel -f lavfi -i \ yuvtestsrc -vf \ "format=uyvy422,hwupload=extra_hw_frames=32,vpp_qsv=format=nv12" \ -f null - [1] https://github.com/Intel-Media-SDK/MediaSDK/blob/master/doc/samples/readme-vpp_linux.md Signed-off-by: Haihao Xiang --- libavutil/hwcontext_qsv.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/libavutil/hwcontext_qsv.c b/libavutil/hwcontext_qsv.c index ec0f72b329..42851d4fd5 100644 --- a/libavutil/hwcontext_qsv.c +++ b/libavutil/hwcontext_qsv.c @@ -118,6 +118,8 @@ static const struct { #if CONFIG_VAAPI { AV_PIX_FMT_YUYV422, MFX_FOURCC_YUY2, 0 }, + { AV_PIX_FMT_UYVY422, + MFX_FOURCC_UYVY, 0 }, { AV_PIX_FMT_Y210, MFX_FOURCC_Y210, 1 }, // VUYX is used for VAAPI child device, @@ -1556,6 +1558,11 @@ static int map_frame_to_surface(const AVFrame *frame, mfxFrameSurface1 *surface) // use the value from the frame. surface->Data.A = frame->data[0] + 6; break; + case AV_PIX_FMT_UYVY422: + surface->Data.Y = frame->data[0] + 1; + surface->Data.U = frame->data[0]; + surface->Data.V = frame->data[0] + 2; + break; #endif default: return MFX_ERR_UNSUPPORTED; From patchwork Fri Feb 3 06:34:48 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 40234 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:5494:b0:bf:7b3a:fd32 with SMTP id i20csp955309pzk; Thu, 2 Feb 2023 22:35:26 -0800 (PST) X-Google-Smtp-Source: AK7set/pJY14XfoEBsZy1K9O8V7JDSTnRvaXEW1d8tj9yuc9EPzmS03vL0L/VcDEen1aRAWEIAbP X-Received: by 2002:a17:907:1186:b0:88a:724:244c with SMTP id uz6-20020a170907118600b0088a0724244cmr9169767ejb.71.1675406126746; Thu, 02 Feb 2023 22:35:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1675406126; cv=none; d=google.com; s=arc-20160816; b=nFLXqQJD9ojCAXB1Dj4A6rTKVhbXnJ5LwVSHmbI2mZGcvGg2U8sam0PwZS1f4dTYmn HRYrPyQRYFpykFs36dLjAFaefpOxg07obkj8JqPlnwd6CHr4ndCvtIf2if4GEHusUn4R tv2R95HhuBdpKmML/gQnYQkbnPkvZ4MSvzqYYBSebuAeh2JaJ79+VKryug3SqbdN3upi HLO2pDsE68+O8sDsbvWnu/lcSbK403nYNEgn9lmHVTramphfKdgqFw/CasjRrJepzOdH 30FIPZ5kcB8hJ4SImJ50FnC+/AoSnsw10NgEANfVSILxQmUhCd0ZuFtAsgIElfDjNB+n 2JxQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:mime-version:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:references:in-reply-to:message-id:date :to:from:dkim-signature:delivered-to; bh=p1fKOYfjkFfIqGnglk4vfBZ08OSEF5EFqk/8ZDq+vU4=; b=WJNkg+8ncEVnlLavQxlKqr2Mtw/GJKzBArG1tJm+ji4qUJ4Axl+uvoKoXoGr8etGj/ 59ooH0P/tT0rxQEiWGMWm3ZCQxM58/v3a9/EeJCRg3vmP93RTodReQWHLI4dbNgtzaCn AktZgcuutFPBIJSxZ4anDvsHx7NhPboDb6KsEtRToHD7o4TM2iZCxW8awgeEXGIRDsmS 9ykhy0Zhx0yJtE8NkzaqQnktcZd/ANdaEZ2doGY3KRwOm24W+aeB5Z6UV+wPufdyYutD EuKoKk3yFaZIWXtjFWV1sYkjYwQyW5DDUecaM4DzJwBJF27QkxxgK4I2qF22pQWVoU1x o04Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=Hy8+DfOa; 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 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id h17-20020a17090791d100b0088596ab0416si1900789ejz.567.2023.02.02.22.35.26; Thu, 02 Feb 2023 22:35:26 -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=@intel.com header.s=Intel header.b=Hy8+DfOa; 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 DA04668BAA0; Fri, 3 Feb 2023 08:35:17 +0200 (EET) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B552E68BC2A for ; Fri, 3 Feb 2023 08:35:10 +0200 (EET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1675406115; x=1706942115; h=from:to:cc:subject:date:message-id:in-reply-to: references; bh=3IEvqeu+DqvMuLpaG0UEbV8boku+YQECHf1ZUY7fYdU=; b=Hy8+DfOaZttItKWyHe5mcH9pOnppR/i7ZPGkqcUc+lXhxoPP5In9ZP0Z 3PuA6HM77K5Uo6cZM+DzUeYPhMf8kgOmPogu+vzyUT7g1D34zCvjVtCyv y3nzh0EexfQhpytY0awB40XOGdxocBrJrjx/O33eReM+S8rFfMlscQdlp QRb3mgcR5GbkKqPrrmcFKoWXQCP0GJv2cYqbFp8A+5EF/NKjnC8OO9oe4 0GCd1Wt8+c7B0UbDcGDhyNpL9iUcDNeg6gU+O76lSS8VpJ+Oxz3W9CTrA Nol+67q5m76giXqOmG42G1bwLuKvwIeo6D6k8qbhuNjbt8J5xYd/9N0HD g==; X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="326367546" X-IronPort-AV: E=Sophos;i="5.97,269,1669104000"; d="scan'208";a="326367546" Received: from orsmga003.jf.intel.com ([10.7.209.27]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Feb 2023 22:35:02 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10609"; a="615596577" X-IronPort-AV: E=Sophos;i="5.97,269,1669104000"; d="scan'208";a="615596577" Received: from xhh-dg164.sh.intel.com ([10.238.5.169]) by orsmga003-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 02 Feb 2023 22:35:01 -0800 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Fri, 3 Feb 2023 14:34:48 +0800 Message-Id: <20230203063448.4440-2-haihao.xiang@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20230203063448.4440-1-haihao.xiang@intel.com> References: <20230203063448.4440-1-haihao.xiang@intel.com> Subject: [FFmpeg-devel] [PATCH 2/2] lavfi/vf_vpp_qsv: support UYVY in system memory 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 0cPGItjozp1N From: Haihao Xiang It only works on Linux $ ffmpeg -loglevel verbose -init_hw_device qsv=intel -f lavfi -i \ yuvtestsrc -vf "format=uyvy422,vpp_qsv=format=nv12" -f null - Signed-off-by: Haihao Xiang --- libavfilter/qsvvpp.c | 9 +++++++++ libavfilter/vf_vpp_qsv.c | 3 +++ 2 files changed, 12 insertions(+) diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index 7e64944f2c..e181e7b584 100644 --- a/libavfilter/qsvvpp.c +++ b/libavfilter/qsvvpp.c @@ -247,6 +247,10 @@ static int pix_fmt_to_mfx_fourcc(int format) return MFX_FOURCC_RGB4; case AV_PIX_FMT_P010: return MFX_FOURCC_P010; +#if CONFIG_VAAPI + case AV_PIX_FMT_UYVY422: + return MFX_FOURCC_UYVY; +#endif } return MFX_FOURCC_NV12; @@ -276,6 +280,11 @@ static int map_frame_to_surface(AVFrame *frame, mfxFrameSurface1 *surface) surface->Data.R = frame->data[0] + 2; surface->Data.A = frame->data[0] + 3; break; + case AV_PIX_FMT_UYVY422: + surface->Data.Y = frame->data[0] + 1; + surface->Data.U = frame->data[0]; + surface->Data.V = frame->data[0] + 2; + break; default: return MFX_ERR_UNSUPPORTED; } diff --git a/libavfilter/vf_vpp_qsv.c b/libavfilter/vf_vpp_qsv.c index 010b69943a..65484fa091 100644 --- a/libavfilter/vf_vpp_qsv.c +++ b/libavfilter/vf_vpp_qsv.c @@ -703,6 +703,9 @@ static int vpp_query_formats(AVFilterContext *ctx) AV_PIX_FMT_YUYV422, AV_PIX_FMT_RGB32, AV_PIX_FMT_P010, +#if CONFIG_VAAPI + AV_PIX_FMT_UYVY422, +#endif AV_PIX_FMT_QSV, AV_PIX_FMT_NONE };