Commit Graph

1962 Commits

Author SHA1 Message Date
John Cupitt d0b1740fd1 various small bugfixes
now works
2012-10-09 14:37:46 +01:00
John Cupitt 199c182103 ove the thread thing to tilecache 2012-10-08 22:33:38 +01:00
John Cupitt 8a8ce4fd44 add a threaded tile cache
seems to work!
2012-10-08 15:27:52 +01:00
John Cupitt 4e0a433c24 openslide2vips uses multiple parallel osr reads
open a separate openside_t for every read thread to try to get some
parallelism in decode

works, but no faster overall, since we don't ensure that each osr tile
is only fetched once --- threads need to synchronise and not overlap

we need:

- some way to get tile geometry from osr

- a threaded tilecache aligned to the osr tile boundaries

the tilecache needs to have locks and semaphores on every tile,
something like:

class tilecache:
  def generate(region):
    # lock all tiles we need, make a list of the ones that need
    # calculating
    work = []
    for tile in region:
      tile.lock()
      if tile.nodata():
        work.append(tile)
	tile.set(:in-progress)

    # calculate all empty tiles we need
    for tile in work:
      tile.calculate()
      tile.set(:data)

    # some tiles may be being made by another thread,
    # wait for them to be done
    for tile in region:
      if tile.in-progress:
        tile.wait()

    # should all have data now, paste to output and unlock
    for tile in region:
      tile.paste(output)
      tile.unlock()

    return output
2012-10-05 09:12:54 +01:00
John Cupitt 6e6a2a455a Merge remote-tracking branch 'origin/7.30'
Conflicts:
	ChangeLog
	libvips/foreign/dzsave.c
2012-10-03 14:45:53 +01:00
John Cupitt dee1aac7b1 dzsave can write zoomify and google maps
use "layout" to pick the directory layout, deepzoom / zoomify / google
all allowed
2012-10-03 14:26:59 +01:00
John Cupitt aec36aa5a7 Merge remote-tracking branch 'origin/7.30' 2012-10-03 09:40:03 +01:00
John Cupitt 4050c47281 fix .dzi format string
dzsave left the save options attached to the Format string in the .dzi
file

also, version bump
2012-10-02 13:11:43 +01:00
John Cupitt 0e5e34e1ea sdzsave fix
if dzsave was running a scanline at a time and height was odd, the final
set of tiles were not being written -- thanks Martin
2012-10-01 14:08:59 +01:00
John Cupitt c1dcc3e509 fix a compile fail if no libtiff
compilation failed if libtiff-dev was not found, thanks Martin
2012-09-28 13:30:28 +01:00
John Cupitt f569abb00a Merge pull request #29 from bgilbert/readme-add-leica
README: add Leica to OpenSlide-supported formats
2012-09-22 02:21:39 -07:00
Benjamin Gilbert 54834e9433 README: add Leica to OpenSlide-supported formats 2012-09-21 17:05:01 -04:00
John Cupitt 684df1d36a Merge pull request #28 from bgilbert/openslide-3.3
Fixes and improvements for OpenSlide 3.3
2012-09-20 02:55:05 -07:00
Benjamin Gilbert c98d65434b bump minimum OpenSlide version to 3.3.0
- Avoid deprecated API

