summaryrefslogtreecommitdiffstats
path: root/libswscale
diff options
context:
space:
mode:
authorsdrik <sdrik@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-02-27 22:13:55 +0000
committersdrik <sdrik@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-02-27 22:13:55 +0000
commit255c11b7452b5ef63d6850f70c9aa3a61bc32219 (patch)
treed824fcaa7fe00c567a2aedb945660394be8dbea1 /libswscale
parent34fdebf9687c9138d7816d84530782b10db818e8 (diff)
downloadmpv-255c11b7452b5ef63d6850f70c9aa3a61bc32219.tar.bz2
mpv-255c11b7452b5ef63d6850f70c9aa3a61bc32219.tar.xz
Use YUV420P code path for YUVA420P where appropriate
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@28746 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libswscale')
-rw-r--r--libswscale/swscale.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index 2982857209..1fe421e0d6 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -2327,12 +2327,12 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
if (unscaled && !usesHFilter && !usesVFilter && (srcRange == dstRange || isBGR(dstFormat) || isRGB(dstFormat)))
{
/* yv12_to_nv12 */
- if (srcFormat == PIX_FMT_YUV420P && (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21))
+ if ((srcFormat == PIX_FMT_YUV420P || srcFormat == PIX_FMT_YUVA420P) && (dstFormat == PIX_FMT_NV12 || dstFormat == PIX_FMT_NV21))
{
c->swScale= PlanarToNV12Wrapper;
}
/* yuv2bgr */
- if ((srcFormat==PIX_FMT_YUV420P || srcFormat==PIX_FMT_YUV422P) && (isBGR(dstFormat) || isRGB(dstFormat))
+ if ((srcFormat==PIX_FMT_YUV420P || srcFormat==PIX_FMT_YUV422P || srcFormat==PIX_FMT_YUVA420P) && (isBGR(dstFormat) || isRGB(dstFormat))
&& !(flags & SWS_ACCURATE_RND) && !(dstH&1))
{
c->swScale= sws_yuv2rgb_get_func_ptr(c);
@@ -2383,7 +2383,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
/* LQ converters if -sws 0 or -sws 4*/
if (c->flags&(SWS_FAST_BILINEAR|SWS_POINT)){
/* yv12_to_yuy2 */
- if (srcFormat == PIX_FMT_YUV420P)
+ if (srcFormat == PIX_FMT_YUV420P || srcFormat == PIX_FMT_YUVA420P)
{
if (dstFormat == PIX_FMT_YUYV422)
c->swScale= PlanarToYuy2Wrapper;
@@ -2406,6 +2406,7 @@ SwsContext *sws_getContext(int srcW, int srcH, enum PixelFormat srcFormat, int d
/* simple copy */
if ( srcFormat == dstFormat
+ || (srcFormat == PIX_FMT_YUVA420P && dstFormat == PIX_FMT_YUV420P)
|| (isPlanarYUV(srcFormat) && isGray(dstFormat))
|| (isPlanarYUV(dstFormat) && isGray(srcFormat)))
{