| 8470 | } |
| 8471 | |
| 8472 | int LoadEXRImageFromMemory(EXRImage *exr_image, const EXRHeader *exr_header, |
| 8473 | const unsigned char *memory, const size_t size, |
| 8474 | const char **err) { |
| 8475 | if (exr_image == NULL || memory == NULL || |
| 8476 | (size < tinyexr::kEXRVersionSize)) { |
| 8477 | tinyexr::SetErrorMessage("Invalid argument for LoadEXRImageFromMemory", |
| 8478 | err); |
| 8479 | return TINYEXR_ERROR_INVALID_ARGUMENT; |
| 8480 | } |
| 8481 | |
| 8482 | if (exr_header->header_len == 0) { |
| 8483 | tinyexr::SetErrorMessage("EXRHeader variable is not initialized.", err); |
| 8484 | return TINYEXR_ERROR_INVALID_ARGUMENT; |
| 8485 | } |
| 8486 | |
| 8487 | const unsigned char *head = memory; |
| 8488 | const unsigned char *marker = reinterpret_cast<const unsigned char *>( |
| 8489 | memory + exr_header->header_len + |
| 8490 | 8); // +8 for magic number + version header. |
| 8491 | return tinyexr::DecodeEXRImage(exr_image, exr_header, head, marker, size, |
| 8492 | err); |
| 8493 | } |
| 8494 | |
| 8495 | namespace tinyexr |
| 8496 | { |
no test coverage detected