- Drop unneeded g_log handler
2012-09-20 03:11:49 -04:00
Benjamin Gilbert 6e74234ba7 add Leica filename suffix
newly-supported in OpenSlide 3.3.0.
2012-09-20 02:59:00 -04:00
Benjamin Gilbert 5e08757301 fix openslide_open error reporting for OpenSlide 3.3.0 2012-09-20 02:57:24 -04:00
John Cupitt bb53c952c4 Merge remote-tracking branch 'origin/7.30' 2012-09-17 14:22:46 +01:00
John Cupitt 26f2105e5b make everything LGPL2.1+
some files were incorrectly tagged as GPL, thanks Dmitry
2012-09-17 11:52:32 +01:00
John Cupitt 81b962c447 todo updates 2012-09-13 13:27:55 +01:00
John Cupitt ca011455f9 Merge remote-tracking branch 'origin/7.30' 2012-09-13 13:26:40 +01:00
John Cupitt b3a8ff3378 linecache was oversized
the linecache resizer forgot to take the strip height into account when
growing, causing mem use to be higher than necessary
2012-09-13 13:25:23 +01:00
John Cupitt 8deb09eea9 Merge remote-tracking branch 'origin/7.30' 2012-09-05 21:20:58 +01:00
John Cupitt 7a0441d455 delay rather than stall ahead threads
avoid deadlocks by only slowing down threads which run ahead of the read
point
2012-09-05 14:56:13 +01:00
John Cupitt 0c87863222 argh still deadlocks on example.rb 2012-09-04 14:56:22 +01:00
John Cupitt e4044a2c96 Merge remote-tracking branch 'origin/7.30' 2012-08-31 15:41:23 +01:00
John Cupitt 4ef825014d extract is sequential again
a hack in seq.c will skip ahead if the very first read is not at line 0
2012-08-24 17:03:09 +01:00
John Cupitt 89065b391a sequential needs a strip size param
strip tiff can only read in strip-sized chunks
2012-08-24 16:06:29 +01:00
John Cupitt ee576d79b9 back to stalling again 2012-08-24 14:25:25 +01:00
John Cupitt 4bb3eba029 try reading ahead to cache rather than stalling 2012-08-24 13:55:08 +01:00
John Cupitt 39b05f5172 tuning, sort out demand hints
and disable extract_area seq mode
2012-08-24 12:46:10 +01:00
John Cupitt 70bde1dd1e more tuning 2012-08-23 22:01:52 +01:00
John Cupitt 8653b23810 better handling of jpeg warnings 2012-08-23 21:44:14 +01:00
John Cupitt b183d32b15 use a hash table for tilecache
now we can have large numbers of tiles, use a hash table for tile lookup
2012-08-23 16:08:08 +01:00
John Cupitt 65f679c7ac add a line cache
add vips_linecache() ... like tilecache, but caches scanlines and sizes
dynamically with request size
2012-08-23 14:51:57 +01:00
John Cupitt fa5677abd7 works! 2012-08-23 13:49:21 +01:00
John Cupitt f5f0dda551 experiment with thread stalling 2012-08-21 16:18:25 +01:00
John Cupitt 45e3c0bd39 fix some warnings from jpeg write
jpeg write with a non-jpeg source could produce some warnings as it
tried to update exif that wasn't there
2012-08-14 14:31:08 +01:00
John Cupitt 88c3f7ab7d fix compiler warnings
some compiler warnings appeared in a production build (assert()s
commented out, -Wall, and -O2)

thanks to Dmitry Roshchin for the report
2012-08-14 12:43:54 +01:00
John Cupitt 76fd928d29 more struggles with gtk-doc 2012-08-14 11:20:29 +01:00
John Cupitt 8793542779 revert gtk-doc change 2012-08-14 11:18:25 +01:00
John Cupitt 31f3f8681a Merge remote-tracking branch 'origin/7.30' 2012-08-14 11:03:12 +01:00
John Cupitt 368d3c2b8f test for gtk-doc in bootstrap 2012-08-14 11:00:23 +01:00
John Cupitt bc736e4f5c better precision for --vips-progress times
does 3sf of float time now
2012-08-10 15:19:45 +01:00
John Cupitt 1abac4018a better enum arg error message
you now get something like:

$ vips tiffsave k2.jpg x.tif --compression poop
tiffsave: enum 'VipsForeignTiffCompression' has no member 'poop', should be one of: none, jpeg, deflate, packbits, ccittfax4, lzw
2012-08-10 13:54:42 +01:00
John Cupitt 463058c149 note and use res unit on jpg load/save
previously, jpeg save always used pixels/inch and jpeg load converted to
vips pixels/mm

now on jpg load the image's res unit is recorded in
VIPS_META_RESOLUTION_UNIT, and on jpg save the res unit is set from
VIPS_META_RESOLUTION_UNIT (or defaults to inches).

you can now copy a cm-preferring tiff to a jpg and the unit is preserved
2012-08-07 14:10:19 +01:00
John Cupitt 757e93364c Merge remote-tracking branch 'origin/7.30' 2012-08-07 13:50:43 +01:00
John Cupitt 8214d15982 more improvements to dzsave
now writes x_files and x.dzi, as per spec (thanks Benjamin)

deprecate tile_width and tile_height, just have tile_size now
2012-08-07 13:29:03 +01:00
John Cupitt 0c35f461dc add "deprecated" flag to vips arguments
deprecated arguments still work, but are not shown in help, nor are they
checked for "have-been-set"

you can tag required and optional args as deprecated ... obviously if
you deprecate a required argument you must replace it with a new
argument or scripts will break
2012-08-07 12:52:50 +01:00
John Cupitt a9c7a36670 be more cautious enabling tiff ycbcr
we were turning on ycbcr for all jpeg tiffs and relying on the jpeg
compressor to only use it when possible ... now just turn on ycbcr for
8-bit RGB images
2012-08-07 12:17:25 +01:00
John Cupitt 4cb63cf1ba update the C++ binding
and the Python one
2012-08-06 22:02:34 +01:00