diff --git a/gdal/keadriver.cpp b/gdal/keadriver.cpp
index 8ad3f4d..a16965d 100644
--- a/gdal/keadriver.cpp
+++ b/gdal/keadriver.cpp
@@ -50,25 +50,48 @@ void GDALRegister_KEA()
"KEA Image Format (.kea)" );
poDriver->SetMetadataItem( GDAL_DMD_EXTENSION, "kea" );
poDriver->SetMetadataItem( GDAL_DMD_CREATIONDATATYPES,
- "Byte Int16 UInt16 Int32 UInt32 "
+ "Byte Int8 Int16 UInt16 Int32 UInt32 "
#ifdef HAVE_64BITIMAGES
- "Int64 UInt64 "
+ "Int64 UInt64 "
#endif
- "Float32 Float64" );
- poDriver->SetMetadataItem( GDAL_DMD_CREATIONOPTIONLIST, "\
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
- \
-" );
-
+ "Float32 Float64" );
+ poDriver->SetMetadataItem(
+ GDAL_DMD_CREATIONOPTIONLIST,
+ CPLSPrintf(
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ " "
+ "",
+ static_cast(kealib::KEA_IMAGE_CHUNK_SIZE),
+ static_cast(kealib::KEA_ATT_CHUNK_SIZE),
+ static_cast(kealib::KEA_MDC_NELMTS),
+ static_cast(kealib::KEA_RDCC_NELMTS),
+ static_cast(kealib::KEA_RDCC_NBYTES), kealib::KEA_RDCC_W0,
+ static_cast(kealib::KEA_SIEVE_BUF),
+ static_cast(kealib::KEA_META_BLOCKSIZE), kealib::KEA_DEFLATE));
+ poDriver->SetMetadataItem(GDAL_DCAP_VIRTUALIO, "YES");
+ poDriver->SetMetadataItem(GDAL_DCAP_OPEN, "YES");
+ poDriver->SetMetadataItem(GDAL_DCAP_CREATE, "YES");
+ poDriver->SetMetadataItem(GDAL_DCAP_CREATECOPY, "YES");
+
// pointer to open function
poDriver->pfnOpen = KEADataset::Open;
// pointer to identify function
diff --git a/gdal/keaoverview.cpp b/gdal/keaoverview.cpp
index 506b6ef..f9a3e35 100644
--- a/gdal/keaoverview.cpp
+++ b/gdal/keaoverview.cpp
@@ -45,7 +45,8 @@ KEAOverview::KEAOverview(KEADataset *pDataset, int nSrcBand, GDALAccess eAccess,
KEAOverview::~KEAOverview()
{
-
+ // according to the docs, this is required
+ this->FlushCache();
}
// overridden implementation - calls readFromOverview instead