From 265e0bc43c5f057a28a07c2e38da748971d7a993 Mon Sep 17 00:00:00 2001 From: iovar Date: Sun, 21 Jan 2007 01:09:32 +0000 Subject: Added support for 16bpp color depth. Currently the UPDATE_*_PLANE(S)_* macros are duplicated, so they might need some reworking (they are perfectly functional though). git-svn-id: https://recordmydesktop.svn.sourceforge.net/svnroot/recordmydesktop/trunk@260 f606c939-3180-4ac9-a4b8-4b8779d57d0a --- recordmydesktop/src/get_frame.c | 3 ++- recordmydesktop/src/initialize_data.c | 3 ++- recordmydesktop/src/setbrwindow.c | 11 ++++++----- recordmydesktop/src/update_image.c | 3 ++- 4 files changed, 12 insertions(+), 8 deletions(-) (limited to 'recordmydesktop/src') diff --git a/recordmydesktop/src/get_frame.c b/recordmydesktop/src/get_frame.c index d3fb2ab..83e3058 100644 --- a/recordmydesktop/src/get_frame.c +++ b/recordmydesktop/src/get_frame.c @@ -145,7 +145,8 @@ void *GetFrame(ProgData *pdata){ (pdata->brwin.rgeom.width), (pdata->brwin.rgeom.height), pdata->args.noshared, - pdata->args.no_quick_subsample); + pdata->args.no_quick_subsample, + pdata->specs.depth); pthread_mutex_unlock(&pdata->yuv_mutex); } if(pdata->args.xfixes_cursor){ diff --git a/recordmydesktop/src/initialize_data.c b/recordmydesktop/src/initialize_data.c index 2a710b5..93f7858 100644 --- a/recordmydesktop/src/initialize_data.c +++ b/recordmydesktop/src/initialize_data.c @@ -125,7 +125,8 @@ int InitializeData(ProgData *pdata, UPDATE_YUV_BUFFER((&pdata->enc_data->yuv),dtap, (pdata->enc_data->x_offset),(pdata->enc_data->y_offset), (pdata->brwin.rgeom.width),(pdata->brwin.rgeom.height), - __X_IPC,(pdata->args.no_quick_subsample)); + __X_IPC,(pdata->args.no_quick_subsample), + pdata->specs.depth); pdata->frametime=(1000000)/pdata->args.fps; diff --git a/recordmydesktop/src/setbrwindow.c b/recordmydesktop/src/setbrwindow.c index 58dc34c..2b7b694 100644 --- a/recordmydesktop/src/setbrwindow.c +++ b/recordmydesktop/src/setbrwindow.c @@ -42,7 +42,7 @@ void SizePack2_8_16(int *start,int *size,int limit){ //32 bit pack align - //we already have disible by two width,so + //we already have disible by two width,so //it's 2, 4 or 6 octoffset=((*size)%8); if(octoffset==2){ @@ -61,7 +61,7 @@ void SizePack2_8_16(int *start,int *size,int limit){ (*size)-=4; } } - + else if(octoffset==4){ if(((*size)+(*start)+2<=limit)&&((*start)>=2)){ (*start)-=2; @@ -169,8 +169,9 @@ int SetBRWindow(Display *dpy,BRWindow *brwin,DisplaySpecs *specs,ProgArgs *args) - brwin->nbytes=(((brwin->rgeom.width+15)>>4)<<4)*(((brwin->rgeom.height+15)>>4)<<4)*4; - - + brwin->nbytes=(((brwin->rgeom.width+15)>>4)<<4)*(((brwin->rgeom.height+15)>>4)<<4)* + ((specs->depth==16)?2:4); + + return 0; } diff --git a/recordmydesktop/src/update_image.c b/recordmydesktop/src/update_image.c index 1bf0cd5..7ae39ff 100644 --- a/recordmydesktop/src/update_image.c +++ b/recordmydesktop/src/update_image.c @@ -57,7 +57,8 @@ void UpdateImage(Display * dpy, (temp->geom.x-brwin->rgeom.x+enc->x_offset), (temp->geom.y-brwin->rgeom.y+enc->y_offset), (temp->geom.width),(temp->geom.height), - noshmem,no_quick_subsample); + noshmem,no_quick_subsample, + specs->depth); pthread_mutex_unlock(yuv_mutex); temp=temp->next; }while(temp!=NULL); -- cgit v1.2.1