diff mbox series

[FFmpeg-devel] lavu/tx: stop using av_log(NULL, )

Message ID NWETFS_--3-9@lynne.ee
State New
Headers show
Series [FFmpeg-devel] lavu/tx: stop using av_log(NULL, ) | expand

Checks

Context Check Description
andriy/make_x86 success Make finished
andriy/make_fate_x86 fail Make fate failed

Commit Message

Lynne May 24, 2023, 8:35 p.m. UTC
Patch attached.

Comments

Paul B Mahol May 24, 2023, 8:44 p.m. UTC | #1
On 5/24/23, Lynne <dev@lynne.ee> wrote:
> Patch attached.
>
>

Probably fine.
Leo Izen May 24, 2023, 9:24 p.m. UTC | #2
On 5/24/23 16:35, Lynne wrote:
> Patch attached.
> 

+    av_log((void *)&tx_class, AV_LOG_DEBUG, "%s\n", bp.str);

The type of the first argument to av_log should be AVClass **, but this 
only appears to be AVClass *. See libavutil/log.c line 428.

- Leo Izen
Lynne May 25, 2023, 12:32 a.m. UTC | #3
May 24, 2023, 23:24 by leo.izen@gmail.com:

> On 5/24/23 16:35, Lynne wrote:
>
>> Patch attached.
>>
>
> +    av_log((void *)&tx_class, AV_LOG_DEBUG, "%s\n", bp.str);
>
> The type of the first argument to av_log should be AVClass **, but this only appears to be AVClass *. See libavutil/log.c line 428.
>
> - Leo Izen
>

Right, thanks, changed to:

> static const AVClass tx_class = {
>     .class_name                = "tx",
>     .item_name                 = av_default_item_name,
>     .version                   = LIBAVUTIL_VERSION_INT,
> };
>
> static const struct {
>     const AVClass *tx_class;
> } tx_log = {
>     &tx_class,
> };
Will push this tomorrow.
James Almer May 28, 2023, 1:07 a.m. UTC | #4
On 5/24/2023 9:32 PM, Lynne wrote:
> May 24, 2023, 23:24 by leo.izen@gmail.com:
> 
>> On 5/24/23 16:35, Lynne wrote:
>>
>>> Patch attached.
>>>
>>
>> +    av_log((void *)&tx_class, AV_LOG_DEBUG, "%s\n", bp.str);
>>
>> The type of the first argument to av_log should be AVClass **, but this only appears to be AVClass *. See libavutil/log.c line 428.
>>
>> - Leo Izen
>>
> 
> Right, thanks, changed to:
> 
>> static const AVClass tx_class = {
>>       .class_name                = "tx",
>>       .item_name                 = av_default_item_name,
>>       .version                   = LIBAVUTIL_VERSION_INT,
>> };
>>
>> static const struct {
>>       const AVClass *tx_class;
>> } tx_log = {
>>       &tx_class,
>> };
> Will push this tomorrow.

Can't add an AVClass* field to AVTXContext and set it to &tx_class 
during init?
Lynne May 28, 2023, 2:48 a.m. UTC | #5
May 28, 2023, 03:07 by jamrial@gmail.com:

> On 5/24/2023 9:32 PM, Lynne wrote:
>
>> May 24, 2023, 23:24 by leo.izen@gmail.com:
>>
>>> On 5/24/23 16:35, Lynne wrote:
>>>
>>>> Patch attached.
>>>>
>>>
>>> +    av_log((void *)&tx_class, AV_LOG_DEBUG, "%s\n", bp.str);
>>>
>>> The type of the first argument to av_log should be AVClass **, but this only appears to be AVClass *. See libavutil/log.c line 428.
>>>
>>> - Leo Izen
>>>
>>
>> Right, thanks, changed to:
>>
>>> static const AVClass tx_class = {
>>>       .class_name                = "tx",
>>>       .item_name                 = av_default_item_name,
>>>       .version                   = LIBAVUTIL_VERSION_INT,
>>> };
>>>
>>> static const struct {
>>>       const AVClass *tx_class;
>>> } tx_log = {
>>>       &tx_class,
>>> };
>>>
>> Will push this tomorrow.
>>
>
> Can't add an AVClass* field to AVTXContext and set it to &tx_class during init?
>

The struct is accessed from asm, didn't really want to fix all the loads
for something which only runs at init, and only if !CONFIG_SMALL.
Lynne May 28, 2023, 2:53 a.m. UTC | #6
This contains the entire Vulkan patchset, 99 patches from 4 authors.

Thanks to everyone who contributed code, reviewed code,
voiced their opinions and tested the code over the past 6 months.

Patchset attached (1.1 Mb uncompressed, too large for the ML).
Lynne May 28, 2023, 3:16 a.m. UTC | #7
May 28, 2023, 04:53 by dev@lynne.ee:

