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 C72D243045 for ; Mon, 17 Oct 2022 01:38:39 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 2EF4368BCA0; Mon, 17 Oct 2022 04:38:37 +0300 (EEST) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id A6A8068BAF0 for ; Mon, 17 Oct 2022 04:38:30 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1665970715; x=1697506715; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=8WtecRNYHIcULY0taZ5l5lKRvO9Ui4BPpal8T/UKAIk=; b=iiWzB6N7Zz+fm6n2/CnPK2gGciMBKl+F13wFhbdhU62WgaNW/j+T7aVO dzg5P/xxOdWt6AGvvixoaWmEprebthg7Bp1pOv/TwP0m2g4+jmemce7zG aS73O5u3OX9Sv8aKKxBLXm8MfR+AKaesQVLtVuiQJMP/K2qjoYL8R3pNe F+D8EZqgD2DGvyaV3tV+Fv4QrGzJPINFxNm7KTLn4B5SKdHtGSny+bOl8 UGNPwz/QwPyVNG+5Gs940wejGMhCTHJ9xIfuQgeLTPMvZqR3DKC6YrrmC M7eFgymymVrkJLk3AedOM3nORaVUFoNxRZRPJs1s4hp7bIBqebn6P+mt6 A==; X-IronPort-AV: E=McAfee;i="6500,9779,10502"; a="305671048" X-IronPort-AV: E=Sophos;i="5.95,190,1661842800"; d="scan'208";a="305671048" Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by fmsmga103.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Oct 2022 18:38:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6500,9779,10502"; a="717322514" X-IronPort-AV: E=Sophos;i="5.95,190,1661842800"; d="scan'208";a="717322514" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by FMSMGA003.fm.intel.com with ESMTP; 16 Oct 2022 18:38:28 -0700 Received: from fmsmsx609.amr.corp.intel.com (10.18.126.89) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31; Sun, 16 Oct 2022 18:38:28 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) by fmsmsx609.amr.corp.intel.com (10.18.126.89) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2375.31 via Frontend Transport; Sun, 16 Oct 2022 18:38:28 -0700 Received: from NAM04-MW2-obe.outbound.protection.outlook.com (104.47.73.170) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2375.31; Sun, 16 Oct 2022 18:38:28 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=FcsYp9sOrPnoFxUxPctLIqlG4fyMd5ns/otHcbb1+2AD7H3kdvHgVQh9XrAOR27EBnjRWnayPlsiBrzMpxoCVusIeG6HDbafpQfeNWnH+osr8KvQqr/zHYnEyg7RyIR4h+s4bdbiHX7zY1MADuhM0lrAMLtIz3NaBj0oidBL1i6jBxX0W60nYQuQsKKIV2lMqQSBnH5STRgd8NEAGHLeyZ9DPspPzhTxqw+XpvmtnF9RbmJPzWOszNwu3LP196Ls28mCiX0a+8DeS1Pn1Sfct+BHthpuUL7o2hcvfkDZq/1AyePsyNuXqP03/Od5KXu91aCAhxdqfLJjVPC0n+ojRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=8WtecRNYHIcULY0taZ5l5lKRvO9Ui4BPpal8T/UKAIk=; b=XCss/R47NgTYoHCSRmww8rr6MBHGrvMuNrVpYzbr39IDEFfq4f1e1qJpNSTrKd1F3Bmq62Yi8XvjlE42yukMfgqY1j3eDL3lteZn0R7kuTqjYzgQmdQ1nVS7NfMxMcn8H+9qac/oKvW/oQMkVfi8sVmVc1VHNhkFGqUhtk2F+Mji4gGVsV+yF9TLmxGWHybHOmcvCbAuJoP19NHmeDuKuMuQeAcIrOdTeSbMo2AahorqxhbQrTVS5sqaqP+N7Oj/KJegyZmNvh3gaCjan+0Y87NhfgSnWM4Mtmc+Stsop9GHjrueJj+vHuJ3JRhugqGIS/0Kg/gX/AYLp2we+FO4vw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by PH7PR11MB6474.namprd11.prod.outlook.com (2603:10b6:510:1f2::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.29; Mon, 17 Oct 2022 01:38:26 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::81a7:b839:8e79:647d]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::81a7:b839:8e79:647d%7]) with mapi id 15.20.5723.033; Mon, 17 Oct 2022 01:38:26 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel][PATCH] lavc/qsvenc: fill the padding area Thread-Index: AQHY3H9vTvvairEmpEm8dbBmx0evv64R2LwA Date: Mon, 17 Oct 2022 01:38:26 +0000 Message-ID: <8a4cda5732fe18bc41e7116fc5a42ff5d625441c.camel@intel.com> References: <20221010080545.1550-1-haihao.xiang@intel.com> In-Reply-To: <20221010080545.1550-1-haihao.xiang@intel.com> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.36.5-0ubuntu1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: BN9PR11MB5515:EE_|PH7PR11MB6474:EE_ x-ms-office365-filtering-correlation-id: 1003f9e8-3f0f-4c58-5ead-08daafe04974 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: x/fzVpURe2af8u6WIWGhT8XYlePDSywkQJrpPZSjc71cgyWVL3ZIy3Rnsc6pSbujqi7ASUm06A4mSyolRTBtWh26inZzrBWGNmn15uT681/tYymNwFfYMG9PmIoeslXhMPovyym01Om8tNlbL1lFy8mjGlpmwdpKSyXQ3qAdAon0c+jo3NBVzdccAuAhXxdkvnFaWTzm8tlD0EEfqYlw6POJ7ghalc+H2SXI82pm7vhz4j4864Tz1I3re3MM+kxGpNYaQjmOLiWk7xlEp4rzIXTHPeDFZLbJSB2PlbVnAZIDjklVHR6568wZ0NYPGz4cdZuzihd7eyI522BAqyR9mZDSQxkjvO9axUnEXuVLIpwMk11pYXsXx853djt7UoLwodNJKTQ+wuPhW6B8ZdPOunt3Ae16zIOlPTBGzKoZTsAck+PmMl+9BUf09bbHY3C+Lhh/5sajcfojxY84Azb4l1JWqlHQ6dZ6AgHa7fzvx/gnlFU3qVlRUnVgTJk2zFwHPzxTIR76ywtCtzmAGp5Z4PxAW2IMA+h1JtPhN5PiUx05hgeuMNtZaX/LewpI3P24ij7UgZZVPXgZMDNsZljy4+CM3uMaQlQDaQEotERX4wrfUlSD6hmmlECA6utK8vXuGoBhtXlyfY+1eP2KJGj0SdbASQG4YuhwW/pgw5v8oHoaFBOyarPcSM0rp6WQVvQ2sQtgqleT/Ul4W2Z6ynH30IfputQjhiIgdmYo4hVndWlDEorfSxXwoK2E/H6yru6a2WPd+BO+WymBQrAIIlxWcQ== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230022)(346002)(136003)(376002)(396003)(366004)(39860400002)(451199015)(6916009)(91956017)(64756008)(66556008)(66946007)(8676002)(66476007)(76116006)(66446008)(36756003)(6506007)(41300700001)(5660300002)(316002)(26005)(6512007)(86362001)(8936002)(83380400001)(4001150100001)(82960400001)(2906002)(2616005)(38100700002)(186003)(71200400001)(478600001)(6486002)(38070700005)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?cUNMdlBPTXR5N01CTzkrcjN2RlNzWXMvbitvQjVyV1NRVFE1SHRHSFNJT2Fn?= =?utf-8?B?cHQrZnBzWlNST2t4NlRhbjRvTDByMkdld3ZiVkRSOVlMZmdRd0ZDUDhkNHFq?= =?utf-8?B?QXBUdWc1akdYWTFsMXk1UTBtZnQ0NDExUUNvWTZDelVsWWUwWUIvMGNYUG90?= =?utf-8?B?b3ROek5RVlFVNzBQQ3FhMStDOG9zdHE3cXF0VHNCMFh6MVh6QU5BUTlQSUJI?= =?utf-8?B?dWtkNEY2OGtDZjZVQ2NuNkkzNjEzTTh5NzMyVUpjbkZZRXUxZFY2b1RSMEoy?= =?utf-8?B?MWtXRlJMMHFnbmdybGR6WVFqOFJjei8yWnZZeEZpMmdibURMMS9mWmN3N00r?= =?utf-8?B?TUpuZ2NoS3dnR0R1SGZ5cnFuK3JmYXJqTlY1OW9YUXFzQlZnaStkMDBUM2oz?= =?utf-8?B?U2VleStrSktGN2xhTDR4OWtqc0NxU2hVWkhPVlZ0cVdwS2NHN1VOTTFnMzFt?= =?utf-8?B?ejIrVlcxS3JoWW5ybmpSaTdVWW8xRlJ6NjFlZXBQejBtZDR3NjdEK0lwRERO?= =?utf-8?B?TEozek1ocjcza1pVUmx5MnA2c3l0K0FCclE4Zk5kRWM0KzRScUFNVk85V1FV?= =?utf-8?B?QXpKTGtuVzhEYjkrUmI3cUlOWTFJYURaYmoxbWlHaWZRa1BQWVc0RUlmZFFt?= =?utf-8?B?SHlNaDZzRytrMXVObGVvVnFSMDNSZ3JIcjY2d0plblFQY1JkemR4VVZZRUZX?= =?utf-8?B?enNKQ3gvM21pNWQ4MTEwSGlDWnJkYlZmemN3UkZBQ0NlZEF2TVU2WnZ1Qm1I?= =?utf-8?B?THFJL25vVjFXODIwUUVwSUlSTDdtcXN5L29CVVBYVUUzRXQxN3UyZXh2WkVh?= =?utf-8?B?djdTRWJKZ3NyNG1Ub09JaHkweExhNWk1a1E1dGJjVUFxWGVwdE5DSnR1S2Uz?= =?utf-8?B?Q25Eb3FQWVRxdEtlRnhiMDVtZ3VaYmdYaGpuaFdKRnpGNWhqQUFrNGJ5bnAy?= =?utf-8?B?TUJCNW8zZWl4cFV6UzhIcHdaQk0vRVdUejJpRDluUGd0TjMzSUtCUmhqMWl4?= =?utf-8?B?VzdSMkxmY043N0ozeXgrRTdramFQQzk4NzR4MGdDdDNaUHppTjRYQVZrMXZk?= =?utf-8?B?Z2JiSzhvbnV2alJueXljbWo4UklnTnltWHVFMGJvR2taZnRIb21YazlHYlpw?= =?utf-8?B?UEsyNTBmaCtaaTYxY2RVQW55QWVzQ3pnWlZFQ3pVaXR4VWUrbUZZWDdweVJr?= =?utf-8?B?WHF2VDAvNHRkVmM1MG9pVmNNOHN0NytnUmp2Nk4wRGt4Y21qSVVtSWw0T2ky?= =?utf-8?B?MTZTSGo4VS9MNTdVMDJsd0hDRHY3TzhEd0NKclIrcllGMlZJZWc4ZkQvajRq?= =?utf-8?B?RUkvQndQSkZJNjByaHUrRnNPUkg3bmcrNmtBUU1qTDBsTkRiMnVjL2svL0Fx?= =?utf-8?B?T2tEUjFtOUNmdEx6UXRERHpNaTNoeUZOR2dUVXVDT21jMmF2YjNPTStyL09P?= =?utf-8?B?WXk0dnlQYTZyNjZUZDNBYU5MYjFLVFRmSEovTTVsWEVTZlozLzdTeU5VMGIr?= =?utf-8?B?SHlEZWpKVTFPMWZzTlQ4M0RQcy9kT29ITklNR3pjWWRpRXNNNk5qWWRrVjRS?= =?utf-8?B?RnVDbTdXNFRQeWVWYk1EMVd5dkdNQnhOQXBPd3I3NnlLNVFUSFlMZGFocWdD?= =?utf-8?B?UTlpUFo2MmR2TysrSEFDVzdadDgrNUNJRkY0VjNCOU9SRVNQQXpWYmtGcUtV?= =?utf-8?B?RGE4NzVNMTNqWnJCdUpsTkpMTENiRG1KQVlWQWVpRHc2Y1dMWStBbzlTSWFQ?= =?utf-8?B?aXlVSWNzelhNVzEzaXdOVHp5UVlFT3A2RzY4dFRlRytJRWhZMXpJZE53V2tt?= =?utf-8?B?d2Q1ajI1amdhZzRWMnlCMGNLNGdBd25jYkR1aFQ4ZnI4M09iTVFHYnM3Q1Bt?= =?utf-8?B?bmlzUEUzVmhGMUZXelRjbFpJWFYwYlQ2c3ZhemdFc0Nod3lWc3NYOXZzeE9m?= =?utf-8?B?NGF4Nm1QTlJLNlQ4blN6c3ZJR0ZjcFJtbzIwbExMdmV2OFZQUXZoR0ZGZDZo?= =?utf-8?B?aytiSWFMME5yM3VCVGI0U0djOHh0MFRJOHR1cjkyUnNZaDc2azYrTlVxaUxi?= =?utf-8?B?VW0yRWwxQlZjekl1YkZ3NnNxTWJWWVN2aHFJRCttRHpCMWYrOXlxMjZRczVv?= =?utf-8?B?c0ZKcG9iVU5zSlFLU0psZFNoNzZIbGRkV0tTem1yR1BsQ2Fmc3krT0x6dW9P?= =?utf-8?B?dlE9PQ==?= Content-ID: <11134ECBD793B44CB48812862DD0BE3D@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1003f9e8-3f0f-4c58-5ead-08daafe04974 X-MS-Exchange-CrossTenant-originalarrivaltime: 17 Oct 2022 01:38:26.6088 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4CshBWZJ5T73AWcBE7UuzOLJp0e44SX6mvVGi4wSkm8P/wD3OM+Fm6HoRz1mvYWQznHkNn1SADKctXod7W+oxQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB6474 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH] lavc/qsvenc: fill the padding area 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 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: On Mon, 2022-10-10 at 16:05 +0800, Xiang, Haihao wrote: > From: Haihao Xiang > > qsvenc makes a copy when the input in system memory is not padded as the > SDK requires, however the padding area is not filled with right data > > Signed-off-by: Haihao Xiang > --- > libavcodec/qsvenc.c | 69 +++++++++++++++++++++++++++++++++++++++++++-- > 1 file changed, 67 insertions(+), 2 deletions(-) > > diff --git a/libavcodec/qsvenc.c b/libavcodec/qsvenc.c > index dc5479d0f3..15e6936a65 100644 > --- a/libavcodec/qsvenc.c > +++ b/libavcodec/qsvenc.c > @@ -1514,6 +1514,64 @@ static int get_free_frame(QSVEncContext *q, QSVFrame > **f) > return 0; > } > > +static int qsvenc_fill_padding_area(AVFrame *frame, int new_w, int new_h) > +{ > + const AVPixFmtDescriptor *desc; > + int max_step[4], filled[4] = { 0 }; > + > + desc = av_pix_fmt_desc_get(frame->format); > + av_assert0(desc); > + av_image_fill_max_pixsteps(max_step, NULL, desc); > + > + for (int i = 0; i < desc->nb_components; i++) { > + const AVComponentDescriptor *comp = &desc->comp[i]; > + int sheight, dheight, plane = comp->plane; > + ptrdiff_t swidth = av_image_get_linesize(frame->format, > + frame->width, > + plane); > + ptrdiff_t dwidth = av_image_get_linesize(frame->format, > + new_w, > + plane); > + > + if (swidth < 0 || dwidth < 0) { > + av_log(NULL, AV_LOG_ERROR, "av_image_get_linesize failed\n"); > + return AVERROR(EINVAL); > + } > + > + if (filled[plane]) > + continue; > + > + sheight = frame->height; > + dheight = new_h; > + > + if (plane) { > + sheight = AV_CEIL_RSHIFT(frame->height, desc->log2_chroma_h); > + dheight = AV_CEIL_RSHIFT(new_h, desc->log2_chroma_h); > + } > + > + // Fill right padding > + if (new_w > frame->width) { > + for (int j = 0; j < sheight; j++) { > + void *line_ptr = frame->data[plane] + j * frame- > >linesize[plane] + swidth; > + > + av_memcpy_backptr(line_ptr, > + max_step[plane], > + new_w - frame->width); > + } > + } > + > + // Fill bottom padding > + for (int j = sheight; j < dheight; j++) > + memcpy(frame->data[plane] + j * frame->linesize[plane], > + frame->data[plane] + (sheight - 1) * frame- > >linesize[plane], > + dwidth); > + > + filled[plane] = 1; > + } > + > + return 0; > +} > + > static int submit_frame(QSVEncContext *q, const AVFrame *frame, > QSVFrame **new_frame) > { > @@ -1543,8 +1601,9 @@ static int submit_frame(QSVEncContext *q, const AVFrame > *frame, > /* and to make allocation continious for data[0]/data[1] */ > if ((frame->height & 31 || frame->linesize[0] & (q->width_align - > 1)) || > (frame->data[1] - frame->data[0] != frame->linesize[0] * > FFALIGN(qf->frame->height, q->height_align))) { > - qf->frame->height = FFALIGN(frame->height, q->height_align); > - qf->frame->width = FFALIGN(frame->width, q->width_align); > + int tmp_w, tmp_h; > + qf->frame->height = tmp_h = FFALIGN(frame->height, q- > >height_align); > + qf->frame->width = tmp_w = FFALIGN(frame->width, q- > >width_align); > > qf->frame->format = frame->format; > > @@ -1562,6 +1621,12 @@ static int submit_frame(QSVEncContext *q, const AVFrame > *frame, > av_frame_unref(qf->frame); > return ret; > } > + > + ret = qsvenc_fill_padding_area(qf->frame, tmp_w, tmp_h); > + if (ret < 0) { > + av_frame_unref(qf->frame); > + return ret; > + } > } else { > av_frame_unref(qf->frame); > ret = av_frame_ref(qf->frame, frame); Will apply, -Haihao _______________________________________________ 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".