MRXS 2.2 progress
Benjamin Gilbert
bgilbert at cs.cmu.edu
Fri Nov 2 22:03:22 EDT 2012
On 11/02/2012 07:46 PM, Agelos Pappas wrote:
> Does MRXS 1.9 have a
> StitchingIntensityLayer as well? Because we've seen seams in 1.9 files
> as well.
1.9 slides use VIMSLIDE_POSITION_BUFFER, so we should already be reading
them correctly. If you're seeing seams in a slide with
CURRENT_SLIDE_VERSION = 1.9, please post its Slidedat.ini and I'll take
a look.
> Now I guess "all I have to do", is code this back in
> openslide-vendor-mirax.c, right?
Right. Unfortunately, read_slide_position_file() expects to read
directly from a file handle, which won't work anymore. So I guess I
would suggest:
1. Restructure read_slide_position_file() to take an argument pointing
to a buffer containing the position data. process_indexfile() would
create that buffer.
2. Modify _openslide_try_mirax() to add a second
position_nonhier_offset variable for the StitchingIntensityLayer nonhier
section. (Remember to add it to the subtiling check in that function.)
Pass it to process_indexfile(), which will sadly bring that function
up to twenty-*three* parameters. Have process_indexfile() read the
compressed data as before, but in the StitchingIntensityLayer case, call
a helper function to decompress it before passing it to
read_slide_position_file().
3. Add test cases for Mirax 2.2. (This is technically optional, but
I'd really appreciate it.) Any error path that you add (for example,
corrupt DEFLATE stream) should have a test case.
Each of those should be a separate commit.
"cd test; ./driver valgrind 'mirax*'" will help you validate your
changes. You'll need to fetch the openslide-testdata:
rsync -aP rsync://openslide.cs.cmu.edu/openslide-testdata/ \
openslide-testdata
and do a "./driver initialize" first. Caution: 20 GB download.
As I recall, your last patch to OpenSlide was before the GError
conversion. GError has strict usage rules, which you should read before
you start digging into the MIRAX code:
http://developer.gnome.org/glib/stable/glib-Error-Reporting.html#glib-Error-Reporting.description
I will go ahead and add the zlib dependency to the build system, as well
as a vanilla test case for Mirax 2.2.
--Benjamin Gilbert
More information about the openslide-users
mailing list