Opened 8 years ago

Closed 8 years ago

Last modified 8 years ago

#6342 closed task (fixed)

MRF driver integration

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

Description

This ticket tracks MRF driver (https://github.com/nasa-gibs/mrf) integration.

Change History (32)

comment:1 by Even Rouault, 8 years ago

r33198 "Initial commit of unmodified sources of the MRF driver (at version https://github.com/nasa-gibs/mrf/commit/1e6f4a9d40df0fcf574ae6ff6516a5ce60d96898). No integration in build for now (#6342)"

r33202 "mrf/GNUmakefile: do not override CPPFLAGS from GDALmake.opt and use internal libjpeg/libpng if needed (#6342)"

r33203 "MRF: fix CPLError() formatting (#6342)"

r33204 "MRF: use a namespace to avoid 'contamination' of default namespace, especially with the functions of mrf_util.h (#6342)"

r33205 "MRF: remove virtual qualifier of operator assignment of TImage class, to avoid warning about TImage.hpp:163: warning: ‘GDAL_MRF::TImage<Element>& GDAL_MRF::TImage<Element>::operator=(const GDAL_MRF::TImage<Element>&) [with Element = GDAL_MRF::CntZ]’ was hidden by CntZImage.h:47: warning: by ‘GDAL_MRF::CntZImage& GDAL_MRF::CntZImage::operator=(const GDAL_MRF::CntZImage&) (#6342)"

r33206 "MRF: add compatibility with GDAL 2.0 RasterIO/IRasterIO interface changes (#6342)"

r33207 "MRF: other CPLError() formatting fixes (#6342)"

r33208 "MRF: disable empty AdviseRead() implementation (#6342)"

r33209 "MRF: CreateCopy() should return NULL only on error, not on success (#6342)"

r33210 "MRF: check that nBands != 0 in Create() and CreateCopy() to avoid crashes (#6342)"

r33211 "MRF: add static qualifier in front of a few functions (#6342)"

r33212 "MRF: fix compilation problem with CLang due to default values being specified in a friend function declaration (#6342)"

r33213 "MRF: remove useless GDALDeregister_mrf() function (#6342)"

r33214 "MRF: fix warnings related to unused arguments (#6342)"

r33215 "MRF: remove unread variable name (should the function still be called ?) (#6342)"

r33216 "MRF: turn 'char const ' into 'char const * const *' (#6342)"

r33217 "MRF: fix/add missing variable initializations to fix GCC/MSVC warnings (#6342)"

r33218 "MRF: fix shadowing issues of function parameters with member variables (#6342)"

r33219 "MRF: add explicit static_cast to fix long->int, size_t->int conversions as raised by MSVC or CLang -Wshorten-64-to-32 (#6342)"

r33220 "MRF: fix warnings about negating a unsigned value (#6342)"

r33221 "MRF: fix local variables shadowing other local variables (#6342)"

r33222 "MRF: add default statement in switch (#6342)"

r33223 "MRF: IBuildOverviews(): check that the number of bands in parameter is the same as the one of the dataset (#6342)"

r33224 "MRF: fix warning about another unused parameter (#6342)"

r33225 "MRF: avoid MSVC performance warning about int->bool conversion (#6342)"

r33226 "MRF: fix wrong use of logical and whereas binary and was intended (#6342)"

r33227 "MRF: fix memleak in GDALMRFDataset::Initialize() (#6342)"

r33228 "MRF: add in Unix and Windows builds. Can be disabled with --without-mrf (Unix) or commenting MRF_SETTING=yes (Windows) (#6342)"

comment:2 by Even Rouault, 8 years ago

r33230 "MRF: replace wrong use of logical and operator (detected by clang -Werror=logical-op) (#6342)"

r33231 "MRF: comment level and version variable in Create() that are set but not read (#6342)"

r33232 "MRF: fix false positive of CLang Static Analyzer about passing null to memcpy() (#6342)"

r33233 "MRF: comment variable written but not read afterwards as found by CLang Static Analyzer (#6342)"

comment:3 by Even Rouault, 8 years ago

r33234 "MRF: fix warnings of mingw_w64 about use of %lld formatting by using CPL_FRMT_GIB instead (#6342)"

r33235 "MRF: disable use of png_XXXX_asm_flags API for libpng >= 1.4 where they no longer exist (#6342)"

r33236 "MRF: add some validations of values of XML file (#6342)"

r33237 "MRF: fix C++14 -Wnarrowing warnings (#6342)"

r33238 "MRF: disable MSVC C4324 warning"

r33239 "MRF: replace all uses of pointer 0 by NULL (#6342)"

r33241 "MRF: fix GCC 6 -Werror=null-dereference warnings (#6342)"

r33242 "Add mrf.py test (#6342)"

comment:4 by Even Rouault, 8 years ago

r33243 "MRF: completely disable use of sum variable in RLE::compress() as raised by clang static analyzer (#6342)"

r33244 "MRF: improve a bit frmt_marfa.html (#6342)"

r33246 "MRF: replace MRF_sleep_ms() by CPLSleep() (#6342)"

comment:5 by Even Rouault, 8 years ago

r33247 "MRF: IBuildOverviews(): replace a few 'return CE_Failure' with 'throw CE_Failure' to avoid memory leaks (#6342)"

r33248 "MRF: restore compatibility with building as a plugin with GDAL < 2.1 (#6342)"

r33249 "MRF: prevent exception if OPTIONS value is not in the format key/value (#6342)"

r33251 "mrf.py: extend tests (#6342)"

comment:6 by Even Rouault, 8 years ago

r33253 "mrf.py: accept alternate checksum for JPEG tests (#6342)"

r33254 "MRF: initialize all member variables in all variants of BitMask2 constructor (#6342)"

r33255 "mrf.py: disable LERC v1 tests because of Valgrind warnings about invalid reads; and disable JPEG tests because of issues when libjpeg is v8"

comment:7 by Even Rouault, 8 years ago

r33259 "MRF: GNUmakefile: do not include -I../jpeg/libjpeg in JPEG12 case to avoid ABI issues in jpeg 8bit mode when linking to external libjpeg with v8 ABI (#6342)"

r33260 "mrf.py: re-enable JPEG tests (#6342)"

comment:8 by Even Rouault, 8 years ago

r33261 "MRF: fix a number of unaligned load/stores as warned by GCC sanitizer (#6342)"

comment:9 by Even Rouault, 8 years ago

r33267 "MRF: add padding of 3 bytes at end of reading buffer to avoid Valgrind warnings about out-of-bounds read when reading LERC V1 dataset (#6342)"

r33268 "mrf.py: re-enable LERC V1 tests (#6342)"

comment:10 by Even Rouault, 8 years ago

r33269 "MRF: fix another batch of unaligned load/stores as warned by GCC sanitizer (#6342)"

r33270 "mrf.py: test LERC with nodata mask (#6342)"

r33272 "MRF: mrf_band.cpp: replace uses of CPLMalloc() with VSIMalloc() that isn't fatal on error, and add a bit of validation to avoid allocating more than 2GB (#6342)"

comment:11 by Even Rouault, 8 years ago

r33275 "MRF: add support for building and using external overviews (#6342)"

r33276 "mrf.py: test external overviews (#6342)"

comment:12 by Even Rouault, 8 years ago

r33277 "mrf.py: use 'AVG' to trigger internal average computation (#6342)"

r33278 "MRF: fix another batch of unaligned load/stores as warned by GCC sanitizer (#6342)"

r33279 "MRF: IBuildOverviews(): generate also non explicitly required overview levels to avoid some levels to be implictly black levels to be exposed (#6342)"

r33280 "mrf.py: check that implictly created overview levels are well initialized (#6342)"

comment:13 by Even Rouault, 8 years ago

r33281 "MRF: fix false positive warning of CLang Static Analyzer about using NULL dstPtr in RLE::decompress(const Byte* arrRLE, Byte* arr) (#6342)"

r33282 "mrf.py: test overviews with all supported data types and with/witout nodata (#6342)"

comment:14 by Even Rouault, 8 years ago

r33284 "MRF: extent pbuffer size to avoid crashes in write_png() with very small block sizes (#6342)"

r33285 "mrf.py: add test for avg nodata with factor != 3 and overviews when raster_size%block_size != 0 (#6342)"

comment:15 by Even Rouault, 8 years ago

r33286 "MRF: avoid including internal libpng headers when linking against external libpng, and fix compilation with recent libpng (#6342)"

comment:16 by Even Rouault, 8 years ago

r33287, r33288 "mrf.py: test more configuration of JPEG compression (#6342)"

comment:17 by Even Rouault, 8 years ago

r33292 "mrf.py: add tests for cloning/caching and versioned datasets (#6342)"

r33293 "MRF: fix or dismiss Coverity Scan warnings about left shifts by 32 bits (#6342)"

r33294 "MRF: avoid potential divide by (double) 0, not sure if can happen in practice, warned by Coverity Scan"

r33295 "MRF: add missing member variable initializations, warned by Coverity Scan (#6342)"

r33296 "MRF: correct NULL ptr check to use the intended variable name, warned by Coverity Scan (#6342)"

r33297 "MRF: mkdir_r(): rework a bit so that Coverity Scan does not complain about improper use of negative value (#6342)"

r33298 "MRF: SetPBuffer(): correctly reset pbuffer to NULL when sz = 0 to avoid CPLRealloc() using a freed-pointer. Warned by Coverity Scan (#6342)"

r33299 "MRF: GDALMRFDataset::WriteTile(): set tbuff to NULL after free, so as to avoid a potential Coverity Scan warning about a later use of freed pointer (#6342)"

r33300 "MRF: GDALMRFRasterBand::RB(): avoid potential null ptr dereference as raised by Coverity Scan (#6342)"

r33301 "MRF: fix memory leaks in error code paths, as warned by Coverity Scan (#6342)"

comment:18 by Even Rouault, 8 years ago

r33302 "mrf.py: disable mrf_cached_source() tests on MacOSX due to failure (#6342)"

comment:19 by Even Rouault, 8 years ago

r33303 "MRF: fix GDAL 1.X support (#6342)"

comment:20 by Even Rouault, 8 years ago

r33317 "MRF: add explicit cast to int before abs() (https://github.com/nasa-gibs/mrf/commit/c562bf2d8bedca2a56e24ca3c6d4ec2b1bf12ac5 , #6342)"

r33318 "MRF: fix typos in code comments found by scripts/fix_typos.sh (#6342)"

comment:21 by Even Rouault, 8 years ago

r33321 "MRF: disable LERC on big-endian hosts (#6342)"

r33322 "MRF: avoid null-ptr deref in GDALMRFDataset::Create() when specifying invalid options (#6342)"

comment:22 by Even Rouault, 8 years ago

Milestone: 2.1.0
Resolution: fixed
Status: newclosed

comment:23 by Even Rouault, 8 years ago

r33373 "MRF: fix null-ptr deref in CheckFileSize() if file opening failed, found by AFL (#6342)"

r33374 "MRF: fix crash in PNG_Band::DecompressPNG() if compressed buffer is too small, found by AFL (#6342)"

comment:24 by Even Rouault, 8 years ago

r33375 "MRF: make allocation failure in SetPBuffer() non-fatal, and detect int overflow in image.pageSizeBytes computation, found by AFL (#6342)"

comment:25 by Even Rouault, 8 years ago

r33376 "MRF: be robust to invalid JPEG streams (#6342)"

comment:26 by Even Rouault, 8 years ago

r33377 "MRF: fix memory leak in DecompressTIF() in case of decompression failure (#6342)"

r33378 "MRF: DecompressTIF(): restrict allowed drivers to GTiff only (#6342)"

comment:27 by Even Rouault, 8 years ago

r33381 "MRF: fill_input_buffer_dec(): only emit error if cinfo->src->bytes_in_buffer == 0 (#6342)"

r33382 "MRF: revise error handling in JPEG compression/decompression to remove any C++ subclassing of JPEG error structure, as it was the apparent cause for a segfault with gcc 4.4 and libjpeg turbo. The new handling is closer to the one in the GDAL JPEG driver (#6342)"

comment:28 by Even Rouault, 8 years ago

r33383 "Export GDALRegenerateOverviewsMultiBand() symbol, but mostly for plugins (#6342)"

comment:29 by Even Rouault, 8 years ago

r33387 "MRF: avoid divide by zero in case of invalid Raster.z value. Found by AFL (#6342)"

comment:30 by Even Rouault, 8 years ago

r33395 "MRF: Moved LERC to a subfolder (https://github.com/nasa-gibs/mrf/commit/f57509b22cbe6c70c8078facda9585c063c85b3f, #6342)"

r33396 "MRF: LERC Defines.h: reintroduce inclusion of cpl_port.h for GDAL DEBUG_BOOL mode (#6342)"

comment:31 by Even Rouault, 8 years ago

r33397 "MRF: changes to GNUmakefile to fix libtool build (strongly inspired from frmts/gtiff/GNUmakefile and frmts/gtiff/libtiff/GNUmakefile) (#6342)"

r33398 "mrf: convert long to int in libLERC so as to please CLang -Wshorten-64-to-32 (#6342)"

comment:32 by Even Rouault, 8 years ago

r33401 "MRF: libLERC: also include cpl_port.h in NULL_AS_NULLPTR mode (#6342)"

Note: See TracTickets for help on using tickets.