# HG changeset patch # User reimar # Date 1288802544 0 # Node ID d5dfda231e76265d60a0609498f6debd82274ce6 # Parent 49722126eba9bfc7e5bec3178b5674bcd1009a91 Make scale filter accept all non-hardware-acceleration input formats we know a PIX_FMT_* for. It is possible we will not have a conversion for some of these formats, but since it will just fail different this approach is better since it avoids having to expand the explicit list continuously. diff -r 49722126eba9 -r d5dfda231e76 libmpcodecs/vf_scale.c --- a/libmpcodecs/vf_scale.c Wed Nov 03 16:39:52 2010 +0000 +++ b/libmpcodecs/vf_scale.c Wed Nov 03 16:42:24 2010 +0000 @@ -507,40 +507,7 @@ // supported Input formats: YV12, I420, IYUV, YUY2, UYVY, BGR32, BGR24, BGR16, BGR15, RGB32, RGB24, Y8, Y800 static int query_format(struct vf_instance *vf, unsigned int fmt){ - switch(fmt){ - case IMGFMT_YV12: - case IMGFMT_I420: - case IMGFMT_IYUV: - case IMGFMT_UYVY: - case IMGFMT_YUY2: - case IMGFMT_BGR32: - case IMGFMT_BGR24: - case IMGFMT_BGR16: - case IMGFMT_BGR15: - case IMGFMT_RGB32: - case IMGFMT_RGB24: - case IMGFMT_Y800: - case IMGFMT_Y8: - case IMGFMT_YVU9: - case IMGFMT_IF09: - case IMGFMT_444P: - case IMGFMT_422P: - case IMGFMT_411P: - case IMGFMT_440P: - case IMGFMT_420A: - case IMGFMT_444P16_LE: - case IMGFMT_444P16_BE: - case IMGFMT_422P16_LE: - case IMGFMT_422P16_BE: - case IMGFMT_420P16_LE: - case IMGFMT_420P16_BE: - case IMGFMT_BGR8: - case IMGFMT_RGB8: - case IMGFMT_BG4B: - case IMGFMT_RG4B: - case IMGFMT_RGB48LE: - case IMGFMT_RGB48BE: - { + if (!IMGFMT_IS_HWACCEL(fmt) && imgfmt2pixfmt(fmt) != PIX_FMT_NONE) { unsigned int best=find_best_out(vf, fmt); int flags; if(!best) return 0; // no matching out-fmt @@ -550,7 +517,6 @@ // do not allow scaling, if we are before the PP fliter! if(!(flags&VFCAP_POSTPROC)) flags|=VFCAP_SWSCALE; return flags; - } } return 0; // nomatching in-fmt }