diff options
Diffstat (limited to 'tools/lib/h5tools_filters.c')
-rw-r--r-- | tools/lib/h5tools_filters.c | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/tools/lib/h5tools_filters.c b/tools/lib/h5tools_filters.c index 325023d..000ef0d 100644 --- a/tools/lib/h5tools_filters.c +++ b/tools/lib/h5tools_filters.c @@ -55,6 +55,7 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr int have_fletcher=0; int have_nbit=0; int have_scaleoffset=0; + int have_dtype_modify=0; #ifdef H5_HAVE_FILTER_DEFLATE have_deflate=1; @@ -74,7 +75,9 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr #ifdef H5_HAVE_FILTER_SCALEOFFSET have_scaleoffset=1; #endif - +#ifdef H5_HAVE_FILTER_DTYPE_MODIFY + have_dtype_modify=1; +#endif /* get information about filters */ if ((nfilters = H5Pget_nfilters(dcpl_id))<0) @@ -173,6 +176,18 @@ int h5tools_canreadf(const char* name, /* object name, serves also as boolean pr return 0; } break; +/*------------------------------------------------------------------------- + * H5Z_FILTER_DTYPE_MODIFY + *------------------------------------------------------------------------- + */ + case H5Z_FILTER_DTYPE_MODIFY: + if (!have_dtype_modify) + { + if (name) + print_warning(name,"dtype_modify"); + return 0; + } + break; }/*switch*/ }/*for*/ @@ -204,6 +219,7 @@ int h5tools_can_encode( H5Z_filter_t filtn) int have_fletcher=0; int have_nbit=0; int have_scaleoffset=0; + int have_dtype_modify=0; unsigned int filter_config_flags; #ifdef H5_HAVE_FILTER_DEFLATE @@ -224,6 +240,9 @@ int h5tools_can_encode( H5Z_filter_t filtn) #ifdef H5_HAVE_FILTER_SCALEOFFSET have_scaleoffset=1; #endif +#ifdef H5_HAVE_FILTER_DTYPE_MODIFY + have_dtype_modify=1; +#endif switch (filtn) { @@ -288,6 +307,12 @@ int h5tools_can_encode( H5Z_filter_t filtn) return 0; } break; + case H5Z_FILTER_DTYPE_MODIFY: + if (!have_dtype_modify) + { + return 0; + } + break; }/*switch*/ return 1; |