mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-02-07 23:32:33 +00:00
mpegaudio: do not use init_static_data() for initializing tables.
It is called once for each mpegaudio codec that is registered, which adds significant overhead.
This commit is contained in:
parent
d9ba767d61
commit
0df5e869cb
@ -266,7 +266,7 @@ static inline int l3_unscale(int value, int exponent)
|
|||||||
return m;
|
return m;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void decode_init_static(AVCodec *codec)
|
static av_cold void decode_init_static(void)
|
||||||
{
|
{
|
||||||
int i, j, k;
|
int i, j, k;
|
||||||
int offset;
|
int offset;
|
||||||
@ -457,8 +457,14 @@ static void decode_init_static(AVCodec *codec)
|
|||||||
|
|
||||||
static av_cold int decode_init(AVCodecContext * avctx)
|
static av_cold int decode_init(AVCodecContext * avctx)
|
||||||
{
|
{
|
||||||
|
static int initialized_tables = 0;
|
||||||
MPADecodeContext *s = avctx->priv_data;
|
MPADecodeContext *s = avctx->priv_data;
|
||||||
|
|
||||||
|
if (!initialized_tables) {
|
||||||
|
decode_init_static();
|
||||||
|
initialized_tables = 1;
|
||||||
|
}
|
||||||
|
|
||||||
s->avctx = avctx;
|
s->avctx = avctx;
|
||||||
|
|
||||||
ff_mpadsp_init(&s->mpadsp);
|
ff_mpadsp_init(&s->mpadsp);
|
||||||
@ -2110,7 +2116,6 @@ AVCodec ff_mp1_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP1,
|
.id = CODEC_ID_MP1,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame,
|
.decode = decode_frame,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -2126,7 +2131,6 @@ AVCodec ff_mp2_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP2,
|
.id = CODEC_ID_MP2,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame,
|
.decode = decode_frame,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -2142,7 +2146,6 @@ AVCodec ff_mp3_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP3,
|
.id = CODEC_ID_MP3,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame,
|
.decode = decode_frame,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -2158,7 +2161,6 @@ AVCodec ff_mp3adu_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP3ADU,
|
.id = CODEC_ID_MP3ADU,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame_adu,
|
.decode = decode_frame_adu,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -2174,7 +2176,6 @@ AVCodec ff_mp3on4_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP3ON4,
|
.id = CODEC_ID_MP3ON4,
|
||||||
.priv_data_size = sizeof(MP3On4DecodeContext),
|
.priv_data_size = sizeof(MP3On4DecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init_mp3on4,
|
.init = decode_init_mp3on4,
|
||||||
.close = decode_close_mp3on4,
|
.close = decode_close_mp3on4,
|
||||||
.decode = decode_frame_mp3on4,
|
.decode = decode_frame_mp3on4,
|
||||||
|
@ -28,7 +28,6 @@ AVCodec ff_mp1float_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP1,
|
.id = CODEC_ID_MP1,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame,
|
.decode = decode_frame,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -44,7 +43,6 @@ AVCodec ff_mp2float_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP2,
|
.id = CODEC_ID_MP2,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame,
|
.decode = decode_frame,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -60,7 +58,6 @@ AVCodec ff_mp3float_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP3,
|
.id = CODEC_ID_MP3,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame,
|
.decode = decode_frame,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -76,7 +73,6 @@ AVCodec ff_mp3adufloat_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP3ADU,
|
.id = CODEC_ID_MP3ADU,
|
||||||
.priv_data_size = sizeof(MPADecodeContext),
|
.priv_data_size = sizeof(MPADecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init,
|
.init = decode_init,
|
||||||
.decode = decode_frame_adu,
|
.decode = decode_frame_adu,
|
||||||
#if FF_API_PARSE_FRAME
|
#if FF_API_PARSE_FRAME
|
||||||
@ -92,7 +88,6 @@ AVCodec ff_mp3on4float_decoder = {
|
|||||||
.type = AVMEDIA_TYPE_AUDIO,
|
.type = AVMEDIA_TYPE_AUDIO,
|
||||||
.id = CODEC_ID_MP3ON4,
|
.id = CODEC_ID_MP3ON4,
|
||||||
.priv_data_size = sizeof(MP3On4DecodeContext),
|
.priv_data_size = sizeof(MP3On4DecodeContext),
|
||||||
.init_static_data = decode_init_static,
|
|
||||||
.init = decode_init_mp3on4,
|
.init = decode_init_mp3on4,
|
||||||
.close = decode_close_mp3on4,
|
.close = decode_close_mp3on4,
|
||||||
.decode = decode_frame_mp3on4,
|
.decode = decode_frame_mp3on4,
|
||||||
|
Loading…
Reference in New Issue
Block a user