Moin Sven, On Fri, Sep 09, 2016 at 11:13:55 +0100, Sven C. Dack wrote:
I may be missing something, but my excuse is that I can't test, but just inspect by looking at it: > + if (s->interp_algo == NPPI_INTER_SUPER && > + (out_width > in_width && out_height > in_height)) { > + s->interp_algo = NPPI_INTER_LANCZOS; > + av_log(ctx, AV_LOG_WARNING, "super-sampling not supported for > output dimensions, using lanczos instead.\n"); > + } > + if (s->interp_algo == NPPI_INTER_SUPER && > + !(out_width < in_width && out_height < in_height)) { > + s->interp_algo = NPPI_INTER_CUBIC; > + av_log(ctx, AV_LOG_WARNING, "super-sampling not supported for > output dimensions, using cubic instead.\n"); > + } > + } Let's assume s->interp_algo=NPPI_INTER_SUPER, out_width>in_width, out_height>in_height: if (true && (true && true)) { } if (true && !(false && false) { } Both blocks will be entered! Didn't you see both messages when testing? Your commit message says ffmpeg needs to choose a different algo if both dimensions aren't smaller, that's the second if(), which should be the top-level decider: > + if (s->interp_algo == NPPI_INTER_SUPER && > + !(out_width < in_width && out_height < in_height)) { Then you seem to choose lanczos only if both are greater, so let me do this as such: > + if (out_width > in_width && out_height > in_height) { > + s->interp_algo = NPPI_INTER_LANCZOS; > + av_log(ctx, AV_LOG_WARNING, "super-sampling not supported for > output dimensions, using lanczos instead.\n"); > + } then the rest (i.e. one larger or equal, one smaller) would be cubic: > + else { > + s->interp_algo = NPPI_INTER_CUBIC; > + av_log(ctx, AV_LOG_WARNING, "super-sampling not supported for > output dimensions, using cubic instead.\n"); > + } > + } Was that the intent? Gruß, Moritz _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel