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
b23cf13c
Commit
b23cf13c
authored
Mar 29, 2010
by
Loren Merritt
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
indent
Originally committed as revision 22716 to
svn://svn.ffmpeg.org/ffmpeg/trunk
parent
32240799
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
53 additions
and
53 deletions
+53
-53
bitstream.c
libavcodec/bitstream.c
+53
-53
No files found.
libavcodec/bitstream.c
View file @
b23cf13c
...
...
@@ -170,74 +170,74 @@ static int build_table(VLC *vlc, int table_nb_bits, int nb_codes,
return
-
1
;
table
=
&
vlc
->
table
[
table_index
];
for
(
i
=
0
;
i
<
table_size
;
i
++
)
{
for
(
i
=
0
;
i
<
table_size
;
i
++
)
{
table
[
i
][
1
]
=
0
;
//bits
table
[
i
][
0
]
=
-
1
;
//codes
}
/* first pass: map codes and compute auxillary table sizes */
for
(
i
=
0
;
i
<
nb_codes
;
i
++
)
{
for
(
i
=
0
;
i
<
nb_codes
;
i
++
)
{
n
=
codes
[
i
].
bits
;
code
=
codes
[
i
].
code
;
symbol
=
codes
[
i
].
symbol
;
#if defined(DEBUG_VLC) && 0
av_log
(
NULL
,
AV_LOG_DEBUG
,
"i=%d n=%d code=0x%x
\n
"
,
i
,
n
,
code
);
#endif
if
(
n
<=
table_nb_bits
)
{
/* no need to add another table */
j
=
code
>>
(
32
-
table_nb_bits
);
nb
=
1
<<
(
table_nb_bits
-
n
);
inc
=
1
;
if
(
flags
&
INIT_VLC_LE
)
{
j
=
bitswap_32
(
code
);
inc
=
1
<<
n
;
}
for
(
k
=
0
;
k
<
nb
;
k
++
)
{
if
(
n
<=
table_nb_bits
)
{
/* no need to add another table */
j
=
code
>>
(
32
-
table_nb_bits
);
nb
=
1
<<
(
table_nb_bits
-
n
);
inc
=
1
;
if
(
flags
&
INIT_VLC_LE
)
{
j
=
bitswap_32
(
code
);
inc
=
1
<<
n
;
}
for
(
k
=
0
;
k
<
nb
;
k
++
)
{
#ifdef DEBUG_VLC
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%4x: code=%d n=%d
\n
"
,
j
,
i
,
n
);
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%4x: code=%d n=%d
\n
"
,
j
,
i
,
n
);
#endif
if
(
table
[
j
][
1
]
/*bits*/
!=
0
)
{
av_log
(
NULL
,
AV_LOG_ERROR
,
"incorrect codes
\n
"
);
return
-
1
;
}
table
[
j
][
1
]
=
n
;
//bits
table
[
j
][
0
]
=
symbol
;
j
+=
inc
;
}
}
else
{
/* fill auxiliary table recursively */
n
-=
table_nb_bits
;
code_prefix
=
code
>>
(
32
-
table_nb_bits
);
subtable_bits
=
n
;
codes
[
i
].
bits
=
n
;
codes
[
i
].
code
=
code
<<
table_nb_bits
;
for
(
k
=
i
+
1
;
k
<
nb_codes
;
k
++
)
{
n
=
codes
[
k
].
bits
-
table_nb_bits
;
if
(
n
<=
0
)
break
;
code
=
codes
[
k
].
code
;
if
(
code
>>
(
32
-
table_nb_bits
)
!=
code_prefix
)
break
;
codes
[
k
].
bits
=
n
;
codes
[
k
].
code
=
code
<<
table_nb_bits
;
subtable_bits
=
FFMAX
(
subtable_bits
,
n
);
}
subtable_bits
=
FFMIN
(
subtable_bits
,
table_nb_bits
);
j
=
(
flags
&
INIT_VLC_LE
)
?
bitswap_32
(
code_prefix
)
>>
(
32
-
table_nb_bits
)
:
code_prefix
;
table
[
j
][
1
]
=
-
subtable_bits
;
if
(
table
[
j
][
1
]
/*bits*/
!=
0
)
{
av_log
(
NULL
,
AV_LOG_ERROR
,
"incorrect codes
\n
"
);
return
-
1
;
}
table
[
j
][
1
]
=
n
;
//bits
table
[
j
][
0
]
=
symbol
;
j
+=
inc
;
}
}
else
{
/* fill auxiliary table recursively */
n
-=
table_nb_bits
;
code_prefix
=
code
>>
(
32
-
table_nb_bits
);
subtable_bits
=
n
;
codes
[
i
].
bits
=
n
;
codes
[
i
].
code
=
code
<<
table_nb_bits
;
for
(
k
=
i
+
1
;
k
<
nb_codes
;
k
++
)
{
n
=
codes
[
k
].
bits
-
table_nb_bits
;
if
(
n
<=
0
)
break
;
code
=
codes
[
k
].
code
;
if
(
code
>>
(
32
-
table_nb_bits
)
!=
code_prefix
)
break
;
codes
[
k
].
bits
=
n
;
codes
[
k
].
code
=
code
<<
table_nb_bits
;
subtable_bits
=
FFMAX
(
subtable_bits
,
n
);
}
subtable_bits
=
FFMIN
(
subtable_bits
,
table_nb_bits
);
j
=
(
flags
&
INIT_VLC_LE
)
?
bitswap_32
(
code_prefix
)
>>
(
32
-
table_nb_bits
)
:
code_prefix
;
table
[
j
][
1
]
=
-
subtable_bits
;
#ifdef DEBUG_VLC
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%4x: n=%d (subtable)
\n
"
,
j
,
codes
[
i
].
bits
+
table_nb_bits
);
av_log
(
NULL
,
AV_LOG_DEBUG
,
"%4x: n=%d (subtable)
\n
"
,
j
,
codes
[
i
].
bits
+
table_nb_bits
);
#endif
index
=
build_table
(
vlc
,
subtable_bits
,
k
-
i
,
codes
+
i
,
flags
);
if
(
index
<
0
)
return
-
1
;
/* note: realloc has been done, so reload tables */
table
=
&
vlc
->
table
[
table_index
];
table
[
j
][
0
]
=
index
;
//code
i
=
k
-
1
;
}
index
=
build_table
(
vlc
,
subtable_bits
,
k
-
i
,
codes
+
i
,
flags
);
if
(
index
<
0
)
return
-
1
;
/* note: realloc has been done, so reload tables */
table
=
&
vlc
->
table
[
table_index
];
table
[
j
][
0
]
=
index
;
//code
i
=
k
-
1
;
}
}
return
table_index
;
}
...
...
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