diff options
author | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-07-17 00:54:31 +0000 |
---|---|---|
committer | michael <michael@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2002-07-17 00:54:31 +0000 |
commit | e083d6218c453ddc55100839bbb01d6fe72013db (patch) | |
tree | 7ebb0e3f2ea1c7358374d424b4eb8562bb560b4d /libvo/vo_xv.c | |
parent | 08400331dcf475cc4ef986e4a08ba1597725ebdc (diff) | |
download | mpv-e083d6218c453ddc55100839bbb01d6fe72013db.tar.bz2 mpv-e083d6218c453ddc55100839bbb01d6fe72013db.tar.xz |
check if the available buffers are big enough in get_image
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@6744 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo/vo_xv.c')
-rw-r--r-- | libvo/vo_xv.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/libvo/vo_xv.c b/libvo/vo_xv.c index 98b06a9b92..ad035d724f 100644 --- a/libvo/vo_xv.c +++ b/libvo/vo_xv.c @@ -746,6 +746,9 @@ static uint32_t get_image(mp_image_t *mpi){ if(mpi->type==MP_IMGTYPE_IPB && num_buffers<3 && mpi->flags&MP_IMGFLAG_READABLE) return VO_FALSE; // not enough if(mpi->type==MP_IMGTYPE_IP && num_buffers<2 && mpi->flags&MP_IMGFLAG_READABLE) return VO_FALSE; // not enough if(mpi->imgfmt!=image_format || mpi->imgfmt==IMGFMT_BGR24) return VO_FALSE; // needs conversion :( + if( xvimage[current_buf]->pitches[0]*mpi->height + > xvimage[current_buf]->offsets[1] - xvimage[current_buf]->offsets[0]) return VO_FALSE; //buffer to small + if( xvimage[current_buf]->pitches[0] < mpi->width /*FIXME non yv12*/) return VO_FALSE; //buffer to small // if(mpi->flags&MP_IMGFLAG_READABLE) return VO_FALSE; // slow video ram if( (mpi->flags&(MP_IMGFLAG_ACCEPT_STRIDE|MP_IMGFLAG_ACCEPT_WIDTH)) || (mpi->width*(mpi->bpp/8)==xvimage[current_buf]->pitches[0]) ){ |