diff options
author | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2008-01-03 19:59:25 (GMT) |
---|---|---|
committer | Pedro Vicente Nunes <pvn@hdfgroup.org> | 2008-01-03 19:59:25 (GMT) |
commit | 5aab9089ded965796ca6e43ee3090f4f47fb970e (patch) | |
tree | 6da5fe1e19bfaa0d159caaff9492329adee5304e | |
parent | 136cefdf9116b910b6a46f1f649ee8b9cdc7fc68 (diff) | |
download | hdf5-5aab9089ded965796ca6e43ee3090f4f47fb970e.zip hdf5-5aab9089ded965796ca6e43ee3090f4f47fb970e.tar.gz hdf5-5aab9089ded965796ca6e43ee3090f4f47fb970e.tar.bz2 |
[svn-r14365] Add szip filter check of client data values for has_filters.
NOTE: szip client symbols were made public
Tested: windows, linux, solaris
-rw-r--r-- | src/H5Zpublic.h | 13 | ||||
-rw-r--r-- | src/H5Zszip.c | 7 | ||||
-rw-r--r-- | tools/h5repack/h5repack_verify.c | 19 |
3 files changed, 19 insertions, 20 deletions
diff --git a/src/H5Zpublic.h b/src/H5Zpublic.h index 6c238fe..df02af8 100644 --- a/src/H5Zpublic.h +++ b/src/H5Zpublic.h @@ -74,8 +74,17 @@ typedef int H5Z_filter_t; #define H5_SZIP_NN_OPTION_MASK 32 #define H5_SZIP_MAX_PIXELS_PER_BLOCK 32 -/* Total number of parameters for the shuffle filter, private */ -#define H5Z_SHUFFLE_TOTAL_NPARMS 1 +/* Total number of parameters for the shuffle filter */ +#define H5Z_SHUFFLE_TOTAL_NPARMS 1 + +/* Macros for the szip filter */ +#define H5Z_SZIP_USER_NPARMS 2 /* Number of parameters that users can set */ +#define H5Z_SZIP_TOTAL_NPARMS 4 /* Total number of parameters for filter */ +#define H5Z_SZIP_PARM_MASK 0 /* "User" parameter for option mask */ +#define H5Z_SZIP_PARM_PPB 1 /* "User" parameter for pixels-per-block */ +#define H5Z_SZIP_PARM_BPP 2 /* "Local" parameter for bits-per-pixel */ +#define H5Z_SZIP_PARM_PPS 3 /* "Local" parameter for pixels-per-scanline */ + /* Special parameters for ScaleOffset filter*/ diff --git a/src/H5Zszip.c b/src/H5Zszip.c index cdc26aa..9201a80 100644 --- a/src/H5Zszip.c +++ b/src/H5Zszip.c @@ -51,13 +51,6 @@ H5Z_class_t H5Z_SZIP[1] = {{ H5Z_filter_szip, /* The actual filter function */ }}; -/* Local macros */ -#define H5Z_SZIP_USER_NPARMS 2 /* Number of parameters that users can set */ -#define H5Z_SZIP_TOTAL_NPARMS 4 /* Total number of parameters for filter */ -#define H5Z_SZIP_PARM_MASK 0 /* "User" parameter for option mask */ -#define H5Z_SZIP_PARM_PPB 1 /* "User" parameter for pixels-per-block */ -#define H5Z_SZIP_PARM_BPP 2 /* "Local" parameter for bits-per-pixel */ -#define H5Z_SZIP_PARM_PPS 3 /* "Local" parameter for pixels-per-scanline */ /*------------------------------------------------------------------------- diff --git a/tools/h5repack/h5repack_verify.c b/tools/h5repack/h5repack_verify.c index 42e8683..9bb5443 100644 --- a/tools/h5repack/h5repack_verify.c +++ b/tools/h5repack/h5repack_verify.c @@ -507,18 +507,15 @@ static int has_filters(hid_t pid, hid_t tid, unsigned nfilters, filter_info_t *f break; case H5Z_FILTER_SZIP: - -#if 0 - /* 4 private client values are returned by DCPL */ - if ( f1.cd_nelmts != 4 && f2.cd_nelmts != 2 ) - return -1; - - if ( f2.cd_values[0] != f1.cd_values[2] && - f2.cd_values[1] != f1.cd_values[1] ) - return -1; -#endif - + /* 4 private client value is returned by DCPL */ + if ( cd_nelmts != H5Z_SZIP_TOTAL_NPARMS && filter[i].cd_nelmts != H5Z_SZIP_USER_NPARMS ) + return 0; + + /* "User" parameter for pixels-per-block (index 1) */ + if ( cd_values[H5Z_SZIP_PARM_PPB] != filter[i].cd_values[H5Z_SZIP_PARM_PPB] ) + return 0; + break; |