diff options
author | biocrasher <biocrasher@f606c939-3180-4ac9-a4b8-4b8779d57d0a> | 2006-07-17 15:04:58 +0000 |
---|---|---|
committer | biocrasher <biocrasher@f606c939-3180-4ac9-a4b8-4b8779d57d0a> | 2006-07-17 15:04:58 +0000 |
commit | b2ee41cd1a499b66725797ca26a026fc352973f8 (patch) | |
tree | 0721f234266c109fd40a1cfe8f9e73ae65c262dd /recordmydesktop/src/update_image.c | |
parent | 485c81f8613e0aa0e7b8d5a5d63ac6264e4a7786 (diff) |
added pixel averaging option
git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@22 f606c939-3180-4ac9-a4b8-4b8779d57d0a
Diffstat (limited to 'recordmydesktop/src/update_image.c')
-rw-r--r-- | recordmydesktop/src/update_image.c | 25 |
1 files changed, 19 insertions, 6 deletions
diff --git a/recordmydesktop/src/update_image.c b/recordmydesktop/src/update_image.c index bf319e2..0de3f0a 100644 --- a/recordmydesktop/src/update_image.c +++ b/recordmydesktop/src/update_image.c @@ -35,7 +35,8 @@ void UpdateImage(Display * dpy, BRWindow *brwin, EncData *enc, char *datatemp, - int noshmem){ + int noshmem, + int no_quick_subsample){ RectArea *temp; unsigned char *dtap=(unsigned char*)datatemp; temp=*root; @@ -52,18 +53,30 @@ void UpdateImage(Display * dpy, temp->geom.height); pthread_mutex_lock(yuv_mutex); - - UPDATE_YUV_BUFFER_IM(yuv,dtap, - (temp->geom.x-brwin->rgeom.x+enc->x_offset),(temp->geom.y-brwin->rgeom.y+enc->y_offset), - (temp->geom.width),(temp->geom.height)); + if(no_quick_subsample){ + UPDATE_YUV_BUFFER_IM_AVG(yuv,dtap, + (temp->geom.x-brwin->rgeom.x+enc->x_offset),(temp->geom.y-brwin->rgeom.y+enc->y_offset), + (temp->geom.width),(temp->geom.height)); + } + else{ + UPDATE_YUV_BUFFER_IM(yuv,dtap, + (temp->geom.x-brwin->rgeom.x+enc->x_offset),(temp->geom.y-brwin->rgeom.y+enc->y_offset), + (temp->geom.width),(temp->geom.height)); + } pthread_mutex_unlock(yuv_mutex); } else{ + if(no_quick_subsample){ + UPDATE_YUV_BUFFER_SH_AVG(yuv,dtap, + (temp->geom.x-brwin->rgeom.x+enc->x_offset),(temp->geom.y-brwin->rgeom.y+enc->y_offset), + (temp->geom.width),(temp->geom.height)); + } + else{ UPDATE_YUV_BUFFER_SH(yuv,dtap, (temp->geom.x-brwin->rgeom.x+enc->x_offset),(temp->geom.y-brwin->rgeom.y+enc->y_offset), (temp->geom.width),(temp->geom.height)); - + } } temp=temp->next; |