summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Cornelius <dercorny@gentoo.org>2006-05-30 12:48:18 +0000
committerStefan Cornelius <dercorny@gentoo.org>2006-05-30 12:48:18 +0000
commit2a6cbec5afeefa3ee154731fb6cb10243cad81c6 (patch)
tree3eb3e2d455f390ef5bcbadd7bbdfa58942a008af /media-gfx/zgv/files
parentStable on amd64 wrt bug #132213 (diff)
downloadgentoo-2-2a6cbec5afeefa3ee154731fb6cb10243cad81c6.tar.gz
gentoo-2-2a6cbec5afeefa3ee154731fb6cb10243cad81c6.tar.bz2
gentoo-2-2a6cbec5afeefa3ee154731fb6cb10243cad81c6.zip
Adding zgv 5.9, bug #134839
(Portage version: 2.1_rc3-r1)
Diffstat (limited to 'media-gfx/zgv/files')
-rw-r--r--media-gfx/zgv/files/digest-zgv-5.93
-rw-r--r--media-gfx/zgv/files/zgv-5.9-cmyk-yccl-fix.diff64
2 files changed, 67 insertions, 0 deletions
diff --git a/media-gfx/zgv/files/digest-zgv-5.9 b/media-gfx/zgv/files/digest-zgv-5.9
new file mode 100644
index 000000000000..f63e50c101d5
--- /dev/null
+++ b/media-gfx/zgv/files/digest-zgv-5.9
@@ -0,0 +1,3 @@
+MD5 d65a434ddeb612f0c488177f873afad2 zgv-5.9.tar.gz 395525
+RMD160 1d1c47c77adc732c581d9db1189243a94c510586 zgv-5.9.tar.gz 395525
+SHA256 92e5d848fb51a77dc0ebb0ab383c1499c23aaff01f5445e9b0d75e067a8a64ba zgv-5.9.tar.gz 395525
diff --git a/media-gfx/zgv/files/zgv-5.9-cmyk-yccl-fix.diff b/media-gfx/zgv/files/zgv-5.9-cmyk-yccl-fix.diff
new file mode 100644
index 000000000000..e510a4ba9ec2
--- /dev/null
+++ b/media-gfx/zgv/files/zgv-5.9-cmyk-yccl-fix.diff
@@ -0,0 +1,64 @@
+--- zgv-5.9/src/readjpeg.c Sun Oct 31 14:54:26 2004
++++ zgv/src/readjpeg.c Wed Sep 21 21:03:22 2005
+@@ -92,11 +92,13 @@
+ int *real_width,int *real_height)
+ {
+ static FILE *in;
++static int cmyk;
+ struct my_error_mgr jerr;
+ int row_stride; /* physical row width in output buffer */
+ int tmp,f;
+-unsigned char *ptr;
++unsigned char *ptr,*ptr2;
+
++cmyk=0;
+ use_errmsg=0;
+ theimage=NULL;
+ howfar=howfarfunc;
+@@ -161,6 +163,15 @@
+ pal[f]=pal[256+f]=pal[512+f]=f;
+ }
+
++if(cinfo.jpeg_color_space==JCS_CMYK)
++ cmyk=1;
++
++if(cinfo.jpeg_color_space==JCS_YCCK)
++ {
++ cmyk=1;
++ cinfo.out_color_space=JCS_CMYK;
++ }
++
+ width=cinfo.image_width;
+ height=cinfo.image_height;
+
+@@ -191,7 +202,7 @@
+ }
+
+ if(WH_BAD(width,height) ||
+- (theimage=(byte *)malloc(pixelsize*width*height))==NULL)
++ (theimage=(byte *)malloc(pixelsize*width*(height+cmyk)))==NULL)
+ {
+ jpegerr("Out of memory"); /* XXX misleading if width/height are bad */
+ longjmp(jerr.setjmp_buffer,1);
+@@ -222,7 +233,20 @@
+ while(cinfo.output_scanline<height)
+ {
+ jpeg_read_scanlines(&cinfo,&ptr,1);
+- for(f=0;f<width;f++) { tmp=*ptr; *ptr=ptr[2]; ptr[2]=tmp; ptr+=3; }
++ if(!cmyk)
++ for(f=0;f<width;f++) { tmp=*ptr; *ptr=ptr[2]; ptr[2]=tmp; ptr+=3; }
++ else
++ {
++ ptr2=ptr;
++ for(f=0;f<width;f++,ptr+=3,ptr2+=4)
++ {
++ tmp=ptr2[3];
++ ptr[0]=(tmp*ptr2[2])/255;
++ ptr[1]=(tmp*ptr2[1])/255;
++ ptr[2]=(tmp*ptr2[0])/255;
++ }
++ }
++
+ if(howfar!=NULL) howfar(cinfo.output_scanline,height);
+ }
+