// Copyright (c) Team CharLS.
// SPDX-License-Identifier: BSD-3-Clause
#pragma once
#include "public_types.h"
#ifdef __cplusplus
extern "C" {
#endif
///
/// Validates a SPIFF header. It is validated against the ISO/IEC 10918-3, Annex F and if the
/// values match with the frame info argument.
///
///
/// ISO/IEC 10918-3 (SPIFF) and ISO/IEC 14495-1 (JPEG-LS) use different allowed ranges for
/// bits per sample: (1, 2, 4, 8, 12, 16) vs [2..16]. The JPEG-LS range is used for validation.
///
/// Reference to a charls_spiff_header instance.
/// Reference to a charls_frame_info instance.
/// charls_jpegls_errc::success when the SPIFF header is valid, otherwise charls_jpegls_errc::invalid_spiff_header.
CHARLS_CHECK_RETURN CHARLS_API_IMPORT_EXPORT charls_jpegls_errc CHARLS_API_CALLING_CONVENTION charls_validate_spiff_header(
CHARLS_IN const charls_spiff_header* spiff_header, CHARLS_IN const charls_frame_info* frame_info) CHARLS_NOEXCEPT
CHARLS_ATTRIBUTE((nonnull));
#ifdef __cplusplus
} // extern "C"
#endif