Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in / Register
Toggle navigation
F
ffmpeg.wasm-core
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Linshizhi
ffmpeg.wasm-core
Commits
f32aefcf
Commit
f32aefcf
authored
Jun 03, 2013
by
Luca Barbato
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
faxcompr: K&R formatting cosmetics
parent
9c221697
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
75 additions
and
69 deletions
+75
-69
faxcompr.c
libavcodec/faxcompr.c
+75
-69
No files found.
libavcodec/faxcompr.c
View file @
f32aefcf
...
@@ -103,13 +103,13 @@ av_cold void ff_ccitt_unpack_init(void)
...
@@ -103,13 +103,13 @@ av_cold void ff_ccitt_unpack_init(void)
int
i
;
int
i
;
static
int
initialized
=
0
;
static
int
initialized
=
0
;
if
(
initialized
)
if
(
initialized
)
return
;
return
;
ccitt_vlc
[
0
].
table
=
code_table1
;
ccitt_vlc
[
0
].
table
=
code_table1
;
ccitt_vlc
[
0
].
table_allocated
=
528
;
ccitt_vlc
[
0
].
table_allocated
=
528
;
ccitt_vlc
[
1
].
table
=
code_table2
;
ccitt_vlc
[
1
].
table
=
code_table2
;
ccitt_vlc
[
1
].
table_allocated
=
648
;
ccitt_vlc
[
1
].
table_allocated
=
648
;
for
(
i
=
0
;
i
<
2
;
i
++
)
{
for
(
i
=
0
;
i
<
2
;
i
++
)
{
ff_init_vlc_sparse
(
&
ccitt_vlc
[
i
],
9
,
CCITT_SYMS
,
ff_init_vlc_sparse
(
&
ccitt_vlc
[
i
],
9
,
CCITT_SYMS
,
ccitt_codes_lens
[
i
],
1
,
1
,
ccitt_codes_lens
[
i
],
1
,
1
,
ccitt_codes_bits
[
i
],
1
,
1
,
ccitt_codes_bits
[
i
],
1
,
1
,
...
@@ -124,22 +124,23 @@ av_cold void ff_ccitt_unpack_init(void)
...
@@ -124,22 +124,23 @@ av_cold void ff_ccitt_unpack_init(void)
static
int
decode_group3_1d_line
(
AVCodecContext
*
avctx
,
GetBitContext
*
gb
,
static
int
decode_group3_1d_line
(
AVCodecContext
*
avctx
,
GetBitContext
*
gb
,
unsigned
int
pix_left
,
int
*
runs
,
const
int
*
runend
)
unsigned
int
pix_left
,
int
*
runs
,
const
int
*
runend
)
{
{
int
mode
=
0
;
int
mode
=
0
;
unsigned
int
run
=
0
;
unsigned
int
run
=
0
;
unsigned
int
t
;
unsigned
int
t
;
for
(;;)
{
for
(;;)
{
t
=
get_vlc2
(
gb
,
ccitt_vlc
[
mode
].
table
,
9
,
2
);
t
=
get_vlc2
(
gb
,
ccitt_vlc
[
mode
].
table
,
9
,
2
);
run
+=
t
;
run
+=
t
;
if
(
t
<
64
)
{
if
(
t
<
64
)
{
*
runs
++
=
run
;
*
runs
++
=
run
;
if
(
runs
>=
runend
)
{
if
(
runs
>=
runend
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run overrun
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run overrun
\n
"
);
return
-
1
;
return
-
1
;
}
}
if
(
pix_left
<=
run
)
{
if
(
pix_left
<=
run
)
{
if
(
pix_left
==
run
)
if
(
pix_left
==
run
)
break
;
break
;
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
return
-
1
;
return
-
1
;
...
@@ -147,7 +148,7 @@ static int decode_group3_1d_line(AVCodecContext *avctx, GetBitContext *gb,
...
@@ -147,7 +148,7 @@ static int decode_group3_1d_line(AVCodecContext *avctx, GetBitContext *gb,
pix_left
-=
run
;
pix_left
-=
run
;
run
=
0
;
run
=
0
;
mode
=
!
mode
;
mode
=
!
mode
;
}
else
if
((
int
)
t
==
-
1
)
{
}
else
if
((
int
)
t
==
-
1
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Incorrect code
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Incorrect code
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -157,70 +158,72 @@ static int decode_group3_1d_line(AVCodecContext *avctx, GetBitContext *gb,
...
@@ -157,70 +158,72 @@ static int decode_group3_1d_line(AVCodecContext *avctx, GetBitContext *gb,
}
}
static
int
decode_group3_2d_line
(
AVCodecContext
*
avctx
,
GetBitContext
*
gb
,
static
int
decode_group3_2d_line
(
AVCodecContext
*
avctx
,
GetBitContext
*
gb
,
unsigned
int
width
,
int
*
runs
,
const
int
*
runend
,
const
int
*
ref
)
unsigned
int
width
,
int
*
runs
,
const
int
*
runend
,
const
int
*
ref
)
{
{
int
mode
=
0
,
saved_run
=
0
,
t
;
int
mode
=
0
,
saved_run
=
0
,
t
;
int
run_off
=
*
ref
++
;
int
run_off
=
*
ref
++
;
unsigned
int
offs
=
0
,
run
=
0
;
unsigned
int
offs
=
0
,
run
=
0
;
runend
--
;
// for the last written 0
runend
--
;
// for the last written 0
while
(
offs
<
width
)
{
while
(
offs
<
width
)
{
int
cmode
=
get_vlc2
(
gb
,
ccitt_group3_2d_vlc
.
table
,
9
,
1
);
int
cmode
=
get_vlc2
(
gb
,
ccitt_group3_2d_vlc
.
table
,
9
,
1
);
if
(
cmode
==
-
1
)
{
if
(
cmode
==
-
1
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Incorrect mode VLC
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Incorrect mode VLC
\n
"
);
return
-
1
;
return
-
1
;
}
}
if
(
!
cmode
){
//pass mode
if
(
!
cmode
)
{
//pass mode
run_off
+=
*
ref
++
;
run_off
+=
*
ref
++
;
run
=
run_off
-
offs
;
run
=
run_off
-
offs
;
offs
=
run_off
;
offs
=
run_off
;
run_off
+=
*
ref
++
;
run_off
+=
*
ref
++
;
if
(
offs
>
width
)
{
if
(
offs
>
width
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
return
-
1
;
return
-
1
;
}
}
saved_run
+=
run
;
saved_run
+=
run
;
}
else
if
(
cmode
==
1
){
//horizontal mode
}
else
if
(
cmode
==
1
)
{
//horizontal mode
int
k
;
int
k
;
for
(
k
=
0
;
k
<
2
;
k
++
)
{
for
(
k
=
0
;
k
<
2
;
k
++
)
{
run
=
0
;
run
=
0
;
for
(;;)
{
for
(;;)
{
t
=
get_vlc2
(
gb
,
ccitt_vlc
[
mode
].
table
,
9
,
2
);
t
=
get_vlc2
(
gb
,
ccitt_vlc
[
mode
].
table
,
9
,
2
);
if
(
t
==
-
1
)
{
if
(
t
==
-
1
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Incorrect code
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Incorrect code
\n
"
);
return
-
1
;
return
-
1
;
}
}
run
+=
t
;
run
+=
t
;
if
(
t
<
64
)
if
(
t
<
64
)
break
;
break
;
}
}
*
runs
++
=
run
+
saved_run
;
*
runs
++
=
run
+
saved_run
;
if
(
runs
>=
runend
)
{
if
(
runs
>=
runend
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run overrun
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run overrun
\n
"
);
return
-
1
;
return
-
1
;
}
}
saved_run
=
0
;
saved_run
=
0
;
offs
+=
run
;
offs
+=
run
;
if
(
offs
>
width
||
run
>
width
)
{
if
(
offs
>
width
||
run
>
width
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
return
-
1
;
return
-
1
;
}
}
mode
=
!
mode
;
mode
=
!
mode
;
}
}
}
else
if
(
cmode
==
9
||
cmode
==
10
){
}
else
if
(
cmode
==
9
||
cmode
==
10
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Special modes are not supported (yet)
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Special modes are not supported (yet)
\n
"
);
return
-
1
;
return
-
1
;
}
else
{
//vertical mode
}
else
{
//vertical mode
run
=
run_off
-
offs
+
(
cmode
-
5
);
run
=
run_off
-
offs
+
(
cmode
-
5
);
run_off
-=
*--
ref
;
run_off
-=
*--
ref
;
offs
+=
run
;
offs
+=
run
;
if
(
offs
>
width
||
run
>
width
)
{
if
(
offs
>
width
||
run
>
width
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run went out of bounds
\n
"
);
return
-
1
;
return
-
1
;
}
}
*
runs
++
=
run
+
saved_run
;
*
runs
++
=
run
+
saved_run
;
if
(
runs
>=
runend
)
{
if
(
runs
>=
runend
)
{
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run overrun
\n
"
);
av_log
(
avctx
,
AV_LOG_ERROR
,
"Run overrun
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -228,7 +231,7 @@ static int decode_group3_2d_line(AVCodecContext *avctx, GetBitContext *gb,
...
@@ -228,7 +231,7 @@ static int decode_group3_2d_line(AVCodecContext *avctx, GetBitContext *gb,
mode
=
!
mode
;
mode
=
!
mode
;
}
}
//sync line pointers
//sync line pointers
while
(
run_off
<=
offs
)
{
while
(
run_off
<=
offs
)
{
run_off
+=
*
ref
++
;
run_off
+=
*
ref
++
;
run_off
+=
*
ref
++
;
run_off
+=
*
ref
++
;
}
}
...
@@ -243,14 +246,14 @@ static void put_line(uint8_t *dst, int size, int width, const int *runs)
...
@@ -243,14 +246,14 @@ static void put_line(uint8_t *dst, int size, int width, const int *runs)
PutBitContext
pb
;
PutBitContext
pb
;
int
run
,
mode
=
~
0
,
pix_left
=
width
,
run_idx
=
0
;
int
run
,
mode
=
~
0
,
pix_left
=
width
,
run_idx
=
0
;
init_put_bits
(
&
pb
,
dst
,
size
*
8
);
init_put_bits
(
&
pb
,
dst
,
size
*
8
);
while
(
pix_left
>
0
)
{
while
(
pix_left
>
0
)
{
run
=
runs
[
run_idx
++
];
run
=
runs
[
run_idx
++
];
mode
=
~
mode
;
mode
=
~
mode
;
pix_left
-=
run
;
pix_left
-=
run
;
for
(;
run
>
16
;
run
-=
16
)
for
(;
run
>
16
;
run
-=
16
)
put_sbits
(
&
pb
,
16
,
mode
);
put_sbits
(
&
pb
,
16
,
mode
);
if
(
run
)
if
(
run
)
put_sbits
(
&
pb
,
run
,
mode
);
put_sbits
(
&
pb
,
run
,
mode
);
}
}
flush_put_bits
(
&
pb
);
flush_put_bits
(
&
pb
);
...
@@ -260,16 +263,15 @@ static int find_group3_syncmarker(GetBitContext *gb, int srcsize)
...
@@ -260,16 +263,15 @@ static int find_group3_syncmarker(GetBitContext *gb, int srcsize)
{
{
unsigned
int
state
=
-
1
;
unsigned
int
state
=
-
1
;
srcsize
-=
get_bits_count
(
gb
);
srcsize
-=
get_bits_count
(
gb
);
while
(
srcsize
--
>
0
)
{
while
(
srcsize
--
>
0
)
{
state
+=
state
+
get_bits1
(
gb
);
state
+=
state
+
get_bits1
(
gb
);
if
((
state
&
0xFFF
)
==
1
)
if
((
state
&
0xFFF
)
==
1
)
return
0
;
return
0
;
}
}
return
-
1
;
return
-
1
;
}
}
int
ff_ccitt_unpack
(
AVCodecContext
*
avctx
,
int
ff_ccitt_unpack
(
AVCodecContext
*
avctx
,
const
uint8_t
*
src
,
int
srcsize
,
const
uint8_t
*
src
,
int
srcsize
,
uint8_t
*
dst
,
int
height
,
int
stride
,
uint8_t
*
dst
,
int
height
,
int
stride
,
enum
TiffCompr
compr
,
int
opts
)
enum
TiffCompr
compr
,
int
opts
)
{
{
...
@@ -277,43 +279,47 @@ int ff_ccitt_unpack(AVCodecContext *avctx,
...
@@ -277,43 +279,47 @@ int ff_ccitt_unpack(AVCodecContext *avctx,
GetBitContext
gb
;
GetBitContext
gb
;
int
*
runs
,
*
ref
=
NULL
,
*
runend
;
int
*
runs
,
*
ref
=
NULL
,
*
runend
;
int
ret
;
int
ret
;
int
runsize
=
avctx
->
width
+
2
;
int
runsize
=
avctx
->
width
+
2
;
int
err
=
0
;
int
err
=
0
;
runs
=
av_malloc
(
runsize
*
sizeof
(
runs
[
0
]));
runs
=
av_malloc
(
runsize
*
sizeof
(
runs
[
0
]));
ref
=
av_malloc
(
runsize
*
sizeof
(
ref
[
0
]));
ref
=
av_malloc
(
runsize
*
sizeof
(
ref
[
0
]));
if
(
!
runs
||
!
ref
)
{
if
(
!
runs
||
!
ref
)
{
err
=
AVERROR
(
ENOMEM
);
err
=
AVERROR
(
ENOMEM
);
goto
fail
;
goto
fail
;
}
}
ref
[
0
]
=
avctx
->
width
;
ref
[
0
]
=
avctx
->
width
;
ref
[
1
]
=
0
;
ref
[
1
]
=
0
;
ref
[
2
]
=
0
;
ref
[
2
]
=
0
;
init_get_bits
(
&
gb
,
src
,
srcsize
*
8
);
init_get_bits
(
&
gb
,
src
,
srcsize
*
8
);
for
(
j
=
0
;
j
<
height
;
j
++
)
{
for
(
j
=
0
;
j
<
height
;
j
++
)
{
runend
=
runs
+
runsize
;
runend
=
runs
+
runsize
;
if
(
compr
==
TIFF_G4
){
if
(
compr
==
TIFF_G4
)
{
ret
=
decode_group3_2d_line
(
avctx
,
&
gb
,
avctx
->
width
,
runs
,
runend
,
ref
);
ret
=
decode_group3_2d_line
(
avctx
,
&
gb
,
avctx
->
width
,
runs
,
runend
,
if
(
ret
<
0
){
ref
);
if
(
ret
<
0
)
{
err
=
-
1
;
err
=
-
1
;
goto
fail
;
goto
fail
;
}
}
}
else
{
}
else
{
int
g3d1
=
(
compr
==
TIFF_G3
)
&&
!
(
opts
&
1
);
int
g3d1
=
(
compr
==
TIFF_G3
)
&&
!
(
opts
&
1
);
if
(
compr
!=
TIFF_CCITT_RLE
&&
find_group3_syncmarker
(
&
gb
,
srcsize
*
8
)
<
0
)
if
(
compr
!=
TIFF_CCITT_RLE
&&
find_group3_syncmarker
(
&
gb
,
srcsize
*
8
)
<
0
)
break
;
break
;
if
(
compr
==
TIFF_CCITT_RLE
||
g3d1
||
get_bits1
(
&
gb
))
if
(
compr
==
TIFF_CCITT_RLE
||
g3d1
||
get_bits1
(
&
gb
))
ret
=
decode_group3_1d_line
(
avctx
,
&
gb
,
avctx
->
width
,
runs
,
runend
);
ret
=
decode_group3_1d_line
(
avctx
,
&
gb
,
avctx
->
width
,
runs
,
runend
);
else
else
ret
=
decode_group3_2d_line
(
avctx
,
&
gb
,
avctx
->
width
,
runs
,
runend
,
ref
);
ret
=
decode_group3_2d_line
(
avctx
,
&
gb
,
avctx
->
width
,
runs
,
if
(
compr
==
TIFF_CCITT_RLE
)
runend
,
ref
);
if
(
compr
==
TIFF_CCITT_RLE
)
align_get_bits
(
&
gb
);
align_get_bits
(
&
gb
);
}
}
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
put_line
(
dst
,
stride
,
avctx
->
width
,
ref
);
put_line
(
dst
,
stride
,
avctx
->
width
,
ref
);
}
else
{
}
else
{
put_line
(
dst
,
stride
,
avctx
->
width
,
runs
);
put_line
(
dst
,
stride
,
avctx
->
width
,
runs
);
FFSWAP
(
int
*
,
runs
,
ref
);
FFSWAP
(
int
*
,
runs
,
ref
);
}
}
dst
+=
stride
;
dst
+=
stride
;
}
}
...
...
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