Imported from libpng-1.2.0rc1.tar
This commit is contained in:
parent
1ea0ff34fa
commit
1b8e567237
10
ANNOUNCE
10
ANNOUNCE
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Libpng 1.2.0beta5 - August 8, 2001
|
Libpng 1.2.0rc1 - August 25, 2001
|
||||||
|
|
||||||
This is a public release of libpng, intended for use in production codes.
|
This is a public release of libpng, intended for use in production codes.
|
||||||
|
|
||||||
@ -12,19 +12,19 @@ Changes since the last public release (1.0.12):
|
|||||||
Enabled user memory function by default.
|
Enabled user memory function by default.
|
||||||
Increased png_mng_features flag from png_byte to png_uint_32.
|
Increased png_mng_features flag from png_byte to png_uint_32.
|
||||||
Bumped shared-library (so-number) and dll-number to 3.
|
Bumped shared-library (so-number) and dll-number to 3.
|
||||||
Updated contrib/gregbook
|
Updated makefile.ibmc, makefile.gcmmx
|
||||||
Updated makefile.ibmc
|
|
||||||
Added some typecasts to eliminate gcc 3.0 warnings. Changed prototypes
|
Added some typecasts to eliminate gcc 3.0 warnings. Changed prototypes
|
||||||
of png_write_oFFS width and height from png_uint_32 to png_int_32.
|
of png_write_oFFS width and height from png_uint_32 to png_int_32.
|
||||||
Updated example.c
|
Updated example.c
|
||||||
Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
|
Revised prototypes for png_debug_malloc and png_debug_free in pngtest.c
|
||||||
Revised makefile.gcmmx
|
|
||||||
Revised pnggccrd.c to conditionally compile some thread-unsafe code only
|
Revised pnggccrd.c to conditionally compile some thread-unsafe code only
|
||||||
when PNG_THREAD_UNSAFE_OK is defined.
|
when PNG_THREAD_UNSAFE_OK is defined.
|
||||||
Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with
|
Added tests to prevent pngwutil.c from writing a bKGD or tRNS chunk with
|
||||||
value exceeding 2^bit_depth-1
|
value exceeding 2^bit_depth-1
|
||||||
Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
|
|
||||||
Removed restriction that do_invert_mono only operate on 1-bit opaque files
|
Removed restriction that do_invert_mono only operate on 1-bit opaque files
|
||||||
|
Replaced calls to fprintf(stderr,...) with png_warning() or png_debug()
|
||||||
|
in pnggccrd.c
|
||||||
|
Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
|
||||||
|
|
||||||
Send comments/corrections/commendations to
|
Send comments/corrections/commendations to
|
||||||
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
||||||
|
3
CHANGES
3
CHANGES
@ -977,6 +977,9 @@ version 1.2.0beta5 [August 8, 2001]
|
|||||||
Revised makefile.sgi and makefile.sggcc
|
Revised makefile.sgi and makefile.sggcc
|
||||||
Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
|
Replaced calls to fprintf(stderr,...) with png_warning() in pnggccrd.c
|
||||||
Removed restriction that do_invert_mono only operate on 1-bit opaque files
|
Removed restriction that do_invert_mono only operate on 1-bit opaque files
|
||||||
|
version 1.2.0rc1 [August 25, 2001]
|
||||||
|
Changed a png_warning() to png_debug() in pnggccrd.c
|
||||||
|
Fixed contrib/gregbook/rpng-x.c, rpng2-x.c to avoid crash with XFreeGC().
|
||||||
|
|
||||||
Send comments/corrections/commendations to
|
Send comments/corrections/commendations to
|
||||||
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
png-implement@ccrc.wustl.edu or to randeg@alum.rpi.edu
|
||||||
|
12
INSTALL
12
INSTALL
@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Installing libpng version 1.2.0beta5 - August 8, 2001
|
Installing libpng version 1.2.0rc1 - August 25, 2001
|
||||||
|
|
||||||
Before installing libpng, you must first install zlib. zlib
|
Before installing libpng, you must first install zlib. zlib
|
||||||
can usually be found wherever you got libpng. zlib can be
|
can usually be found wherever you got libpng. zlib can be
|
||||||
@ -10,7 +10,7 @@ zlib.h and zconf.h include files that correspond to the
|
|||||||
version of zlib that's installed.
|
version of zlib that's installed.
|
||||||
|
|
||||||
You can rename the directories that you downloaded (they
|
You can rename the directories that you downloaded (they
|
||||||
might be called "libpng-1.2.0beta5" or "lpng109" and "zlib-1.1.3"
|
might be called "libpng-1.2.0rc1" or "lpng109" and "zlib-1.1.3"
|
||||||
or "zlib113") so that you have directories called "zlib" and "libpng".
|
or "zlib113") so that you have directories called "zlib" and "libpng".
|
||||||
|
|
||||||
Your directory structure should look like this:
|
Your directory structure should look like this:
|
||||||
@ -64,8 +64,8 @@ The files that are presently available in the scripts directory
|
|||||||
include
|
include
|
||||||
|
|
||||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||||
makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0beta5)
|
makefile.linux => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0rc1)
|
||||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0beta5,
|
makefile.gcmmx => Linux/ELF makefile (gcc, creates libpng.so.2.1.2.0rc1,
|
||||||
uses assembler code tuned for Intel MMX platform)
|
uses assembler code tuned for Intel MMX platform)
|
||||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||||
@ -82,9 +82,9 @@ include
|
|||||||
makefile.macosx => MACOS X Makefile
|
makefile.macosx => MACOS X Makefile
|
||||||
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
||||||
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
makefile.sgi => Silicon Graphics IRIX makefile (cc, creates static lib)
|
||||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0beta5)
|
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0rc1)
|
||||||
makefile.sunos => Sun makefile
|
makefile.sunos => Sun makefile
|
||||||
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.2.0beta5)
|
makefile.solaris => Solaris 2.X makefile (gcc, creates libpng.so.2.1.2.0rc1)
|
||||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||||
makefile.mips => MIPS makefile
|
makefile.mips => MIPS makefile
|
||||||
makefile.acorn => Acorn makefile
|
makefile.acorn => Acorn makefile
|
||||||
|
4
LICENSE
4
LICENSE
@ -8,7 +8,7 @@ COPYRIGHT NOTICE, DISCLAIMER, and LICENSE:
|
|||||||
If you modify libpng you may insert additional notices immediately following
|
If you modify libpng you may insert additional notices immediately following
|
||||||
this sentence.
|
this sentence.
|
||||||
|
|
||||||
libpng versions 1.0.7, July 1, 2000, through 1.2.0beta5, August 8, 2001, are
|
libpng versions 1.0.7, July 1, 2000, through 1.2.0rc1, August 25, 2001, are
|
||||||
Copyright (c) 2000 Glenn Randers-Pehrson
|
Copyright (c) 2000 Glenn Randers-Pehrson
|
||||||
and are distributed according to the same disclaimer and license as libpng-1.0.6
|
and are distributed according to the same disclaimer and license as libpng-1.0.6
|
||||||
with the following individuals added to the list of Contributing Authors
|
with the following individuals added to the list of Contributing Authors
|
||||||
@ -99,4 +99,4 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
randeg@alum.rpi.edu
|
randeg@alum.rpi.edu
|
||||||
August 8, 2001
|
August 25, 2001
|
||||||
|
10
README
10
README
@ -1,4 +1,4 @@
|
|||||||
README for libpng 1.2.0beta5 - August 8, 2001 (shared library 2.1)
|
README for libpng 1.2.0rc1 - August 25, 2001 (shared library 2.1)
|
||||||
See the note about version numbers near the top of png.h
|
See the note about version numbers near the top of png.h
|
||||||
|
|
||||||
See INSTALL for instructions on how to install libpng.
|
See INSTALL for instructions on how to install libpng.
|
||||||
@ -187,9 +187,9 @@ Files in this distribution:
|
|||||||
descrip.mms => VMS makefile for MMS or MMK
|
descrip.mms => VMS makefile for MMS or MMK
|
||||||
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
makefile.std => Generic UNIX makefile (cc, creates static libpng.a)
|
||||||
makefile.linux => Linux/ELF makefile
|
makefile.linux => Linux/ELF makefile
|
||||||
(gcc, creates libpng.so.2.1.2.0beta5)
|
(gcc, creates libpng.so.2.1.2.0rc1)
|
||||||
makefile.gcmmx => Linux/ELF makefile (gcc, creates
|
makefile.gcmmx => Linux/ELF makefile (gcc, creates
|
||||||
libpng.so.2.1.2.0beta5, uses assembler code
|
libpng.so.2.1.2.0rc1, uses assembler code
|
||||||
tuned for Intel MMX platform)
|
tuned for Intel MMX platform)
|
||||||
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
makefile.gcc => Generic makefile (gcc, creates static libpng.a)
|
||||||
makefile.knr => Archaic UNIX Makefile that converts files with
|
makefile.knr => Archaic UNIX Makefile that converts files with
|
||||||
@ -206,10 +206,10 @@ Files in this distribution:
|
|||||||
makefile.macosx => MACOS X Makefile
|
makefile.macosx => MACOS X Makefile
|
||||||
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
makefile.netbsd => NetBSD/cc makefile, uses PNGGCCRD
|
||||||
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
makefile.sgi => Silicon Graphics IRIX (cc, creates static lib)
|
||||||
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0beta5)
|
makefile.sggcc => Silicon Graphics (gcc, creates libpng.so.2.1.2.0rc1)
|
||||||
makefile.sunos => Sun makefile
|
makefile.sunos => Sun makefile
|
||||||
makefile.solaris => Solaris 2.X makefile
|
makefile.solaris => Solaris 2.X makefile
|
||||||
(gcc, creates libpng.so.2.1.2.0beta5)
|
(gcc, creates libpng.so.2.1.2.0rc1)
|
||||||
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
makefile.sco => For SCO OSr5 ELF and Unixware 7 with Native cc
|
||||||
makefile.mips => MIPS makefile
|
makefile.mips => MIPS makefile
|
||||||
makefile.acorn => Acorn makefile
|
makefile.acorn => Acorn makefile
|
||||||
|
4
Y2KINFO
4
Y2KINFO
@ -1,13 +1,13 @@
|
|||||||
Y2K compliance in libpng:
|
Y2K compliance in libpng:
|
||||||
=========================
|
=========================
|
||||||
|
|
||||||
August 8, 2001
|
August 25, 2001
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.2.0beta5 are Y2K compliant. It is my belief that earlier
|
upward through 1.2.0rc1 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer
|
Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||||
|
2
configure
vendored
2
configure
vendored
@ -1,5 +1,5 @@
|
|||||||
echo "
|
echo "
|
||||||
There is no \"configure\" script for Libpng-1.2.0beta5. Instead, please
|
There is no \"configure\" script for Libpng-1.2.0rc1. Instead, please
|
||||||
copy the appropriate makefile for your system from the \"scripts\"
|
copy the appropriate makefile for your system from the \"scripts\"
|
||||||
directory. Read the INSTALL file for more details.
|
directory. Read the INSTALL file for more details.
|
||||||
"
|
"
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
- 1.11: added extra set of parentheses to png_jmpbuf() macro; fixed
|
- 1.11: added extra set of parentheses to png_jmpbuf() macro; fixed
|
||||||
command-line parsing bug
|
command-line parsing bug
|
||||||
- 1.12: fixed small X memory leak (thanks to Francois Petitjean)
|
- 1.12: fixed small X memory leak (thanks to Francois Petitjean)
|
||||||
|
- 1.13: fixed XFreeGC() crash bug
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -52,7 +53,7 @@
|
|||||||
|
|
||||||
#define PROGNAME "rpng-x"
|
#define PROGNAME "rpng-x"
|
||||||
#define LONGNAME "Simple PNG Viewer for X"
|
#define LONGNAME "Simple PNG Viewer for X"
|
||||||
#define VERSION "1.12 of 28 May 2001"
|
#define VERSION "1.13 of 16 August 2001"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -118,6 +119,7 @@ static Colormap colormap;
|
|||||||
static int have_nondefault_visual = FALSE;
|
static int have_nondefault_visual = FALSE;
|
||||||
static int have_colormap = FALSE;
|
static int have_colormap = FALSE;
|
||||||
static int have_window = FALSE;
|
static int have_window = FALSE;
|
||||||
|
static int have_gc = FALSE;
|
||||||
/*
|
/*
|
||||||
ulg numcolors=0, pixels[256];
|
ulg numcolors=0, pixels[256];
|
||||||
ush reds[256], greens[256], blues[256];
|
ush reds[256], greens[256], blues[256];
|
||||||
@ -556,6 +558,7 @@ static int rpng_x_create_window(void)
|
|||||||
XMapWindow(display, window);
|
XMapWindow(display, window);
|
||||||
|
|
||||||
gc = XCreateGC(display, window, 0, &gcvalues);
|
gc = XCreateGC(display, window, 0, &gcvalues);
|
||||||
|
have_gc = TRUE;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------
|
||||||
Fill window with the specified background color.
|
Fill window with the specified background color.
|
||||||
@ -825,7 +828,8 @@ static void rpng_x_cleanup(void)
|
|||||||
ximage = NULL;
|
ximage = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
XFreeGC(display, gc);
|
if (have_gc)
|
||||||
|
XFreeGC(display, gc);
|
||||||
|
|
||||||
if (have_window)
|
if (have_window)
|
||||||
XDestroyWindow(display, window);
|
XDestroyWindow(display, window);
|
||||||
|
@ -27,6 +27,7 @@
|
|||||||
- 1.12: added -pause option for demos and testing
|
- 1.12: added -pause option for demos and testing
|
||||||
- 1.20: added runtime MMX-enabling/disabling and new -mmx* options
|
- 1.20: added runtime MMX-enabling/disabling and new -mmx* options
|
||||||
- 1.21: fixed small X memory leak (thanks to Francois Petitjean)
|
- 1.21: fixed small X memory leak (thanks to Francois Petitjean)
|
||||||
|
- 1.22: fixed XFreeGC() crash bug
|
||||||
|
|
||||||
---------------------------------------------------------------------------
|
---------------------------------------------------------------------------
|
||||||
|
|
||||||
@ -57,7 +58,7 @@
|
|||||||
|
|
||||||
#define PROGNAME "rpng2-x"
|
#define PROGNAME "rpng2-x"
|
||||||
#define LONGNAME "Progressive PNG Viewer for X"
|
#define LONGNAME "Progressive PNG Viewer for X"
|
||||||
#define VERSION "1.21 of 30 May 2001"
|
#define VERSION "1.22 of 16 August 2001"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
@ -228,6 +229,7 @@ static Colormap colormap;
|
|||||||
static int have_nondefault_visual = FALSE;
|
static int have_nondefault_visual = FALSE;
|
||||||
static int have_colormap = FALSE;
|
static int have_colormap = FALSE;
|
||||||
static int have_window = FALSE;
|
static int have_window = FALSE;
|
||||||
|
static int have_gc = FALSE;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -759,6 +761,7 @@ static int rpng2_x_create_window(void)
|
|||||||
XMapWindow(display, window);
|
XMapWindow(display, window);
|
||||||
|
|
||||||
gc = XCreateGC(display, window, 0, &gcvalues);
|
gc = XCreateGC(display, window, 0, &gcvalues);
|
||||||
|
have_gc = TRUE;
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------
|
/*---------------------------------------------------------------------------
|
||||||
Allocate memory for the X- and display-specific version of the image.
|
Allocate memory for the X- and display-specific version of the image.
|
||||||
@ -1374,7 +1377,8 @@ static void rpng2_x_cleanup(void)
|
|||||||
ximage = NULL;
|
ximage = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
XFreeGC(display, gc);
|
if (have_gc)
|
||||||
|
XFreeGC(display, gc);
|
||||||
|
|
||||||
if (have_window)
|
if (have_window)
|
||||||
XDestroyWindow(display, window);
|
XDestroyWindow(display, window);
|
||||||
|
29
libpng.3
29
libpng.3
@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNG 3 "August 8, 2001"
|
.TH LIBPNG 3 "August 25, 2001"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0beta5
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0rc1
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fI\fB
|
\fI\fB
|
||||||
|
|
||||||
@ -787,7 +787,7 @@ Following is a copy of the libpng.txt file that accompanies libpng.
|
|||||||
.SH LIBPNG.TXT
|
.SH LIBPNG.TXT
|
||||||
libpng.txt - A description on how to use and modify libpng
|
libpng.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.2.0beta5 - August 8, 2001
|
libpng version 1.2.0rc1 - August 25, 2001
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<randeg@alum.rpi.edu>
|
<randeg@alum.rpi.edu>
|
||||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
@ -1591,17 +1591,18 @@ changes the storage of the pixels to blue, green, red:
|
|||||||
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
||||||
png_set_bgr(png_ptr);
|
png_set_bgr(png_ptr);
|
||||||
|
|
||||||
PNG files store RGB pixels packed into 3 bytes. This code expands them
|
PNG files store RGB pixels packed into 3 or 6 bytes. This code expands them
|
||||||
into 4 bytes for windowing systems that need them in this format:
|
into 4 or 8 bytes for windowing systems that need them in this format:
|
||||||
|
|
||||||
if (bit_depth == 8 && color_type ==
|
if (color_type == PNG_COLOR_TYPE_RGB)
|
||||||
PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr,
|
png_set_filler(png_ptr, filler, PNG_FILLER_BEFORE);
|
||||||
filler, PNG_FILLER_BEFORE);
|
|
||||||
|
|
||||||
where "filler" is the 8 or 16-bit number to fill with, and the location is
|
where "filler" is the 8 or 16-bit number to fill with, and the location is
|
||||||
either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether
|
either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether
|
||||||
you want the filler before the RGB or after. This transformation
|
you want the filler before the RGB or after. This transformation
|
||||||
does not affect images that already have full alpha channels.
|
does not affect images that already have full alpha channels. To add an
|
||||||
|
opaque alpha channel, use filler=0xff or 0xffff and PNG_FILLER_AFTER which
|
||||||
|
will generate RGBA pixels.
|
||||||
|
|
||||||
If you are reading an image with an alpha channel, and you need the
|
If you are reading an image with an alpha channel, and you need the
|
||||||
data as ARGB instead of the normal PNG format RGBA:
|
data as ARGB instead of the normal PNG format RGBA:
|
||||||
@ -3613,13 +3614,13 @@ application:
|
|||||||
|
|
||||||
.SH IX. Y2K Compliance in libpng
|
.SH IX. Y2K Compliance in libpng
|
||||||
|
|
||||||
August 8, 2001
|
August 25, 2001
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.2.0beta5 are Y2K compliant. It is my belief that earlier
|
upward through 1.2.0rc1 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||||
@ -3794,7 +3795,7 @@ possible without all of you.
|
|||||||
|
|
||||||
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
Thanks to Frank J. T. Wojcik for helping with the documentation.
|
||||||
|
|
||||||
Libpng version 1.2.0beta5 - August 8, 2001:
|
Libpng version 1.2.0rc1 - August 25, 2001:
|
||||||
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
Initially created in 1995 by Guy Eric Schalnat, then of Group 42, Inc.
|
||||||
Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
|
Currently maintained by Glenn Randers-Pehrson (randeg@alum.rpi.edu).
|
||||||
|
|
||||||
@ -3811,7 +3812,7 @@ included in the libpng distribution, the latter shall prevail.)
|
|||||||
If you modify libpng you may insert additional notices immediately following
|
If you modify libpng you may insert additional notices immediately following
|
||||||
this sentence.
|
this sentence.
|
||||||
|
|
||||||
libpng versions 1.0.7, July 1, 2000, through 1.2.0beta5, August 8, 2001, are
|
libpng versions 1.0.7, July 1, 2000, through 1.2.0rc1, August 25, 2001, are
|
||||||
Copyright (c) 2000-2001 Glenn Randers-Pehrson, and are
|
Copyright (c) 2000-2001 Glenn Randers-Pehrson, and are
|
||||||
distributed according to the same disclaimer and license as libpng-1.0.6
|
distributed according to the same disclaimer and license as libpng-1.0.6
|
||||||
with the following individuals added to the list of Contributing Authors
|
with the following individuals added to the list of Contributing Authors
|
||||||
@ -3903,7 +3904,7 @@ certification mark of the Open Source Initiative.
|
|||||||
|
|
||||||
Glenn Randers-Pehrson
|
Glenn Randers-Pehrson
|
||||||
randeg@alum.rpi.edu
|
randeg@alum.rpi.edu
|
||||||
August 8, 2001
|
August 25, 2001
|
||||||
|
|
||||||
.\" end of man page
|
.\" end of man page
|
||||||
|
|
||||||
|
19
libpng.txt
19
libpng.txt
@ -1,6 +1,6 @@
|
|||||||
libpng.txt - A description on how to use and modify libpng
|
libpng.txt - A description on how to use and modify libpng
|
||||||
|
|
||||||
libpng version 1.2.0beta5 - August 8, 2001
|
libpng version 1.2.0rc1 - August 25, 2001
|
||||||
Updated and distributed by Glenn Randers-Pehrson
|
Updated and distributed by Glenn Randers-Pehrson
|
||||||
<randeg@alum.rpi.edu>
|
<randeg@alum.rpi.edu>
|
||||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
@ -804,17 +804,18 @@ changes the storage of the pixels to blue, green, red:
|
|||||||
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
color_type == PNG_COLOR_TYPE_RGB_ALPHA)
|
||||||
png_set_bgr(png_ptr);
|
png_set_bgr(png_ptr);
|
||||||
|
|
||||||
PNG files store RGB pixels packed into 3 bytes. This code expands them
|
PNG files store RGB pixels packed into 3 or 6 bytes. This code expands them
|
||||||
into 4 bytes for windowing systems that need them in this format:
|
into 4 or 8 bytes for windowing systems that need them in this format:
|
||||||
|
|
||||||
if (bit_depth == 8 && color_type ==
|
if (color_type == PNG_COLOR_TYPE_RGB)
|
||||||
PNG_COLOR_TYPE_RGB) png_set_filler(png_ptr,
|
png_set_filler(png_ptr, filler, PNG_FILLER_BEFORE);
|
||||||
filler, PNG_FILLER_BEFORE);
|
|
||||||
|
|
||||||
where "filler" is the 8 or 16-bit number to fill with, and the location is
|
where "filler" is the 8 or 16-bit number to fill with, and the location is
|
||||||
either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether
|
either PNG_FILLER_BEFORE or PNG_FILLER_AFTER, depending upon whether
|
||||||
you want the filler before the RGB or after. This transformation
|
you want the filler before the RGB or after. This transformation
|
||||||
does not affect images that already have full alpha channels.
|
does not affect images that already have full alpha channels. To add an
|
||||||
|
opaque alpha channel, use filler=0xff or 0xffff and PNG_FILLER_AFTER which
|
||||||
|
will generate RGBA pixels.
|
||||||
|
|
||||||
If you are reading an image with an alpha channel, and you need the
|
If you are reading an image with an alpha channel, and you need the
|
||||||
data as ARGB instead of the normal PNG format RGBA:
|
data as ARGB instead of the normal PNG format RGBA:
|
||||||
@ -2826,13 +2827,13 @@ application:
|
|||||||
|
|
||||||
IX. Y2K Compliance in libpng
|
IX. Y2K Compliance in libpng
|
||||||
|
|
||||||
August 8, 2001
|
August 25, 2001
|
||||||
|
|
||||||
Since the PNG Development group is an ad-hoc body, we can't make
|
Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
an official declaration.
|
an official declaration.
|
||||||
|
|
||||||
This is your unofficial assurance that libpng from version 0.71 and
|
This is your unofficial assurance that libpng from version 0.71 and
|
||||||
upward through 1.2.0beta5 are Y2K compliant. It is my belief that earlier
|
upward through 1.2.0rc1 are Y2K compliant. It is my belief that earlier
|
||||||
versions were also Y2K compliant.
|
versions were also Y2K compliant.
|
||||||
|
|
||||||
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
Libpng only has three year fields. One is a 2-byte unsigned integer that
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
.TH LIBPNGPF 3 "August 8, 2001"
|
.TH LIBPNGPF 3 "August 25, 2001"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0beta5
|
libpng \- Portable Network Graphics (PNG) Reference Library 1.2.0rc1
|
||||||
(private functions)
|
(private functions)
|
||||||
.SH SYNOPSIS
|
.SH SYNOPSIS
|
||||||
\fB#include <png.h>\fP
|
\fB#include <png.h>\fP
|
||||||
|
2
png.5
2
png.5
@ -1,4 +1,4 @@
|
|||||||
.TH PNG 5 "August 8, 2001"
|
.TH PNG 5 "August 25, 2001"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
png \- Portable Network Graphics (PNG) format
|
png \- Portable Network Graphics (PNG) format
|
||||||
.SH DESCRIPTION
|
.SH DESCRIPTION
|
||||||
|
12
png.c
12
png.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.c - location for general purpose libpng functions
|
/* png.c - location for general purpose libpng functions
|
||||||
*
|
*
|
||||||
* libpng version 1.2.0beta5 - August 8, 2001
|
* libpng version 1.2.0rc1 - August 25, 2001
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@ -13,14 +13,14 @@
|
|||||||
#include "png.h"
|
#include "png.h"
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef version_1_2_0beta5 Your_png_h_is_not_version_1_2_0beta5;
|
typedef version_1_2_0rc1 Your_png_h_is_not_version_1_2_0rc1;
|
||||||
|
|
||||||
/* Version information for C files. This had better match the version
|
/* Version information for C files. This had better match the version
|
||||||
* string defined in png.h. */
|
* string defined in png.h. */
|
||||||
|
|
||||||
#ifdef PNG_USE_GLOBAL_ARRAYS
|
#ifdef PNG_USE_GLOBAL_ARRAYS
|
||||||
/* png_libpng_ver was changed to a function in version 1.0.5c */
|
/* png_libpng_ver was changed to a function in version 1.0.5c */
|
||||||
const char png_libpng_ver[18] = "1.2.0beta5";
|
const char png_libpng_ver[18] = "1.2.0rc1";
|
||||||
|
|
||||||
/* png_sig was changed to a function in version 1.0.5c */
|
/* png_sig was changed to a function in version 1.0.5c */
|
||||||
/* Place to hold the signature string for a PNG file. */
|
/* Place to hold the signature string for a PNG file. */
|
||||||
@ -646,7 +646,7 @@ png_charp PNGAPI
|
|||||||
png_get_copyright(png_structp png_ptr)
|
png_get_copyright(png_structp png_ptr)
|
||||||
{
|
{
|
||||||
if (png_ptr != NULL || png_ptr == NULL) /* silence compiler warning */
|
if (png_ptr != NULL || png_ptr == NULL) /* silence compiler warning */
|
||||||
return ((png_charp) "\n libpng version 1.2.0beta5 - August 8, 2001\n\
|
return ((png_charp) "\n libpng version 1.2.0rc1 - August 25, 2001\n\
|
||||||
Copyright (c) 1998-2001 Glenn Randers-Pehrson\n\
|
Copyright (c) 1998-2001 Glenn Randers-Pehrson\n\
|
||||||
Copyright (c) 1996, 1997 Andreas Dilger\n\
|
Copyright (c) 1996, 1997 Andreas Dilger\n\
|
||||||
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.\n");
|
||||||
@ -664,8 +664,8 @@ png_get_libpng_ver(png_structp png_ptr)
|
|||||||
{
|
{
|
||||||
/* Version of *.c files used when building libpng */
|
/* Version of *.c files used when building libpng */
|
||||||
if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
|
if(png_ptr != NULL) /* silence compiler warning about unused png_ptr */
|
||||||
return((png_charp) "1.2.0beta5");
|
return((png_charp) "1.2.0rc1");
|
||||||
return((png_charp) "1.2.0beta5");
|
return((png_charp) "1.2.0rc1");
|
||||||
}
|
}
|
||||||
|
|
||||||
png_charp PNGAPI
|
png_charp PNGAPI
|
||||||
|
24
png.h
24
png.h
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* png.h - header file for PNG reference library
|
/* png.h - header file for PNG reference library
|
||||||
*
|
*
|
||||||
* libpng version 1.2.0beta5 - August 8, 2001
|
* libpng version 1.2.0rc1 - August 25, 2001
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
* (Version 0.88 Copyright (c) 1995, 1996 Guy Eric Schalnat, Group 42, Inc.)
|
||||||
@ -9,7 +9,7 @@
|
|||||||
* Authors and maintainers:
|
* Authors and maintainers:
|
||||||
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
* libpng versions 0.71, May 1995, through 0.88, January 1996: Guy Schalnat
|
||||||
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
* libpng versions 0.89c, June 1996, through 0.96, May 1997: Andreas Dilger
|
||||||
* libpng versions 0.97, January 1998, through 1.2.0beta5 - August 8, 2001: Glenn
|
* libpng versions 0.97, January 1998, through 1.2.0rc1 - August 25, 2001: Glenn
|
||||||
* See also "Contributing Authors", below.
|
* See also "Contributing Authors", below.
|
||||||
*
|
*
|
||||||
* Note about libpng version numbers:
|
* Note about libpng version numbers:
|
||||||
@ -105,7 +105,7 @@
|
|||||||
* If you modify libpng you may insert additional notices immediately following
|
* If you modify libpng you may insert additional notices immediately following
|
||||||
* this sentence.
|
* this sentence.
|
||||||
*
|
*
|
||||||
* libpng versions 1.0.7, July 1, 2000, through 1.2.0beta5, August 8, 2001, are
|
* libpng versions 1.0.7, July 1, 2000, through 1.2.0rc1, August 25, 2001, are
|
||||||
* Copyright (c) 2000, 2001 Glenn Randers-Pehrson, and are
|
* Copyright (c) 2000, 2001 Glenn Randers-Pehrson, and are
|
||||||
* distributed according to the same disclaimer and license as libpng-1.0.6
|
* distributed according to the same disclaimer and license as libpng-1.0.6
|
||||||
* with the following individuals added to the list of Contributing Authors
|
* with the following individuals added to the list of Contributing Authors
|
||||||
@ -210,13 +210,13 @@
|
|||||||
* Y2K compliance in libpng:
|
* Y2K compliance in libpng:
|
||||||
* =========================
|
* =========================
|
||||||
*
|
*
|
||||||
* August 8, 2001
|
* August 25, 2001
|
||||||
*
|
*
|
||||||
* Since the PNG Development group is an ad-hoc body, we can't make
|
* Since the PNG Development group is an ad-hoc body, we can't make
|
||||||
* an official declaration.
|
* an official declaration.
|
||||||
*
|
*
|
||||||
* This is your unofficial assurance that libpng from version 0.71 and
|
* This is your unofficial assurance that libpng from version 0.71 and
|
||||||
* upward through 1.2.0beta5 are Y2K compliant. It is my belief that earlier
|
* upward through 1.2.0rc1 are Y2K compliant. It is my belief that earlier
|
||||||
* versions were also Y2K compliant.
|
* versions were also Y2K compliant.
|
||||||
*
|
*
|
||||||
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
* Libpng only has three year fields. One is a 2-byte unsigned integer
|
||||||
@ -272,7 +272,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
/* Version information for png.h - this should match the version in png.c */
|
/* Version information for png.h - this should match the version in png.c */
|
||||||
#define PNG_LIBPNG_VER_STRING "1.2.0beta5"
|
#define PNG_LIBPNG_VER_STRING "1.2.0rc1"
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_SONUM 3
|
#define PNG_LIBPNG_VER_SONUM 3
|
||||||
#define PNG_LIBPNG_VER_DLLNUM %DLLNUM%
|
#define PNG_LIBPNG_VER_DLLNUM %DLLNUM%
|
||||||
@ -284,7 +284,7 @@
|
|||||||
/* This should match the numeric part of the final component of
|
/* This should match the numeric part of the final component of
|
||||||
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
|
* PNG_LIBPNG_VER_STRING, omitting any leading zero: */
|
||||||
|
|
||||||
#define PNG_LIBPNG_VER_BUILD 5
|
#define PNG_LIBPNG_VER_BUILD 1
|
||||||
|
|
||||||
#define PNG_LIBPNG_BUILD_ALPHA 1
|
#define PNG_LIBPNG_BUILD_ALPHA 1
|
||||||
#define PNG_LIBPNG_BUILD_BETA 2
|
#define PNG_LIBPNG_BUILD_BETA 2
|
||||||
@ -292,7 +292,7 @@
|
|||||||
#define PNG_LIBPNG_BUILD_STABLE 4
|
#define PNG_LIBPNG_BUILD_STABLE 4
|
||||||
#define PNG_LIBPNG_BUILD_TYPEMASK 7
|
#define PNG_LIBPNG_BUILD_TYPEMASK 7
|
||||||
#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with STABLE only */
|
#define PNG_LIBPNG_BUILD_PATCH 8 /* Can be OR'ed with STABLE only */
|
||||||
#define PNG_LIBPNG_BUILD_TYPE 2
|
#define PNG_LIBPNG_BUILD_TYPE 3
|
||||||
|
|
||||||
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
|
/* Careful here. At one time, Guy wanted to use 082, but that would be octal.
|
||||||
* We must not include leading zeros.
|
* We must not include leading zeros.
|
||||||
@ -1208,13 +1208,15 @@ struct png_struct_def
|
|||||||
png_free_ptr free_fn; /* function for freeing memory */
|
png_free_ptr free_fn; /* function for freeing memory */
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
png_bytep big_row_buf; /* buffer to save current (unfiltered) row */
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/* This prevents a compiler error in png_get_copyright() in png.c if png.c
|
/* This prevents a compiler error in png_get_copyright() in png.c if png.c
|
||||||
and png.h are both at version 1.2.0beta5
|
and png.h are both at version 1.2.0rc1
|
||||||
*/
|
*/
|
||||||
typedef png_structp version_1_2_0beta5;
|
typedef png_structp version_1_2_0rc1;
|
||||||
|
|
||||||
typedef png_struct FAR * FAR * png_structpp;
|
typedef png_struct FAR * FAR * png_structpp;
|
||||||
|
|
||||||
@ -2331,7 +2333,7 @@ extern PNG_EXPORT(void,png_set_strip_error_numbers) PNGARG((png_structp
|
|||||||
/* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
|
/* Maintainer: Put new public prototypes here ^, in libpng.3, and project defs */
|
||||||
|
|
||||||
#define PNG_HEADER_VERSION_STRING \
|
#define PNG_HEADER_VERSION_STRING \
|
||||||
" libpng version 1.2.0beta5 - August 8, 2001 (header)\n"
|
" libpng version 1.2.0rc1 - August 25, 2001 (header)\n"
|
||||||
|
|
||||||
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
#ifdef PNG_READ_COMPOSITE_NODIV_SUPPORTED
|
||||||
/* With these routines we avoid an integer divide, which will be slower on
|
/* With these routines we avoid an integer divide, which will be slower on
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* pngasmrd.h - assembler version of utilities to read a PNG file
|
/* pngasmrd.h - assembler version of utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 2001 Glenn Randers-Pehrson
|
* Copyright (c) 2001 Glenn Randers-Pehrson
|
||||||
*
|
*
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/* pngconf.h - machine configurable file for libpng
|
/* pngconf.h - machine configurable file for libpng
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngerror.c - stub functions for i/o and memory allocation
|
/* pngerror.c - stub functions for i/o and memory allocation
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
287
pnggccrd.c
287
pnggccrd.c
@ -6,7 +6,7 @@
|
|||||||
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
|
* and http://www.intel.com/drg/pentiumII/appnotes/923/923.htm
|
||||||
* for Intel's performance analysis of the MMX vs. non-MMX code.
|
* for Intel's performance analysis of the MMX vs. non-MMX code.
|
||||||
*
|
*
|
||||||
* libpng version 1.2.0beta5 - August 8, 2001
|
* libpng version 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* Copyright (c) 1998, Intel Corporation
|
* Copyright (c) 1998, Intel Corporation
|
||||||
@ -2637,12 +2637,12 @@ png_do_read_interlace(png_structp png_ptr)
|
|||||||
for (j = 0; j < png_pass_inc[pass]; j++)
|
for (j = 0; j < png_pass_inc[pass]; j++)
|
||||||
{
|
{
|
||||||
#ifdef PNG_DEBUG
|
#ifdef PNG_DEBUG
|
||||||
if (dp < row || dp+3 > row+png_ptr->row_buf_size)
|
if (dp < row || dp+3 > row+png_ptr->row_buf_size)
|
||||||
{
|
{
|
||||||
printf("dp out of bounds: row=%d, dp=%d, rp=%d\n",row, dp,
|
printf("dp out of bounds: row=%d, dp=%d, rp=%d\n",
|
||||||
row+png_ptr->row_buf_size);
|
row, dp, row+png_ptr->row_buf_size);
|
||||||
printf("row_buf=%d\n",png_ptr->row_buf_size);
|
printf("row_buf=%d\n",png_ptr->row_buf_size);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
png_memcpy(dp, v, 4);
|
png_memcpy(dp, v, 4);
|
||||||
dp -= 4;
|
dp -= 4;
|
||||||
@ -2849,53 +2849,76 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
"avg_3lp: \n\t"
|
"avg_3lp: \n\t"
|
||||||
"movq (%%edi,%%ecx,), %%mm0 \n\t" // load mm0 with Avg(x)
|
"movq (%%edi,%%ecx,), %%mm0 \n\t" // load mm0 with Avg(x)
|
||||||
"movq %%mm5, %%mm3 \n\t"
|
"movq %%mm5, %%mm3 \n\t"
|
||||||
"psrlq _ShiftRem, %%mm2 \n\t" // correct position Raw(x-bpp) data
|
"psrlq _ShiftRem, %%mm2 \n\t" // correct position Raw(x-bpp)
|
||||||
|
// data
|
||||||
"movq (%%esi,%%ecx,), %%mm1 \n\t" // load mm1 with Prior(x)
|
"movq (%%esi,%%ecx,), %%mm1 \n\t" // load mm1 with Prior(x)
|
||||||
"movq %%mm7, %%mm6 \n\t"
|
"movq %%mm7, %%mm6 \n\t"
|
||||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
// byte
|
||||||
|
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||||
|
// each byte
|
||||||
// add 1st active group (Raw(x-bpp)/2) to average with LBCarry
|
// add 1st active group (Raw(x-bpp)/2) to average with LBCarry
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
// lsb's were == 1 (only valid for active group)
|
// lsb's were == 1 (only valid for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||||
|
// Avg for each Active
|
||||||
// byte
|
// byte
|
||||||
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 3-5
|
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||||
|
// bytes 3-5
|
||||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
// lsb's were == 1 (only valid for active group)
|
// lsb's were == 1 (only valid for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||||
|
// Avg for each Active
|
||||||
// byte
|
// byte
|
||||||
|
|
||||||
// add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift mm6 mask to cover last two
|
"psllq _ShiftBpp, %%mm6 \n\t" // shift mm6 mask to cover last
|
||||||
|
// two
|
||||||
// bytes
|
// bytes
|
||||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||||
// Data only needs to be shifted once here to
|
// Data only needs to be shifted once here to
|
||||||
// get the correct x-bpp offset.
|
// get the correct x-bpp offset.
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
// lsb's were == 1 (only valid for active group)
|
// lsb's were == 1 (only valid for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||||
|
// bytes to add to Avg
|
||||||
"addl $8, %%ecx \n\t"
|
"addl $8, %%ecx \n\t"
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||||
|
// Avg for each Active
|
||||||
// byte
|
// byte
|
||||||
// now ready to write back to memory
|
// now ready to write back to memory
|
||||||
"movq %%mm0, -8(%%edi,%%ecx,) \n\t"
|
"movq %%mm0, -8(%%edi,%%ecx,) \n\t"
|
||||||
@ -2933,7 +2956,8 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
"movq _HBClearMask, %%mm4 \n\t"
|
"movq _HBClearMask, %%mm4 \n\t"
|
||||||
|
|
||||||
// re-init address pointers and offset
|
// re-init address pointers and offset
|
||||||
"movl _dif, %%ecx \n\t" // ecx: x = offset to alignment boundary
|
"movl _dif, %%ecx \n\t" // ecx: x = offset to
|
||||||
|
// alignment boundary
|
||||||
|
|
||||||
// load _ActiveMask and clear all bytes except for 1st active group
|
// load _ActiveMask and clear all bytes except for 1st active group
|
||||||
"movq _ActiveMask, %%mm7 \n\t"
|
"movq _ActiveMask, %%mm7 \n\t"
|
||||||
@ -2942,7 +2966,8 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
// preload "movl prev_row, %%esi \n\t" // esi: Prior(x)
|
// preload "movl prev_row, %%esi \n\t" // esi: Prior(x)
|
||||||
"movq %%mm7, %%mm6 \n\t"
|
"movq %%mm7, %%mm6 \n\t"
|
||||||
"movq _LBCarryMask, %%mm5 \n\t"
|
"movq _LBCarryMask, %%mm5 \n\t"
|
||||||
"psllq _ShiftBpp, %%mm6 \n\t" // create mask for 2nd active group
|
"psllq _ShiftBpp, %%mm6 \n\t" // create mask for 2nd active
|
||||||
|
// group
|
||||||
|
|
||||||
// prime the pump: load the first Raw(x-bpp) data set
|
// prime the pump: load the first Raw(x-bpp) data set
|
||||||
"movq -8(%%edi,%%ecx,), %%mm2 \n\t" // load previous aligned 8 bytes
|
"movq -8(%%edi,%%ecx,), %%mm2 \n\t" // load previous aligned 8 bytes
|
||||||
@ -2955,30 +2980,44 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
"movq %%mm5, %%mm3 \n\t"
|
"movq %%mm5, %%mm3 \n\t"
|
||||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
// byte
|
||||||
|
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||||
|
// each byte
|
||||||
// add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
// lsb's were == 1 (only valid for active group)
|
// lsb's were == 1 (only valid for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm7, %%mm2 \n\t" // leave only Active Group 1 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
// for each byte
|
||||||
|
"pand %%mm7, %%mm2 \n\t" // leave only Active Group 1
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg
|
||||||
|
// for each Active
|
||||||
// byte
|
// byte
|
||||||
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||||
"addl $8, %%ecx \n\t"
|
"addl $8, %%ecx \n\t"
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
// lsb's were == 1 (only valid for active group)
|
// lsb's were == 1 (only valid for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||||
|
// Avg for each Active
|
||||||
// byte
|
// byte
|
||||||
"cmpl _MMXLength, %%ecx \n\t"
|
"cmpl _MMXLength, %%ecx \n\t"
|
||||||
// now ready to write back to memory
|
// now ready to write back to memory
|
||||||
@ -3012,7 +3051,8 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
// load _ActiveMask
|
// load _ActiveMask
|
||||||
"movq _ActiveMask, %%mm7 \n\t"
|
"movq _ActiveMask, %%mm7 \n\t"
|
||||||
// re-init address pointers and offset
|
// re-init address pointers and offset
|
||||||
"movl _dif, %%ecx \n\t" // ecx: x = offset to alignment boundary
|
"movl _dif, %%ecx \n\t" // ecx: x = offset to alignment
|
||||||
|
// boundary
|
||||||
"movq _LBCarryMask, %%mm5 \n\t"
|
"movq _LBCarryMask, %%mm5 \n\t"
|
||||||
// preload "movl row, %%edi \n\t" // edi: Avg(x)
|
// preload "movl row, %%edi \n\t" // edi: Avg(x)
|
||||||
"movq _HBClearMask, %%mm4 \n\t"
|
"movq _HBClearMask, %%mm4 \n\t"
|
||||||
@ -3029,59 +3069,91 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
"movq %%mm5, %%mm3 \n\t"
|
"movq %%mm5, %%mm3 \n\t"
|
||||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||||
|
// byte
|
||||||
"movq %%mm7, %%mm6 \n\t"
|
"movq %%mm7, %%mm6 \n\t"
|
||||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||||
|
// each byte
|
||||||
|
|
||||||
// add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 1st active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
// lsb's were == 1 (only valid for active group)
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
|
// lsb's were == 1 (only valid
|
||||||
|
// for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 1
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg
|
||||||
|
// for each Active byte
|
||||||
|
|
||||||
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 2nd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 2 & 3
|
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||||
|
// bytes 2 & 3
|
||||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
// lsb's were == 1 (only valid for active group)
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
|
// lsb's were == 1 (only valid
|
||||||
|
// for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||||
|
// Avg for each Active byte
|
||||||
|
|
||||||
// add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 3rd active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 4 & 5
|
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||||
|
// bytes 4 & 5
|
||||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
// lsb's were == 1 (only valid for active group)
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both lsb's were == 1
|
||||||
|
// (only valid for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||||
|
// Avg for each Active byte
|
||||||
|
|
||||||
// add 4th active group (Raw(x-bpp)/2) to average with _LBCarry
|
// add 4th active group (Raw(x-bpp)/2) to average with _LBCarry
|
||||||
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover bytes 6 & 7
|
"psllq _ShiftBpp, %%mm6 \n\t" // shift the mm6 mask to cover
|
||||||
|
// bytes 6 & 7
|
||||||
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
"movq %%mm0, %%mm2 \n\t" // mov updated Raws to mm2
|
||||||
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
"psllq _ShiftBpp, %%mm2 \n\t" // shift data to pos. correctly
|
||||||
"addl $8, %%ecx \n\t"
|
"addl $8, %%ecx \n\t"
|
||||||
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting LBCarrys
|
"movq %%mm3, %%mm1 \n\t" // now use mm1 for getting
|
||||||
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte where both
|
// LBCarrys
|
||||||
// lsb's were == 1 (only valid for active group)
|
"pand %%mm2, %%mm1 \n\t" // get LBCarrys for each byte
|
||||||
|
// where both
|
||||||
|
// lsb's were == 1 (only valid
|
||||||
|
// for active group)
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2) for each byte
|
// byte
|
||||||
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2 bytes to add to Avg
|
"paddb %%mm1, %%mm2 \n\t" // add LBCarrys to (Raw(x-bpp)/2)
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to Avg for each Active byte
|
// for each byte
|
||||||
|
"pand %%mm6, %%mm2 \n\t" // leave only Active Group 2
|
||||||
|
// bytes to add to Avg
|
||||||
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) + LBCarrys to
|
||||||
|
// Avg for each Active byte
|
||||||
|
|
||||||
"cmpl _MMXLength, %%ecx \n\t"
|
"cmpl _MMXLength, %%ecx \n\t"
|
||||||
// now ready to write back to memory
|
// now ready to write back to memory
|
||||||
@ -3112,7 +3184,8 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
#ifdef __PIC__
|
#ifdef __PIC__
|
||||||
"pushl %%ebx \n\t" // save Global Offset Table index
|
"pushl %%ebx \n\t" // save Global Offset Table index
|
||||||
#endif
|
#endif
|
||||||
"movl _dif, %%ebx \n\t" // ebx: x = offset to alignment boundary
|
"movl _dif, %%ebx \n\t" // ebx: x = offset to alignment
|
||||||
|
// boundary
|
||||||
// preload "movl row, %%edi \n\t" // edi: Avg(x)
|
// preload "movl row, %%edi \n\t" // edi: Avg(x)
|
||||||
"cmpl _FullLength, %%ebx \n\t" // test if offset at end of array
|
"cmpl _FullLength, %%ebx \n\t" // test if offset at end of array
|
||||||
"jnb avg_1end \n\t"
|
"jnb avg_1end \n\t"
|
||||||
@ -3131,7 +3204,8 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
"addw %%cx, %%ax \n\t"
|
"addw %%cx, %%ax \n\t"
|
||||||
"incl %%ebx \n\t"
|
"incl %%ebx \n\t"
|
||||||
"shrw %%ax \n\t" // divide by 2
|
"shrw %%ax \n\t" // divide by 2
|
||||||
"addb -1(%%edi,%%ebx,), %%al \n\t" // add Avg(x); -1 to offset inc ebx
|
"addb -1(%%edi,%%ebx,), %%al \n\t" // add Avg(x); -1 to offset
|
||||||
|
// inc ebx
|
||||||
"cmpl _FullLength, %%ebx \n\t" // check if at end of array
|
"cmpl _FullLength, %%ebx \n\t" // check if at end of array
|
||||||
"movb %%al, -1(%%edi,%%ebx,) \n\t" // write back Raw(x);
|
"movb %%al, -1(%%edi,%%ebx,) \n\t" // write back Raw(x);
|
||||||
// mov does not affect flags; -1 to offset inc ebx
|
// mov does not affect flags; -1 to offset inc ebx
|
||||||
@ -3210,15 +3284,18 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
default: // bpp greater than 8 (!= 1,2,3,4,[5],6,[7],8)
|
default: // bpp greater than 8 (!= 1,2,3,4,[5],6,[7],8)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
#ifdef PNG_DEBUG
|
||||||
// GRR: PRINT ERROR HERE: SHOULD NEVER BE REACHED
|
// GRR: PRINT ERROR HERE: SHOULD NEVER BE REACHED
|
||||||
png_warning(png_ptr,
|
png_debug(1,
|
||||||
"Internal logic error in pnggccrd (png_read_filter_row_mmx_avg())");
|
"Internal logic error in pnggccrd (png_read_filter_row_mmx_avg())\n");
|
||||||
|
#endif
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
__asm__ __volatile__ (
|
__asm__ __volatile__ (
|
||||||
"movq _LBCarryMask, %%mm5 \n\t"
|
"movq _LBCarryMask, %%mm5 \n\t"
|
||||||
// re-init address pointers and offset
|
// re-init address pointers and offset
|
||||||
"movl _dif, %%ebx \n\t" // ebx: x = offset to alignment boundary
|
"movl _dif, %%ebx \n\t" // ebx: x = offset to
|
||||||
|
// alignment boundary
|
||||||
"movl row, %%edi \n\t" // edi: Avg(x)
|
"movl row, %%edi \n\t" // edi: Avg(x)
|
||||||
"movq _HBClearMask, %%mm4 \n\t"
|
"movq _HBClearMask, %%mm4 \n\t"
|
||||||
"movl %%edi, %%edx \n\t"
|
"movl %%edi, %%edx \n\t"
|
||||||
@ -3231,15 +3308,20 @@ png_read_filter_row_mmx_avg(png_row_infop row_info, png_bytep row,
|
|||||||
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
"pand %%mm1, %%mm3 \n\t" // get lsb for each prev_row byte
|
||||||
"movq (%%edx,%%ebx,), %%mm2 \n\t"
|
"movq (%%edx,%%ebx,), %%mm2 \n\t"
|
||||||
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
"psrlq $1, %%mm1 \n\t" // divide prev_row bytes by 2
|
||||||
"pand %%mm2, %%mm3 \n\t" // get LBCarrys for each byte where both
|
"pand %%mm2, %%mm3 \n\t" // get LBCarrys for each byte
|
||||||
// lsb's were == 1
|
// where both lsb's were == 1
|
||||||
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
"psrlq $1, %%mm2 \n\t" // divide raw bytes by 2
|
||||||
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each byte
|
"pand %%mm4, %%mm1 \n\t" // clear invalid bit 7 of each
|
||||||
"paddb %%mm3, %%mm0 \n\t" // add LBCarrys to Avg for each byte
|
// byte
|
||||||
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each byte
|
"paddb %%mm3, %%mm0 \n\t" // add LBCarrys to Avg for each
|
||||||
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for each byte
|
// byte
|
||||||
|
"pand %%mm4, %%mm2 \n\t" // clear invalid bit 7 of each
|
||||||
|
// byte
|
||||||
|
"paddb %%mm1, %%mm0 \n\t" // add (Prev_row/2) to Avg for
|
||||||
|
// each byte
|
||||||
"addl $8, %%ebx \n\t"
|
"addl $8, %%ebx \n\t"
|
||||||
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) to Avg for each byte
|
"paddb %%mm2, %%mm0 \n\t" // add (Raw/2) to Avg for each
|
||||||
|
// byte
|
||||||
"cmpl _MMXLength, %%ebx \n\t"
|
"cmpl _MMXLength, %%ebx \n\t"
|
||||||
"movq %%mm0, -8(%%edi,%%ebx,) \n\t"
|
"movq %%mm0, -8(%%edi,%%ebx,) \n\t"
|
||||||
"jb avg_Alp \n\t"
|
"jb avg_Alp \n\t"
|
||||||
@ -3358,9 +3440,11 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
|||||||
"movl %%edi, _dif \n\t" // take start of row
|
"movl %%edi, _dif \n\t" // take start of row
|
||||||
"addl %%ebx, _dif \n\t" // add bpp
|
"addl %%ebx, _dif \n\t" // add bpp
|
||||||
"xorl %%ecx, %%ecx \n\t"
|
"xorl %%ecx, %%ecx \n\t"
|
||||||
"addl $0xf, _dif \n\t" // add 7 + 8 to incr past alignment boundary
|
"addl $0xf, _dif \n\t" // add 7 + 8 to incr past alignment
|
||||||
|
// boundary
|
||||||
"andl $0xfffffff8, _dif \n\t" // mask to alignment boundary
|
"andl $0xfffffff8, _dif \n\t" // mask to alignment boundary
|
||||||
"subl %%edi, _dif \n\t" // subtract from start ==> value ebx at alignment
|
"subl %%edi, _dif \n\t" // subtract from start ==> value ebx
|
||||||
|
// at alignment
|
||||||
"jz paeth_go \n\t"
|
"jz paeth_go \n\t"
|
||||||
// fix alignment
|
// fix alignment
|
||||||
|
|
||||||
@ -3478,12 +3562,14 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
|||||||
// prime the pump: load the first Raw(x-bpp) data set
|
// prime the pump: load the first Raw(x-bpp) data set
|
||||||
"movq -8(%%edi,%%ecx,), %%mm1 \n\t"
|
"movq -8(%%edi,%%ecx,), %%mm1 \n\t"
|
||||||
"paeth_3lp: \n\t"
|
"paeth_3lp: \n\t"
|
||||||
"psrlq _ShiftRem, %%mm1 \n\t" // shift last 3 bytes to 1st 3 bytes
|
"psrlq _ShiftRem, %%mm1 \n\t" // shift last 3 bytes to 1st
|
||||||
|
// 3 bytes
|
||||||
"movq (%%esi,%%ecx,), %%mm2 \n\t" // load b=Prior(x)
|
"movq (%%esi,%%ecx,), %%mm2 \n\t" // load b=Prior(x)
|
||||||
"punpcklbw %%mm0, %%mm1 \n\t" // unpack High bytes of a
|
"punpcklbw %%mm0, %%mm1 \n\t" // unpack High bytes of a
|
||||||
"movq -8(%%esi,%%ecx,), %%mm3 \n\t" // prep c=Prior(x-bpp) bytes
|
"movq -8(%%esi,%%ecx,), %%mm3 \n\t" // prep c=Prior(x-bpp) bytes
|
||||||
"punpcklbw %%mm0, %%mm2 \n\t" // unpack High bytes of b
|
"punpcklbw %%mm0, %%mm2 \n\t" // unpack High bytes of b
|
||||||
"psrlq _ShiftRem, %%mm3 \n\t" // shift last 3 bytes to 1st 3 bytes
|
"psrlq _ShiftRem, %%mm3 \n\t" // shift last 3 bytes to 1st
|
||||||
|
// 3 bytes
|
||||||
// pav = p - a = (a + b - c) - a = b - c
|
// pav = p - a = (a + b - c) - a = b - c
|
||||||
"movq %%mm2, %%mm4 \n\t"
|
"movq %%mm2, %%mm4 \n\t"
|
||||||
"punpcklbw %%mm0, %%mm3 \n\t" // unpack High bytes of c
|
"punpcklbw %%mm0, %%mm3 \n\t" // unpack High bytes of c
|
||||||
@ -3538,7 +3624,8 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
|||||||
"paddb (%%edi,%%ecx,), %%mm7 \n\t" // add Paeth predictor with Raw(x)
|
"paddb (%%edi,%%ecx,), %%mm7 \n\t" // add Paeth predictor with Raw(x)
|
||||||
"punpcklbw %%mm0, %%mm3 \n\t" // unpack High bytes of c
|
"punpcklbw %%mm0, %%mm3 \n\t" // unpack High bytes of c
|
||||||
"movq %%mm7, (%%edi,%%ecx,) \n\t" // write back updated value
|
"movq %%mm7, (%%edi,%%ecx,) \n\t" // write back updated value
|
||||||
"movq %%mm7, %%mm1 \n\t" // now mm1 will be used as Raw(x-bpp)
|
"movq %%mm7, %%mm1 \n\t" // now mm1 will be used as
|
||||||
|
// Raw(x-bpp)
|
||||||
// now do Paeth for 2nd set of bytes (3-5)
|
// now do Paeth for 2nd set of bytes (3-5)
|
||||||
"psrlq _ShiftBpp, %%mm2 \n\t" // load b=Prior(x) step 2
|
"psrlq _ShiftBpp, %%mm2 \n\t" // load b=Prior(x) step 2
|
||||||
"punpcklbw %%mm0, %%mm1 \n\t" // unpack High bytes of a
|
"punpcklbw %%mm0, %%mm1 \n\t" // unpack High bytes of a
|
||||||
@ -3595,7 +3682,8 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
|||||||
"movq %%mm2, %%mm3 \n\t" // load c=Prior(x-bpp) step 1
|
"movq %%mm2, %%mm3 \n\t" // load c=Prior(x-bpp) step 1
|
||||||
"pand _ActiveMask, %%mm7 \n\t"
|
"pand _ActiveMask, %%mm7 \n\t"
|
||||||
"punpckhbw %%mm0, %%mm2 \n\t" // unpack High bytes of b
|
"punpckhbw %%mm0, %%mm2 \n\t" // unpack High bytes of b
|
||||||
"psllq _ShiftBpp, %%mm7 \n\t" // shift bytes to 2nd group of 3 bytes
|
"psllq _ShiftBpp, %%mm7 \n\t" // shift bytes to 2nd group of
|
||||||
|
// 3 bytes
|
||||||
// pav = p - a = (a + b - c) - a = b - c
|
// pav = p - a = (a + b - c) - a = b - c
|
||||||
"movq %%mm2, %%mm4 \n\t"
|
"movq %%mm2, %%mm4 \n\t"
|
||||||
"paddb (%%edi,%%ecx,), %%mm7 \n\t" // add Paeth predictor with Raw(x)
|
"paddb (%%edi,%%ecx,), %%mm7 \n\t" // add Paeth predictor with Raw(x)
|
||||||
@ -3655,7 +3743,8 @@ png_read_filter_row_mmx_paeth(png_row_infop row_info, png_bytep row,
|
|||||||
// step ecx to next set of 8 bytes and repeat loop til done
|
// step ecx to next set of 8 bytes and repeat loop til done
|
||||||
"addl $8, %%ecx \n\t"
|
"addl $8, %%ecx \n\t"
|
||||||
"pand _ActiveMaskEnd, %%mm1 \n\t"
|
"pand _ActiveMaskEnd, %%mm1 \n\t"
|
||||||
"paddb -8(%%edi,%%ecx,), %%mm1 \n\t" // add Paeth predictor with Raw(x)
|
"paddb -8(%%edi,%%ecx,), %%mm1 \n\t" // add Paeth predictor with
|
||||||
|
// Raw(x)
|
||||||
|
|
||||||
"cmpl _MMXLength, %%ecx \n\t"
|
"cmpl _MMXLength, %%ecx \n\t"
|
||||||
"pxor %%mm0, %%mm0 \n\t" // pxor does not affect flags
|
"pxor %%mm0, %%mm0 \n\t" // pxor does not affect flags
|
||||||
|
2
pngget.c
2
pngget.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngget.c - retrieval of values from info struct
|
/* pngget.c - retrieval of values from info struct
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
2
pngmem.c
2
pngmem.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngmem.c - stub functions for memory allocation
|
/* pngmem.c - stub functions for memory allocation
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngpread.c - read a png file in push mode
|
/* pngpread.c - read a png file in push mode
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngread.c - read a PNG file
|
/* pngread.c - read a PNG file
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -769,7 +769,7 @@ png_read_row(png_structp png_ptr, png_bytep row, png_bytep dsp_row)
|
|||||||
* not called png_set_interlace_handling(), the display_row buffer will
|
* not called png_set_interlace_handling(), the display_row buffer will
|
||||||
* be ignored, so pass NULL to it.
|
* be ignored, so pass NULL to it.
|
||||||
*
|
*
|
||||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0beta5
|
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0rc1
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
@ -818,7 +818,7 @@ png_read_rows(png_structp png_ptr, png_bytepp row,
|
|||||||
* only call this function once. If you desire to have an image for
|
* only call this function once. If you desire to have an image for
|
||||||
* each pass of a interlaced image, use png_read_rows() instead.
|
* each pass of a interlaced image, use png_read_rows() instead.
|
||||||
*
|
*
|
||||||
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0beta5
|
* [*] png_handle_alpha() does not exist yet, as of libpng version 1.2.0rc1
|
||||||
*/
|
*/
|
||||||
void PNGAPI
|
void PNGAPI
|
||||||
png_read_image(png_structp png_ptr, png_bytepp image)
|
png_read_image(png_structp png_ptr, png_bytepp image)
|
||||||
@ -1133,7 +1133,7 @@ png_read_destroy(png_structp png_ptr, png_infop info_ptr, png_infop end_info_ptr
|
|||||||
png_info_destroy(png_ptr, end_info_ptr);
|
png_info_destroy(png_ptr, end_info_ptr);
|
||||||
|
|
||||||
png_free(png_ptr, png_ptr->zbuf);
|
png_free(png_ptr, png_ptr->zbuf);
|
||||||
png_free(png_ptr, png_ptr->row_buf);
|
png_free(png_ptr, png_ptr->big_row_buf);
|
||||||
png_free(png_ptr, png_ptr->prev_row);
|
png_free(png_ptr, png_ptr->prev_row);
|
||||||
#if defined(PNG_READ_DITHER_SUPPORTED)
|
#if defined(PNG_READ_DITHER_SUPPORTED)
|
||||||
png_free(png_ptr, png_ptr->palette_lookup);
|
png_free(png_ptr, png_ptr->palette_lookup);
|
||||||
|
2
pngrio.c
2
pngrio.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrio.c - functions for data input
|
/* pngrio.c - functions for data input
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrtran.c - transforms the data in a row for PNG readers
|
/* pngrtran.c - transforms the data in a row for PNG readers
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngrutil.c - utilities to read a PNG file
|
/* pngrutil.c - utilities to read a PNG file
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -2975,7 +2975,8 @@ defined(PNG_USER_TRANSFORM_PTR_SUPPORTED)
|
|||||||
if (row_bytes > (png_uint_32)65536L)
|
if (row_bytes > (png_uint_32)65536L)
|
||||||
png_error(png_ptr, "This image requires a row greater than 64KB");
|
png_error(png_ptr, "This image requires a row greater than 64KB");
|
||||||
#endif
|
#endif
|
||||||
png_ptr->row_buf = (png_bytep)png_malloc(png_ptr, row_bytes);
|
png_ptr->big_row_buf = (png_bytep)png_malloc(png_ptr, row_bytes+64);
|
||||||
|
png_ptr->row_buf = png_ptr->big_row_buf+32;
|
||||||
#if defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD)
|
#if defined(PNG_DEBUG) && defined(PNG_USE_PNGGCCRD)
|
||||||
png_ptr->row_buf_size = row_bytes;
|
png_ptr->row_buf_size = row_bytes;
|
||||||
#endif
|
#endif
|
||||||
|
2
pngset.c
2
pngset.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngset.c - storage of image information into info struct
|
/* pngset.c - storage of image information into info struct
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngtest.c - a simple test program to test libpng
|
/* pngtest.c - a simple test program to test libpng
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
@ -1510,4 +1510,4 @@ main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* Generate a compiler error if there is an old png.h in the search path. */
|
/* Generate a compiler error if there is an old png.h in the search path. */
|
||||||
typedef version_1_2_0beta5 your_png_h_is_not_version_1_2_0beta5;
|
typedef version_1_2_0rc1 your_png_h_is_not_version_1_2_0rc1;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
/* pngtrans.c - transforms the data in a row (used by both readers and writers)
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
*
|
*
|
||||||
* For Intel x86 CPU and Microsoft Visual C++ compiler
|
* For Intel x86 CPU and Microsoft Visual C++ compiler
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* Copyright (c) 1998, Intel Corporation
|
* Copyright (c) 1998, Intel Corporation
|
||||||
|
2
pngwio.c
2
pngwio.c
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwio.c - functions for data output
|
/* pngwio.c - functions for data output
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwrite.c - general routines to write a PNG file
|
/* pngwrite.c - general routines to write a PNG file
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwtran.c - transforms the data in a row for PNG writers
|
/* pngwtran.c - transforms the data in a row for PNG writers
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
/* pngwutil.c - utilities to write a PNG file
|
/* pngwutil.c - utilities to write a PNG file
|
||||||
*
|
*
|
||||||
* libpng 1.2.0beta5 - August 8, 2001
|
* libpng 1.2.0rc1 - August 25, 2001
|
||||||
* For conditions of distribution and use, see copyright notice in png.h
|
* For conditions of distribution and use, see copyright notice in png.h
|
||||||
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
* Copyright (c) 1998-2001 Glenn Randers-Pehrson
|
||||||
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
* (Version 0.96 Copyright (c) 1996, 1997 Andreas Dilger)
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
Microsoft Developer Studio Build File, Format Version 6.00 for
|
Microsoft Developer Studio Build File, Format Version 6.00 for
|
||||||
libpng 1.2.0beta5 (August 8, 2001) and zlib
|
libpng 1.2.0rc1 (August 25, 2001) and zlib
|
||||||
|
|
||||||
Copyright (C) 2000 Simon-Pierre Cadieux
|
Copyright (C) 2000 Simon-Pierre Cadieux
|
||||||
For conditions of distribution and use, see copyright notice in png.h
|
For conditions of distribution and use, see copyright notice in png.h
|
||||||
|
@ -6,7 +6,7 @@ LIBRARY
|
|||||||
DESCRIPTION "PNG image compression library for Windows"
|
DESCRIPTION "PNG image compression library for Windows"
|
||||||
|
|
||||||
EXPORTS
|
EXPORTS
|
||||||
;Version 1.2.0beta5
|
;Version 1.2.0rc1
|
||||||
png_build_grayscale_palette @1
|
png_build_grayscale_palette @1
|
||||||
png_check_sig @2
|
png_check_sig @2
|
||||||
png_chunk_error @3
|
png_chunk_error @3
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
A set of project files is available for Netware. Get
|
A set of project files is available for Netware. Get
|
||||||
libpng-1.2.0beta5-project-netware.zip from a libpng distribution
|
libpng-1.2.0rc1-project-netware.zip from a libpng distribution
|
||||||
site such as http://libpng.sourceforge.net
|
site such as http://libpng.sourceforge.net
|
||||||
|
|
||||||
Put the zip file in this directory (projects) and then run
|
Put the zip file in this directory (projects) and then run
|
||||||
"unzip -a libpng-1.2.0beta5-project-netware.zip"
|
"unzip -a libpng-1.2.0rc1-project-netware.zip"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
A set of project files is available for WinCE. Get
|
A set of project files is available for WinCE. Get
|
||||||
libpng-1.2.0beta5-project-wince.zip from a libpng distribution
|
libpng-1.2.0rc1-project-wince.zip from a libpng distribution
|
||||||
site such as http://libpng.sourceforge.net
|
site such as http://libpng.sourceforge.net
|
||||||
|
|
||||||
Put the zip file in this directory (projects) and then run
|
Put the zip file in this directory (projects) and then run
|
||||||
"unzip -a libpng-1.2.0beta5-project-wince.zip"
|
"unzip -a libpng-1.2.0rc1-project-wince.zip"
|
||||||
|
@ -18,7 +18,7 @@ RM = rm -f
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
prefix=/usr/local
|
prefix=/usr/local
|
||||||
|
@ -13,7 +13,7 @@ ZLIBINC=/usr/local/include
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
ALIGN=
|
ALIGN=
|
||||||
|
@ -39,7 +39,7 @@ CFLAGS=-I$(ZLIBINC) -Wall -O3 $(ALIGN) -funroll-loops \
|
|||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
#PNGDLL = $3
|
#PNGDLL = $3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGMIN_BASE = 1.2.0
|
PNGMIN_BASE = 1.2.0
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ ZLIBINC=../zlib
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
CC=cc
|
CC=cc
|
||||||
|
@ -55,7 +55,7 @@ RANLIB=ranlib
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
INCPATH=$(prefix)/include
|
INCPATH=$(prefix)/include
|
||||||
|
@ -34,7 +34,7 @@ RANLIB=ranlib
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
INCPATH=$(prefix)/include
|
INCPATH=$(prefix)/include
|
||||||
|
@ -19,7 +19,7 @@ RANLIB=ranlib
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
# where make install puts libpng.a and png.h
|
# where make install puts libpng.a and png.h
|
||||||
|
@ -34,7 +34,7 @@ RANLIB=ranlib
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
INCPATH=$(prefix)/include
|
INCPATH=$(prefix)/include
|
||||||
|
@ -11,7 +11,7 @@ INCSDIR=${LOCALBASE}/include
|
|||||||
|
|
||||||
LIB=png
|
LIB=png
|
||||||
SHLIB_MAJOR= 3
|
SHLIB_MAJOR= 3
|
||||||
SHLIB_MINOR= 1.2.0beta5
|
SHLIB_MINOR= 1.2.0rc1
|
||||||
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
SRCS= pnggccrd.c png.c pngset.c pngget.c pngrutil.c pngtrans.c pngwutil.c \
|
||||||
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
pngread.c pngrio.c pngwio.c pngwrite.c pngrtran.c \
|
||||||
pngwtran.c pngmem.c pngerror.c pngpread.c
|
pngwtran.c pngmem.c pngerror.c pngpread.c
|
||||||
|
@ -25,7 +25,7 @@ RANLIB=echo
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
INCPATH=$(prefix)/include
|
INCPATH=$(prefix)/include
|
||||||
|
@ -22,7 +22,7 @@ CFLAGS=$(ABI) -I$(ZLIBINC) -O2 $(WARNMORE) -fPIC -mabi=n32
|
|||||||
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||||
LDSHARED=CC $(ABI) -shared
|
LDSHARED=CC $(ABI) -shared
|
||||||
|
|
||||||
VER=1.2.0beta5
|
VER=1.2.0rc1
|
||||||
# See "man dso" for info about shared objects
|
# See "man dso" for info about shared objects
|
||||||
SONUM=3
|
SONUM=3
|
||||||
LIBS=libpng.so.$(SONUM).$(VER)
|
LIBS=libpng.so.$(SONUM).$(VER)
|
||||||
|
@ -27,7 +27,7 @@ CFLAGS=$(ABI) -I$(ZLIBINC) -O $(WARNMORE) -DPNG_USE_PNGGCCRD -DPNG_NO_ASSEMBLER_
|
|||||||
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
LDFLAGS=$(ABI) -L. -L$(ZLIBLIB) -lpng -lz -lm
|
||||||
LDSHARED=cc $(ABI) -shared
|
LDSHARED=cc $(ABI) -shared
|
||||||
|
|
||||||
VER=1.2.0beta5
|
VER=1.2.0rc1
|
||||||
# See "man dso" for info about shared objects
|
# See "man dso" for info about shared objects
|
||||||
SONUM=3
|
SONUM=3
|
||||||
SHAREDLIB=libpng.so
|
SHAREDLIB=libpng.so
|
||||||
|
@ -31,7 +31,7 @@ RANLIB=echo
|
|||||||
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
# read libpng.txt or png.h to see why PNGMAJ is 3. You should not
|
||||||
# have to change it.
|
# have to change it.
|
||||||
PNGMAJ = 3
|
PNGMAJ = 3
|
||||||
PNGMIN = 1.2.0beta5
|
PNGMIN = 1.2.0rc1
|
||||||
PNGVER = $(PNGMAJ).$(PNGMIN)
|
PNGVER = $(PNGMAJ).$(PNGMIN)
|
||||||
|
|
||||||
INCPATH=$(prefix)/include
|
INCPATH=$(prefix)/include
|
||||||
|
@ -7,7 +7,7 @@ unit pngdef;
|
|||||||
interface
|
interface
|
||||||
|
|
||||||
const
|
const
|
||||||
PNG_LIBPNG_VER_STRING = '1.2.0beta5';
|
PNG_LIBPNG_VER_STRING = '1.2.0rc1';
|
||||||
PNG_LIBPNG_VER = 10200;
|
PNG_LIBPNG_VER = 10200;
|
||||||
|
|
||||||
type
|
type
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
; PNG.LIB module definition file for OS/2
|
; PNG.LIB module definition file for OS/2
|
||||||
;----------------------------------------
|
;----------------------------------------
|
||||||
|
|
||||||
; Version 1.2.0beta5
|
; Version 1.2.0rc1
|
||||||
|
|
||||||
LIBRARY PNG
|
LIBRARY PNG
|
||||||
DESCRIPTION "PNG image compression library for OS/2"
|
DESCRIPTION "PNG image compression library for OS/2"
|
||||||
|
Reference in New Issue
Block a user