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
f054e309
Commit
f054e309
authored
Jun 27, 2013
by
Luca Barbato
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
qdm2: use init_static_data
parent
76f5dfbf
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
148 additions
and
128 deletions
+148
-128
qdm2.c
libavcodec/qdm2.c
+148
-128
No files found.
libavcodec/qdm2.c
View file @
f054e309
...
...
@@ -218,116 +218,145 @@ static const uint16_t qdm2_vlc_offs[] = {
static
av_cold
void
qdm2_init_vlc
(
void
)
{
static
int
vlcs_initialized
=
0
;
static
VLC_TYPE
qdm2_table
[
3838
][
2
];
if
(
!
vlcs_initialized
)
{
vlc_tab_level
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
0
]];
vlc_tab_level
.
table_allocated
=
qdm2_vlc_offs
[
1
]
-
qdm2_vlc_offs
[
0
];
init_vlc
(
&
vlc_tab_level
,
8
,
24
,
init_vlc
(
&
vlc_tab_level
,
8
,
24
,
vlc_tab_level_huffbits
,
1
,
1
,
vlc_tab_level_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_level_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_diff
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
1
]];
vlc_tab_diff
.
table_allocated
=
qdm2_vlc_offs
[
2
]
-
qdm2_vlc_offs
[
1
];
init_vlc
(
&
vlc_tab_diff
,
8
,
37
,
init_vlc
(
&
vlc_tab_diff
,
8
,
37
,
vlc_tab_diff_huffbits
,
1
,
1
,
vlc_tab_diff_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_diff_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_run
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
2
]];
vlc_tab_run
.
table_allocated
=
qdm2_vlc_offs
[
3
]
-
qdm2_vlc_offs
[
2
];
init_vlc
(
&
vlc_tab_run
,
5
,
6
,
init_vlc
(
&
vlc_tab_run
,
5
,
6
,
vlc_tab_run_huffbits
,
1
,
1
,
vlc_tab_run_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_run_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
fft_level_exp_alt_vlc
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
3
]];
fft_level_exp_alt_vlc
.
table_allocated
=
qdm2_vlc_offs
[
4
]
-
qdm2_vlc_offs
[
3
];
init_vlc
(
&
fft_level_exp_alt_vlc
,
8
,
28
,
fft_level_exp_alt_vlc
.
table_allocated
=
qdm2_vlc_offs
[
4
]
-
qdm2_vlc_offs
[
3
];
init_vlc
(
&
fft_level_exp_alt_vlc
,
8
,
28
,
fft_level_exp_alt_huffbits
,
1
,
1
,
fft_level_exp_alt_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
fft_level_exp_alt_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
fft_level_exp_vlc
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
4
]];
fft_level_exp_vlc
.
table_allocated
=
qdm2_vlc_offs
[
5
]
-
qdm2_vlc_offs
[
4
];
init_vlc
(
&
fft_level_exp_vlc
,
8
,
20
,
init_vlc
(
&
fft_level_exp_vlc
,
8
,
20
,
fft_level_exp_huffbits
,
1
,
1
,
fft_level_exp_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
fft_level_exp_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
fft_stereo_exp_vlc
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
5
]];
fft_stereo_exp_vlc
.
table_allocated
=
qdm2_vlc_offs
[
6
]
-
qdm2_vlc_offs
[
5
];
init_vlc
(
&
fft_stereo_exp_vlc
,
6
,
7
,
fft_stereo_exp_vlc
.
table_allocated
=
qdm2_vlc_offs
[
6
]
-
qdm2_vlc_offs
[
5
];
init_vlc
(
&
fft_stereo_exp_vlc
,
6
,
7
,
fft_stereo_exp_huffbits
,
1
,
1
,
fft_stereo_exp_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
fft_stereo_exp_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
fft_stereo_phase_vlc
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
6
]];
fft_stereo_phase_vlc
.
table_allocated
=
qdm2_vlc_offs
[
7
]
-
qdm2_vlc_offs
[
6
];
init_vlc
(
&
fft_stereo_phase_vlc
,
6
,
9
,
fft_stereo_phase_vlc
.
table_allocated
=
qdm2_vlc_offs
[
7
]
-
qdm2_vlc_offs
[
6
];
init_vlc
(
&
fft_stereo_phase_vlc
,
6
,
9
,
fft_stereo_phase_huffbits
,
1
,
1
,
fft_stereo_phase_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_tone_level_idx_hi1
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
7
]];
vlc_tab_tone_level_idx_hi1
.
table_allocated
=
qdm2_vlc_offs
[
8
]
-
qdm2_vlc_offs
[
7
];
init_vlc
(
&
vlc_tab_tone_level_idx_hi1
,
8
,
20
,
fft_stereo_phase_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_tone_level_idx_hi1
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
7
]];
vlc_tab_tone_level_idx_hi1
.
table_allocated
=
qdm2_vlc_offs
[
8
]
-
qdm2_vlc_offs
[
7
];
init_vlc
(
&
vlc_tab_tone_level_idx_hi1
,
8
,
20
,
vlc_tab_tone_level_idx_hi1_huffbits
,
1
,
1
,
vlc_tab_tone_level_idx_hi1_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_tone_level_idx_mid
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
8
]];
vlc_tab_tone_level_idx_mid
.
table_allocated
=
qdm2_vlc_offs
[
9
]
-
qdm2_vlc_offs
[
8
];
init_vlc
(
&
vlc_tab_tone_level_idx_mid
,
8
,
24
,
vlc_tab_tone_level_idx_hi1_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_tone_level_idx_mid
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
8
]];
vlc_tab_tone_level_idx_mid
.
table_allocated
=
qdm2_vlc_offs
[
9
]
-
qdm2_vlc_offs
[
8
];
init_vlc
(
&
vlc_tab_tone_level_idx_mid
,
8
,
24
,
vlc_tab_tone_level_idx_mid_huffbits
,
1
,
1
,
vlc_tab_tone_level_idx_mid_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_tone_level_idx_hi2
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
9
]];
vlc_tab_tone_level_idx_hi2
.
table_allocated
=
qdm2_vlc_offs
[
10
]
-
qdm2_vlc_offs
[
9
];
init_vlc
(
&
vlc_tab_tone_level_idx_hi2
,
8
,
24
,
vlc_tab_tone_level_idx_mid_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_tone_level_idx_hi2
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
9
]];
vlc_tab_tone_level_idx_hi2
.
table_allocated
=
qdm2_vlc_offs
[
10
]
-
qdm2_vlc_offs
[
9
];
init_vlc
(
&
vlc_tab_tone_level_idx_hi2
,
8
,
24
,
vlc_tab_tone_level_idx_hi2_huffbits
,
1
,
1
,
vlc_tab_tone_level_idx_hi2_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_tone_level_idx_hi2_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_type30
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
10
]];
vlc_tab_type30
.
table_allocated
=
qdm2_vlc_offs
[
11
]
-
qdm2_vlc_offs
[
10
];
init_vlc
(
&
vlc_tab_type30
,
6
,
9
,
init_vlc
(
&
vlc_tab_type30
,
6
,
9
,
vlc_tab_type30_huffbits
,
1
,
1
,
vlc_tab_type30_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_type30_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_type34
.
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
11
]];
vlc_tab_type34
.
table_allocated
=
qdm2_vlc_offs
[
12
]
-
qdm2_vlc_offs
[
11
];
init_vlc
(
&
vlc_tab_type34
,
5
,
10
,
init_vlc
(
&
vlc_tab_type34
,
5
,
10
,
vlc_tab_type34_huffbits
,
1
,
1
,
vlc_tab_type34_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
0
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
12
]];
vlc_tab_fft_tone_offset
[
0
].
table_allocated
=
qdm2_vlc_offs
[
13
]
-
qdm2_vlc_offs
[
12
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
0
],
8
,
23
,
vlc_tab_type34_huffcodes
,
1
,
1
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
0
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
12
]];
vlc_tab_fft_tone_offset
[
0
].
table_allocated
=
qdm2_vlc_offs
[
13
]
-
qdm2_vlc_offs
[
12
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
0
],
8
,
23
,
vlc_tab_fft_tone_offset_0_huffbits
,
1
,
1
,
vlc_tab_fft_tone_offset_0_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
1
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
13
]];
vlc_tab_fft_tone_offset
[
1
].
table_allocated
=
qdm2_vlc_offs
[
14
]
-
qdm2_vlc_offs
[
13
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
1
],
8
,
28
,
vlc_tab_fft_tone_offset_0_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
1
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
13
]];
vlc_tab_fft_tone_offset
[
1
].
table_allocated
=
qdm2_vlc_offs
[
14
]
-
qdm2_vlc_offs
[
13
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
1
],
8
,
28
,
vlc_tab_fft_tone_offset_1_huffbits
,
1
,
1
,
vlc_tab_fft_tone_offset_1_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
2
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
14
]];
vlc_tab_fft_tone_offset
[
2
].
table_allocated
=
qdm2_vlc_offs
[
15
]
-
qdm2_vlc_offs
[
14
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
2
],
8
,
32
,
vlc_tab_fft_tone_offset_1_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
2
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
14
]];
vlc_tab_fft_tone_offset
[
2
].
table_allocated
=
qdm2_vlc_offs
[
15
]
-
qdm2_vlc_offs
[
14
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
2
],
8
,
32
,
vlc_tab_fft_tone_offset_2_huffbits
,
1
,
1
,
vlc_tab_fft_tone_offset_2_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
3
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
15
]];
vlc_tab_fft_tone_offset
[
3
].
table_allocated
=
qdm2_vlc_offs
[
16
]
-
qdm2_vlc_offs
[
15
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
3
],
8
,
35
,
vlc_tab_fft_tone_offset_2_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
3
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
15
]];
vlc_tab_fft_tone_offset
[
3
].
table_allocated
=
qdm2_vlc_offs
[
16
]
-
qdm2_vlc_offs
[
15
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
3
],
8
,
35
,
vlc_tab_fft_tone_offset_3_huffbits
,
1
,
1
,
vlc_tab_fft_tone_offset_3_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
4
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
16
]];
vlc_tab_fft_tone_offset
[
4
].
table_allocated
=
qdm2_vlc_offs
[
17
]
-
qdm2_vlc_offs
[
16
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
4
],
8
,
38
,
vlc_tab_fft_tone_offset_3_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlc_tab_fft_tone_offset
[
4
].
table
=
&
qdm2_table
[
qdm2_vlc_offs
[
16
]];
vlc_tab_fft_tone_offset
[
4
].
table_allocated
=
qdm2_vlc_offs
[
17
]
-
qdm2_vlc_offs
[
16
];
init_vlc
(
&
vlc_tab_fft_tone_offset
[
4
],
8
,
38
,
vlc_tab_fft_tone_offset_4_huffbits
,
1
,
1
,
vlc_tab_fft_tone_offset_4_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
vlcs_initialized
=
1
;
}
vlc_tab_fft_tone_offset_4_huffcodes
,
2
,
2
,
INIT_VLC_USE_NEW_STATIC
|
INIT_VLC_LE
);
}
static
int
qdm2_get_vlc
(
GetBitContext
*
gb
,
VLC
*
vlc
,
int
flag
,
int
depth
)
...
...
@@ -1649,20 +1678,12 @@ static void qdm2_synthesis_filter (QDM2Context *q, int index)
*
* @param q context
*/
static
av_cold
void
qdm2_init
(
QDM2Context
*
q
)
{
static
int
initialized
=
0
;
if
(
initialized
!=
0
)
return
;
initialized
=
1
;
static
av_cold
void
qdm2_init_static_data
(
AVCodec
*
codec
)
{
qdm2_init_vlc
();
ff_mpa_synth_init_float
(
ff_mpa_synth_window_float
);
softclip_table_init
();
rnd_table_init
();
init_noise_samples
();
av_log
(
NULL
,
AV_LOG_DEBUG
,
"init done
\n
"
);
}
...
...
@@ -1843,8 +1864,6 @@ static av_cold int qdm2_decode_init(AVCodecContext *avctx)
ff_rdft_init
(
&
s
->
rdft_ctx
,
s
->
fft_order
,
IDFT_C2R
);
ff_mpadsp_init
(
&
s
->
mpadsp
);
qdm2_init
(
s
);
avctx
->
sample_fmt
=
AV_SAMPLE_FMT_S16
;
return
0
;
...
...
@@ -1962,6 +1981,7 @@ AVCodec ff_qdm2_decoder =
.
id
=
AV_CODEC_ID_QDM2
,
.
priv_data_size
=
sizeof
(
QDM2Context
),
.
init
=
qdm2_decode_init
,
.
init_static_data
=
qdm2_init_static_data
,
.
close
=
qdm2_decode_close
,
.
decode
=
qdm2_decode_frame
,
.
capabilities
=
CODEC_CAP_DR1
,
...
...
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