Changes between Version 17 and Version 18 of rfc24_progressive_data_support


Ignore:
Timestamp:
Aug 27, 2008, 1:08:47 PM (16 years ago)
Author:
normanb
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • rfc24_progressive_data_support

    v17 v18  
    2525[http://article.gmane.org/gmane.comp.gis.gdal.devel/16630/match=progressive+rendering Tamas Szekeres]
    2626
    27 Question: It seems we are tending to spawn new threads in every RasterIO operations at driver level, which is quite inconvenient at the moment, therefore it should be considered with care. Will you allow RasterIO to be re-entered from the GDALProgFunc event handler or by another thread? Will you provide a copy of pBuff in GDALProgFunc or the same pointer will be passed back to the caller? How this buffer will be protected from the simultaneous access of the multiple threads?
     27''Question'':
    2828
    29 Response:
     29It seems we are tending to spawn new threads in every RasterIO operations at driver level, which is quite inconvenient at the moment, therefore it should be considered with care. Will you allow RasterIO to be re-entered from the GDALProgFunc event handler or by another thread? Will you provide a copy of pBuff in GDALProgFunc or the same pointer will be passed back to the caller? How this buffer will be protected from the simultaneous access of the multiple threads?
     30
     31''Response'':
    3032
    3133There will one thread at the RasterIO driver level communicating to the server and this will be separate to application thread, the driver will accept new window requests from the application and change the requests being made to the server within the thread.  There is a degree of synchronization required here, but this is hidden within the format driver.
     
    3537pBuff will be small, it only contains the data for the currently request window at a particular resolution level and these are normally proportional, so small window implies higher resolutions, large window implies low resolution.  As such an initial version will provide a copy of the buffer rather than a pointer this should protect the buffer from corruption by multiple threads.
    3638
     39''Question'':
    3740
     41How will the intermediary data be represented in the buffer required by the various kind of rendering methods? Will the user re-read the whole buffer in every roundtrip, or a subset of the data will be definied that have been changed in the meantime? I guess some cases only the modified scanlines or reduced resolution images would be sufficient to read.
     42
     43''Response'':
     44
     45In step 5, GDALProgFunc(xOff, yOff, xSiz, ySiz, pBuf, bufXSiz, bufYSiz, bufType, nBandCount, bandMap, nPixelSpace, nLineSpace, nBandcount) specifies the region of the image (at base resolution) that has changed, the dimensions and type of the buffer, everything needed to render the buffer data.
     46
     47''Question'':
     48
     49Interchange between the dataset and band level functions:
     50
     51''Response'':
     52
     53This is the big question, since within jpip (and other streaming protocols) this is handled at the dataset level as opposed to the band level.
     54 
    3855
    3956