Hi Elena,
Thanks for confirming.
I remeber that it used to work in one of the older Java-HDF5 versions.
Unfortunately I can't remember which one.



On Wed, Nov 25, 2015 at 4:14 PM, Elena Pourmal <[email protected]>
wrote:

> Hi Ümit,
>
> Allen and I confirmed the problem you and Dan see with HDFView. For some
> reason HDFView cannot find the lzf plugin while it finds, for example,
> bzip2 plugin (see https://svn.hdfgroup.uiuc.edu/hdf5_plugins/trunk/BZIP2/).
> The only difference is that lzf plugin uses HDF5 calls in the callback
> functions. We are puzzled why the HDF5 library is able to find the lzf
> plugin for the command-line tools and fails for HDFView.
>
> I opened the ticket (JAVA-1920) and we will investigate.
>
> Thanks for reporting the problem!
>
> Elena
>
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Elena Pourmal  The HDF Group  http://hdfgroup.org
> 1800 So. Oak St., Suite 203, Champaign IL 61820
> 217.531.6112
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
>
>
>
> On Nov 23, 2015, at 5:00 PM, Ümit Seren <[email protected]> wrote:
>
> Hi Elena,
>
> Thanks for the response,
> my problem is not that h5dump or other hdf5 command line utilities do not
> work the lzf plugin filter (they work just fine) but the Java HDF5 and
> HDFView can't find the plugin_filter.
> I will check the symbols tomorrow but as far as I can tell the problem is
> somewhere with the java hdf5 library.
>
>
>
>
>
>
>
> On Mon, Nov 23, 2015 at 11:41 PM, Elena Pourmal <[email protected]>
> wrote:
>
>> Hello,
>>
>> What kind of error are you getting? I was able to get the filter to work
>> on Linux (CentOS 7) with h5dump from 1.8.16 distribution I built. Please
>> notice that one has to specify HDF5 include files when building
>> liblzf_filter.so.
>>
>> Details:
>>
>> Here is the output of the nm command and h5dump when include files are
>> not specified:
>>
>> [epourmal@platypus lzf]$ gcc  -O2 -fPIC -shared lzf/*.c lzf_filter.c -o
>> liblzf_filter.so
>> epourmal@platypus lzf]$ nm liblzf_filter.so
>>                  U H5E_CALLBACK_g
>>                  U H5E_CANTREGISTER_g
>>                  U H5E_PLINE_g
>>                  U H5Epush1
>>                  U H5Pget_chunk
>>                  U H5Pget_filter_by_id2
>>                  U H5Pmodify_filter
>>                  U H5Tget_size
>>                  U H5Zregister
>>                  U H5open
>> [epourmal@platypus lzf]$ hdf5/hdf5/bin/h5dump test_lzf.hdf5
>> HDF5 "test_lzf.hdf5" {
>> GROUP "/" {
>>    DATASET "dset" {
>>       DATATYPE  H5T_IEEE_F32LE
>>       DATASPACE  SIMPLE { ( 100, 100, 100 ) / ( 100, 100, 100 ) }
>>       DATA {h5dump error: unable to print data
>>
>>       }
>>    }
>> }
>> }
>> [epourmal@platypus lzf]$ hdf5/hdf5/bin/h5dump -pH test_lzf.hdf5
>> HDF5 "test_lzf.hdf5" {
>> GROUP "/" {
>>    DATASET "dset" {
>>       DATATYPE  H5T_IEEE_F32LE
>>       DATASPACE  SIMPLE { ( 100, 100, 100 ) / ( 100, 100, 100 ) }
>>       STORAGE_LAYOUT {
>>          CHUNKED ( 1, 100, 100 )
>>          SIZE 174288 (22.951:1 COMPRESSION)
>>       }
>>       FILTERS {
>>          PREPROCESSING SHUFFLE
>>          USER_DEFINED_FILTER {
>>             FILTER_ID 32000
>>             COMMENT lzf
>>             PARAMS { 4 261 40000 }
>>          }
>>  ...
>>
>> Now if I specify HDF5 include files, I will get (notice two symbols
>> H5PLget_plugin_info/type in the nm output!)
>>
>> [epourmal@platypus lzf]$ gcc
>> -I//scr/epourmal/h5py-master/lzf/hdf5/hdf5/include -O2 -fPIC -shared
>> lzf/*.c lzf_filter.c -o liblzf_filter.so
>> [epourmal@platypus lzf]$ nm liblzf_filter.so
>>                  U H5E_CALLBACK_g
>>                  U H5E_CANTREGISTER_g
>>                  U H5E_PLINE_g
>>                  U H5Epush1
>> 0000000000001080 T H5PLget_plugin_info
>> 0000000000001070 T H5PLget_plugin_type
>>                  U H5Pget_chunk
>>                  U H5Pget_filter_by_id2
>>                  U H5Pmodify_filter
>>                  U H5Tget_size
>>                  U H5Zregister
>>                  U H5open
>>
>> And here we are:
>>
>> [epourmal@platypus lzf]$ hdf5/hdf5/bin/h5dump test_lzf.hdf5 |more
>> HDF5 "test_lzf.hdf5" {
>> GROUP "/" {
>>    DATASET "dset" {
>>       DATATYPE  H5T_IEEE_F32LE
>>       DATASPACE  SIMPLE { ( 100, 100, 100 ) / ( 100, 100, 100 ) }
>>       DATA {
>>       (0,0,0): 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16,
>> 17,
>>       (0,0,18): 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
>> 32,
>>       (0,0,33): 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
>> 47,
>>       (0,0,48): 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61,
>> 62,
>>       (0,0,63): 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
>> 77,
>>       (0,0,78): 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91,
>> 92,
>>       (0,0,93): 93, 94, 95, 96, 97, 98, 99,
>> …….
>>
>> Hope it will help!
>>
>> Elena
>>
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>> Elena Pourmal  The HDF Group  http://hdfgroup.org
>> 1800 So. Oak St., Suite 203, Champaign IL 61820
>> 217.531.6112
>> ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>>
>>
>>
>>
>> On Nov 23, 2015, at 8:50 AM, Daniel Tetlow <[email protected]>
>> wrote:
>>
>> Hi,
>>
>> I had a similar problem on Windows. I needed to link the LZF plugin
>> against the hdf5 library (as expected) to get it to compile, and it worked
>> fine with C++, but it wouldn’t work with the Java H5 libraries. Attempting
>> to link it against the jhdf5 2.11 library instead failed. I couldn’t figure
>> out what I was doing wrong, so in the end I rebuilt jhdf5 with the plugin
>> sources built in.
>>
>> Cheers,
>>
>> Dan
>>
>>
>> *From:* Hdf-forum [mailto:[email protected]
>> <[email protected]>] *On Behalf Of *Ümit Seren
>> *Sent:* 23 November 2015 14:10
>> *To:* [email protected]
>> *Subject:* [Hdf-forum] Problem with a filter as shared library in
>> Java-HDF5 and HDF5View
>>
>> I have been trying to compile the lzf compressor as a shared library (not
>> linked against hdf5) to be used as a filter plugin for HDF5.
>>
>> Basically I was following this:
>> https://github.com/h5py/h5py/tree/master/lzf
>>
>> I compiled lzf as a shared library using this compile command:
>>
>>
>> gcc -O2 -fPIC -shared lzf/*.c lzf_filter.c -o liblzf_filter.so
>>
>>
>>
>> This will create a lzf filter plugin that I copied into the 
>> /usr/local/hdf5/lib/plugin folder.
>>
>> The normal command line tools (h5ls, h5dump) work fine with lzf compressed 
>> dataset, so the plugin seems to work.
>>
>>
>>
>> However when I try to read the same lzf compressed dataset using Java HDF5 
>> or HDFView (2.11), I get the error that the lzf filter plugin can not be 
>> found.
>>
>>
>>
>> The only workaround is to link it against the hdf5 library:
>>
>>
>>
>> gcc -O2 -fPIC -shared lzf/*.c lzf_filter.c -lhdf5 -o liblzf_filter.so
>>
>>
>>
>> Is this a known issue ?
>>
>> This was on Ubuntu 14.04 and HDF5 1.8.15patch1
>>
>> thanks in advance
>>
>> cheers
>> Ümit
>>
>> _______________________________________________
>> Hdf-forum is for HDF software users discussion.
>> [email protected]
>> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
>> Twitter: https://twitter.com/hdf5
>>
>>
>>
>> _______________________________________________
>> Hdf-forum is for HDF software users discussion.
>> [email protected]
>> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
>> Twitter: https://twitter.com/hdf5
>>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
>
>
>
> _______________________________________________
> Hdf-forum is for HDF software users discussion.
> [email protected]
> http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
> Twitter: https://twitter.com/hdf5
>
_______________________________________________
Hdf-forum is for HDF software users discussion.
[email protected]
http://lists.hdfgroup.org/mailman/listinfo/hdf-forum_lists.hdfgroup.org
Twitter: https://twitter.com/hdf5

Reply via email to