| 7026 | } |
| 7027 | |
| 7028 | int LoadEXRImageFromMemory(EXRImage *exr_image, const EXRHeader *exr_header, |
| 7029 | const unsigned char *memory, const size_t size, |
| 7030 | const char **err) { |
| 7031 | if (exr_image == NULL || memory == NULL || |
| 7032 | (size < tinyexr::kEXRVersionSize)) { |
| 7033 | tinyexr::SetErrorMessage("Invalid argument for LoadEXRImageFromMemory", |
| 7034 | err); |
| 7035 | return TINYEXR_ERROR_INVALID_ARGUMENT; |
| 7036 | } |
| 7037 | |
| 7038 | if (exr_header->header_len == 0) { |
| 7039 | tinyexr::SetErrorMessage("EXRHeader variable is not initialized.", err); |
| 7040 | return TINYEXR_ERROR_INVALID_ARGUMENT; |
| 7041 | } |
| 7042 | |
| 7043 | const unsigned char *head = memory; |
| 7044 | const unsigned char *marker = reinterpret_cast<const unsigned char *>( |
| 7045 | memory + exr_header->header_len + |
| 7046 | 8); // +8 for magic number + version header. |
| 7047 | return tinyexr::DecodeEXRImage(exr_image, exr_header, head, marker, size, |
| 7048 | err); |
| 7049 | } |
| 7050 | |
| 7051 | namespace tinyexr |
| 7052 | { |
no test coverage detected