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 4FF87471E8 for ; Fri, 26 Jul 2024 11:42:38 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id CABAF68D128; Fri, 26 Jul 2024 14:42:35 +0300 (EEST) Received: from vidala.lynne.ee (vidala.pars.ee [116.203.72.101]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 178A668D128 for ; Fri, 26 Jul 2024 14:42:29 +0300 (EEST) Message-ID: <071604fd-397e-4f70-b207-6926261f4933@lynne.ee> Date: Fri, 26 Jul 2024 13:42:27 +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="===============0402210842880881448==" 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) --===============0402210842880881448== Content-Language: en-US Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------mJNw60IDbDxMROzs3hFdNRZS" This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------mJNw60IDbDxMROzs3hFdNRZS Content-Type: multipart/mixed; boundary="------------jGGflz18melmLfKLz1bxkeOC"; protected-headers="v1" From: Lynne To: ffmpeg-devel@ffmpeg.org Message-ID: <071604fd-397e-4f70-b207-6926261f4933@lynne.ee> Subject: Re: [FFmpeg-devel] [PATCH] lavu/tx: stop using av_log(NULL, ) References: <20240726064216.893951-1-dev@lynne.ee> In-Reply-To: --------------jGGflz18melmLfKLz1bxkeOC Content-Type: multipart/mixed; boundary="------------zk2MYNBmq4DtXX4mDTV1b3rC" --------------zk2MYNBmq4DtXX4mDTV1b3rC Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 26/07/2024 11:03, Andreas Rheinhardt wrote: > Lynne via ffmpeg-devel: >> 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. >> > > You have been informed of this last year: > https://patchwork.ffmpeg.org/project/ffmpeg/patch/NWETFS_--3-9@lynne.ee/ > Then as now there are lots of FATE failures with this patch (as > patchwork shows). There was humor in my response, maybe you didn't see it. --------------zk2MYNBmq4DtXX4mDTV1b3rC 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----- --------------zk2MYNBmq4DtXX4mDTV1b3rC-- --------------jGGflz18melmLfKLz1bxkeOC-- --------------mJNw60IDbDxMROzs3hFdNRZS 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/qXwPwNEZAUCZqOLowUDAAAAAAAKCRCi/qXwPwNEZG0F AP9lU8OwLUofV0Rd2OASvvlO42ROJG4Ms8rC1PY0fGG5LwD/eNW86KT+anbtmd1sET3HhUovzs1b x9JDSg6AIwD3HA8= =en5T -----END PGP SIGNATURE----- --------------mJNw60IDbDxMROzs3hFdNRZS-- --===============0402210842880881448== 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". --===============0402210842880881448==--