> This contains the entire Vulkan patchset, 99 patches from 4 authors.
>
> Thanks to everyone who contributed code, reviewed code,
> voiced their opinions and tested the code over the past 6 months.
>
> Patchset attached (1.1 Mb uncompressed, too large for the ML).
>

Forgot to git add the FATE ref files for the new pixfmts and
to exclude apache-licensed files from fate-source, bringing
the total up to 100 patches.
Anton Khirnov May 28, 2023, 5 p.m. UTC | #8
Quoting Lynne (2023-05-28 04:48:00)
> May 28, 2023, 03:07 by jamrial@gmail.com:
> 
> > On 5/24/2023 9:32 PM, Lynne wrote:
> >
> >> May 24, 2023, 23:24 by leo.izen@gmail.com:
> >>
> >>> On 5/24/23 16:35, Lynne wrote:
> >>>
> >>>> Patch attached.
> >>>>
> >>>
> >>> +    av_log((void *)&tx_class, AV_LOG_DEBUG, "%s\n", bp.str);
> >>>
> >>> The type of the first argument to av_log should be AVClass **, but this only appears to be AVClass *. See libavutil/log.c line 428.
> >>>
> >>> - Leo Izen
> >>>
> >>
> >> Right, thanks, changed to:
> >>
> >>> static const AVClass tx_class = {
> >>>       .class_name                = "tx",
> >>>       .item_name                 = av_default_item_name,
> >>>       .version                   = LIBAVUTIL_VERSION_INT,
> >>> };
> >>>
> >>> static const struct {
> >>>       const AVClass *tx_class;
> >>> } tx_log = {
> >>>       &tx_class,
> >>> };
> >>>
> >> Will push this tomorrow.
> >>
> >
> > Can't add an AVClass* field to AVTXContext and set it to &tx_class during init?
> >
> 
> The struct is accessed from asm, didn't really want to fix all the loads
> for something which only runs at init, and only if !CONFIG_SMALL.

That's largely missing the point of having a non-NULL logging context,
which is that the log callback has access to the context. It's private
in this case, but AVOptions could still be used to retrieve things like
per-context opaque.

There have also been discussions recently about a per-context logging
callback being highly useful for some cases.
Lynne May 28, 2023, 11:16 p.m. UTC | #9
May 28, 2023, 05:16 by dev@lynne.ee:

> May 28, 2023, 04:53 by dev@lynne.ee:
>
>> This contains the entire Vulkan patchset, 99 patches from 4 authors.
>>
>> Thanks to everyone who contributed code, reviewed code,
>> voiced their opinions and tested the code over the past 6 months.
>>
>> Patchset attached (1.1 Mb uncompressed, too large for the ML).
>>
>
> Forgot to git add the FATE ref files for the new pixfmts and
> to exclude apache-licensed files from fate-source, bringing
> the total up to 100 patches.
>

Pushed the patchset.
Again, thanks to everyone who contributed code, reviews,
paid attention to it, and tested it.

This is still new code, depending on new drivers, and a spec
which was rather rushed out to be released, so issue reports
are welcome.
Currently, the spec has one known issue - sampling from
video textures which have been decoded into does not
trigger the boundary conditions, as the textures are oversized.
This is not a problem for the decoder, but rather for API
users who wish to present the images rather than download
them. Doing so, there's visible corruption in the bottom
2 lines of the video.
diff mbox series

Patch

From 2813dcb5b885bdf0c3f78f8aead43f4b11149a70 Mon Sep 17 00:00:00 2001
From: Lynne <dev@lynne.ee>
Date: Wed, 24 May 2023 21:57:25 +0200
Subject: [PATCH] lavu/tx: stop using av_log(NULL, )

---
 libavutil/tx.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/libavutil/tx.c b/libavutil/tx.c
index e25abf998f..34fbe3f6c7 100644
--- a/libavutil/tx.c
+++ b/libavutil/tx.c
@@ -29,6 +29,12 @@ 
      ((x) == AV_TX_DOUBLE_ ## type) || \
      ((x) == AV_TX_INT32_ ## type))
 
+static 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)
 {
@@ -631,7 +637,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, AV_LOG_DEBUG, "%s\n", bp.str);
+    av_log((void *)&tx_class, AV_LOG_DEBUG, "%s\n", bp.str);
 }
 
 static void print_tx_structure(AVTXContext *s, int depth)
@@ -639,7 +645,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);
 
@@ -798,10 +804,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_DEBUG, "%s\n", bp.str);
+    av_log((void *)&tx_class, AV_LOG_DEBUG, "%s\n", bp.str);
 
     for (int i = 0; i < nb_cd_matches; i++) {
-        av_log(NULL, AV_LOG_DEBUG, "    %i: ", i + 1);
+        av_log((void *)&tx_class, AV_LOG_DEBUG, "    %i: ", i + 1);
         print_cd_info(cd_matches[i].cd, cd_matches[i].prio, 0, 1);
     }
 #endif
@@ -909,7 +915,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
 
-- 
2.40.0