use j2k_core::BackendKind;
use super::{
accelerator, lossless, lossy, roi, EncodedJ2k, EncodedLossyJ2k, J2kLosslessComponentSamples,
J2kLosslessEncodeOptions, J2kLosslessSamples, J2kLosslessTypedComponentSamples,
J2kLossyEncodeOptions, J2kLossySamples, J2kRoiRegion,
};
use crate::{J2kEncodeStageAccelerator, J2kError};
pub fn encode_j2k_lossless(
samples: J2kLosslessSamples<'_>,
options: &J2kLosslessEncodeOptions,
) -> Result<EncodedJ2k, J2kError> {
lossless::encode(samples, options)
}
pub fn encode_j2k_lossless_with_roi_regions(
samples: J2kLosslessSamples<'_>,
options: &J2kLosslessEncodeOptions,
roi_regions: &[J2kRoiRegion],
) -> Result<EncodedJ2k, J2kError> {
roi::encode_lossless(samples, options, roi_regions)
}
pub fn encode_j2k_lossless_components(
samples: J2kLosslessComponentSamples<'_>,
options: &J2kLosslessEncodeOptions,
) -> Result<EncodedJ2k, J2kError> {
lossless::encode_components(samples, options)
}
pub fn encode_j2k_lossless_typed_components(
samples: J2kLosslessTypedComponentSamples<'_>,
options: &J2kLosslessEncodeOptions,
) -> Result<EncodedJ2k, J2kError> {
lossless::encode_typed_components(samples, options)
}
pub fn encode_j2k_lossless_with_accelerator(
samples: J2kLosslessSamples<'_>,
options: &J2kLosslessEncodeOptions,
accelerated_backend: BackendKind,
accelerator: &mut impl J2kEncodeStageAccelerator,
) -> Result<EncodedJ2k, J2kError> {
accelerator::encode_lossless(samples, options, accelerated_backend, accelerator)
}
pub fn encode_j2k_lossy(
samples: J2kLossySamples<'_>,
options: &J2kLossyEncodeOptions,
) -> Result<EncodedLossyJ2k, J2kError> {
lossy::encode(samples, options)
}
pub fn encode_j2k_lossy_with_roi_regions(
samples: J2kLossySamples<'_>,
options: &J2kLossyEncodeOptions,
roi_regions: &[J2kRoiRegion],
) -> Result<EncodedLossyJ2k, J2kError> {
roi::encode_lossy(samples, options, roi_regions)
}
pub fn encode_j2k_lossy_with_accelerator(
samples: J2kLossySamples<'_>,
options: &J2kLossyEncodeOptions,
accelerated_backend: BackendKind,
accelerator: &mut impl J2kEncodeStageAccelerator,
) -> Result<EncodedLossyJ2k, J2kError> {
accelerator::encode_lossy(samples, options, accelerated_backend, accelerator)
}