feat/api #46
2 changed files with 1 additions and 193 deletions
|
@ -181,43 +181,6 @@
|
|||
|
||||
#define AUX_SIZE 0x8000
|
||||
|
||||
/************************************************************************************************************\
|
||||
|| ___ _ _ ___ ____ ____ ||
|
||||
|| | \_/ |__] |___ [__ ||
|
||||
|| | | | |___ ___] ||
|
||||
|| ||
|
||||
\************************************************************************************************************/
|
||||
/*----------------------------------------------------------------------------------------------*\
|
||||
! !
|
||||
! DESCRIPTION: !
|
||||
! ------------ !
|
||||
! !
|
||||
! This structure is used to read/assemble a packed codestream during coding. The !
|
||||
! byte buffer is flushed to the packed stream as soon as the a single byte has !
|
||||
! been assembled. !
|
||||
! !
|
||||
\*----------------------------------------------------------------------------------------------*/
|
||||
typedef struct
|
||||
{
|
||||
//TODO: remove
|
||||
uchar error; // Error flag used during streaming.
|
||||
|
||||
uint64 size;
|
||||
uint64 position;
|
||||
//TODO: remove
|
||||
uint64 L; // Number of bytes written to/from stream.
|
||||
//TODO: remove
|
||||
uint64 Lmax; // Size of packed stream.
|
||||
uint64 size_incr; // Size incrmnt used for stream assembly.
|
||||
|
||||
//TODO: remove
|
||||
uint8 T; // Byte buffer.
|
||||
int8 t; // Byte buffer counter.
|
||||
|
||||
uchar *access; // Pointer used to parse packed stream.
|
||||
uchar *memory; // Memory handle for packed stream chunck.
|
||||
} span;
|
||||
|
||||
/*----------------------------------------------------------------------------------------------------------*\
|
||||
! STRUCT NAME: eas3_header !
|
||||
! ----------- !
|
||||
|
|
|
@ -84,151 +84,6 @@
|
|||
|| | | \ | \/ | | | |___ | |__| | \| |___ | | |__| | \| ___] ||
|
||||
|| ||
|
||||
\************************************************************************************************************/
|
||||
/*----------------------------------------------------------------------------------------------------------*\
|
||||
! FUNCTION NAME: uint32 eas3_bytes_used(bitstream *const stream) !
|
||||
! -------------- !
|
||||
! !
|
||||
! DESCRIPTION: !
|
||||
! ------------ !
|
||||
! This function is used to evaluate the number of bytes that have already been !
|
||||
! written to the allocated bitstream memory block. !
|
||||
! !
|
||||
! PARAMETERS: !
|
||||
! ----------- !
|
||||
! Variable Type Description !
|
||||
! -------- ---- ----------- !
|
||||
! stream bitstream* - Structure that !
|
||||
! !
|
||||
! RETURN VALUE: !
|
||||
! ------------- !
|
||||
! Type Description !
|
||||
! ---- ----------- !
|
||||
! unsigned int(32 bit) - Number of bites that have been written to the !
|
||||
! bitstream. !
|
||||
! !
|
||||
! DEVELOPMENT HISTORY: !
|
||||
! -------------------- !
|
||||
! !
|
||||
! Date Author Change Id Release Description Of Change !
|
||||
! ---- ------ --------- ------- --------------------- !
|
||||
! 13.05.2019 Patrick Vogler B87D120 V 0.1.0 function created !
|
||||
! !
|
||||
\*----------------------------------------------------------------------------------------------------------*/
|
||||
uint64
|
||||
eas3_bytes_used(span const *const stream)
|
||||
{
|
||||
if(stream->T == 0xFF)
|
||||
{
|
||||
return stream->L + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return stream->L;
|
||||
}
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------------------------------------*\
|
||||
! FUNCTION NAME: span* bwc_init_stream(uchar* memory, uint32 size, char instr) !
|
||||
! -------------- !
|
||||
! !
|
||||
! DESCRIPTION: !
|
||||
! ------------ !
|
||||
! This function is used to initialize a bwc bitstream. For encoding, a null pointer !
|
||||
! is passed as a memory handle and the function will allocate a memory block with the !
|
||||
! specified stream size. For decoding, a valid memory handle, passed by the function !
|
||||
! caller, will be stored in the bitstream structure. The byte buffer counter t, !
|
||||
! stream size Lmax and size increment are initialized with their appropriate values. !
|
||||
! !
|
||||
! PARAMETERS: !
|
||||
! ----------- !
|
||||
! Variable Type Description !
|
||||
! -------- ---- ----------- !
|
||||
! size unsigned int(32 bit) - Initial size of the bwc stream. !
|
||||
! !
|
||||
! memory unsigned char - Memory handle for the bwc stream memory !
|
||||
! block. !
|
||||
! !
|
||||
! instr char - Constant used to instruct the field !
|
||||
! initialization. !
|
||||
! !
|
||||
! RETURN VALUE: !
|
||||
! ------------- !
|
||||
! Type Description !
|
||||
! ---- ----------- !
|
||||
! bitstream* - Memory handle for the initialized bwc stream. !
|
||||
! !
|
||||
! DEVELOPMENT HISTORY: !
|
||||
! -------------------- !
|
||||
! !
|
||||
! Date Author Change Id Release Description Of Change !
|
||||
! ---- ------ --------- ------- --------------------- !
|
||||
! 19.06.2019 Patrick Vogler B87D120 V 0.1.0 function created !
|
||||
! !
|
||||
\*----------------------------------------------------------------------------------------------------------*/
|
||||
span*
|
||||
eas3_init_stream(uchar* memory, uint32 size, char instr)
|
||||
{
|
||||
/*-----------------------*\
|
||||
! DEFINE STRUCTS: !
|
||||
\*-----------------------*/
|
||||
span *stream;
|
||||
|
||||
/*-----------------------*\
|
||||
! DEFINE ASSERTIONS: !
|
||||
\*-----------------------*/
|
||||
assert(instr == 'c' || instr == 'd');
|
||||
|
||||
/*--------------------------------------------------------*\
|
||||
! Allocate the bwc stream structure. !
|
||||
\*--------------------------------------------------------*/
|
||||
stream = calloc(1, sizeof(span));
|
||||
if(!stream)
|
||||
{
|
||||
// memory allocation error
|
||||
fprintf(stderr, MEMERROR);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------*\
|
||||
! Evaluate if a valid memory handle has been passed by the !
|
||||
! function caller. !
|
||||
\*--------------------------------------------------------*/
|
||||
if(!memory)
|
||||
{
|
||||
/*--------------------------------------------------------*\
|
||||
! If no valid memory handle has been passed, allocate a !
|
||||
! memory block with the specifiec stream size. !
|
||||
\*--------------------------------------------------------*/
|
||||
stream->memory = calloc(size, sizeof(uchar));
|
||||
if(!stream->memory)
|
||||
{
|
||||
// memory allocation error
|
||||
fprintf(stderr, MEMERROR);
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
/*--------------------------------------------------------*\
|
||||
! If a valid memory handle has been passed for decoding, !
|
||||
! save the memory handle in the bwc stream structure. !
|
||||
\*--------------------------------------------------------*/
|
||||
stream->memory = memory;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------*\
|
||||
! Initialize the byte buffer counter, stream size and size !
|
||||
! increment for the current stream. !
|
||||
\*--------------------------------------------------------*/
|
||||
stream->t = (instr == 'c') ? 8 : 0;
|
||||
stream->Lmax = size;
|
||||
stream->size_incr = (uint64)(size / 2);
|
||||
|
||||
/*--------------------------------------------------------*\
|
||||
! Return the stream memory handle. !
|
||||
\*--------------------------------------------------------*/
|
||||
return stream;
|
||||
}
|
||||
|
||||
/*----------------------------------------------------------------------------------------------------------*\
|
||||
! !
|
||||
|
@ -238,7 +93,6 @@ eas3_init_stream(uchar* memory, uint32 size, char instr)
|
|||
! information. !
|
||||
! !
|
||||
\*----------------------------------------------------------------------------------------------------------*/
|
||||
|
||||
#define aux_enqueue(aux, aux_pos, aux_len, chunck, chunck_len) \
|
||||
{ \
|
||||
if (aux_pos + chunck_len > aux_len) \
|
||||
|
@ -483,7 +337,6 @@ read_eas3_header(FILE *const fp, eas3_data *const data)
|
|||
! DEFINE STRUCTS: !
|
||||
\*-----------------------*/
|
||||
bwc_gl_inf *info;
|
||||
span *aux;
|
||||
eas3_std_params *params;
|
||||
|
||||
/*-----------------------*\
|
||||
|
@ -834,7 +687,6 @@ write_eas3_header(FILE *const fp, eas3_data *const data)
|
|||
! DEFINE STRUCTS: !
|
||||
\*-----------------------*/
|
||||
bwc_gl_inf *info;
|
||||
span *aux;
|
||||
eas3_std_params *params;
|
||||
eas3_param_names *param_names;
|
||||
|
||||
|
@ -853,11 +705,6 @@ write_eas3_header(FILE *const fp, eas3_data *const data)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/*--------------------------------------------------------*\
|
||||
! Initialize the auxiliary information stream. !
|
||||
\*--------------------------------------------------------*/
|
||||
aux = eas3_init_stream(data->uchar_aux, data->aux_len, 'd');
|
||||
|
||||
// Rewind aux
|
||||
data->aux_pos = 0;
|
||||
|
||||
|
@ -1020,10 +867,8 @@ write_eas3_header(FILE *const fp, eas3_data *const data)
|
|||
free(buffer_char);
|
||||
|
||||
/*--------------------------------------------------------*\
|
||||
! Free the auxiliary information memory block stream and !
|
||||
! params structure. !
|
||||
! Free the params structure. !
|
||||
\*--------------------------------------------------------*/
|
||||
free(aux);
|
||||
free(params);
|
||||
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue