summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
authormichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-21 19:08:24 +0000
committermichael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2>2002-08-21 19:08:24 +0000
commitc473238dc8ff374a0f69531c605e203005b43792 (patch)
tree5dda1795272db52924c357407aeaf4ab7b1e3d55 /libmpcodecs
parent89ed1748ae84742ccf37118b080f440988318af2 (diff)
downloadmpv-c473238dc8ff374a0f69531c605e203005b43792.tar.bz2
mpv-c473238dc8ff374a0f69531c605e203005b43792.tar.xz
asserts to check buffer size and non overlapingness
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@7052 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/vd_ffmpeg.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/libmpcodecs/vd_ffmpeg.c b/libmpcodecs/vd_ffmpeg.c
index a0ab8779f0..7a9e338f90 100644
--- a/libmpcodecs/vd_ffmpeg.c
+++ b/libmpcodecs/vd_ffmpeg.c
@@ -351,6 +351,21 @@ static void get_buffer(struct AVCodecContext *avctx, int width, int height, int
if(avctx->dr_uvstride && avctx->dr_uvstride !=mpi->stride[1]){
mp_msg(MSGT_DECVIDEO,MSGL_ERR, "Error: uvstride changed\n");
}
+
+ assert(mpi->width >= ((width +align)&(~align)));
+ assert(mpi->height >= ((height+align)&(~align)));
+ assert(mpi->stride[0] >= mpi->width);
+ if(mpi->imgfmt==IMGFMT_I420 || mpi->imgfmt==IMGFMT_YV12 || mpi->imgfmt==IMGFMT_IYUV){
+ const int y_size= mpi->stride[0] * mpi->height;
+ const int c_size= mpi->stride[1] * mpi->chroma_height;
+
+ assert(mpi->planes[0] > mpi->planes[1] || mpi->planes[0] + y_size <= mpi->planes[1]);
+ assert(mpi->planes[0] > mpi->planes[2] || mpi->planes[0] + y_size <= mpi->planes[2]);
+ assert(mpi->planes[1] > mpi->planes[0] || mpi->planes[1] + c_size <= mpi->planes[0]);
+ assert(mpi->planes[1] > mpi->planes[2] || mpi->planes[1] + c_size <= mpi->planes[2]);
+ assert(mpi->planes[2] > mpi->planes[0] || mpi->planes[2] + c_size <= mpi->planes[0]);
+ assert(mpi->planes[2] > mpi->planes[1] || mpi->planes[2] + c_size <= mpi->planes[1]);
+ }
avctx->dr_stride = mpi->stride[0];
avctx->dr_uvstride = mpi->stride[1];