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 4F460470B5 for ; Sat, 26 Aug 2023 15:16:02 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id AB9F268C63A; Sat, 26 Aug 2023 18:14:14 +0300 (EEST) Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-he1eur04olkn2017.outbound.protection.outlook.com [40.92.73.17]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 897C968C5A9 for ; Sat, 26 Aug 2023 18:14:13 +0300 (EEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PiDrDSHlCt8Minc5l3EPVnRtyesAcA5bSBKx/6b2Rp/YjnPV45Edbyqh1jkgfgrIMEixm3CfP6pCCsrV2VCvoyi6wAY9ls59ncA2HzZvQuq8M7tjyP3I4tr/KnYRwnEokg9EUE//FM7rHBnUoM0/sctdsHJhOPwIorGiN7nPXaklCph6YKhdFBKGxUWqNgvAMcbhqso+A93N2/1L/P7uuZ9h3IfI9gQGhNpvtCua9ZWCVezqGzs2RJUyN43IMB8qdCTIQ/0ivrBin5O87a29V8GGqyZvvF3xkrKZcnuxVeD/gfAoovWnSA/aXmPBdLWM3UIJMCKSCXqWuKQ1KNo+Eg== 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=KQqa0smbIR1T31OUDG/DXRCSDB+n5mmG+FXQRPlivUM=; b=AF2nqsYvx6XDOuAOrE60nRYDBSoEdRKupMNob5MjmeuWcRW64dxHMxRNzfx8yNVjL5Wf1CAHkXHgzlaCnTkbQdJmE3AzGAeroVTrNLgNS0co3BihUiw7vekjGZJTfIyon80rCtKoUNp9JJmLc9NM4/4d5LgxhJHyvV+Z65hKIC7mN8m/V8e0ebgFWLspNDke31CWKwh1gBI9YiEQgZvNesbQJnQ6+9n89QxoAEI2M+h797bMbSffKotiG9A2r9PNV55Igf3hOAyczbfge/loS1dohVC52n6eFHkAg1oRDml4JfSOdnQxbqXn+wtDbwu1Ulf/LlyluBQQP2XYriOg7A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=KQqa0smbIR1T31OUDG/DXRCSDB+n5mmG+FXQRPlivUM=; b=EU2vWe9rPPcACwaWO/oXx8SboI5ctRtjrNB6glICeKPCvW/VCRvnebIITUWPCq5PXZxaD5Vz6jm/FTkSlQQ5x3OsW26NTNJYMuXiBSO8ln/LO6DDMIAS9bVwC9HFUyhTVQeYJRaHqSHjrwickXquvZI8l7UC4VebgB/nQFRD8w7rtd3bQngKBlp3DgbV0LkrXilw1yns26FdEfUsn4KvZRQU4zxEY9lpswuK9l7/e9+NUbgB35NX8p5mzw8pCREuZVXkMWyo0z9pNr9/L9gXEqwp+3RoajdBGcQam2uoGyAsDJ7HkZJbv+Bndm37l9ucISLV31XvimsNcG5Ne55a6Q== Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) by AS8P250MB0315.EURP250.PROD.OUTLOOK.COM (2603:10a6:20b:37e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6699.34; Sat, 26 Aug 2023 15:14:11 +0000 Received: from DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::e8dd:7fe1:2348:cd62]) by DU0P250MB0747.EURP250.PROD.OUTLOOK.COM ([fe80::e8dd:7fe1:2348:cd62%7]) with mapi id 15.20.6699.020; Sat, 26 Aug 2023 15:14:11 +0000 Message-ID: Date: Sat, 26 Aug 2023 17:15:27 +0200 Content-Language: en-US To: ffmpeg-devel@ffmpeg.org References: <20230826122328.95416-1-stefasab@gmail.com> From: Andreas Rheinhardt In-Reply-To: <20230826122328.95416-1-stefasab@gmail.com> X-TMN: [wqz+KrhevKqMe3/P2lR16IqlCaqD3IGtVOQs7OXrWwM=] X-ClientProxiedBy: FR3P281CA0113.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a3::12) To DU0P250MB0747.EURP250.PROD.OUTLOOK.COM (2603:10a6:10:3cb::16) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU0P250MB0747:EE_|AS8P250MB0315:EE_ X-MS-Office365-Filtering-Correlation-Id: e05e7193-378a-497d-21e1-08dba64719e3 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TymyvKzH3Ip4MdfDVo+bQRp+ANBiHnjh8dzDXuQaWHslELK/W2NbKJc12YZi9dPoerE99Pndm6OuImdX4xoN1bUK0W3lLojqKPNBZebKKPmAv5sGOZ7cXOAS9DQ41rUTzC4cGcg++kNItjeDAqF58C+gslhyab4V2rkvZkqaE2uXHCGQGdMe5IhJMxEPNxm5gg6eN5HzgGjmmE2RepYQYnn2xY2kOwKDYqRbLGMwHMw+IZCAwQuX9vfWytDL6bbdVSc1wp9eJUEp4mtqy8BACobZbVb7PJ1IQY2HPlf5zjihi17ysPQNraOeukgm2GCmPD+Zy8LPsO+u5DzuqRaNCXI48602zvUkgEvkG+nZo5TL/FxGEQRNIb1MY6vCh1ozffK3zEgKDQ/szHz4vM0SiUukF66/Xf2rbpIYYktOkoVpBj419tqQuYZ0iW5q+8KEspTEQQ/DcPirp0oVSHyEfADTNHcGgkFKnrIVXrpXSViPutlvn/4UASIG4vAeOGn1nx4eChF8bySJTLZB0U9lNoZlpdT4wi57yKSmPVSwcZMrqPwyoOuUeR1rIYDOrk2S X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?YndnK0tFS0V0MTV5VXlhNjFMQk9LVzZhdERSZHhsODBQbUNuV2crcUtYWWli?= =?utf-8?B?VXMyL2tJZktOMm0ybVhSRDM0Y3g5U3h6RWkvdk56dmhONzRQelV4RHBTa2FK?= =?utf-8?B?aTZJT2ljUUdXSHljS3FZYXRnY09IR20wOGVOdlUrc0VUc1pIa0oxNmo4UXpw?= =?utf-8?B?NmN6SlUvK0RqUU0rMm5teCtVMGxRMFFLSCtZQ3VlN2E4ZG0rSmZMWmpJemVi?= =?utf-8?B?aEJubTR1M1pGNUN6b3Jwb2poelk3UEdQUlI2dVBsWWs4Rm52b3BPeTZjQmQ0?= =?utf-8?B?UGg5aTAzVHhoWU10bEJ4Y3Y5MytzQlBiY2ZPUHVCMnVLcDNjNkpZWmIyV3Bz?= =?utf-8?B?MUE4MzdPYTZZVjBMZmZSWGJUem84dFFaNTJVa051aTZkRmlQZnlOejBObWZR?= =?utf-8?B?Z0NsOWduUnB0blhscDFYMEFxMkhyaHFXSld2MzcwOFZTUDN2MTZxbVZiRUlz?= =?utf-8?B?MEk3MDdaREplQWJhblNwZER5VkpjSUU3ejRQL0F3SjM4VDBaSnNyMDc5OUQ2?= =?utf-8?B?cmdsM3lWLzdVQXljRVdzcXdjcHlmOXlxOUdXL2NBbjJYNWx4V2dxNkpUWlNq?= =?utf-8?B?ZGtIcUtMYzFiYjJTZVYvL0ZWS1M2NHM2bE9IQ293U21qUVlvbFhtRmN2MnhV?= =?utf-8?B?QWtFZ2toZlV2dS83djhuWmlSRmJNY1JnaEhVaWNFR3Rsa05hTEhucWFIRjha?= =?utf-8?B?NVBvTWtTQ1NXRjhmMGZZRzJKQXZpaWorMGpnQW1JUUE5ZXFrU0hOMXFjWXNp?= =?utf-8?B?a0ZpbDJwTXl3U0ZLU0dJTVFjRDVGcEdCWWwyZFpCV212TWFMY214MXpoZHA2?= =?utf-8?B?N0dLcDQrK1IrdkNqVDJQYlBvd2hxQ2MxYUUxV296SkxDZURNYldoWFBKODEr?= =?utf-8?B?a1VrQXgzdkc2aWE1OE82Slphb1N5SlVhSG1GMDRtZzdyQm5xUjBzWS9KbTlr?= =?utf-8?B?aTVXQ2hmb2xjUGJnUkl4cVIxODlaTnJaNkdYU0hYdlhrTm5KRTFHUzJhLzhp?= =?utf-8?B?STZZUlNRSXRmQzJSc2ZpMTQ1d2g4UkZlVE5lcnpabndBZDZQc2d4L2paUEJv?= =?utf-8?B?ck8vUTErbisyVUFRbndSRFBLNjcyazNKZFR0dlMzY3gwQm1yQmk5U1p0S3lv?= =?utf-8?B?eXpURzhyb1hXcGJyT08vYU0xSENXdHJaM1RrczJsem1VS1V3R3FQWHBJYmRm?= =?utf-8?B?MStGMWhjZlExbTEyR0xIUWorVnVjY1ZwcXFXQkpiUC9sVmhaVG5lWE5jSXZs?= =?utf-8?B?Ri9URktuUXVSNWxtY3ZqenF4L0pUVW5Ub0l5OTAzdWV6bDJGa2lFZ1h5V2s1?= =?utf-8?B?RFJQVHVrMHdUODE2R2Y4L2pHNDdKWHhKZVZqTFg2SlpUanlQalFOWENIWUlw?= =?utf-8?B?ZjdiNkNzRWE3NTR6N054KzE3WW1Vc29RVjl6VTF5S2ErU3JxYVU4bkZub3lR?= =?utf-8?B?UFI1bVhOK1A2WHhGVndtSjRBRzlyTURlcDlHQmRNd2pVaGRUYVM0L20yVncx?= =?utf-8?B?SWdoM2xhSXVqRkdETzJ4ckRzQTVMZ25pelFPcFVKcjAxUHAwV3FLZ2RISTJY?= =?utf-8?B?TE5FbXdpZnhNT0hJOXg5bWdoRU1rNjVWclZRRXRtNWdVb1Q1QjZYRks4QUhW?= =?utf-8?B?MElwQm5tblV4blZTeGR2RnBhWG1CR3g1bmd1K3ozVHFiaDUyMFZUNm82cFRw?= =?utf-8?Q?Sl7+H9nHxARV8G+VeULC?= X-OriginatorOrg: outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: e05e7193-378a-497d-21e1-08dba64719e3 X-MS-Exchange-CrossTenant-AuthSource: DU0P250MB0747.EURP250.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2023 15:14:11.2433 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8P250MB0315 Subject: Re: [FFmpeg-devel] [PATCH] lsws/swscale.h: introduce sws_get_gaussian_vec 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: Stefano Sabatini: > Use in place of sws_getGaussianVec. > > The new function enable better log handling, and provide better naming Better log handling? Why? > for the variance variable, now named standard_deviation to reflect the > meaning of the parameter. > --- > doc/APIchanges | 3 +++ > libswscale/swscale.h | 21 ++++++++++++++++++- > libswscale/utils.c | 41 +++++++++++++++++++++++++++++--------- > libswscale/version.h | 2 +- > libswscale/version_major.h | 4 ++++ > 5 files changed, 60 insertions(+), 11 deletions(-) > > diff --git a/doc/APIchanges b/doc/APIchanges > index ad1efe708d..bad2d61027 100644 > --- a/doc/APIchanges > +++ b/doc/APIchanges > @@ -2,6 +2,9 @@ The last version increases of all libraries were on 2023-02-09 > > API changes, most recent first: > > +2023-08-26 - xxxxxxxxxx - lsws 7.4.100 - swscale.h > + Introduce sws_get_gaussian_vec, use in place of sws_getGaussianVec. > + > 2023-08-18 - xxxxxxxxxx - lavu 58.17.100 - channel_layout.h > All AV_CHANNEL_LAYOUT_* macros are now compatible with C++ 17 and older. > > diff --git a/libswscale/swscale.h b/libswscale/swscale.h > index 9d4612aaf3..f002b5c7d2 100644 > --- a/libswscale/swscale.h > +++ b/libswscale/swscale.h > @@ -355,11 +355,30 @@ int sws_getColorspaceDetails(struct SwsContext *c, int **inv_table, > */ > SwsVector *sws_allocVec(int length); > > +#if FF_API_SWS_GET_GAUSSIAN_VEC > /** > - * Return a normalized Gaussian curve used to filter stuff > + * Return a normalized Gaussian curve used to filter stuff. > + * > * quality = 3 is high quality, lower is lower quality. > */ > SwsVector *sws_getGaussianVec(double variance, double quality); Missing attribute_deprecated as well as the @deprecated doxygen thing refering to its replacement. > +#endif > + > +/** > + * Compute and return a normalized Gaussian vector. > + * > + * @param vecp: pointer where the computed vector is put in case of > + * success > + * @param standard_deviation the standard deviation used to generate > + * the Gaussian vector, must be a non-negative value > + * @param quality the quality of the generated Gaussian vector, must > + * be a non-negative value. It affects the lenght of the generated > + * vector. A value equal to 3 corresponds to high quality. > + * > + * @return a negative error code on error, non negative otherwise > + */ > +int sws_get_gaussian_vec(SwsVector **vecp, > + double standard_deviation, double quality); > > /** > * Scale all the coefficients of a by the scalar value. > diff --git a/libswscale/utils.c b/libswscale/utils.c > index 8e74c6603e..96034af1e0 100644 > --- a/libswscale/utils.c > +++ b/libswscale/utils.c > @@ -2139,31 +2139,54 @@ SwsVector *sws_allocVec(int length) > return vec; > } > > -SwsVector *sws_getGaussianVec(double variance, double quality) > +int sws_get_gaussian_vec(SwsVector **vecp, > + double standard_deviation, double quality) > { > - const int length = (int)(variance * quality + 0.5) | 1; > + const int length = (int)(standard_deviation * quality + 0.5) | 1; > int i; > double middle = (length - 1) * 0.5; > SwsVector *vec; > + const double variance = standard_deviation * standard_deviation; > > - if(variance < 0 || quality < 0) > - return NULL; > + if (standard_deviation < 0 || quality < 0) { > + av_log(NULL, AV_LOG_ERROR, > + "Invalid negative standard deviation %f or quality %f provided as input to the sws_get_gaussian_vec function\n", > + standard_deviation, quality); > + return AVERROR(EINVAL); > + } > > vec = sws_allocVec(length); > - > - if (!vec) > - return NULL; > + if (!vec) { > + av_log(NULL, AV_LOG_ERROR, > + "Could not allocate vector for the sws_get_gaussian_vec function\n"); > + return AVERROR(ENOMEM); > + } > > for (i = 0; i < length; i++) { > double dist = i - middle; > - vec->coeff[i] = exp(-dist * dist / (2 * variance * variance)) / > - sqrt(2 * variance * M_PI); > + vec->coeff[i] = exp(-dist * dist / (2 * variance)) / > + sqrt(2 * standard_deviation * M_PI); > } > > sws_normalizeVec(vec, 1.0); > + *vecp = vec; > > + return 0; > +} > + > +#if FF_API_SWS_GET_GAUSSIAN_VEC > +SwsVector *sws_getGaussianVec(double variance, double quality) > +{ > + SwsVector *vec; > + int ret; > + > + ret = sws_get_gaussian_vec(&vec, variance, quality); > + if (ret < 0) { > + return NULL; > + } > return vec; > } > +#endif // FF_API_SWS_GET_GAUSSIAN_VEC > > /** > * Allocate and return a vector with length coefficients, all > diff --git a/libswscale/version.h b/libswscale/version.h > index 51eb013a29..12412bd538 100644 > --- a/libswscale/version.h > +++ b/libswscale/version.h > @@ -28,7 +28,7 @@ > > #include "version_major.h" > > -#define LIBSWSCALE_VERSION_MINOR 3 > +#define LIBSWSCALE_VERSION_MINOR 4 > #define LIBSWSCALE_VERSION_MICRO 100 > > #define LIBSWSCALE_VERSION_INT AV_VERSION_INT(LIBSWSCALE_VERSION_MAJOR, \ > diff --git a/libswscale/version_major.h b/libswscale/version_major.h > index 88577a2b42..aa0baef7c6 100644 > --- a/libswscale/version_major.h > +++ b/libswscale/version_major.h > @@ -32,4 +32,8 @@ > * the public API and may change, break or disappear at any time. > */ > > +#ifndef FF_API_SWS_GET_GAUSSIAN_VEC > +#define FF_API_SWS_GET_GAUSSIAN_VEC (LIBSWSCALE_VERSION_MAJOR < 8) > +#endif > + > #endif /* SWSCALE_VERSION_MAJOR_H */ _______________________________________________ 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".