From patchwork Mon May 20 02:05:52 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 49049 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp4163860pzb; Sun, 19 May 2024 19:05:49 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCXxutpQ5H9vt80BJ3CXfj7EaWew+/nCp6oaNDsYAjEEykFzYJsu7+uYAFwYRYDGIldLfmi18QaBXhvuitSwkuEBmSPaEMPEUA3EsA== X-Google-Smtp-Source: AGHT+IGUAz/RgPGDjfKfFu9KKYn3VWDj27AjxKhWZWM1DVaMzlAVQZMe42ykgudZwouA4MKLlSK6 X-Received: by 2002:a2e:9601:0:b0:2e7:1e4a:31e0 with SMTP id 38308e7fff4ca-2e71e4a328emr23139601fa.18.1716170749651; Sun, 19 May 2024 19:05:49 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1716170749; cv=none; d=google.com; s=arc-20160816; b=vSOwJc0Iu54He79hSnoNy65vumuCNL3fa5asjzhJ+vgOlRZ60JliraaCFyJdrf3xTW x/K1d8bwLOQdwsvOMNGX50CLazOLK9SYDJOjG88SMBo4kQBfJ2PshQJMw+rbRx7hQNeI ig75S/7uttCkK58JVZLGGbJdK2APd7uormptN2DOZiKsPunq+op7+PfJG1Vxh6LOpmw7 1GOhYaW7vO4Xh6MV2m8wLAVKpSz+6nGAMOHPFGSBZYPB435Wvnba/tpcutjicmmb5qsL n6eT6FRers/ur/LZwtD4okE76lfy8sS4g+FiJ3/esayBwFNbxHB+GKySK1pONhZR0pNI S1aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc:reply-to :list-subscribe:list-help:list-post:list-archive:list-unsubscribe :list-id:precedence:subject:mime-version:message-id:date:to:from :dkim-signature:delivered-to; bh=SDY6eXvkj5/atzLRpe8At/83W4o0VKZiHi7XKxjFYZA=; fh=i4ESP4ZRFDcfYfwXKWpOXjc2YhmIGuOsCfZUnwNO0gc=; b=Hj06+9ysgqMPShQDlN7aZqOz26S6ZoK9uCwsc6ExTUnrmSxyFTLOpn1GZtVAYGBbO4 VSPpxAw+A2+mV0uiilc1K6C4Lrx+E2BEJg6PJxAN1uK7vya2npvTuYX+JVMmvMZTjNY1 32FfO6SStRCqpFUuLclAUI/qb+0TvC6XvHRUT9gv6PhAdOBGSqARWxCcnGszoMrGT165 1thc+h6Ra9lQYMNN4ZcQBEamX1YJwVERmK/ZBqytNhaJwfvBa7ZPVwnqjOnrkbmQfrUt oM3jm1KLFGN97jeip2fAsOxFygDEKp/bGWSZ1UJTwk97TrXpgay5exCkzuLnn4evG7Cq H/Ow==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=K9R+T3cz; 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 a640c23a62f3a-a5a8caf757dsi623914366b.988.2024.05.19.19.05.48; Sun, 19 May 2024 19:05:49 -0700 (PDT) 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=K9R+T3cz; 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 4917368D084; Mon, 20 May 2024 05:05:45 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 3F81768C682 for ; Mon, 20 May 2024 05:05:38 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1716170743; x=1747706743; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=5M2JMTJOSqyvEv2AXWWeyuqqSD9II5CLm/wWMHsmp1o=; b=K9R+T3cz/6mF4Gq4p8da6K6HWgBnq8bTZWposggfEtA1FDx9jy/dF1i0 WiTpIeifVDQ5OkAODaXK0FFoZGVZ4Gh3zHpu+60NY3hzyzUknDn5nfPtN efvzCMSm3BQvMXyVtTgJZPTtELEmM2c5LknB48bgxoGsGUOl/MLllC7Ra H1cJGtQPxDMksJS/4og8tZ01wDCX+I2n+Zm2GTc/CzjzMnAGOowHzNvSS yIV6sNY92Bwkwsp/xN406nIhSyQAhlasrzelhTpLlNpyDydWALCgy1sht 9bWFsPm6/mtn5NyHvc4USz2Y9XmGQM6AQGNFUumyynYZKZLBiix4firmq g==; X-CSE-ConnectionGUID: LM/vmVQkSIm6b//gq6+/AQ== X-CSE-MsgGUID: pT3wTRF5Q9KHHAMD/SaO3g== X-IronPort-AV: E=McAfee;i="6600,9927,11077"; a="23421775" X-IronPort-AV: E=Sophos;i="6.08,174,1712646000"; d="scan'208";a="23421775" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2024 19:05:35 -0700 X-CSE-ConnectionGUID: uC3XDutfQXm/caXOWuuDvg== X-CSE-MsgGUID: h4r8eBD4Tx6Xo6IYTnb4Tw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,174,1712646000"; d="scan'208";a="32939284" Received: from unknown (HELO t-dg2.sh.intel.com) ([10.239.159.57]) by orviesa008.jf.intel.com with ESMTP; 19 May 2024 19:05:35 -0700 From: fei.w.wang-at-intel.com@ffmpeg.org To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 May 2024 10:05:52 +0800 Message-Id: <20240520020553.1155143-1-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 1/2] lavc/qsvdec: Allow decoders to export crop information 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: fei.w.wang@intel.com Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: lPysEmzRwWtP From: Fei Wang Signed-off-by: Fei Wang --- libavcodec/qsvdec.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c index a51ddace62..12cf630593 100644 --- a/libavcodec/qsvdec.c +++ b/libavcodec/qsvdec.c @@ -859,6 +859,10 @@ static int qsv_decode(AVCodecContext *avctx, QSVContext *q, else frame->flags &= ~AV_FRAME_FLAG_KEY; } + frame->crop_left = outsurf->Info.CropX; + frame->crop_top = outsurf->Info.CropY; + frame->crop_right = outsurf->Info.Width - (outsurf->Info.CropX + outsurf->Info.CropW); + frame->crop_bottom = outsurf->Info.Height - (outsurf->Info.CropY + outsurf->Info.CropH); /* update the surface properties */ if (avctx->pix_fmt == AV_PIX_FMT_QSV) @@ -1148,7 +1152,7 @@ const FFCodec ff_##x##_qsv_decoder = { \ .p.priv_class = &x##_qsv_class, \ .hw_configs = qsv_hw_configs, \ .p.wrapper_name = "qsv", \ - .caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE, \ + .caps_internal = FF_CODEC_CAP_NOT_INIT_THREADSAFE | FF_CODEC_CAP_EXPORTS_CROPPING, \ }; \ #define DEFINE_QSV_DECODER(x, X, bsf_name) DEFINE_QSV_DECODER_WITH_OPTION(x, X, bsf_name, options) From patchwork Mon May 20 02:05:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, Fei W" X-Patchwork-Id: 49050 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a21:3a48:b0:1af:fc2d:ff5a with SMTP id zu8csp4163899pzb; Sun, 19 May 2024 19:05:58 -0700 (PDT) X-Forwarded-Encrypted: i=2; AJvYcCVAiin2TZ4okV7yDJLgbbRQi4MJ0M7uxwoR4iE8XHOhkzw452XlEC+uLqRA1/kWusEG5w7EpM8qyMgPcNRpkCq8k4oN1I8JQXi62w== X-Google-Smtp-Source: AGHT+IHdlT94+6oA3WpTn/dNna1iOKCt7rKCet+sISJO7Ii/gQQrWkbu6SmuLhBc1fH7PYKWh6KL X-Received: by 2002:aa7:dd12:0:b0:572:d841:1189 with SMTP id 4fb4d7f45d1cf-5734d6f576fmr18498703a12.3.1716170758313; Sun, 19 May 2024 19:05:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1716170758; cv=none; d=google.com; s=arc-20160816; b=XuqG9jkOECIDmZzsHlT4k7/7mnrHHrsiZY5+o8yIn9x8ThzJZKLvJlFewpGYz226uq ar8j7mBbetoTTHkHXXwc938zYIpgAbTjPmbZ4vXIGdE8gLgW5xcTNer3kDTuYXScpfa8 JT/ftBmRzn3NQwOGElXSkdJCtxEO876SUEbu45ef/YAQjrB9aziI+iDutkURERhSVUsu bAKYVAzGB2X4tHGBi6g61dC+tlJp6JOMR9ntZDlYnDxOaII1lqsY/bXxXOdYJeNaRLmq SZyhwyCUNr+N+QW2UqGUtis1wKzPonrNKYZmdn7OQZPc3eXVL2733WYSz80X8EJNJ1bz 68PA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:content-transfer-encoding:cc: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=z0VjjnoPYvi7WXfDZH2Glk0FBslZ90VTORtHUBOBoqM=; fh=i4ESP4ZRFDcfYfwXKWpOXjc2YhmIGuOsCfZUnwNO0gc=; b=e6/oQmKnRgckx4pLoxWjXuWu11qthnC/YrA6tB8awdKwm4PRAYvdRSBz94p1OzmVF2 rrCvVgrQ0qs+W5Fd5xSWgbT1p1J9iDNkRMPKrAmxQn8B307CScO4MOWSVsrGKPSFR9ez vZZlzD4U6uGcljs5rl75lGQ5nuqD7wvjt0nhF3WeUwUUs9PcW5KLwnqTH65AszWoU728 o6n+cHprB9LVMT+dnIFmWAExp4UsB7wvQHSxgYX6fX9pedJWH0tuumuINSzYVtBgPV6m FfNLm8fqQeNYNvOGZKNlJxb/wHNEWqhXH1PmzcX/Gn9khR8xDtE9KMsjML17XJH4s5Nx NeAQ==; dara=google.com ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=js37kQXS; 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 4fb4d7f45d1cf-5733bec1831si12393198a12.183.2024.05.19.19.05.57; Sun, 19 May 2024 19:05:58 -0700 (PDT) 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=js37kQXS; 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 8DEBD68D097; Mon, 20 May 2024 05:05:51 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mgamail.intel.com (mgamail.intel.com [198.175.65.13]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 29C5268D109 for ; Mon, 20 May 2024 05:05:43 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1716170749; x=1747706749; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=CMw1A6uP58ZPXlJ44wXYwFmVQzSOLwDX+uCpiA0mhNk=; b=js37kQXSIlWnePJbsgDp8CtwPPD0cOUyFhV/0U0pZYsEhmEqkGPIz1hk X5YiBOIbQo9X2g2dArhJeo8nZxp57Cb+uLhpGTHQGOl69QwJmmAkklWTC NKpa90iNSnoZGq4GcXJfNRkxIXqrVF0QjLf/UBO/uYtaIGl7FS3GoJMQR B2ztHejN5WXcS0MBaUn6AWS9ew3Mt92N+9H4gG2X5fXujsh4bB4OfhvjI r0Il6yXJpqz3UEWpyUk7k2jcJEvHBDDuD+gYx0nEALNXsZqA9XVxGWDZB qI5L8NkXDYiOXOhPLBWQtGUpadQzbtilDaWR4a6DdHLcKtZex9EHHDxVa Q==; X-CSE-ConnectionGUID: pu3d1F2oRPmed3ow3/YEng== X-CSE-MsgGUID: DJgbzyXKQAi/woceLM4w4g== X-IronPort-AV: E=McAfee;i="6600,9927,11077"; a="23421779" X-IronPort-AV: E=Sophos;i="6.08,174,1712646000"; d="scan'208";a="23421779" Received: from orviesa008.jf.intel.com ([10.64.159.148]) by orvoesa105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 19 May 2024 19:05:36 -0700 X-CSE-ConnectionGUID: ILXqUZu2T9SdELEqA0EG5A== X-CSE-MsgGUID: ALNTh2qCR4eZQ99NERJutw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,174,1712646000"; d="scan'208";a="32939288" Received: from unknown (HELO t-dg2.sh.intel.com) ([10.239.159.57]) by orviesa008.jf.intel.com with ESMTP; 19 May 2024 19:05:36 -0700 From: fei.w.wang-at-intel.com@ffmpeg.org To: ffmpeg-devel@ffmpeg.org Date: Mon, 20 May 2024 10:05:53 +0800 Message-Id: <20240520020553.1155143-2-fei.w.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20240520020553.1155143-1-fei.w.wang@intel.com> References: <20240520020553.1155143-1-fei.w.wang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH v1 2/2] lavc/qsvdec: Use coded_w/h for frame resolution when use 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: fei.w.wang@intel.com Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: 4DFXNygXg4UK From: Fei Wang Fix output mismatch when decode clip with crop(conf_win_*offset in syntax) info by using system memory: $ ffmpeg -c:v hevc_qsv -i conf_win_offet.bit -y out.yuv Signed-off-by: Fei Wang --- libavcodec/qsvdec.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/libavcodec/qsvdec.c b/libavcodec/qsvdec.c index 12cf630593..6b0492899a 100644 --- a/libavcodec/qsvdec.c +++ b/libavcodec/qsvdec.c @@ -133,26 +133,26 @@ static int qsv_get_continuous_buffer(AVCodecContext *avctx, AVFrame *frame, if (ret < 0) return ret; - frame->width = avctx->width; - frame->height = avctx->height; + frame->width = avctx->coded_width; + frame->height = avctx->coded_height; switch (avctx->pix_fmt) { case AV_PIX_FMT_NV12: - frame->linesize[0] = FFALIGN(avctx->width, 128); + frame->linesize[0] = FFALIGN(avctx->coded_width, 128); break; case AV_PIX_FMT_P010: case AV_PIX_FMT_P012: case AV_PIX_FMT_YUYV422: - frame->linesize[0] = 2 * FFALIGN(avctx->width, 128); + frame->linesize[0] = 2 * FFALIGN(avctx->coded_width, 128); break; case AV_PIX_FMT_Y210: case AV_PIX_FMT_VUYX: case AV_PIX_FMT_XV30: case AV_PIX_FMT_Y212: - frame->linesize[0] = 4 * FFALIGN(avctx->width, 128); + frame->linesize[0] = 4 * FFALIGN(avctx->coded_width, 128); break; case AV_PIX_FMT_XV36: - frame->linesize[0] = 8 * FFALIGN(avctx->width, 128); + frame->linesize[0] = 8 * FFALIGN(avctx->coded_width, 128); break; default: av_log(avctx, AV_LOG_ERROR, "Unsupported pixel format.\n"); @@ -169,7 +169,7 @@ static int qsv_get_continuous_buffer(AVCodecContext *avctx, AVFrame *frame, avctx->pix_fmt == AV_PIX_FMT_P012) { frame->linesize[1] = frame->linesize[0]; frame->data[1] = frame->data[0] + - frame->linesize[0] * FFALIGN(avctx->height, 64); + frame->linesize[0] * FFALIGN(avctx->coded_height, 64); } ret = ff_attach_decode_data(frame); @@ -380,7 +380,7 @@ static int qsv_decode_init_context(AVCodecContext *avctx, QSVContext *q, mfxVide q->frame_info = param->mfx.FrameInfo; if (!avctx->hw_frames_ctx) { - ret = av_image_get_buffer_size(avctx->pix_fmt, FFALIGN(avctx->width, 128), FFALIGN(avctx->height, 64), 1); + ret = av_image_get_buffer_size(avctx->pix_fmt, FFALIGN(avctx->coded_width, 128), FFALIGN(avctx->coded_height, 64), 1); if (ret < 0) return ret; q->pool = av_buffer_pool_init(ret, av_buffer_allocz);