static int check_outfmt(vf_instance_t *vf, int outfmt) { enum AVPixelFormat pixfmt = imgfmt2pixfmt(outfmt); if (pixfmt == AV_PIX_FMT_NONE || sws_isSupportedOutput(pixfmt) < 1) return 0; return vf_next_query_format(vf, outfmt); }
void show_pix_fmts(void) { enum PixelFormat pix_fmt; printf( "Pixel formats:\n" "I.... = Supported Input format for conversion\n" ".O... = Supported Output format for conversion\n" "..H.. = Hardware accelerated format\n" "...P. = Paletted format\n" "....B = Bitstream format\n" "FLAGS NAME NB_COMPONENTS BITS_PER_PIXEL\n" "-----\n"); #if !CONFIG_SWSCALE # define sws_isSupportedInput(x) 0 # define sws_isSupportedOutput(x) 0 #endif for (pix_fmt = 0; pix_fmt < PIX_FMT_NB; pix_fmt++) { const AVPixFmtDescriptor *pix_desc = &av_pix_fmt_descriptors[pix_fmt]; printf("%c%c%c%c%c %-16s %d %2d\n", sws_isSupportedInput (pix_fmt) ? 'I' : '.', sws_isSupportedOutput(pix_fmt) ? 'O' : '.', pix_desc->flags & PIX_FMT_HWACCEL ? 'H' : '.', pix_desc->flags & PIX_FMT_PAL ? 'P' : '.', pix_desc->flags & PIX_FMT_BITSTREAM ? 'B' : '.', pix_desc->name, pix_desc->nb_components, av_get_bits_per_pixel(pix_desc)); } }
bool ImageConverterFF::check() const { if (!ImageConverter::check()) return false; DPTR_D(const ImageConverterFF); if (sws_isSupportedInput((AVPixelFormat)d.fmt_in) <= 0) { qWarning("Input pixel format not supported (%s)", av_get_pix_fmt_name((AVPixelFormat)d.fmt_in)); return false; } if (sws_isSupportedOutput((AVPixelFormat)d.fmt_out) <= 0) { qWarning("Output pixel format not supported (%s)", av_get_pix_fmt_name((AVPixelFormat)d.fmt_out)); return false; } return true; }
static int find_best_out(vf_instance_t *vf, int in_format) { int best = 0; for (int out_format = IMGFMT_START; out_format < IMGFMT_END; out_format++) { if (!vf_next_query_format(vf, out_format)) continue; if (sws_isSupportedOutput(imgfmt2pixfmt(out_format)) < 1) continue; if (best) { int candidate = mp_imgfmt_select_best(best, out_format, in_format); if (candidate) best = candidate; } else { best = out_format; } } return best; }