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
4af5310d
Commit
4af5310d
authored
Jan 20, 2013
by
Diego Biurrun
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
get_bits/put_bits: K&R formatting cosmetics
Signed-off-by:
Diego Biurrun
<
diego@biurrun.de
>
parent
570a4a01
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
192 additions
and
177 deletions
+192
-177
get_bits.h
libavcodec/get_bits.h
+150
-138
put_bits.h
libavcodec/put_bits.h
+42
-39
No files found.
libavcodec/get_bits.h
View file @
4af5310d
...
...
@@ -27,6 +27,7 @@
#define AVCODEC_GET_BITS_H
#include <stdint.h>
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/log.h"
...
...
@@ -73,46 +74,48 @@ typedef struct RL_VLC_ELEM {
}
RL_VLC_ELEM
;
/* Bitstream reader API docs:
name
arbitrary name which is used as prefix for the internal variables
gb
getbitcontext
OPEN_READER(name, gb)
load gb into local variables
CLOSE_READER(name, gb)
store local vars in gb
UPDATE_CACHE(name, gb)
refill the internal cache from the bitstream
after this call at least MIN_CACHE_BITS will be available,
GET_CACHE(name, gb)
will output the contents of the internal cache, next bit is MSB of 32 or 64 bit (FIXME 64bit)
SHOW_UBITS(name, gb, num)
will return the next num bits
SHOW_SBITS(name, gb, num)
will return the next num bits and do sign extension
SKIP_BITS(name, gb, num)
will skip over the next num bits
note, this is equivalent to SKIP_CACHE; SKIP_COUNTER
SKIP_CACHE(name, gb, num)
will remove the next num bits from the cache (note SKIP_COUNTER MUST be called before UPDATE_CACHE / CLOSE_READER)
SKIP_COUNTER(name, gb, num)
will increment the internal bit counter (see SKIP_CACHE & SKIP_BITS)
LAST_SKIP_BITS(name, gb, num)
like SKIP_BITS, to be used if next call is UPDATE_CACHE or CLOSE_READER
for examples see get_bits, show_bits, skip_bits, get_vlc
*/
* name
* arbitrary name which is used as prefix for the internal variables
*
* gb
* getbitcontext
*
* OPEN_READER(name, gb)
* load gb into local variables
*
* CLOSE_READER(name, gb)
* store local vars in gb
*
* UPDATE_CACHE(name, gb)
* Refill the internal cache from the bitstream.
* After this call at least MIN_CACHE_BITS will be available.
*
* GET_CACHE(name, gb)
* Will output the contents of the internal cache,
* next bit is MSB of 32 or 64 bit (FIXME 64bit).
*
* SHOW_UBITS(name, gb, num)
* Will return the next num bits.
*
* SHOW_SBITS(name, gb, num)
* Will return the next num bits and do sign extension.
*
* SKIP_BITS(name, gb, num)
* Will skip over the next num bits.
* Note, this is equivalent to SKIP_CACHE; SKIP_COUNTER.
*
* SKIP_CACHE(name, gb, num)
* Will remove the next num bits from the cache (note SKIP_COUNTER
* MUST be called before UPDATE_CACHE / CLOSE_READER).
*
* SKIP_COUNTER(name, gb, num)
* Will increment the internal bit counter (see SKIP_CACHE & SKIP_BITS).
*
* LAST_SKIP_BITS(name, gb, num)
* Like SKIP_BITS, to be used if next call is UPDATE_CACHE or CLOSE_READER.
*
* For examples see get_bits, show_bits, skip_bits, get_vlc.
*/
#ifdef LONG_BITSTREAM_READER
# define MIN_CACHE_BITS 32
...
...
@@ -122,57 +125,56 @@ for examples see get_bits, show_bits, skip_bits, get_vlc
#if UNCHECKED_BITSTREAM_READER
#define OPEN_READER(name, gb) \
unsigned int name
##_index = (gb)->index;
\
unsigned int av_unused name
##
_cache = 0
unsigned int name
## _index = (gb)->index;
\
unsigned int av_unused name
##
_cache = 0
#define HAVE_BITS_REMAINING(name, gb) 1
#else
#define OPEN_READER(name, gb) \
unsigned int name##_index = (gb)->index; \
unsigned int av_unused name##_cache = 0; \
unsigned int av_unused name##_size_plus8 = \
(gb)->size_in_bits_plus8
unsigned int name ## _index = (gb)->index; \
unsigned int av_unused name ## _cache = 0; \
unsigned int av_unused name ## _size_plus8 = (gb)->size_in_bits_plus8
#define HAVE_BITS_REMAINING(name, gb) \
name##_index < name##_size_plus8
#define HAVE_BITS_REMAINING(name, gb) name ## _index < name ## _size_plus8
#endif
#define CLOSE_READER(name, gb) (gb)->index = name
##
_index
#define CLOSE_READER(name, gb) (gb)->index = name
##
_index
#ifdef BITSTREAM_READER_LE
# ifdef LONG_BITSTREAM_READER
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RL64((gb)->buffer + (name
##_index >> 3)) >> (name##
_index & 7)
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RL64((gb)->buffer + (name
## _index >> 3)) >> (name ##
_index & 7)
# else
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RL32((gb)->buffer + (name
##_index >> 3)) >> (name##
_index & 7)
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RL32((gb)->buffer + (name
## _index >> 3)) >> (name ##
_index & 7)
# endif
# define SKIP_CACHE(name, gb, num) name
##
_cache >>= (num)
# define SKIP_CACHE(name, gb, num) name
##
_cache >>= (num)
#else
# ifdef LONG_BITSTREAM_READER
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RB64((gb)->buffer + (name
##_index >> 3)) >> (32 - (name##
_index & 7))
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RB64((gb)->buffer + (name
## _index >> 3)) >> (32 - (name ##
_index & 7))
# else
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RB32((gb)->buffer + (name
##_index >> 3)) << (name##
_index & 7)
# define UPDATE_CACHE(name, gb) name
##
_cache = \
AV_RB32((gb)->buffer + (name
## _index >> 3)) << (name ##
_index & 7)
# endif
# define SKIP_CACHE(name, gb, num) name
##
_cache <<= (num)
# define SKIP_CACHE(name, gb, num) name
##
_cache <<= (num)
#endif
#if UNCHECKED_BITSTREAM_READER
# define SKIP_COUNTER(name, gb, num) name
##
_index += (num)
# define SKIP_COUNTER(name, gb, num) name
##
_index += (num)
#else
# define SKIP_COUNTER(name, gb, num) \
name
##_index = FFMIN(name##_size_plus8, name##
_index + (num))
name
## _index = FFMIN(name ## _size_plus8, name ##
_index + (num))
#endif
#define SKIP_BITS(name, gb, num) do { \
#define SKIP_BITS(name, gb, num) \
do { \
SKIP_CACHE(name, gb, num); \
SKIP_COUNTER(name, gb, num); \
} while (0)
...
...
@@ -180,21 +182,22 @@ for examples see get_bits, show_bits, skip_bits, get_vlc
#define LAST_SKIP_BITS(name, gb, num) SKIP_COUNTER(name, gb, num)
#ifdef BITSTREAM_READER_LE
# define SHOW_UBITS(name, gb, num) zero_extend(name
##
_cache, num)
# define SHOW_SBITS(name, gb, num) sign_extend(name
##
_cache, num)
# define SHOW_UBITS(name, gb, num) zero_extend(name
##
_cache, num)
# define SHOW_SBITS(name, gb, num) sign_extend(name
##
_cache, num)
#else
# define SHOW_UBITS(name, gb, num) NEG_USR32(name
##
_cache, num)
# define SHOW_SBITS(name, gb, num) NEG_SSR32(name
##
_cache, num)
# define SHOW_UBITS(name, gb, num) NEG_USR32(name
##
_cache, num)
# define SHOW_SBITS(name, gb, num) NEG_SSR32(name
##
_cache, num)
#endif
#define GET_CACHE(name, gb) ((uint32_t)
name##
_cache)
#define GET_CACHE(name, gb) ((uint32_t)
name ##
_cache)
static
inline
int
get_bits_count
(
const
GetBitContext
*
s
)
{
return
s
->
index
;
}
static
inline
void
skip_bits_long
(
GetBitContext
*
s
,
int
n
){
static
inline
void
skip_bits_long
(
GetBitContext
*
s
,
int
n
)
{
#if UNCHECKED_BITSTREAM_READER
s
->
index
+=
n
;
#else
...
...
@@ -268,7 +271,7 @@ static inline void skip_bits(GetBitContext *s, int n)
static
inline
unsigned
int
get_bits1
(
GetBitContext
*
s
)
{
unsigned
int
index
=
s
->
index
;
uint8_t
result
=
s
->
buffer
[
index
>>
3
];
uint8_t
result
=
s
->
buffer
[
index
>>
3
];
#ifdef BITSTREAM_READER_LE
result
>>=
index
&
7
;
result
&=
1
;
...
...
@@ -300,15 +303,15 @@ static inline void skip_bits1(GetBitContext *s)
*/
static
inline
unsigned
int
get_bits_long
(
GetBitContext
*
s
,
int
n
)
{
if
(
n
<=
MIN_CACHE_BITS
)
if
(
n
<=
MIN_CACHE_BITS
)
{
return
get_bits
(
s
,
n
);
else
{
}
else
{
#ifdef BITSTREAM_READER_LE
int
ret
=
get_bits
(
s
,
16
);
return
ret
|
(
get_bits
(
s
,
n
-
16
)
<<
16
);
return
ret
|
(
get_bits
(
s
,
n
-
16
)
<<
16
);
#else
int
ret
=
get_bits
(
s
,
16
)
<<
(
n
-
16
);
return
ret
|
get_bits
(
s
,
n
-
16
);
int
ret
=
get_bits
(
s
,
16
)
<<
(
n
-
16
);
return
ret
|
get_bits
(
s
,
n
-
16
);
#endif
}
}
...
...
@@ -323,9 +326,9 @@ static inline uint64_t get_bits64(GetBitContext *s, int n)
}
else
{
#ifdef BITSTREAM_READER_LE
uint64_t
ret
=
get_bits_long
(
s
,
32
);
return
ret
|
(
uint64_t
)
get_bits_long
(
s
,
n
-
32
)
<<
32
;
return
ret
|
(
uint64_t
)
get_bits_long
(
s
,
n
-
32
)
<<
32
;
#else
uint64_t
ret
=
(
uint64_t
)
get_bits_long
(
s
,
n
-
32
)
<<
32
;
uint64_t
ret
=
(
uint64_t
)
get_bits_long
(
s
,
n
-
32
)
<<
32
;
return
ret
|
get_bits_long
(
s
,
32
);
#endif
}
...
...
@@ -344,9 +347,9 @@ static inline int get_sbits_long(GetBitContext *s, int n)
*/
static
inline
unsigned
int
show_bits_long
(
GetBitContext
*
s
,
int
n
)
{
if
(
n
<=
MIN_CACHE_BITS
)
if
(
n
<=
MIN_CACHE_BITS
)
{
return
show_bits
(
s
,
n
);
else
{
}
else
{
GetBitContext
gb
=
*
s
;
return
get_bits_long
(
&
gb
,
n
);
}
...
...
@@ -390,6 +393,7 @@ static inline int init_get_bits(GetBitContext *s, const uint8_t *buffer,
#endif
s
->
buffer_end
=
buffer
+
buffer_size
;
s
->
index
=
0
;
return
ret
;
}
...
...
@@ -412,7 +416,8 @@ static inline int init_get_bits8(GetBitContext *s, const uint8_t *buffer,
static
inline
void
align_get_bits
(
GetBitContext
*
s
)
{
int
n
=
-
get_bits_count
(
s
)
&
7
;
if
(
n
)
skip_bits
(
s
,
n
);
if
(
n
)
skip_bits
(
s
,
n
);
}
#define init_vlc(vlc, nb_bits, nb_codes, \
...
...
@@ -429,18 +434,19 @@ int ff_init_vlc_sparse(VLC *vlc, int nb_bits, int nb_codes,
const
void
*
codes
,
int
codes_wrap
,
int
codes_size
,
const
void
*
symbols
,
int
symbols_wrap
,
int
symbols_size
,
int
flags
);
void
ff_free_vlc
(
VLC
*
vlc
);
#define INIT_VLC_LE 2
#define INIT_VLC_USE_NEW_STATIC 4
void
ff_free_vlc
(
VLC
*
vlc
);
#define INIT_VLC_STATIC(vlc, bits, a,b,c,d,e,f,g, static_size) do { \
#define INIT_VLC_STATIC(vlc, bits, a, b, c, d, e, f, g, static_size) \
do { \
static VLC_TYPE table[static_size][2]; \
(vlc)->table = table; \
(vlc)->table_allocated = static_size; \
init_vlc(vlc, bits, a,
b,c,d,e,f,g, INIT_VLC_USE_NEW_STATIC);
\
init_vlc(vlc, bits, a,
b, c, d, e, f, g, INIT_VLC_USE_NEW_STATIC);
\
} while (0)
/**
* If the vlc code is invalid and max_depth=1, then no bits will be removed.
* If the vlc code is invalid and max_depth>1, then the number of bits removed
...
...
@@ -478,7 +484,8 @@ void ff_free_vlc(VLC *vlc);
SKIP_BITS(name, gb, n); \
} while (0)
#define GET_RL_VLC(level, run, name, gb, table, bits, max_depth, need_update) \
#define GET_RL_VLC(level, run, name, gb, table, bits, \
max_depth, need_update) \
do { \
int n, nb_bits; \
unsigned int index; \
...
...
@@ -503,7 +510,6 @@ void ff_free_vlc(VLC *vlc);
SKIP_BITS(name, gb, n); \
} while (0)
/**
* Parse a vlc code.
* @param bits is the number of bits which will be read at once, must be
...
...
@@ -523,6 +529,7 @@ static av_always_inline int get_vlc2(GetBitContext *s, VLC_TYPE (*table)[2],
GET_VLC
(
code
,
re
,
s
,
table
,
bits
,
max_depth
);
CLOSE_READER
(
re
,
s
);
return
code
;
}
...
...
@@ -556,9 +563,8 @@ static inline void print_bin(int bits, int n)
{
int
i
;
for
(
i
=
n
-
1
;
i
>=
0
;
i
--
)
{
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%d"
,
(
bits
>>
i
)
&
1
);
}
for
(
i
=
n
-
1
;
i
>=
0
;
i
--
)
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%d"
,
(
bits
>>
i
)
&
1
);
for
(
i
=
n
;
i
<
24
;
i
++
)
av_log
(
NULL
,
AV_LOG_DEBUG
,
" "
);
}
...
...
@@ -570,9 +576,11 @@ static inline int get_bits_trace(GetBitContext *s, int n, const char *file,
print_bin
(
r
,
n
);
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%5d %2d %3d bit @%5d in %s %s:%d
\n
"
,
r
,
n
,
r
,
get_bits_count
(
s
)
-
n
,
file
,
func
,
line
);
r
,
n
,
r
,
get_bits_count
(
s
)
-
n
,
file
,
func
,
line
);
return
r
;
}
static
inline
int
get_vlc_trace
(
GetBitContext
*
s
,
VLC_TYPE
(
*
table
)[
2
],
int
bits
,
int
max_depth
,
const
char
*
file
,
const
char
*
func
,
int
line
)
...
...
@@ -581,14 +589,16 @@ static inline int get_vlc_trace(GetBitContext *s, VLC_TYPE (*table)[2],
int
pos
=
get_bits_count
(
s
);
int
r
=
get_vlc2
(
s
,
table
,
bits
,
max_depth
);
int
len
=
get_bits_count
(
s
)
-
pos
;
int
bits2
=
show
>>
(
24
-
len
);
int
bits2
=
show
>>
(
24
-
len
);
print_bin
(
bits2
,
len
);
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%5d %2d %3d vlc @%5d in %s %s:%d
\n
"
,
bits2
,
len
,
r
,
pos
,
file
,
func
,
line
);
return
r
;
}
static
inline
int
get_xbits_trace
(
GetBitContext
*
s
,
int
n
,
const
char
*
file
,
const
char
*
func
,
int
line
)
{
...
...
@@ -597,20 +607,22 @@ static inline int get_xbits_trace(GetBitContext *s, int n, const char *file,
print_bin
(
show
,
n
);
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%5d %2d %3d xbt @%5d in %s %s:%d
\n
"
,
show
,
n
,
r
,
get_bits_count
(
s
)
-
n
,
file
,
func
,
line
);
show
,
n
,
r
,
get_bits_count
(
s
)
-
n
,
file
,
func
,
line
);
return
r
;
}
#define get_bits(s, n) get_bits_trace(s, n, __FILE__, __PRETTY_FUNCTION__, __LINE__)
#define get_bits(s, n) get_bits_trace(s
, n, __FILE__, __PRETTY_FUNCTION__, __LINE__)
#define get_bits1(s) get_bits_trace(s, 1, __FILE__, __PRETTY_FUNCTION__, __LINE__)
#define get_xbits(s, n) get_xbits_trace(s, n, __FILE__, __PRETTY_FUNCTION__, __LINE__)
#define get_vlc(s, vlc) get_vlc_trace(s, (vlc)->table, (vlc)->bits, 3, __FILE__, __PRETTY_FUNCTION__, __LINE__)
#define get_vlc2(s, tab, bits, max) get_vlc_trace(s, tab, bits, max, __FILE__, __PRETTY_FUNCTION__, __LINE__)
#define tprintf(p, ...) av_log(p, AV_LOG_DEBUG, __VA_ARGS__)
#else //TRACE
#define tprintf(p, ...) {}
#define tprintf(p, ...) {
}
#endif
#endif
/* AVCODEC_GET_BITS_H */
libavcodec/put_bits.h
View file @
4af5310d
...
...
@@ -29,6 +29,7 @@
#include <stdint.h>
#include <stdlib.h>
#include <assert.h>
#include "libavutil/bswap.h"
#include "libavutil/common.h"
#include "libavutil/intreadwrite.h"
...
...
@@ -49,19 +50,20 @@ typedef struct PutBitContext {
* @param buffer the buffer where to put bits
* @param buffer_size the size in bytes of buffer
*/
static
inline
void
init_put_bits
(
PutBitContext
*
s
,
uint8_t
*
buffer
,
int
buffer_size
)
static
inline
void
init_put_bits
(
PutBitContext
*
s
,
uint8_t
*
buffer
,
int
buffer_size
)
{
if
(
buffer_size
<
0
)
{
if
(
buffer_size
<
0
)
{
buffer_size
=
0
;
buffer
=
NULL
;
}
s
->
size_in_bits
=
8
*
buffer_size
;
s
->
size_in_bits
=
8
*
buffer_size
;
s
->
buf
=
buffer
;
s
->
buf_end
=
s
->
buf
+
buffer_size
;
s
->
buf_ptr
=
s
->
buf
;
s
->
bit_left
=
32
;
s
->
bit_buf
=
0
;
s
->
bit_left
=
32
;
s
->
bit_buf
=
0
;
}
/**
...
...
@@ -79,21 +81,21 @@ static inline void flush_put_bits(PutBitContext *s)
{
#ifndef BITSTREAM_WRITER_LE
if
(
s
->
bit_left
<
32
)
s
->
bit_buf
<<=
s
->
bit_left
;
s
->
bit_buf
<<=
s
->
bit_left
;
#endif
while
(
s
->
bit_left
<
32
)
{
/* XXX: should test end of buffer */
#ifdef BITSTREAM_WRITER_LE
*
s
->
buf_ptr
++
=
s
->
bit_buf
;
s
->
bit_buf
>>=
8
;
*
s
->
buf_ptr
++
=
s
->
bit_buf
;
s
->
bit_buf
>>=
8
;
#else
*
s
->
buf_ptr
++
=
s
->
bit_buf
>>
24
;
s
->
bit_buf
<<=
8
;
*
s
->
buf_ptr
++
=
s
->
bit_buf
>>
24
;
s
->
bit_buf
<<=
8
;
#endif
s
->
bit_left
+=
8
;
s
->
bit_left
+=
8
;
}
s
->
bit_left
=
32
;
s
->
bit_buf
=
0
;
s
->
bit_left
=
32
;
s
->
bit_buf
=
0
;
}
#ifdef BITSTREAM_WRITER_LE
...
...
@@ -111,7 +113,8 @@ void avpriv_align_put_bits(PutBitContext *s);
*
* @param terminate_string 0-terminates the written string if value is 1
*/
void
avpriv_put_string
(
PutBitContext
*
pb
,
const
char
*
string
,
int
terminate_string
);
void
avpriv_put_string
(
PutBitContext
*
pb
,
const
char
*
string
,
int
terminate_string
);
/**
* Copy the content of src to the bitstream.
...
...
@@ -140,21 +143,21 @@ static inline void put_bits(PutBitContext *s, int n, unsigned int value)
bit_buf
|=
value
<<
(
32
-
bit_left
);
if
(
n
>=
bit_left
)
{
AV_WL32
(
s
->
buf_ptr
,
bit_buf
);
s
->
buf_ptr
+=
4
;
bit_buf
=
(
bit_left
==
32
)
?
0
:
value
>>
bit_left
;
bit_left
+=
32
;
s
->
buf_ptr
+=
4
;
bit_buf
=
(
bit_left
==
32
)
?
0
:
value
>>
bit_left
;
bit_left
+=
32
;
}
bit_left
-=
n
;
bit_left
-=
n
;
#else
if
(
n
<
bit_left
)
{
bit_buf
=
(
bit_buf
<<
n
)
|
value
;
bit_left
-=
n
;
bit_buf
=
(
bit_buf
<<
n
)
|
value
;
bit_left
-=
n
;
}
else
{
bit_buf
<<=
bit_left
;
bit_buf
<<=
bit_left
;
bit_buf
|=
value
>>
(
n
-
bit_left
);
AV_WB32
(
s
->
buf_ptr
,
bit_buf
);
s
->
buf_ptr
+=
4
;
bit_left
+=
32
-
n
;
s
->
buf_ptr
+=
4
;
bit_left
+=
32
-
n
;
bit_buf
=
value
;
}
#endif
...
...
@@ -167,7 +170,7 @@ static inline void put_sbits(PutBitContext *pb, int n, int32_t value)
{
assert
(
n
>=
0
&&
n
<=
31
);
put_bits
(
pb
,
n
,
value
&
((
1
<<
n
)
-
1
));
put_bits
(
pb
,
n
,
value
&
((
1
<<
n
)
-
1
));
}
/**
...
...
@@ -190,7 +193,7 @@ static void av_unused put_bits32(PutBitContext *s, uint32_t value)
* Return the pointer to the byte where the bitstream writer will put
* the next bit.
*/
static
inline
uint8_t
*
put_bits_ptr
(
PutBitContext
*
s
)
static
inline
uint8_t
*
put_bits_ptr
(
PutBitContext
*
s
)
{
return
s
->
buf_ptr
;
}
...
...
@@ -201,8 +204,8 @@ static inline uint8_t* put_bits_ptr(PutBitContext *s)
*/
static
inline
void
skip_put_bytes
(
PutBitContext
*
s
,
int
n
)
{
assert
((
put_bits_count
(
s
)
&
7
)
==
0
);
assert
(
s
->
bit_left
==
32
);
assert
((
put_bits_count
(
s
)
&
7
)
==
0
);
assert
(
s
->
bit_left
==
32
);
s
->
buf_ptr
+=
n
;
}
...
...
@@ -214,7 +217,7 @@ static inline void skip_put_bytes(PutBitContext *s, int n)
static
inline
void
skip_put_bits
(
PutBitContext
*
s
,
int
n
)
{
s
->
bit_left
-=
n
;
s
->
buf_ptr
-=
4
*
(
s
->
bit_left
>>
5
);
s
->
buf_ptr
-=
4
*
(
s
->
bit_left
>>
5
);
s
->
bit_left
&=
31
;
}
...
...
@@ -225,7 +228,7 @@ static inline void skip_put_bits(PutBitContext *s, int n)
*/
static
inline
void
set_put_bits_buffer_size
(
PutBitContext
*
s
,
int
size
)
{
s
->
buf_end
=
s
->
buf
+
size
;
s
->
buf_end
=
s
->
buf
+
size
;
}
#endif
/* AVCODEC_PUT_BITS_H */
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