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 092354C3AB for ; Fri, 26 Jul 2024 08:30:27 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id A751F68D691; Fri, 26 Jul 2024 11:30:24 +0300 (EEST) Received: from vidala.lynne.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 115EB68D61A for ; Fri, 26 Jul 2024 11:30:18 +0300 (EEST) Message-ID: Date: Fri, 26 Jul 2024 10:30:16 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird To: ffmpeg-devel@ffmpeg.org References: <20240726064216.893951-1-dev@lynne.ee> Content-Language: en-US Autocrypt: addr=dev@lynne.ee; keydata= xjMEXnFG3BYJKwYBBAHaRw8BAQdA3FyJpqEdfQj4GA7OUWVrNheT9dUsIs+yUx6Hljr9mYvN FEx5bm5lIDxkZXZAbHlubmUuZWU+wpAEExYIADgWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUC XnFG3AIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCi/qXwPwNEZOTWAQCSNEA+kZLI NZ2dsR5Qg988c0HXpOXThZEjg+h1TL7KGgEA3Gff0c28efI02S6iMxazrpdWGHqHk7JN7pCj nt397wzOOARecUbcEgorBgEEAZdVAQUBAQdAjDdFQ5H+AJ9vwXrOb7val460g45EsheIaL5S 7/zSaX8DAQgHwngEGBYIACAWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCXnFG3AIbDAAKCRCi /qXwPwNEZKaxAQCHLV4gAk/B9JvRG27MYm22X3+5QRCLBtEILP29aDh+MQD/V8JFHATDXRY3 0LsmqR3sPQ0BJ1UFVZA5BUoIJPJZWwg= In-Reply-To: Subject: Re: [FFmpeg-devel] [PATCH] lavu/tx: stop using av_log(NULL, ) 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: , From: Lynne via ffmpeg-devel Reply-To: FFmpeg development discussions and patches Cc: Lynne Content-Type: multipart/mixed; boundary="===============0185110933506644355==" Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --===============0185110933506644355== Content-Language: en-US Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------eCrS9jh01glWc4VEFI9gatYk" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------eCrS9jh01glWc4VEFI9gatYk Content-Type: multipart/mixed; boundary="------------CHmW0dsKal0D5YrIF70Na2DZ"; protected-headers="v1" From: Lynne To: ffmpeg-devel@ffmpeg.org Message-ID: Subject: Re: [FFmpeg-devel] [PATCH] lavu/tx: stop using av_log(NULL, ) References: <20240726064216.893951-1-dev@lynne.ee> In-Reply-To: --------------CHmW0dsKal0D5YrIF70Na2DZ Content-Type: multipart/mixed; boundary="------------yySXIM4EMd0DlAT0IfFIvy09" --------------yySXIM4EMd0DlAT0IfFIvy09 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit On 26/07/2024 10:22, Andreas Rheinhardt wrote: > Lynne via ffmpeg-devel: >> Its not feasible to add an AVClass in the main context, as >> it would waste space, as the main context is recursive, and >> every bit of assembly would need to be changed. >> >> While its true that on paper av_log has access to the main >> context, that functionality is not used as no options are >> available for setting. No options will be exposed either, >> and it makes no sense. >> >> mpv has recently started warning if a NULL AVClass is used >> as an FFmpeg bug. While I don't fully agree nor disagree with >> this, this is a simple patch which fixes the issue. > > Really? > https://github.com/mpv-player/mpv/commit/54d0763b92f3d8239aa2258f2193eebdc74a91ef > is 13 years old and the check would only warn if a logcontext with NULL > AVClass* is used. Odd, something started triggering the check on my system. >> libavutil/tx.c | 16 +++++++++++----- >> 1 file changed, 11 insertions(+), 5 deletions(-) >> >> diff --git a/libavutil/tx.c b/libavutil/tx.c >> index 0aae4c7cf7..136d10c374 100644 >> --- a/libavutil/tx.c >> +++ b/libavutil/tx.c >> @@ -30,6 +30,12 @@ >> ((x) == AV_TX_DOUBLE_ ## type) || \ >> ((x) == AV_TX_INT32_ ## type)) >> >> +static const AVClass tx_class = { >> + .class_name = "tx", >> + .item_name = av_default_item_name, >> + .version = LIBAVUTIL_VERSION_INT, >> +}; >> + >> /* Calculates the modular multiplicative inverse */ >> static av_always_inline int mulinv(int n, int m) >> { >> @@ -645,7 +651,7 @@ static void print_cd_info(const FFTXCodelet *cd, int prio, int len, int print_pr >> if (print_prio) >> av_bprintf(&bp, ", prio: %i", prio); >> >> - av_log(NULL, log_level, "%s\n", bp.str); >> + av_log((void *)&tx_class, log_level, "%s\n", bp.str); >> } >> >> static void print_tx_structure(AVTXContext *s, int depth) >> @@ -653,7 +659,7 @@ static void print_tx_structure(AVTXContext *s, int depth) >> const FFTXCodelet *cd = s->cd_self; >> >> for (int i = 0; i <= depth; i++) >> - av_log(NULL, AV_LOG_DEBUG, " "); >> + av_log((void *)&tx_class, AV_LOG_DEBUG, " "); >> >> print_cd_info(cd, cd->prio, s->len, 0, AV_LOG_DEBUG); >> >> @@ -818,10 +824,10 @@ av_cold int ff_tx_init_subtx(AVTXContext *s, enum AVTXType type, >> AV_QSORT(cd_matches, nb_cd_matches, TXCodeletMatch, cmp_matches); >> >> #if !CONFIG_SMALL >> - av_log(NULL, AV_LOG_TRACE, "%s\n", bp.str); >> + av_log((void *)&tx_class, AV_LOG_TRACE, "%s\n", bp.str); >> >> for (int i = 0; i < nb_cd_matches; i++) { >> - av_log(NULL, AV_LOG_TRACE, " %i: ", i + 1); >> + av_log((void *)&tx_class, AV_LOG_TRACE, " %i: ", i + 1); >> print_cd_info(cd_matches[i].cd, cd_matches[i].prio, 0, 1, AV_LOG_TRACE); >> } >> #endif >> @@ -931,7 +937,7 @@ av_cold int av_tx_init(AVTXContext **ctx, av_tx_fn *tx, enum AVTXType type, >> *tx = tmp.fn[0]; >> >> #if !CONFIG_SMALL >> - av_log(NULL, AV_LOG_DEBUG, "Transform tree:\n"); >> + av_log((void *)&tx_class, AV_LOG_DEBUG, "Transform tree:\n"); >> print_tx_structure(*ctx, 0); >> #endif >> > > Did you ever test this? av_log() expects a pointer to an AVClass-enabled > struct, not a pointer to an AVClass. This will crash (it will interpret > AVClass.class_name as pointer to an AVClass) when the log is active > (when loglevel is high enough). No, I trusted that I did test it when I submitted it a year ago. --------------yySXIM4EMd0DlAT0IfFIvy09 Content-Type: application/pgp-keys; name="OpenPGP_0xA2FEA5F03F034464.asc" Content-Disposition: attachment; filename="OpenPGP_0xA2FEA5F03F034464.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: 7bit -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEXnFG3BYJKwYBBAHaRw8BAQdA3FyJpqEdfQj4GA7OUWVrNheT9dUsIs+yUx6H ljr9mYvNFEx5bm5lIDxkZXZAbHlubmUuZWU+wpAEExYIADgWIQT+UBOcaAVyyv1S H42i/qXwPwNEZAUCXnFG3AIbAwULCQgHAgYVCgkICwIEFgIDAQIeAQIXgAAKCRCi /qXwPwNEZOTWAQCSNEA+kZLINZ2dsR5Qg988c0HXpOXThZEjg+h1TL7KGgEA3Gff 0c28efI02S6iMxazrpdWGHqHk7JN7pCjnt397wzOOARecUbcEgorBgEEAZdVAQUB AQdAjDdFQ5H+AJ9vwXrOb7val460g45EsheIaL5S7/zSaX8DAQgHwngEGBYIACAW IQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCXnFG3AIbDAAKCRCi/qXwPwNEZKaxAQCH LV4gAk/B9JvRG27MYm22X3+5QRCLBtEILP29aDh+MQD/V8JFHATDXRY30LsmqR3s PQ0BJ1UFVZA5BUoIJPJZWwg= =ylY5 -----END PGP PUBLIC KEY BLOCK----- --------------yySXIM4EMd0DlAT0IfFIvy09-- --------------CHmW0dsKal0D5YrIF70Na2DZ-- --------------eCrS9jh01glWc4VEFI9gatYk Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature.asc" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQT+UBOcaAVyyv1SH42i/qXwPwNEZAUCZqNemQUDAAAAAAAKCRCi/qXwPwNEZKUk AQCIDW2dnywGKJ7fUVrRv4LrABODHaQ+XED6c2gSxS1lOgEApnhlahDwbvI2JPECMku4nED+Z1Tn CVONf1Qy0ExKEwk= =hzhh -----END PGP SIGNATURE----- --------------eCrS9jh01glWc4VEFI9gatYk-- --===============0185110933506644355== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ 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". --===============0185110933506644355==--