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