sparse_array.h
Go to the documentation of this file.
/*
* The copyright in this software is being made available under the 2-clauses
* BSD License, included below. This software may be subject to other third
* party and contributor rights, including patent rights, and no such rights
* are granted under this license.
*
* Copyright (c) 2017, IntoPix SA <contact@intopix.com>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
* LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
* SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
* INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*/
#include "opj_includes.h"
#ifndef OPJ_SPARSE_ARRAY_H
#define OPJ_SPARSE_ARRAY_H
typedef struct opj_sparse_array_int32 opj_sparse_array_int32_t;
opj_sparse_array_int32_t* opj_sparse_array_int32_create(OPJ_UINT32 width,
OPJ_UINT32 height,
OPJ_UINT32 block_width,
OPJ_UINT32 block_height);
void opj_sparse_array_int32_free(opj_sparse_array_int32_t* sa);
OPJ_BOOL opj_sparse_array_is_region_valid(const opj_sparse_array_int32_t* sa,
OPJ_UINT32 x0,
OPJ_UINT32 y0,
OPJ_UINT32 x1,
OPJ_UINT32 y1);
OPJ_BOOL opj_sparse_array_int32_read(const opj_sparse_array_int32_t* sa,
OPJ_UINT32 x0,
OPJ_UINT32 y0,
OPJ_UINT32 x1,
OPJ_UINT32 y1,
OPJ_INT32* dest,
OPJ_UINT32 dest_col_stride,
OPJ_UINT32 dest_line_stride,
OPJ_BOOL forgiving);
OPJ_BOOL opj_sparse_array_int32_write(opj_sparse_array_int32_t* sa,
OPJ_UINT32 x0,
OPJ_UINT32 y0,
OPJ_UINT32 x1,
OPJ_UINT32 y1,
const OPJ_INT32* src,
OPJ_UINT32 src_col_stride,
OPJ_UINT32 src_line_stride,
OPJ_BOOL forgiving);
#endif /* OPJ_SPARSE_ARRAY_H */
OPJ_INT32
int32_t OPJ_INT32
Definition openjpeg.h:131
OPJ_UINT32
uint32_t OPJ_UINT32
Definition openjpeg.h:132
OPJ_BOOL
int OPJ_BOOL
Definition openjpeg.h:116
opj_includes.h
opj_sparse_array_int32_read
OPJ_BOOL opj_sparse_array_int32_read(const opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, OPJ_INT32 *dest, OPJ_UINT32 dest_col_stride, OPJ_UINT32 dest_line_stride, OPJ_BOOL forgiving)
Read the content of a rectangular region of the sparse array into a user buffer.
Definition sparse_array.c:311
opj_sparse_array_int32_write
OPJ_BOOL opj_sparse_array_int32_write(opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1, const OPJ_INT32 *src, OPJ_UINT32 src_col_stride, OPJ_UINT32 src_line_stride, OPJ_BOOL forgiving)
Write the content of a rectangular region into the sparse array from a user buffer.
Definition sparse_array.c:330
opj_sparse_array_is_region_valid
OPJ_BOOL opj_sparse_array_is_region_valid(const opj_sparse_array_int32_t *sa, OPJ_UINT32 x0, OPJ_UINT32 y0, OPJ_UINT32 x1, OPJ_UINT32 y1)
Returns whether region bounds are valid (non empty and within array bounds).
Definition sparse_array.c:95
opj_sparse_array_int32_create
opj_sparse_array_int32_t * opj_sparse_array_int32_create(OPJ_UINT32 width, OPJ_UINT32 height, OPJ_UINT32 block_width, OPJ_UINT32 block_height)
Creates a new sparse array.
Definition sparse_array.c:45
opj_sparse_array_int32_t
struct opj_sparse_array_int32 opj_sparse_array_int32_t
Opaque type for sparse arrays that contain int32 values.
Definition sparse_array.h:53
opj_sparse_array_int32_free
void opj_sparse_array_int32_free(opj_sparse_array_int32_t *sa)
Frees a sparse array.
Definition sparse_array.c:81
opj_sparse_array_int32
Definition sparse_array.c:35
opj_sparse_array_int32::width
OPJ_UINT32 width
Definition sparse_array.c:36
opj_sparse_array_int32::block_height
OPJ_UINT32 block_height
Definition sparse_array.c:39
opj_sparse_array_int32::block_width
OPJ_UINT32 block_width
Definition sparse_array.c:38
opj_sparse_array_int32::height
OPJ_UINT32 height
Definition sparse_array.c:37