From patchwork Mon Jun 12 08:14:44 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Xiang, Haihao" X-Patchwork-Id: 42034 Delivered-To: ffmpegpatchwork2@gmail.com Received: by 2002:a05:6a20:c526:b0:117:ac03:c9de with SMTP id gm38csp2798654pzb; Mon, 12 Jun 2023 01:15:59 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5CGxgvoHC3SUC/Ot+f2XjSnrS+RlP8rSWjQFQZSn2g4re66VCwfWtIgJ+LcUkseEYERXrE X-Received: by 2002:a17:906:fd86:b0:977:ecff:3367 with SMTP id xa6-20020a170906fd8600b00977ecff3367mr8949858ejb.40.1686557759071; Mon, 12 Jun 2023 01:15:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686557759; cv=none; d=google.com; s=arc-20160816; b=eashFkZobLkiQux+Gc9pHhSPgaSuIOuOMq1AFBnHI3lPFgFr9N4i/DJUHiT+5HvzT5 3KbLrz8fumxSHIjvrAMfauY3GSFPcJ8f2smN1NP6zG5bcDG2dCPwyCVMgmQTxZ8r9ip1 eZucmu4MK4CUI0xcmaZDPeotuQO2jSTwj01df2WMzLFaZNf0fSLG1wqEfCxTzuDKGKhE sEPSLkMeQqZZ2DcDeSKu09nLH0P74dDMTsG+hgRl+6HqDCgoK0/2DDRVSL9FWMjb9u29 V6CUAkbD8qYMO9OS99OYKxFGnDeSeiqyMPQWFf+8neGUjFlrBS6dz5CE1HjzRi2xsyXD fJKQ== 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=iEpiBj/oDvoeFpcYsbv2+kOZSaz+1BQbda4kn1Qaxzw=; b=g76FLk6gw0ejvD43fj6EaD/su/fQCyyH+GBzBLEySwofNh6wcoia0twIpsgC0hyhPG sGceIJ5/U2hhOexpmRBGQhb2TJPRiVer0URmsjb0kCynAjfX1xIzSmdr5DAbrFYhWKsP CV7snUOO7wc7cxIGJ7SIrrUbxxdLQIGMKFlrTGXCTuDgFbnXEmbhwLwcpP+9HQC1omvk 0BJR1Wbt5tRNbGFQ2YP6rF+nCuc2L2/OYbA041dPsC3p2Dt4pkwrABTFVV1um8bZV1Y7 m4eSlT+oaASckQC2GV4PJvqsAvWFuLKioDJtBmAES0vbT+YtgowdB5l6Qan8v9GTpjjB 3SIg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@intel.com header.s=Intel header.b=VVTdEcTA; 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 pw13-20020a17090720ad00b00977d5c01495si4895625ejb.562.2023.06.12.01.15.58; Mon, 12 Jun 2023 01:15:59 -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=VVTdEcTA; 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 6737668C39E; Mon, 12 Jun 2023 11:15:52 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mga01.intel.com (mga01.intel.com [192.55.52.88]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id D5A2068C1E4 for ; Mon, 12 Jun 2023 11:15:44 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1686557750; x=1718093750; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=C837PmhXSP5Ey0DXjibyOhQS+wDpGYirfCx/K4wuouo=; b=VVTdEcTAJTzVpmfIsRUaQttX2MU6XEO0mUIug3WnWsKqzS1td6/5UAHZ ajkbygmbLYkKtahC0RMKFH3dbaeTMYdAOZTrlOrE0Aged0itnw1ZporMP AuxZrykwBEjLZiD/gvHumrrHVZ2wTzhujXzAzNSG86exhdnGKcM2fAe+r KhP8vDZjT99/JniQp600K6bvganZxKxN6MRW6WE5G3o8mTzjWvUe+HRIp 74Djuqo/nUExP9o3xaoxPCqT/v4Z1lLW6XVI6uQtYyeIZAn2uxyYfNtud jlth4tjDdIS4TSNWGlB+XUICe4HoNIOY6j9nHsteeakIGzDyijSGWUeMS g==; X-IronPort-AV: E=McAfee;i="6600,9927,10738"; a="386360228" X-IronPort-AV: E=Sophos;i="6.00,236,1681196400"; d="scan'208";a="386360228" Received: from orsmga002.jf.intel.com ([10.7.209.21]) by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jun 2023 01:15:42 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10738"; a="711111612" X-IronPort-AV: E=Sophos;i="6.00,236,1681196400"; d="scan'208";a="711111612" Received: from xhh-tgl64.sh.intel.com ([10.238.2.19]) by orsmga002-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 12 Jun 2023 01:15:41 -0700 From: "Xiang, Haihao" To: ffmpeg-devel@ffmpeg.org Date: Mon, 12 Jun 2023 16:14:44 +0800 Message-Id: <20230612081448.936570-2-haihao.xiang@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20230612081448.936570-1-haihao.xiang@intel.com> References: <20230612081448.936570-1-haihao.xiang@intel.com> MIME-Version: 1.0 Subject: [FFmpeg-devel] [PATCH 2/6] lavfi/qsvvpp: copy metadata fields from src to dst 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 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" X-TUID: mCPlORTRLZfI From: Haihao Xiang Signed-off-by: Haihao Xiang --- libavfilter/qsvvpp.c | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/libavfilter/qsvvpp.c b/libavfilter/qsvvpp.c index 779afce66d..61402c8e0a 100644 --- a/libavfilter/qsvvpp.c +++ b/libavfilter/qsvvpp.c @@ -474,7 +474,7 @@ static QSVFrame *submit_frame(QSVVPPContext *s, AVFilterLink *inlink, AVFrame *p } /* get the output surface */ -static QSVFrame *query_frame(QSVVPPContext *s, AVFilterLink *outlink) +static QSVFrame *query_frame(QSVVPPContext *s, AVFilterLink *outlink, const AVFrame *in) { AVFilterContext *ctx = outlink->src; QSVFrame *out_frame; @@ -493,6 +493,12 @@ static QSVFrame *query_frame(QSVVPPContext *s, AVFilterLink *outlink) if (!out_frame->frame) return NULL; + ret = av_frame_copy_props(out_frame->frame, in); + if (ret < 0) { + av_log(ctx, AV_LOG_ERROR, "Failed to copy metadata fields from src to dst.\n"); + return NULL; + } + ret = av_hwframe_get_buffer(outlink->hw_frames_ctx, out_frame->frame, 0); if (ret < 0) { av_log(ctx, AV_LOG_ERROR, "Can't allocate a surface.\n"); @@ -509,6 +515,12 @@ static QSVFrame *query_frame(QSVVPPContext *s, AVFilterLink *outlink) if (!out_frame->frame) return NULL; + ret = av_frame_copy_props(out_frame->frame, in); + if (ret < 0) { + av_log(ctx, AV_LOG_ERROR, "Failed to copy metadata fields from src to dst.\n"); + return NULL; + } + ret = map_frame_to_surface(out_frame->frame, &out_frame->surface); if (ret < 0) @@ -884,7 +896,7 @@ int ff_qsvvpp_filter_frame(QSVVPPContext *s, AVFilterLink *inlink, AVFrame *picr } do { - out_frame = query_frame(s, outlink); + out_frame = query_frame(s, outlink, in_frame->frame); if (!out_frame) { av_log(ctx, AV_LOG_ERROR, "Failed to query an output frame.\n"); return AVERROR(ENOMEM);