From b3cf7cb144cd6c70ea8501a0ffaa4bc68619037e Mon Sep 17 00:00:00 2001
From: Stefano Sabatini <stefano.sabatini-lala@poste.it>
Date: Sun, 3 Jan 2010 00:09:24 +0000
Subject: [PATCH] Simplify getSubSampleFactors(), make it use the values
 provided by av_pix_fmt_descriptors().

Originally committed as revision 30171 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
---
 libswscale/swscale.c | 49 ++------------------------------------------
 1 file changed, 2 insertions(+), 47 deletions(-)

diff --git a/libswscale/swscale.c b/libswscale/swscale.c
index f46e2451fb4..9f81a8b3a8d 100644
--- a/libswscale/swscale.c
+++ b/libswscale/swscale.c
@@ -2280,53 +2280,8 @@ static int planarCopy(SwsContext *c, uint8_t* src[], int srcStride[], int srcSli
 
 static void getSubSampleFactors(int *h, int *v, int format)
 {
-    switch(format) {
-    case PIX_FMT_UYVY422:
-    case PIX_FMT_YUYV422:
-        *h=1;
-        *v=0;
-        break;
-    case PIX_FMT_YUV420P:
-    case PIX_FMT_YUV420P16LE:
-    case PIX_FMT_YUV420P16BE:
-    case PIX_FMT_YUVA420P:
-    case PIX_FMT_GRAY16BE:
-    case PIX_FMT_GRAY16LE:
-    case PIX_FMT_GRAY8: //FIXME remove after different subsamplings are fully implemented
-    case PIX_FMT_NV12:
-    case PIX_FMT_NV21:
-        *h=1;
-        *v=1;
-        break;
-    case PIX_FMT_YUV440P:
-        *h=0;
-        *v=1;
-        break;
-    case PIX_FMT_YUV410P:
-        *h=2;
-        *v=2;
-        break;
-    case PIX_FMT_YUV444P:
-    case PIX_FMT_YUV444P16LE:
-    case PIX_FMT_YUV444P16BE:
-        *h=0;
-        *v=0;
-        break;
-    case PIX_FMT_YUV422P:
-    case PIX_FMT_YUV422P16LE:
-    case PIX_FMT_YUV422P16BE:
-        *h=1;
-        *v=0;
-        break;
-    case PIX_FMT_YUV411P:
-        *h=2;
-        *v=0;
-        break;
-    default:
-        *h=0;
-        *v=0;
-        break;
-    }
+    *h = av_pix_fmt_descriptors[format].log2_chroma_w;
+    *v = av_pix_fmt_descriptors[format].log2_chroma_h;
 }
 
 static uint16_t roundToInt16(int64_t f)
-- 
GitLab