mirror of https://github.com/mpv-player/mpv
vf_yadif: fix green bottom line
Fix green bottom line on yadif with certain parity. This implementation of the filter method needs a padding, that mplayer allocates but never fills with data. Do the padding properly and tweak the height alignment to even number of lines, instead of rounding to 32. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@34691 b3059339-0415-0410-9bf9-f77b7e298cf2 Author: iive
This commit is contained in:
parent
cb2f0e7c38
commit
b615b66322
|
@ -60,8 +60,19 @@ static void store_ref(struct vf_priv_s *p, uint8_t *src[3], int src_stride[3], i
|
|||
|
||||
for(i=0; i<3; i++){
|
||||
int is_chroma= !!i;
|
||||
int pn_width = width >>is_chroma;
|
||||
int pn_height = height>>is_chroma;
|
||||
|
||||
memcpy_pic(p->ref[2][i], src[i], width>>is_chroma, height>>is_chroma, p->stride[i], src_stride[i]);
|
||||
|
||||
memcpy_pic(p->ref[2][i], src[i], pn_width, pn_height, p->stride[i], src_stride[i]);
|
||||
|
||||
fast_memcpy(p->ref[2][i] + pn_height * p->stride[i],
|
||||
src[i] + (pn_height-1)*src_stride[i], pn_width);
|
||||
fast_memcpy(p->ref[2][i] + (pn_height+1)* p->stride[i],
|
||||
src[i] + (pn_height-1)*src_stride[i], pn_width);
|
||||
|
||||
fast_memcpy(p->ref[2][i] - p->stride[i], src[i], pn_width);
|
||||
fast_memcpy(p->ref[2][i] - 2*p->stride[i], src[i], pn_width);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -373,7 +384,7 @@ static int config(struct vf_instance *vf,
|
|||
for(i=0; i<3; i++){
|
||||
int is_chroma= !!i;
|
||||
int w= ((width + 31) & (~31))>>is_chroma;
|
||||
int h= ((height+6+ 31) & (~31))>>is_chroma;
|
||||
int h=(((height + 1) & ( ~1))>>is_chroma) + 6;
|
||||
|
||||
vf->priv->stride[i]= w;
|
||||
for(j=0; j<3; j++)
|
||||
|
|
Loading…
Reference in New Issue