From cfe0e783199ff60ad765a2513b148cbfafbae616 Mon Sep 17 00:00:00 2001 From: Clemens Vonrhein Date: Wed, 18 Dec 2024 16:46:14 +0000 Subject: [PATCH] loop over all filters registered when printing --- src/file.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/file.c b/src/file.c index 7533566..a279768 100644 --- a/src/file.c +++ b/src/file.c @@ -582,12 +582,16 @@ int get_dectris_eiger_pixel_mask(const struct ds_desc_t *desc, int *buffer) { size_t nelmts = 1; unsigned int values_out[1] = {99}; char filter_name[80]; - filter_id = H5Pget_filter(dcpl, (unsigned) 0, &flags, &nelmts, values_out, sizeof(filter_name), filter_name, NULL); - if (filter_id>=0) { - fprintf(stderr," filter name =\"%s\"\n",filter_name); + for ( int i_filt = 0; i_filt < n_filters; i_filt++) { + filter_id = H5Pget_filter(dcpl, i_filt, &flags, &nelmts, values_out, sizeof(filter_name), filter_name, NULL); + if (filter_id>=0) { + fprintf(stderr," filter #%d name =\"%s\"\n",(i_filt+1),filter_name); + } } } + int i0 = H5Zfilter_avail(BS_H5_FILTER_ID); + err = H5Dread(ds_id, H5T_NATIVE_INT, H5S_ALL, H5S_ALL, H5P_DEFAULT, buffer); if (err < 0) { if (n_filters>0) { @@ -598,7 +602,7 @@ int get_dectris_eiger_pixel_mask(const struct ds_desc_t *desc, int *buffer) { } } - if (H5Zfilter_avail(BS_H5_FILTER_ID)) { + if (!i0 && H5Zfilter_avail(BS_H5_FILTER_ID)) { fprintf(stderr," bitshuffle filter is available now since H5Dread (of pixel-mask) triggered loading of the filter.\n"); }