Lines Matching refs:cd
260 static av_cold int ff_tx_null_init(AVTXContext *s, const FFTXCodelet *cd,
336 static void print_cd_info(const FFTXCodelet *cd, int prio, int print_prio)
341 av_bprintf(&bp, "%s - type: ", cd->name);
343 print_type(&bp, cd->type);
346 if (cd->min_len != cd->max_len)
347 av_bprintf(&bp, "[%i, ", cd->min_len);
349 if (cd->max_len == TX_LEN_UNLIMITED)
352 av_bprintf(&bp, "%i", cd->max_len);
354 av_bprintf(&bp, "%s, factors: [", cd->min_len != cd->max_len ? "]" : "");
356 if (i && cd->factors[i])
358 if (cd->factors[i] == TX_FACTOR_ANY)
360 else if (cd->factors[i])
361 av_bprintf(&bp, "%i", cd->factors[i]);
367 print_flags(&bp, cd->flags);
377 const FFTXCodelet *cd = s->cd_self;
382 print_cd_info(cd, cd->prio, 0);
390 const FFTXCodelet *cd;
400 static inline int check_cd_factors(const FFTXCodelet *cd, int len)
405 int factor = cd->factors[i];
501 const FFTXCodelet *cd = NULL;
503 while ((cd = *list++)) {
507 if (cd->type != TX_TYPE_ANY && type != cd->type)
511 if (((cd->flags & FF_TX_FORWARD_ONLY) && inv) ||
512 ((cd->flags & (FF_TX_INVERSE_ONLY | AV_TX_FULL_IMDCT)) && !inv))
516 if (((req_flags & cd->flags) != (req_flags)) ||
517 ((inv_req_mask & cd->flags) != (req_flags & inv_req_mask)))
521 if ((len < cd->min_len) || (cd->max_len != -1 && (len > cd->max_len)))
525 if (cd->cpu_flags != FF_TX_CPU_FLAGS_ALL &&
526 !(cpu_flags & (cd->cpu_flags & ~slow_mask)))
530 if (!check_cd_factors(cd, len))
542 cd_matches[nb_cd_matches].cd = cd;
543 cd_matches[nb_cd_matches].prio = cd->prio;
548 if ((cpu_flags & cd->cpu_flags) & slow_penalties[i][0])
553 if ((cd->flags & FF_TX_ALIGNED) && !(cd->flags & AV_TX_UNALIGNED))
557 if ((len == cd->min_len) && (len == cd->max_len))
561 if ((cd->flags & (FF_TX_FORWARD_ONLY | FF_TX_INVERSE_ONLY)))
566 max_factor = FFMAX(cd->factors[i], max_factor);
598 print_cd_info(cd_matches[i].cd, cd_matches[i].prio, 1);
612 const FFTXCodelet *cd = cd_matches[i].cd;
619 sctx->cd_self = cd;
621 s->fn[s->nb_sub] = cd->function;
622 s->cd[s->nb_sub] = cd;
625 if (cd->init)
626 ret = cd->init(sctx, cd, flags, opts, len, inv, scale);
634 s->cd[s->nb_sub] = NULL;