Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mpc-hc/mpc-hc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXhmikosR <xhmikosr@users.sourceforge.net>2013-09-14 12:21:27 +0400
committerXhmikosR <xhmikosr@users.sourceforge.net>2013-09-29 19:26:17 +0400
commit9701e3582887566e04de73db4eb897e81c72682d (patch)
tree80b6f9c69bae822536740c2f6e8a3ea9a0d28d24 /src/thirdparty/VirtualDub/Kasumi
parentd36155cef95b8f84955a8a152f8d0eb32384b272 (diff)
Update VirtualDub to v1.10.1-test12.
Diffstat (limited to 'src/thirdparty/VirtualDub/Kasumi')
-rw-r--r--src/thirdparty/VirtualDub/Kasumi/source/resample.cpp85
1 files changed, 76 insertions, 9 deletions
diff --git a/src/thirdparty/VirtualDub/Kasumi/source/resample.cpp b/src/thirdparty/VirtualDub/Kasumi/source/resample.cpp
index d52fece16..8a57be9e3 100644
--- a/src/thirdparty/VirtualDub/Kasumi/source/resample.cpp
+++ b/src/thirdparty/VirtualDub/Kasumi/source/resample.cpp
@@ -91,16 +91,38 @@ bool VDPixmapResampler::Init(uint32 dw, uint32 dh, int dstformat, uint32 sw, uin
bool VDPixmapResampler::Init(const vdrect32f& dstrect0, uint32 dw, uint32 dh, int dstformat, const vdrect32f& srcrect0, uint32 sw, uint32 sh, int srcformat) {
Shutdown();
- if (dstformat != srcformat || (
- srcformat != nsVDPixmap::kPixFormat_XRGB8888 &&
- srcformat != nsVDPixmap::kPixFormat_Y8 &&
- srcformat != nsVDPixmap::kPixFormat_YUV444_Planar &&
- srcformat != nsVDPixmap::kPixFormat_YUV422_Planar &&
- srcformat != nsVDPixmap::kPixFormat_YUV420_Planar &&
- srcformat != nsVDPixmap::kPixFormat_YUV411_Planar &&
- srcformat != nsVDPixmap::kPixFormat_YUV410_Planar
- ))
+ if (dstformat != srcformat)
return false;
+
+ switch(srcformat) {
+ case nsVDPixmap::kPixFormat_XRGB8888:
+ case nsVDPixmap::kPixFormat_Y8:
+ case nsVDPixmap::kPixFormat_Y8_FR:
+ case nsVDPixmap::kPixFormat_YUV444_Planar:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV422_Planar:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV420_Planar:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV411_Planar:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV410_Planar:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709_FR:
+ break;
+
+ default:
+ return false;
+ }
// convert destination flips to source flips
vdrect32f dstrect(dstrect0);
@@ -175,20 +197,35 @@ bool VDPixmapResampler::Init(const vdrect32f& dstrect0, uint32 dw, uint32 dh, in
switch(srcformat) {
case nsVDPixmap::kPixFormat_YUV444_Planar:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709_FR:
break;
case nsVDPixmap::kPixFormat_YUV422_Planar:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709_FR:
srcrect2.translate(0.25f, 0.0f);
dstrect2.translate(0.25f, 0.0f);
break;
case nsVDPixmap::kPixFormat_YUV420_Planar:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709_FR:
srcrect2.translate(0.25f, 0.0f);
dstrect2.translate(0.25f, 0.0f);
break;
case nsVDPixmap::kPixFormat_YUV411_Planar:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709_FR:
srcrect2.translate(0.375f, 0.0f);
dstrect2.translate(0.375f, 0.0f);
break;
case nsVDPixmap::kPixFormat_YUV410_Planar:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709_FR:
break;
default:
VDASSERT(false);
@@ -221,6 +258,21 @@ bool VDPixmapResampler::Init(const vdrect32f& dstrect0, uint32 dw, uint32 dh, in
case nsVDPixmap::kPixFormat_YUV420_Planar:
case nsVDPixmap::kPixFormat_YUV411_Planar:
case nsVDPixmap::kPixFormat_YUV410_Planar:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709_FR:
gen.ldsrc(0, 0, 0, 0, sw, sh, kVDPixType_8, sw);
ApplyFilters(gen, mDstRectPlane0.width(), mDstRectPlane0.height(), xoffset, yoffset, xfactor, yfactor);
@@ -266,6 +318,21 @@ void VDPixmapResampler::Process(const VDPixmap& dst, const VDPixmap& src) {
case nsVDPixmap::kPixFormat_YUV420_Planar:
case nsVDPixmap::kPixFormat_YUV411_Planar:
case nsVDPixmap::kPixFormat_YUV410_Planar:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_FR:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709:
+ case nsVDPixmap::kPixFormat_YUV444_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV422_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV420_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV411_Planar_709_FR:
+ case nsVDPixmap::kPixFormat_YUV410_Planar_709_FR:
// blit primary plane
mpBlitter->Blit(dst, &mDstRectPlane0, src);