| 591 | /************************************************************************/ |
| 592 | |
| 593 | int msInitDefaultGDALOutputFormat( outputFormatObj *format ) |
| 594 | |
| 595 | { |
| 596 | GDALDriverH hDriver; |
| 597 | |
| 598 | msGDALInitialize(); |
| 599 | |
| 600 | /* -------------------------------------------------------------------- */ |
| 601 | /* check that this driver exists. Note visiting drivers should */ |
| 602 | /* be pretty threadsafe so don't bother acquiring the GDAL */ |
| 603 | /* lock. */ |
| 604 | /* -------------------------------------------------------------------- */ |
| 605 | hDriver = GDALGetDriverByName( format->driver+5 ); |
| 606 | if( hDriver == NULL ) |
| 607 | { |
| 608 | msSetError( MS_MISCERR, "No GDAL driver named `%s' available.", |
| 609 | "msInitGDALOutputFormat()", format->driver+5 ); |
| 610 | return MS_FAILURE; |
| 611 | } |
| 612 | |
| 613 | #ifdef GDAL_DCAP_CREATE |
| 614 | if( GDALGetMetadataItem( hDriver, GDAL_DCAP_CREATE, NULL ) == NULL |
| 615 | && GDALGetMetadataItem( hDriver, GDAL_DCAP_CREATECOPY, NULL ) == NULL ) |
| 616 | { |
| 617 | msSetError( MS_MISCERR, "GDAL `%s' driver does not support output.", |
| 618 | "msInitGDALOutputFormat()", format->driver+5 ); |
| 619 | return MS_FAILURE; |
| 620 | } |
| 621 | #endif |
| 622 | |
| 623 | /* -------------------------------------------------------------------- */ |
| 624 | /* Initialize the object. */ |
| 625 | /* -------------------------------------------------------------------- */ |
| 626 | format->imagemode = MS_IMAGEMODE_RGB; |
| 627 | format->renderer = MS_RENDER_WITH_AGG; |
| 628 | |
| 629 | #ifdef GDAL_DMD_MIMETYPE |
| 630 | if( GDALGetMetadataItem( hDriver, GDAL_DMD_MIMETYPE, NULL ) != NULL ) |
| 631 | format->mimetype = |
| 632 | msStrdup(GDALGetMetadataItem(hDriver,GDAL_DMD_MIMETYPE,NULL)); |
| 633 | if( GDALGetMetadataItem( hDriver, GDAL_DMD_EXTENSION, NULL ) != NULL ) |
| 634 | format->extension = |
| 635 | msStrdup(GDALGetMetadataItem(hDriver,GDAL_DMD_EXTENSION,NULL)); |
| 636 | |
| 637 | #else |
| 638 | if( strcasecmp(format->driver,"GDAL/GTiff") ) |
| 639 | { |
| 640 | format->mimetype = msStrdup("image/tiff"); |
| 641 | format->extension = msStrdup("tif"); |
| 642 | } |
| 643 | #endif |
| 644 | |
| 645 | return MS_SUCCESS; |
| 646 | } |
| 647 | |
| 648 | #else |
| 649 |
no test coverage detected