avfilter/avfiltergraph: fix constant string comparision

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 8b375b2ffd.

Signed-off-by: Kacper Michajłow <kasper93@gmail.com>
This commit is contained in:
Kacper Michajłow
2025-11-30 01:56:07 +01:00
parent 89f984e3d1
commit 2456a39581

View File

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