avfilter/avfiltergraph: fix constant string comparision master
authorKacper Michajłow <kasper93@gmail.com>
Sun, 30 Nov 2025 00:56:07 +0000 (01:56 +0100)
committerKacper Michajłow <kasper93@gmail.com>
Sun, 30 Nov 2025 02:02:41 +0000 (03:02 +0100)
It's not guaranteed that the conversion filter name string will be
deduplicated to the same memory location. While this is common
optimization to do, we cannot rely on it always happening.

Fixes regression since 8b375b2ffd4377909180241cdc65d63d372a35a3.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
libavfilter/avfiltergraph.c

index a46a7bd408b6e58a4477f8fd27e6e949e30edd77..d5c2ef54e698ea64da4773e2651358f011334bb0 100644 (file)
@@ -570,7 +570,7 @@ retry:
                 void *b = FF_FIELD_AT(void *, m->offset, link->outcfg);
                 if (a && b && a != b && !m->can_merge(a, b)) {
                     for (k = 0; k < num_conv; k++) {
-                        if (conv_filters[k] == m->conversion_filter)
+                        if (!strcmp(conv_filters[k], m->conversion_filter))
                             break;
                     }
                     if (k == num_conv) {
@@ -683,7 +683,7 @@ retry:
 
                 for (neg_step = 0; neg_step < neg->nb_mergers; neg_step++) {
                     const AVFilterFormatsMerger *m = &neg->mergers[neg_step];
-                    if (m->conversion_filter != conv_filters[k])
+                    if (strcmp(m->conversion_filter, conv_filters[k]))
                         continue;
                     if ((ret = MERGE(m,  inlink)) <= 0 ||
                         (ret = MERGE(m, outlink)) <= 0) {