mirror of
https://github.com/mpv-player/mpv
synced 2025-03-19 09:57:34 +00:00
cosmetics
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19834 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
0cae194c81
commit
b30e300dca
@ -68,24 +68,11 @@ static void store_ref(struct vf_priv_s *p, uint8_t *src[3], int src_stride[3], i
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void filter(struct vf_priv_s *p, uint8_t *dst[3], int dst_stride[3], int width, int height, int parity, int tff){
|
static void filter_line(struct vf_priv_s *p, uint8_t *dst, uint8_t *prev, uint8_t *cur, uint8_t *next, int w, int refs, int parity){
|
||||||
int x, y, i;
|
int x;
|
||||||
|
uint8_t *prev2= parity ? prev : cur ;
|
||||||
for(i=0; i<3; i++){
|
uint8_t *next2= parity ? cur : next;
|
||||||
int is_chroma= !!i;
|
|
||||||
int w= width >>is_chroma;
|
|
||||||
int h= height>>is_chroma;
|
|
||||||
int refs= p->stride[i];
|
|
||||||
|
|
||||||
for(y=0; y<h; y++){
|
|
||||||
if((y ^ parity) & 1){
|
|
||||||
for(x=0; x<w; x++){
|
for(x=0; x<w; x++){
|
||||||
uint8_t *prev= &p->ref[0][i][x + y*refs];
|
|
||||||
uint8_t *cur = &p->ref[1][i][x + y*refs];
|
|
||||||
uint8_t *next= &p->ref[2][i][x + y*refs];
|
|
||||||
uint8_t *prev2= (tff ^ parity) ? prev : cur ;
|
|
||||||
uint8_t *next2= (tff ^ parity) ? cur : next;
|
|
||||||
|
|
||||||
int c= cur[-refs];
|
int c= cur[-refs];
|
||||||
int d= (prev2[0] + next2[0])>>1;
|
int d= (prev2[0] + next2[0])>>1;
|
||||||
int e= cur[+refs];
|
int e= cur[+refs];
|
||||||
@ -124,11 +111,38 @@ static void filter(struct vf_priv_s *p, uint8_t *dst[3], int dst_stride[3], int
|
|||||||
diff= MAX3(diff, min, -max);
|
diff= MAX3(diff, min, -max);
|
||||||
}
|
}
|
||||||
|
|
||||||
if(d < spatial_pred) d= MIN(d + diff, spatial_pred);
|
if(spatial_pred > d + diff)
|
||||||
else d= MAX(d - diff, spatial_pred);
|
spatial_pred = d + diff;
|
||||||
|
else if(spatial_pred < d - diff)
|
||||||
|
spatial_pred = d - diff;
|
||||||
|
|
||||||
dst[i][x + y*dst_stride[i]]= d;
|
dst[0] = spatial_pred;
|
||||||
|
|
||||||
|
dst++;
|
||||||
|
cur++;
|
||||||
|
prev++;
|
||||||
|
next++;
|
||||||
|
prev2++;
|
||||||
|
next2++;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static void filter(struct vf_priv_s *p, uint8_t *dst[3], int dst_stride[3], int width, int height, int parity, int tff){
|
||||||
|
int x, y, i;
|
||||||
|
|
||||||
|
for(i=0; i<3; i++){
|
||||||
|
int is_chroma= !!i;
|
||||||
|
int w= width >>is_chroma;
|
||||||
|
int h= height>>is_chroma;
|
||||||
|
int refs= p->stride[i];
|
||||||
|
|
||||||
|
for(y=0; y<h; y++){
|
||||||
|
if((y ^ parity) & 1){
|
||||||
|
uint8_t *prev= &p->ref[0][i][y*refs];
|
||||||
|
uint8_t *cur = &p->ref[1][i][y*refs];
|
||||||
|
uint8_t *next= &p->ref[2][i][y*refs];
|
||||||
|
uint8_t *dst2= &dst[i][y*dst_stride[i]];
|
||||||
|
filter_line(p, dst2, prev, cur, next, w, refs, parity ^ tff);
|
||||||
}else{
|
}else{
|
||||||
memcpy(&dst[i][y*dst_stride[i]], &p->ref[1][i][y*refs], w);
|
memcpy(&dst[i][y*dst_stride[i]], &p->ref[1][i][y*refs], w);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user