j2k-cuda-runtime 0.8.0

CUDA codec engine and Driver API runtime for j2k device adapters
Documentation
// SPDX-License-Identifier: MIT OR Apache-2.0

use j2k_core::accelerator::GpuAbi;
use std::mem::{offset_of, size_of};

use crate::j2k_decode::{
    CudaJ2kStoreRgbNativeBatchJob, CudaJ2kStoreRgbNativeJob, CudaJ2kStoreRgbaNativeBatchJob,
    CudaJ2kStoreRgbaNativeJob,
};

impl_cuda_gpu_abi! {
    CudaJ2kStoreRgbNativeJob {
        input_width0: u32,
        input_width1: u32,
        input_width2: u32,
        source_x0: u32,
        source_y0: u32,
        source_x1: u32,
        source_y1: u32,
        source_x2: u32,
        source_y2: u32,
        copy_width: u32,
        copy_height: u32,
        output_width: u32,
        output_height: u32,
        output_x: u32,
        output_y: u32,
        addend0: f32,
        addend1: f32,
        addend2: f32,
        bit_depth0: u32,
        bit_depth1: u32,
        bit_depth2: u32,
        layout: u32,
        transform: u32,
        reserved: u32,
    },
    CudaJ2kStoreRgbNativeBatchJob {
        plane0_ptr: u64,
        plane1_ptr: u64,
        plane2_ptr: u64,
        output_ptr: u64,
        job: CudaJ2kStoreRgbNativeJob,
    },
    CudaJ2kStoreRgbaNativeJob {
        input_width0: u32,
        input_width1: u32,
        input_width2: u32,
        input_width3: u32,
        source_x0: u32,
        source_y0: u32,
        source_x1: u32,
        source_y1: u32,
        source_x2: u32,
        source_y2: u32,
        source_x3: u32,
        source_y3: u32,
        copy_width: u32,
        copy_height: u32,
        output_width: u32,
        output_height: u32,
        output_x: u32,
        output_y: u32,
        addend0: f32,
        addend1: f32,
        addend2: f32,
        addend3: f32,
        bit_depth0: u32,
        bit_depth1: u32,
        bit_depth2: u32,
        bit_depth3: u32,
        layout: u32,
        transform: u32,
        reserved: u32,
    },
    CudaJ2kStoreRgbaNativeBatchJob {
        plane0_ptr: u64,
        plane1_ptr: u64,
        plane2_ptr: u64,
        plane3_ptr: u64,
        output_ptr: u64,
        job: CudaJ2kStoreRgbaNativeJob,
        reserved_tail: u32,
    },
}