Hi,
I'm trying to give support to HDF5 1.8.0 (beta5) to PyTables. The plan
is first try to support 1.8.0 compiled
with --with-default-api-version=v16 option and the proceed to the
migration to the 1.8.0 API. In theory, the migration using the 1.6 API
should be straightforward, but I'm having a problem with filter
registration; this is how HDF5 1.8.0 (beta5) complains:
HDF5-DIAG: Error detected in HDF5 (1.8.0-beta5) thread 0:
#000: H5Z.c line 237 in H5Zregister(): invalid H5Z_class_t version
number
major: Invalid arguments to routine
minor: Bad value
The code that I'm using right now is something like:
#if H5_USE_16_API || (H5_VERS_MAJOR == 1 && H5_VERS_MINOR < 7)
/* 1.6.x */
H5Z_class_t filter_class = {
(H5Z_filter_t)(FILTER_BZIP2), /* filter_id */
"bzip2", /* comment */
NULL, /* can_apply_func */
NULL, /* set_local_func */
(H5Z_func_t)(bzip2_deflate) /* filter_func */
};
#else
/* 1.8.x */
H5Z_class_t filter_class = {
H5Z_CLASS_T_VERS, /* H5Z_class_t version */
(H5Z_filter_t)(FILTER_BZIP2), /* filter_id */
1, 1, /* Encoding and decoding enabled */
"bzip2", /* comment */
NULL, /* can_apply_func */
NULL, /* set_local_func */
(H5Z_func_t)(bzip2_deflate) /* filter_func */
};
#endif /* if H5_API_VERSION < "1.8" */
/* Register the filter class for the bzip2 compressor. */
H5Zregister(&filter_class);
and I pass the -DH5_USE_16_API to the compiler.
The code above used to work well against 1.6.x series and 1.8.0
(<=beta3), but don't work against 1.8.0-beta5.
The symbols for BZIP2 and LZO compressors that we were traditionally
using for PyTables are:
#define FILTER_BZIP2 307
#define FILTER_LZO 305
Any hint about what's going on wrong?
Thanks,
···
--
0,0< Francesc Altet http://www.carabos.com/
V V Cárabos Coop. V. Enjoy Data
"-"
----------------------------------------------------------------------
This mailing list is for HDF software users discussion.
To subscribe to this list, send a message to hdf-forum-subscribe@hdfgroup.org.
To unsubscribe, send a message to hdf-forum-unsubscribe@hdfgroup.org.