Hello, I'm implementing a gdal raster driver for an internal file format and am getting results I do not understand. The output is a binary raster of 32-bit floating point data, but the resulting file contains single bytes of value 0x0D at seemingly random intervals throughout the data.
Within my implementation of IWriteBlock, I see that the buffer pointed to by pImage *does not* contain these 0x0D's, however after calling VSIFWrite the output file does indeed have these individual bytes scattered throughout. In all cases, I am creating a new output file (not overwriting an existing file). Sometimes the 0D's occur in the middle of a 4-byte float, others are between two 4-byte float sequences. I cannot figure how/when/why these random 0D's are occurring in my output. Thank you for any help provided. Here is my implementation of IWriteBlock CPLErr RLYRRasterBand::IWriteBlock(int nBlockXOff, int nBlockYOff, void *pImage) { RLYRDataset *poGDS = (RLYRDataset *)poDS; if (poGDS->fp == 0) { CPLError(CE_Failure, CPLE_FileIO, "IWriteBlock: fp is NULL"); return CE_Failure; } nBlockYOff = poDS->GetRasterYSize() - nBlockYOff - 1; size_t cdtSize = GDALGetDataTypeSize(GetRasterDataType()) / 8; size_t nSeek = RLYRMeta::offset_data + cdtSize * (nBlockXOff * nBlockYSize + nBlockYOff * nBlockXSize); int zeeksez = VSIFSeek(poGDS->fp, nSeek, SEEK_SET); if (zeeksez != 0) { CPLError(CE_Warning, CPLE_FileIO, "VSIFSeek returns %d", zeeksez); return CE_Failure; } size_t nBlockLen = nBlockXSize * nBlockYSize; size_t nWrit = VSIFWrite(pImage, cdtSize, nBlockLen, poGDS->fp); if (nWrit != nBlockLen) { CPLError(CE_Warning, CPLE_FileIO, "VSIFWrite returns %d", nWrit); return CE_Failure; } // test code - 'foo' does not exhibit bad data but the output file does //if (nBlockYOff == 1130) { // FILE *tfp = VSIFOpen("h:\\rasters\\o\\foo", "wb"); // size_t nWrit2 = fwrite(pImage, cdtSize, nBlockLen, tfp); // VSIFClose(tfp); //} return CE_None; }
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev