diff libvo/vo_kva.c @ 29062:6a0a30aa2b4a

Consistently use MP_MAX_PLANES as size for plane pointer/stride arrays in libvo. This might avoid some issues since sws_scale in some cases assumes these have at least 4 valid entries.
author reimar
date Sun, 29 Mar 2009 14:37:21 +0000
parents c2baa796c5e5
children f8939d5b14b5
line wrap: on
line diff
--- a/libvo/vo_kva.c	Sun Mar 29 14:35:38 2009 +0000
+++ b/libvo/vo_kva.c	Sun Mar 29 14:37:21 2009 +0000
@@ -131,8 +131,8 @@
     PBYTE       pbImage;
     BOOL        fFixT23;
     PFNWP       pfnwpOldFrame;
-    uint8_t    *planes[3];     // y = 0, u = 1, v = 2
-    int         stride[3];
+    uint8_t    *planes[MP_MAX_PLANES];     // y = 0, u = 1, v = 2
+    int         stride[MP_MAX_PLANES];
     BOOL        fHWAccel;
     RECTL       rclParent;
     struct SwsContext *sws;
@@ -230,6 +230,8 @@
 
     m_int.pbImage = malloc(size);
 
+    memset(m_int.planes, 0, sizeof(m_int.planes));
+    memset(m_int.stride, 0, sizeof(m_int.stride));
     m_int.planes[0] = m_int.pbImage;
     m_int.stride[0] = m_int.lStride;
 
@@ -257,8 +259,8 @@
     ULONG ulBPL;
 
     if (!kvaLockBuffer(&pBuffer, &ulBPL)) {
-        uint8_t *dst[3];
-        int      dstStride[3];
+        uint8_t *dst[MP_MAX_PLANES] = {NULL};
+        int      dstStride[MP_MAX_PLANES] = {0};
 
         // Get packed or Y
         dst[0]       = pBuffer;