Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
libaec
Project overview
Project overview
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Mathis Rosenhauer
libaec
Commits
0d0684ac
Commit
0d0684ac
authored
Oct 13, 2017
by
Mathis Rosenhauer
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Avoid declaration after statement
parent
923f2fdc
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
41 additions
and
26 deletions
+41
-26
src/decode.c
src/decode.c
+17
-12
src/encode.c
src/encode.c
+2
-1
src/sz_compat.c
src/sz_compat.c
+22
-13
No files found.
src/decode.c
View file @
0d0684ac
...
...
@@ -94,10 +94,11 @@
xmax = state->xmax; \
\
for (bp = state->flush_start; bp < flush_end; bp++) { \
uint32_t mask; \
d = *bp; \
half_d = (d >> 1) + (d & 1); \
/*in this case: data >= med == data & med */
\
uint32_t mask = (data & med)?xmax:0;
\
mask = (data & med)?xmax:0;
\
\
/*in this case: xmax - data == xmax ^ data */
\
if (half_d <= (mask ^ (uint32_t)data)) { \
...
...
@@ -303,21 +304,23 @@ static inline uint32_t direct_get_fs(struct aec_stream *strm)
state
->
bitp
=
56
;
}
{
#ifndef __has_builtin
#define __has_builtin(x) 0
/* Compatibility with non-clang compilers. */
#endif
#if HAVE_DECL___BUILTIN_CLZLL || __has_builtin(__builtin_clzll)
int
i
=
63
-
__builtin_clzll
(
state
->
acc
);
int
i
=
63
-
__builtin_clzll
(
state
->
acc
);
#elif HAVE_BSR64
unsigned
long
i
;
_BitScanReverse64
(
&
i
,
state
->
acc
);
unsigned
long
i
;
_BitScanReverse64
(
&
i
,
state
->
acc
);
#else
int
i
=
state
->
bitp
-
1
;
while
((
state
->
acc
&
(
UINT64_C
(
1
)
<<
i
))
==
0
)
i
--
;
int
i
=
state
->
bitp
-
1
;
while
((
state
->
acc
&
(
UINT64_C
(
1
)
<<
i
))
==
0
)
i
--
;
#endif
fs
+=
state
->
bitp
-
i
-
1
;
state
->
bitp
=
i
;
fs
+=
state
->
bitp
-
i
-
1
;
state
->
bitp
=
i
;
}
return
fs
;
}
...
...
@@ -676,6 +679,7 @@ static void create_se_table(int *table)
int
aec_decode_init
(
struct
aec_stream
*
strm
)
{
struct
internal_state
*
state
;
int
modi
;
if
(
strm
->
bits_per_sample
>
32
||
strm
->
bits_per_sample
==
0
)
return
AEC_CONF_ERROR
;
...
...
@@ -745,7 +749,7 @@ int aec_decode_init(struct aec_stream *strm)
state
->
in_blklen
=
(
strm
->
block_size
*
strm
->
bits_per_sample
+
state
->
id_len
)
/
8
+
16
;
int
modi
=
1UL
<<
state
->
id_len
;
modi
=
1UL
<<
state
->
id_len
;
state
->
id_table
=
malloc
(
modi
*
sizeof
(
int
(
*
)(
struct
aec_stream
*
)));
if
(
state
->
id_table
==
NULL
)
return
AEC_MEM_ERROR
;
...
...
@@ -791,11 +795,12 @@ int aec_decode(struct aec_stream *strm, int flush)
of the states are called. Inspired by zlib.
*/
struct
internal_state
*
state
=
strm
->
state
;
int
status
;
strm
->
total_in
+=
strm
->
avail_in
;
strm
->
total_out
+=
strm
->
avail_out
;
struct
internal_state
*
state
=
strm
->
state
;
int
status
;
do
{
status
=
state
->
mode
(
strm
);
}
while
(
status
==
M_CONTINUE
);
...
...
src/encode.c
View file @
0d0684ac
...
...
@@ -580,11 +580,12 @@ static int m_select_code_option(struct aec_stream *strm)
struct
internal_state
*
state
=
strm
->
state
;
uint32_t
split_len
;
uint32_t
se_len
;
if
(
state
->
id_len
>
1
)
split_len
=
assess_splitting_option
(
strm
);
else
split_len
=
UINT32_MAX
;
uint32_t
se_len
=
assess_se_option
(
strm
);
se_len
=
assess_se_option
(
strm
);
if
(
split_len
<
state
->
uncomp_len
)
{
if
(
split_len
<
se_len
)
...
...
src/sz_compat.c
View file @
0d0684ac
...
...
@@ -99,7 +99,15 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
SZ_com_t
*
param
)
{
struct
aec_stream
strm
;
void
*
buf
=
0
;
void
*
padbuf
=
0
;
int
status
;
int
interleave
;
int
pixel_size
;
int
aec_status
;
size_t
scanlines
;
size_t
padbuf_size
;
size_t
padding_size
;
strm
.
block_size
=
param
->
pixels_per_block
;
strm
.
rsi
=
(
param
->
pixels_per_scanline
+
param
->
pixels_per_block
-
1
)
...
...
@@ -107,10 +115,8 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
strm
.
flags
=
AEC_NOT_ENFORCE
|
convert_options
(
param
->
options_mask
);
strm
.
avail_out
=
*
destLen
;
strm
.
next_out
=
dest
;
void
*
buf
=
0
;
void
*
padbuf
=
0
;
int
int
erleave
=
param
->
bits_per_pixel
==
32
||
param
->
bits_per_pixel
==
64
;
interleave
=
param
->
bits_per_pixel
==
32
||
param
->
bits_per_pixel
==
64
;
if
(
interleave
)
{
strm
.
bits_per_sample
=
8
;
buf
=
malloc
(
sourceLen
);
...
...
@@ -124,18 +130,18 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
buf
=
(
void
*
)
source
;
}
int
pixel_size
=
bits_to_bytes
(
strm
.
bits_per_sample
);
pixel_size
=
bits_to_bytes
(
strm
.
bits_per_sample
);
s
ize_t
s
canlines
=
(
sourceLen
/
pixel_size
+
param
->
pixels_per_scanline
-
1
)
scanlines
=
(
sourceLen
/
pixel_size
+
param
->
pixels_per_scanline
-
1
)
/
param
->
pixels_per_scanline
;
size_t
padbuf_size
=
strm
.
rsi
*
strm
.
block_size
*
pixel_size
*
scanlines
;
padbuf_size
=
strm
.
rsi
*
strm
.
block_size
*
pixel_size
*
scanlines
;
padbuf
=
malloc
(
padbuf_size
);
if
(
padbuf
==
NULL
)
{
status
=
SZ_MEM_ERROR
;
goto
CLEANUP
;
}
size_t
padding_size
=
padding_size
=
(
strm
.
rsi
*
strm
.
block_size
-
param
->
pixels_per_scanline
)
*
pixel_size
;
...
...
@@ -146,7 +152,7 @@ int SZ_BufftoBuffCompress(void *dest, size_t *destLen,
strm
.
next_in
=
padbuf
;
strm
.
avail_in
=
padbuf_size
;
int
aec_status
=
aec_buffer_encode
(
&
strm
);
aec_status
=
aec_buffer_encode
(
&
strm
);
if
(
aec_status
==
AEC_STREAM_ERROR
)
status
=
SZ_OUTBUFF_FULL
;
else
...
...
@@ -166,7 +172,12 @@ int SZ_BufftoBuffDecompress(void *dest, size_t *destLen,
SZ_com_t
*
param
)
{
struct
aec_stream
strm
;
void
*
buf
=
0
;
int
status
;
int
pad_scanline
;
int
deinterleave
;
int
extra_buffer
;
int
pixel_size
;
size_t
total_out
;
size_t
scanlines
;
...
...
@@ -176,13 +187,11 @@ int SZ_BufftoBuffDecompress(void *dest, size_t *destLen,
strm
.
flags
=
convert_options
(
param
->
options_mask
);
strm
.
avail_in
=
sourceLen
;
strm
.
next_in
=
source
;
void
*
buf
=
0
;
int
pad_scanline
=
param
->
pixels_per_scanline
%
param
->
pixels_per_block
;
int
deinterleave
=
(
param
->
bits_per_pixel
==
32
pad_scanline
=
param
->
pixels_per_scanline
%
param
->
pixels_per_block
;
deinterleave
=
(
param
->
bits_per_pixel
==
32
||
param
->
bits_per_pixel
==
64
);
int
extra_buffer
=
pad_scanline
||
deinterleave
;
int
pixel_size
;
extra_buffer
=
pad_scanline
||
deinterleave
;
if
(
deinterleave
)
strm
.
bits_per_sample
=
8
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment