Mercurial > mplayer.hg
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;