#7082 closed enhancement (fixed)

Remove restricted calls to AdviseRead() in GDALDatasetCopyWholeRaster()

Reported by: Even Rouault Owned by: Even Rouault
Priority: normal Milestone: 2.3.0
Component: default Version: unspecified
Severity: normal Keywords:
Cc:

Description

Currently GDALDatasetCopyWholeRaster() only calls AdviseRead?() on the source dataset if the driver is ECW and if the swath width is the raster width. This is not ideal for other drivers

All in-tree drivers that support AdviseRead?() are :

  • WMS (if explicitly requested in the WMS configuration file)
  • NITF: but as a proxy for the underlying JPEG/JPEG2000 dataset
  • OGDI raster
  • ECW. The restriction to call Adviseead() only if the swath width is the raster width comes from a SDK limitation on how window bufferig can be used. But this limitation should be hidden inside the ECW driver

Change History (10)

comment:1 Changed 11 months ago by Even Rouault

In 40393:

ECW: make AdviseRead?() to store its call parameters, and only do the actual work in RunDeferedAdviseRead?() if TryWinRasterIO() determines that the IRasterIO() parameters are compatible of the AdviseRead?() ones (refs #7082)

comment:2 Changed 11 months ago by Even Rouault

In 40394:

WMS: avoid AdviseRead?() to download too many tiles at once (refs #7082)

comment:3 Changed 11 months ago by Even Rouault

In 40395:

GDALDatasetCopyWholeRaster(): always call AdviseRead?() on the full extent of the source dataset (refs #7082)

comment:4 Changed 11 months ago by Even Rouault

In 40396:

WMS AdviseRead?(): make sure it works with downsampled requests, and avoid consecutive AdviseRead?() with same parameters to cause repeated work (refs #7082)

comment:5 Changed 11 months ago by Even Rouault

In 40397:

GDALRasterBandCopyWholeRaster(): call AdviseRead?() (refs #7082)

comment:6 Changed 11 months ago by Even Rouault

In 40398:

GDALCreateCopy(): call AdviseRead?() (refs #7082)

comment:7 Changed 11 months ago by Even Rouault

In 40399:

ECW: fix wrong comparison of r40393, and avoid performance issue on subsampled request (refs #7082)

comment:8 Changed 11 months ago by Even Rouault

In 40400:

VRT: implement VRTDataset::AdviseRead?() (in the particular case of a single source) (refs #7082)

comment:9 Changed 11 months ago by Even Rouault

In 40401:

Warp: use AdviseRead?() when source chunks are sufficiently compact (refs #7082)

comment:10 Changed 11 months ago by Even Rouault

Milestone: 2.3.0
Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.