1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-19 18:05:21 +00:00

cosmetics

git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@19834 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
lorenm 2006-09-14 03:59:28 +00:00
parent 0cae194c81
commit b30e300dca

View File

@ -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);
} }