From f8ac24a454658f39b89fd8b24ee39c28d5e99c23 Mon Sep 17 00:00:00 2001 From: biocrasher Date: Tue, 18 Jul 2006 12:27:20 +0000 Subject: window alignment 8pixels,32 bytes. Fixed messed up end-result. git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@24 f606c939-3180-4ac9-a4b8-4b8779d57d0a --- recordmydesktop/src/get_frame.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'recordmydesktop/src/get_frame.c') diff --git a/recordmydesktop/src/get_frame.c b/recordmydesktop/src/get_frame.c index 6a93ceb..d5673e6 100644 --- a/recordmydesktop/src/get_frame.c +++ b/recordmydesktop/src/get_frame.c @@ -111,14 +111,31 @@ void *GetFrame(void *pdata){ ((ProgData *)pdata)->brwin.rgeom.width, ((ProgData *)pdata)->brwin.rgeom.height); pthread_mutex_lock(&((ProgData *)pdata)->yuv_mutex); - XImageToYUV(((ProgData *)pdata)->image,&((ProgData *)pdata)->enc_data->yuv, - ((ProgData *)pdata)->args.no_quick_subsample); + if(((ProgData *)pdata)->args.no_quick_subsample){ + UPDATE_YUV_BUFFER_IM_AVG((&((ProgData *)pdata)->enc_data->yuv),((unsigned char*)((ProgData *)pdata)->image->data), + (((ProgData *)pdata)->enc_data->x_offset),(((ProgData *)pdata)->enc_data->y_offset), + (((ProgData *)pdata)->brwin.rgeom.width),(((ProgData *)pdata)->brwin.rgeom.height)); + } + else{ + UPDATE_YUV_BUFFER_IM((&((ProgData *)pdata)->enc_data->yuv),((unsigned char*)((ProgData *)pdata)->image->data), + (((ProgData *)pdata)->enc_data->x_offset),(((ProgData *)pdata)->enc_data->y_offset), + (((ProgData *)pdata)->brwin.rgeom.width),(((ProgData *)pdata)->brwin.rgeom.height)); + } pthread_mutex_unlock(&((ProgData *)pdata)->yuv_mutex); } else{ pthread_mutex_lock(&((ProgData *)pdata)->yuv_mutex); - XImageToYUV(((ProgData *)pdata)->shimage,&((ProgData *)pdata)->enc_data->yuv, - ((ProgData *)pdata)->args.no_quick_subsample); + if(((ProgData *)pdata)->args.no_quick_subsample){ + UPDATE_YUV_BUFFER_IM_AVG((&((ProgData *)pdata)->enc_data->yuv),((unsigned char*)((ProgData *)pdata)->shimage->data), + (((ProgData *)pdata)->enc_data->x_offset),(((ProgData *)pdata)->enc_data->y_offset), + (((ProgData *)pdata)->brwin.rgeom.width),(((ProgData *)pdata)->brwin.rgeom.height)); + } + else{ + UPDATE_YUV_BUFFER_IM((&((ProgData *)pdata)->enc_data->yuv),((unsigned char*)((ProgData *)pdata)->shimage->data), + (((ProgData *)pdata)->enc_data->x_offset),(((ProgData *)pdata)->enc_data->y_offset), + (((ProgData *)pdata)->brwin.rgeom.width),(((ProgData *)pdata)->brwin.rgeom.height)); + } + pthread_mutex_unlock(&((ProgData *)pdata)->yuv_mutex); } } -- cgit v1.2.1