[FFmpeg-cvslog] mpegaudiodec: init static tables in AVCodec.init_static_data()

Justin Ruggles git at videolan.org
Wed Nov 16 02:40:41 CET 2011


ffmpeg | branch: master | Justin Ruggles <justin.ruggles at gmail.com> | Thu Nov  3 14:59:37 2011 -0400| [1158745a2d12966c58e83b66243a42f20190812e] | committer: Justin Ruggles

mpegaudiodec: init static tables in AVCodec.init_static_data()

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=1158745a2d12966c58e83b66243a42f20190812e
---

 libavcodec/mpegaudiodec.c       |   35 +++++++++++++++++------------------
 libavcodec/mpegaudiodec_float.c |    5 +++++
 2 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
index d5af782..b9364b6 100644
--- a/libavcodec/mpegaudiodec.c
+++ b/libavcodec/mpegaudiodec.c
@@ -266,24 +266,9 @@ static inline int l3_unscale(int value, int exponent)
     return m;
 }
 
-static av_cold int decode_init(AVCodecContext * avctx)
+static void decode_init_static(AVCodec *codec)
 {
-    MPADecodeContext *s = avctx->priv_data;
-    static int init = 0;
     int i, j, k;
-
-    s->avctx = avctx;
-
-    ff_mpadsp_init(&s->mpadsp);
-
-    avctx->sample_fmt= OUT_FMT;
-    s->err_recognition = avctx->err_recognition;
-
-#if FF_API_PARSE_FRAME
-    if (!init && !avctx->parse_only) {
-#else
-    if (!init) {
-#endif
         int offset;
 
         /* scale factors table for layer 1/2 */
@@ -468,9 +453,18 @@ static av_cold int decode_init(AVCodecContext * avctx)
                 mdct_win[j + 4][i + 1] = -mdct_win[j][i + 1];
             }
         }
+}
 
-        init = 1;
-    }
+static av_cold int decode_init(AVCodecContext * avctx)
+{
+    MPADecodeContext *s = avctx->priv_data;
+
+    s->avctx = avctx;
+
+    ff_mpadsp_init(&s->mpadsp);
+
+    avctx->sample_fmt= OUT_FMT;
+    s->err_recognition = avctx->err_recognition;
 
     if (avctx->codec_id == CODEC_ID_MP3ADU)
         s->adu_mode = 1;
@@ -2116,6 +2110,7 @@ AVCodec ff_mp1_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP1,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame,
 #if FF_API_PARSE_FRAME
@@ -2131,6 +2126,7 @@ AVCodec ff_mp2_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP2,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame,
 #if FF_API_PARSE_FRAME
@@ -2146,6 +2142,7 @@ AVCodec ff_mp3_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP3,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame,
 #if FF_API_PARSE_FRAME
@@ -2161,6 +2158,7 @@ AVCodec ff_mp3adu_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP3ADU,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame_adu,
 #if FF_API_PARSE_FRAME
@@ -2176,6 +2174,7 @@ AVCodec ff_mp3on4_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP3ON4,
     .priv_data_size = sizeof(MP3On4DecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init_mp3on4,
     .close          = decode_close_mp3on4,
     .decode         = decode_frame_mp3on4,
diff --git a/libavcodec/mpegaudiodec_float.c b/libavcodec/mpegaudiodec_float.c
index 9300de2..4a18736 100644
--- a/libavcodec/mpegaudiodec_float.c
+++ b/libavcodec/mpegaudiodec_float.c
@@ -28,6 +28,7 @@ AVCodec ff_mp1float_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP1,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame,
 #if FF_API_PARSE_FRAME
@@ -43,6 +44,7 @@ AVCodec ff_mp2float_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP2,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame,
 #if FF_API_PARSE_FRAME
@@ -58,6 +60,7 @@ AVCodec ff_mp3float_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP3,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame,
 #if FF_API_PARSE_FRAME
@@ -73,6 +76,7 @@ AVCodec ff_mp3adufloat_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP3ADU,
     .priv_data_size = sizeof(MPADecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init,
     .decode         = decode_frame_adu,
 #if FF_API_PARSE_FRAME
@@ -88,6 +92,7 @@ AVCodec ff_mp3on4float_decoder = {
     .type           = AVMEDIA_TYPE_AUDIO,
     .id             = CODEC_ID_MP3ON4,
     .priv_data_size = sizeof(MP3On4DecodeContext),
+    .init_static_data = decode_init_static,
     .init           = decode_init_mp3on4,
     .close          = decode_close_mp3on4,
     .decode         = decode_frame_mp3on4,



More information about the ffmpeg-cvslog mailing list