Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in / Register
Toggle navigation
F
ffmpeg
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
Packages
Packages
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
submodule
ffmpeg
Commits
c0853697
Commit
c0853697
authored
Oct 18, 2012
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
avutil/lzo: K&R formatting cosmetics
parent
c9ef4321
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
58 additions
and
48 deletions
+58
-48
lzo.c
libavutil/lzo.c
+53
-43
lzo.h
libavutil/lzo.h
+5
-5
No files found.
libavutil/lzo.c
View file @
c0853697
...
@@ -29,6 +29,7 @@
...
@@ -29,6 +29,7 @@
#define OUTBUF_PADDED 1
#define OUTBUF_PADDED 1
/// Define if we may read up to 8 bytes beyond the input buffer.
/// Define if we may read up to 8 bytes beyond the input buffer.
#define INBUF_PADDED 1
#define INBUF_PADDED 1
typedef
struct
LZOContext
{
typedef
struct
LZOContext
{
const
uint8_t
*
in
,
*
in_end
;
const
uint8_t
*
in
,
*
in_end
;
uint8_t
*
out_start
,
*
out
,
*
out_end
;
uint8_t
*
out_start
,
*
out
,
*
out_end
;
...
@@ -39,7 +40,8 @@ typedef struct LZOContext {
...
@@ -39,7 +40,8 @@ typedef struct LZOContext {
* @brief Reads one byte from the input buffer, avoiding an overrun.
* @brief Reads one byte from the input buffer, avoiding an overrun.
* @return byte read
* @return byte read
*/
*/
static
inline
int
get_byte
(
LZOContext
*
c
)
{
static
inline
int
get_byte
(
LZOContext
*
c
)
{
if
(
c
->
in
<
c
->
in_end
)
if
(
c
->
in
<
c
->
in_end
)
return
*
c
->
in
++
;
return
*
c
->
in
++
;
c
->
error
|=
AV_LZO_INPUT_DEPLETED
;
c
->
error
|=
AV_LZO_INPUT_DEPLETED
;
...
@@ -58,10 +60,12 @@ static inline int get_byte(LZOContext *c) {
...
@@ -58,10 +60,12 @@ static inline int get_byte(LZOContext *c) {
* @param mask bits used from x
* @param mask bits used from x
* @return decoded length value
* @return decoded length value
*/
*/
static
inline
int
get_len
(
LZOContext
*
c
,
int
x
,
int
mask
)
{
static
inline
int
get_len
(
LZOContext
*
c
,
int
x
,
int
mask
)
{
int
cnt
=
x
&
mask
;
int
cnt
=
x
&
mask
;
if
(
!
cnt
)
{
if
(
!
cnt
)
{
while
(
!
(
x
=
get_byte
(
c
)))
cnt
+=
255
;
while
(
!
(
x
=
get_byte
(
c
)))
cnt
+=
255
;
cnt
+=
mask
+
x
;
cnt
+=
mask
+
x
;
}
}
return
cnt
;
return
cnt
;
...
@@ -84,15 +88,16 @@ static inline int get_len(LZOContext *c, int x, int mask) {
...
@@ -84,15 +88,16 @@ static inline int get_len(LZOContext *c, int x, int mask) {
* @brief Copies bytes from input to output buffer with checking.
* @brief Copies bytes from input to output buffer with checking.
* @param cnt number of bytes to copy, must be >= 0
* @param cnt number of bytes to copy, must be >= 0
*/
*/
static
inline
void
copy
(
LZOContext
*
c
,
int
cnt
)
{
static
inline
void
copy
(
LZOContext
*
c
,
int
cnt
)
{
register
const
uint8_t
*
src
=
c
->
in
;
register
const
uint8_t
*
src
=
c
->
in
;
register
uint8_t
*
dst
=
c
->
out
;
register
uint8_t
*
dst
=
c
->
out
;
if
(
cnt
>
c
->
in_end
-
src
)
{
if
(
cnt
>
c
->
in_end
-
src
)
{
cnt
=
FFMAX
(
c
->
in_end
-
src
,
0
);
cnt
=
FFMAX
(
c
->
in_end
-
src
,
0
);
c
->
error
|=
AV_LZO_INPUT_DEPLETED
;
c
->
error
|=
AV_LZO_INPUT_DEPLETED
;
}
}
if
(
cnt
>
c
->
out_end
-
dst
)
{
if
(
cnt
>
c
->
out_end
-
dst
)
{
cnt
=
FFMAX
(
c
->
out_end
-
dst
,
0
);
cnt
=
FFMAX
(
c
->
out_end
-
dst
,
0
);
c
->
error
|=
AV_LZO_OUTPUT_FULL
;
c
->
error
|=
AV_LZO_OUTPUT_FULL
;
}
}
#if defined(INBUF_PADDED) && defined(OUTBUF_PADDED)
#if defined(INBUF_PADDED) && defined(OUTBUF_PADDED)
...
@@ -102,8 +107,8 @@ static inline void copy(LZOContext *c, int cnt) {
...
@@ -102,8 +107,8 @@ static inline void copy(LZOContext *c, int cnt) {
cnt
-=
4
;
cnt
-=
4
;
if
(
cnt
>
0
)
if
(
cnt
>
0
)
#endif
#endif
memcpy
(
dst
,
src
,
cnt
);
memcpy
(
dst
,
src
,
cnt
);
c
->
in
=
src
+
cnt
;
c
->
in
=
src
+
cnt
;
c
->
out
=
dst
+
cnt
;
c
->
out
=
dst
+
cnt
;
}
}
...
@@ -117,22 +122,24 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt);
...
@@ -117,22 +122,24 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt);
* cnt > back is valid, this will copy the bytes we just copied,
* cnt > back is valid, this will copy the bytes we just copied,
* thus creating a repeating pattern with a period length of back.
* thus creating a repeating pattern with a period length of back.
*/
*/
static
inline
void
copy_backptr
(
LZOContext
*
c
,
int
back
,
int
cnt
)
{
static
inline
void
copy_backptr
(
LZOContext
*
c
,
int
back
,
int
cnt
)
{
register
const
uint8_t
*
src
=
&
c
->
out
[
-
back
];
register
const
uint8_t
*
src
=
&
c
->
out
[
-
back
];
register
uint8_t
*
dst
=
c
->
out
;
register
uint8_t
*
dst
=
c
->
out
;
if
(
src
<
c
->
out_start
||
src
>
dst
)
{
if
(
src
<
c
->
out_start
||
src
>
dst
)
{
c
->
error
|=
AV_LZO_INVALID_BACKPTR
;
c
->
error
|=
AV_LZO_INVALID_BACKPTR
;
return
;
return
;
}
}
if
(
cnt
>
c
->
out_end
-
dst
)
{
if
(
cnt
>
c
->
out_end
-
dst
)
{
cnt
=
FFMAX
(
c
->
out_end
-
dst
,
0
);
cnt
=
FFMAX
(
c
->
out_end
-
dst
,
0
);
c
->
error
|=
AV_LZO_OUTPUT_FULL
;
c
->
error
|=
AV_LZO_OUTPUT_FULL
;
}
}
memcpy_backptr
(
dst
,
back
,
cnt
);
memcpy_backptr
(
dst
,
back
,
cnt
);
c
->
out
=
dst
+
cnt
;
c
->
out
=
dst
+
cnt
;
}
}
static
inline
void
memcpy_backptr
(
uint8_t
*
dst
,
int
back
,
int
cnt
)
{
static
inline
void
memcpy_backptr
(
uint8_t
*
dst
,
int
back
,
int
cnt
)
{
const
uint8_t
*
src
=
&
dst
[
-
back
];
const
uint8_t
*
src
=
&
dst
[
-
back
];
if
(
back
==
1
)
{
if
(
back
==
1
)
{
memset
(
dst
,
*
src
,
cnt
);
memset
(
dst
,
*
src
,
cnt
);
...
@@ -157,8 +164,8 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt) {
...
@@ -157,8 +164,8 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt) {
int
blocklen
=
back
;
int
blocklen
=
back
;
while
(
cnt
>
blocklen
)
{
while
(
cnt
>
blocklen
)
{
memcpy
(
dst
,
src
,
blocklen
);
memcpy
(
dst
,
src
,
blocklen
);
dst
+=
blocklen
;
dst
+=
blocklen
;
cnt
-=
blocklen
;
cnt
-=
blocklen
;
blocklen
<<=
1
;
blocklen
<<=
1
;
}
}
memcpy
(
dst
,
src
,
cnt
);
memcpy
(
dst
,
src
,
cnt
);
...
@@ -166,12 +173,14 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt) {
...
@@ -166,12 +173,14 @@ static inline void memcpy_backptr(uint8_t *dst, int back, int cnt) {
}
}
}
}
void
av_memcpy_backptr
(
uint8_t
*
dst
,
int
back
,
int
cnt
)
{
void
av_memcpy_backptr
(
uint8_t
*
dst
,
int
back
,
int
cnt
)
{
memcpy_backptr
(
dst
,
back
,
cnt
);
memcpy_backptr
(
dst
,
back
,
cnt
);
}
}
int
av_lzo1x_decode
(
void
*
out
,
int
*
outlen
,
const
void
*
in
,
int
*
inlen
)
{
int
av_lzo1x_decode
(
void
*
out
,
int
*
outlen
,
const
void
*
in
,
int
*
inlen
)
int
state
=
0
;
{
int
state
=
0
;
int
x
;
int
x
;
LZOContext
c
;
LZOContext
c
;
if
(
!*
outlen
||
!*
inlen
)
{
if
(
!*
outlen
||
!*
inlen
)
{
...
@@ -182,16 +191,17 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen) {
...
@@ -182,16 +191,17 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen) {
res
|=
AV_LZO_INPUT_DEPLETED
;
res
|=
AV_LZO_INPUT_DEPLETED
;
return
res
;
return
res
;
}
}
c
.
in
=
in
;
c
.
in
=
in
;
c
.
in_end
=
(
const
uint8_t
*
)
in
+
*
inlen
;
c
.
in_end
=
(
const
uint8_t
*
)
in
+
*
inlen
;
c
.
out
=
c
.
out_start
=
out
;
c
.
out
=
c
.
out_start
=
out
;
c
.
out_end
=
(
uint8_t
*
)
out
+
*
outlen
;
c
.
out_end
=
(
uint8_t
*
)
out
+
*
outlen
;
c
.
error
=
0
;
c
.
error
=
0
;
x
=
GETB
(
c
);
x
=
GETB
(
c
);
if
(
x
>
17
)
{
if
(
x
>
17
)
{
copy
(
&
c
,
x
-
17
);
copy
(
&
c
,
x
-
17
);
x
=
GETB
(
c
);
x
=
GETB
(
c
);
if
(
x
<
16
)
c
.
error
|=
AV_LZO_ERROR
;
if
(
x
<
16
)
c
.
error
|=
AV_LZO_ERROR
;
}
}
if
(
c
.
in
>
c
.
in_end
)
if
(
c
.
in
>
c
.
in_end
)
c
.
error
|=
AV_LZO_INPUT_DEPLETED
;
c
.
error
|=
AV_LZO_INPUT_DEPLETED
;
...
@@ -199,16 +209,16 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen) {
...
@@ -199,16 +209,16 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen) {
int
cnt
,
back
;
int
cnt
,
back
;
if
(
x
>
15
)
{
if
(
x
>
15
)
{
if
(
x
>
63
)
{
if
(
x
>
63
)
{
cnt
=
(
x
>>
5
)
-
1
;
cnt
=
(
x
>>
5
)
-
1
;
back
=
(
GETB
(
c
)
<<
3
)
+
((
x
>>
2
)
&
7
)
+
1
;
back
=
(
GETB
(
c
)
<<
3
)
+
((
x
>>
2
)
&
7
)
+
1
;
}
else
if
(
x
>
31
)
{
}
else
if
(
x
>
31
)
{
cnt
=
get_len
(
&
c
,
x
,
31
);
cnt
=
get_len
(
&
c
,
x
,
31
);
x
=
GETB
(
c
);
x
=
GETB
(
c
);
back
=
(
GETB
(
c
)
<<
6
)
+
(
x
>>
2
)
+
1
;
back
=
(
GETB
(
c
)
<<
6
)
+
(
x
>>
2
)
+
1
;
}
else
{
}
else
{
cnt
=
get_len
(
&
c
,
x
,
7
);
cnt
=
get_len
(
&
c
,
x
,
7
);
back
=
(
1
<<
14
)
+
((
x
&
8
)
<<
11
);
back
=
(
1
<<
14
)
+
((
x
&
8
)
<<
11
);
x
=
GETB
(
c
);
x
=
GETB
(
c
);
back
+=
(
GETB
(
c
)
<<
6
)
+
(
x
>>
2
);
back
+=
(
GETB
(
c
)
<<
6
)
+
(
x
>>
2
);
if
(
back
==
(
1
<<
14
))
{
if
(
back
==
(
1
<<
14
))
{
if
(
cnt
!=
1
)
if
(
cnt
!=
1
)
...
@@ -216,21 +226,21 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen) {
...
@@ -216,21 +226,21 @@ int av_lzo1x_decode(void *out, int *outlen, const void *in, int *inlen) {
break
;
break
;
}
}
}
}
}
else
if
(
!
state
)
{
}
else
if
(
!
state
)
{
cnt
=
get_len
(
&
c
,
x
,
15
);
cnt
=
get_len
(
&
c
,
x
,
15
);
copy
(
&
c
,
cnt
+
3
);
copy
(
&
c
,
cnt
+
3
);
x
=
GETB
(
c
);
x
=
GETB
(
c
);
if
(
x
>
15
)
if
(
x
>
15
)
continue
;
continue
;
cnt
=
1
;
cnt
=
1
;
back
=
(
1
<<
11
)
+
(
GETB
(
c
)
<<
2
)
+
(
x
>>
2
)
+
1
;
back
=
(
1
<<
11
)
+
(
GETB
(
c
)
<<
2
)
+
(
x
>>
2
)
+
1
;
}
else
{
}
else
{
cnt
=
0
;
cnt
=
0
;
back
=
(
GETB
(
c
)
<<
2
)
+
(
x
>>
2
)
+
1
;
back
=
(
GETB
(
c
)
<<
2
)
+
(
x
>>
2
)
+
1
;
}
}
copy_backptr
(
&
c
,
back
,
cnt
+
2
);
copy_backptr
(
&
c
,
back
,
cnt
+
2
);
state
=
state
=
cnt
=
x
&
3
;
cnt
=
x
&
3
;
copy
(
&
c
,
cnt
);
copy
(
&
c
,
cnt
);
x
=
GETB
(
c
);
x
=
GETB
(
c
);
}
}
...
...
libavutil/lzo.h
View file @
c0853697
...
@@ -32,18 +32,18 @@
...
@@ -32,18 +32,18 @@
#include <stdint.h>
#include <stdint.h>
/** @name Error flags returned by av_lzo1x_decode
/** @name Error flags returned by av_lzo1x_decode
* @{ */
* @{ */
/// end of the input buffer reached before decoding finished
/// end of the input buffer reached before decoding finished
#define AV_LZO_INPUT_DEPLETED 1
#define AV_LZO_INPUT_DEPLETED
1
/// decoded data did not fit into output buffer
/// decoded data did not fit into output buffer
#define AV_LZO_OUTPUT_FULL 2
#define AV_LZO_OUTPUT_FULL
2
/// a reference to previously decoded data was wrong
/// a reference to previously decoded data was wrong
#define AV_LZO_INVALID_BACKPTR 4
#define AV_LZO_INVALID_BACKPTR 4
/// a non-specific error in the compressed bitstream
/// a non-specific error in the compressed bitstream
#define AV_LZO_ERROR 8
#define AV_LZO_ERROR
8
/** @} */
/** @} */
#define AV_LZO_INPUT_PADDING 8
#define AV_LZO_INPUT_PADDING
8
#define AV_LZO_OUTPUT_PADDING 12
#define AV_LZO_OUTPUT_PADDING 12
/**
/**
...
...
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