| 8830 | } |
| 8831 | |
| 8832 | int ParseEXRMultipartHeaderFromFile(EXRHeader ***exr_headers, int *num_headers, |
| 8833 | const EXRVersion *exr_version, |
| 8834 | const char *filename, const char **err) { |
| 8835 | if (exr_headers == NULL || num_headers == NULL || exr_version == NULL || |
| 8836 | filename == NULL) { |
| 8837 | tinyexr::SetErrorMessage( |
| 8838 | "Invalid argument for ParseEXRMultipartHeaderFromFile()", err); |
| 8839 | return TINYEXR_ERROR_INVALID_ARGUMENT; |
| 8840 | } |
| 8841 | |
| 8842 | MemoryMappedFile file(filename); |
| 8843 | if (!file.valid()) { |
| 8844 | tinyexr::SetErrorMessage("Cannot read file " + std::string(filename), err); |
| 8845 | return TINYEXR_ERROR_CANT_OPEN_FILE; |
| 8846 | } |
| 8847 | |
| 8848 | return ParseEXRMultipartHeaderFromMemory( |
| 8849 | exr_headers, num_headers, exr_version, file.data, file.size, err); |
| 8850 | } |
| 8851 | |
| 8852 | int ParseEXRVersionFromMemory(EXRVersion *version, const unsigned char *memory, |
| 8853 | size_t size) { |
nothing calls this directly
no test coverage detected