[FFmpeg-cvslog] avcodec: Add av_cold attributes to init functions missing them

Diego Biurrun git at videolan.org
Sun May 5 11:39:16 CEST 2013


ffmpeg | branch: master | Diego Biurrun <diego at biurrun.de> | Fri Feb  1 10:31:59 2013 +0100| [6fee1b90ce3bf4fbdfde7016e0890057c9000487] | committer: Diego Biurrun

avcodec: Add av_cold attributes to init functions missing them

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

 libavcodec/aacpsy.c                |    4 +++-
 libavcodec/ac3enc.c                |    3 ++-
 libavcodec/atrac3.c                |    3 ++-
 libavcodec/audio_frame_queue.c     |    3 ++-
 libavcodec/avfft.c                 |    1 +
 libavcodec/bgmc.c                  |    8 +++++---
 libavcodec/bink.c                  |    5 +++--
 libavcodec/binkdsp.c               |    3 ++-
 libavcodec/dcadsp.c                |    3 ++-
 libavcodec/dnxhdenc.c              |    9 +++++----
 libavcodec/dsputil.c               |    9 ++++++---
 libavcodec/dvdsubdec.c             |    3 ++-
 libavcodec/eac3enc.c               |    4 +++-
 libavcodec/ffv1.c                  |    3 ++-
 libavcodec/ffv1enc.c               |    3 ++-
 libavcodec/flac_parser.c           |    3 ++-
 libavcodec/h261enc.c               |    3 ++-
 libavcodec/h264_parser.c           |    3 ++-
 libavcodec/h264chroma.c            |    3 ++-
 libavcodec/h264dsp.c               |    5 ++++-
 libavcodec/h264pred.c              |    6 ++++--
 libavcodec/h264qpel.c              |    3 ++-
 libavcodec/iirfilter.c             |   16 +++++++++-------
 libavcodec/ituh263dec.c            |    3 ++-
 libavcodec/ituh263enc.c            |    9 ++++++---
 libavcodec/ivi_common.c            |    2 +-
 libavcodec/libschroedinger.c       |    5 +++--
 libavcodec/libschroedingerenc.c    |    3 ++-
 libavcodec/libxvid_rc.c            |    4 +++-
 libavcodec/mlpdsp.c                |    3 ++-
 libavcodec/mpc.c                   |    3 ++-
 libavcodec/mpeg12.c                |    5 +++--
 libavcodec/mpeg12enc.c             |    6 ++++--
 libavcodec/mpeg4videoenc.c         |    7 +++++--
 libavcodec/mpegaudiodec.c          |    3 ++-
 libavcodec/mpegaudiodsp.c          |    3 ++-
 libavcodec/mpegaudiodsp_template.c |    3 ++-
 libavcodec/mpegvideo.c             |    7 ++++---
 libavcodec/msmpeg4enc.c            |    3 ++-
 libavcodec/pngdsp.c                |    3 ++-
 libavcodec/proresdsp.c             |    5 +++--
 libavcodec/ralf.c                  |    3 ++-
 libavcodec/rangecoder.c            |    6 ++++--
 libavcodec/ratecontrol.c           |    5 +++--
 libavcodec/roqvideoenc.c           |    3 ++-
 libavcodec/sipr16k.c               |    3 ++-
 libavcodec/utils.c                 |    5 +++--
 libavcodec/vc1.c                   |    3 ++-
 libavcodec/vc1_parser.c            |    3 ++-
 libavcodec/videodsp.c              |    3 ++-
 libavcodec/vorbisdsp.c             |    3 ++-
 libavcodec/vp56dsp.c               |    4 +++-
 libavcodec/wma.c                   |    9 +++++----
 libavcodec/wmadec.c                |    5 +++--
 libavcodec/wmaenc.c                |    4 +++-
 libavcodec/x86/h264chroma_init.c   |    3 ++-
 libavcodec/x86/proresdsp_init.c    |    3 ++-
 57 files changed, 161 insertions(+), 87 deletions(-)

diff --git a/libavcodec/aacpsy.c b/libavcodec/aacpsy.c
index ec889d7..6f1ac05 100644
--- a/libavcodec/aacpsy.c
+++ b/libavcodec/aacpsy.c
@@ -24,6 +24,7 @@
  * AAC encoder psychoacoustic model
  */
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "aactab.h"
 #include "psymodel.h"
@@ -248,7 +249,8 @@ static float lame_calc_attack_threshold(int bitrate)
 /**
  * LAME psy model specific initialization
  */
-static void lame_window_init(AacPsyContext *ctx, AVCodecContext *avctx) {
+static av_cold void lame_window_init(AacPsyContext *ctx, AVCodecContext *avctx)
+{
     int i, j;
 
     for (i = 0; i < avctx->channels; i++) {
diff --git a/libavcodec/ac3enc.c b/libavcodec/ac3enc.c
index df86f0b..d372028 100644
--- a/libavcodec/ac3enc.c
+++ b/libavcodec/ac3enc.c
@@ -30,6 +30,7 @@
 
 #include <stdint.h>
 
+#include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
@@ -754,7 +755,7 @@ static void count_frame_bits_fixed(AC3EncodeContext *s)
  * Initialize bit allocation.
  * Set default parameter codes and calculate parameter values.
  */
-static void bit_alloc_init(AC3EncodeContext *s)
+static av_cold void bit_alloc_init(AC3EncodeContext *s)
 {
     int ch;
 
diff --git a/libavcodec/atrac3.c b/libavcodec/atrac3.c
index a52c5c6..bfc26fc 100644
--- a/libavcodec/atrac3.c
+++ b/libavcodec/atrac3.c
@@ -36,6 +36,7 @@
 #include <stddef.h>
 #include <stdio.h>
 
+#include "libavutil/attributes.h"
 #include "libavutil/float_dsp.h"
 #include "avcodec.h"
 #include "bytestream.h"
@@ -839,7 +840,7 @@ static int atrac3_decode_frame(AVCodecContext *avctx, void *data,
     return avctx->block_align;
 }
 
-static void atrac3_init_static_data(AVCodec *codec)
+static av_cold void atrac3_init_static_data(AVCodec *codec)
 {
     int i;
 
diff --git a/libavcodec/audio_frame_queue.c b/libavcodec/audio_frame_queue.c
index 80f3100..0a8b25c 100644
--- a/libavcodec/audio_frame_queue.c
+++ b/libavcodec/audio_frame_queue.c
@@ -19,12 +19,13 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "libavutil/mathematics.h"
 #include "internal.h"
 #include "audio_frame_queue.h"
 
-void ff_af_queue_init(AVCodecContext *avctx, AudioFrameQueue *afq)
+av_cold void ff_af_queue_init(AVCodecContext *avctx, AudioFrameQueue *afq)
 {
     afq->avctx             = avctx;
     afq->next_pts          = AV_NOPTS_VALUE;
diff --git a/libavcodec/avfft.c b/libavcodec/avfft.c
index 9ed06fb..8ef5797 100644
--- a/libavcodec/avfft.c
+++ b/libavcodec/avfft.c
@@ -16,6 +16,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/mem.h"
 #include "avfft.h"
 #include "fft.h"
diff --git a/libavcodec/bgmc.c b/libavcodec/bgmc.c
index ec8cf9b..b8f4bee 100644
--- a/libavcodec/bgmc.c
+++ b/libavcodec/bgmc.c
@@ -25,6 +25,7 @@
  * @author Thilo Borgmann <thilo.borgmann _at_ googlemail.com>
  */
 
+#include "libavutil/attributes.h"
 #include "bgmc.h"
 
 #define FREQ_BITS  14                      // bits used by frequency counters
@@ -456,7 +457,8 @@ static uint8_t *bgmc_lut_getp(uint8_t *lut, int *lut_status, int delta)
 
 
 /** Initialize the lookup table arrays */
-int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, int **cf_lut_status)
+av_cold int ff_bgmc_init(AVCodecContext *avctx,
+                         uint8_t **cf_lut, int **cf_lut_status)
 {
     *cf_lut        = av_malloc(sizeof(*cf_lut)        * LUT_BUFF * 16 * LUT_SIZE);
     *cf_lut_status = av_malloc(sizeof(*cf_lut_status) * LUT_BUFF);
@@ -483,8 +485,8 @@ void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status)
 
 
 /** Initialize decoding and reads the first value */
-void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h, unsigned int *l,
-                         unsigned int *v)
+av_cold void ff_bgmc_decode_init(GetBitContext *gb, unsigned int *h,
+                                 unsigned int *l, unsigned int *v)
 {
     *h = TOP_VALUE;
     *l = 0;
diff --git a/libavcodec/bink.c b/libavcodec/bink.c
index 33feb42..7ec0cab 100644
--- a/libavcodec/bink.c
+++ b/libavcodec/bink.c
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/internal.h"
 #include "avcodec.h"
@@ -524,14 +525,14 @@ static inline int get_value(BinkContext *c, int bundle)
     return ret;
 }
 
-static void binkb_init_bundle(BinkContext *c, int bundle_num)
+static av_cold void binkb_init_bundle(BinkContext *c, int bundle_num)
 {
     c->bundle[bundle_num].cur_dec =
     c->bundle[bundle_num].cur_ptr = c->bundle[bundle_num].data;
     c->bundle[bundle_num].len = 13;
 }
 
-static void binkb_init_bundles(BinkContext *c)
+static av_cold void binkb_init_bundles(BinkContext *c)
 {
     int i;
     for (i = 0; i < BINKB_NB_SRC; i++)
diff --git a/libavcodec/binkdsp.c b/libavcodec/binkdsp.c
index 1f7855b..a73c148 100644
--- a/libavcodec/binkdsp.c
+++ b/libavcodec/binkdsp.c
@@ -24,6 +24,7 @@
  * Bink DSP routines
  */
 
+#include "libavutil/attributes.h"
 #include "dsputil.h"
 #include "binkdsp.h"
 
@@ -128,7 +129,7 @@ static void scale_block_c(const uint8_t src[64]/*align 8*/, uint8_t *dst/*align
     }
 }
 
-void ff_binkdsp_init(BinkDSPContext *c)
+av_cold void ff_binkdsp_init(BinkDSPContext *c)
 {
     c->idct_add    = bink_idct_add_c;
     c->idct_put    = bink_idct_put_c;
diff --git a/libavcodec/dcadsp.c b/libavcodec/dcadsp.c
index 14932e6..8b2dd42 100644
--- a/libavcodec/dcadsp.c
+++ b/libavcodec/dcadsp.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "libavutil/attributes.h"
 #include "dcadsp.h"
 
 static void dca_lfe_fir_c(float *out, const float *in, const float *coefs,
@@ -44,7 +45,7 @@ static void dca_lfe_fir_c(float *out, const float *in, const float *coefs,
     }
 }
 
-void ff_dcadsp_init(DCADSPContext *s)
+av_cold void ff_dcadsp_init(DCADSPContext *s)
 {
     s->lfe_fir = dca_lfe_fir_c;
     if (ARCH_ARM) ff_dcadsp_init_arm(s);
diff --git a/libavcodec/dnxhdenc.c b/libavcodec/dnxhdenc.c
index 4ea3709..5b59e64 100644
--- a/libavcodec/dnxhdenc.c
+++ b/libavcodec/dnxhdenc.c
@@ -26,6 +26,7 @@
 //#define DEBUG
 #define RC_VARIANCE 1 // use variance or ssd for fast rc
 
+#include "libavutil/attributes.h"
 #include "libavutil/internal.h"
 #include "libavutil/opt.h"
 #include "avcodec.h"
@@ -100,7 +101,7 @@ static int dnxhd_10bit_dct_quantize(MpegEncContext *ctx, int16_t *block,
     return last_non_zero;
 }
 
-static int dnxhd_init_vlc(DNXHDEncContext *ctx)
+static av_cold int dnxhd_init_vlc(DNXHDEncContext *ctx)
 {
     int i, j, level, run;
     int max_level = 1<<(ctx->cid_table->bit_depth+2);
@@ -155,7 +156,7 @@ static int dnxhd_init_vlc(DNXHDEncContext *ctx)
     return -1;
 }
 
-static int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias)
+static av_cold int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias)
 {
     // init first elem to 1 to avoid div by 0 in convert_matrix
     uint16_t weight_matrix[64] = {1,}; // convert_matrix needs uint16_t*
@@ -214,7 +215,7 @@ static int dnxhd_init_qmat(DNXHDEncContext *ctx, int lbias, int cbias)
     return -1;
 }
 
-static int dnxhd_init_rc(DNXHDEncContext *ctx)
+static av_cold int dnxhd_init_rc(DNXHDEncContext *ctx)
 {
     FF_ALLOCZ_OR_GOTO(ctx->m.avctx, ctx->mb_rc, 8160*ctx->m.avctx->qmax*sizeof(RCEntry), fail);
     if (ctx->m.avctx->mb_decision != FF_MB_DECISION_RD)
@@ -228,7 +229,7 @@ static int dnxhd_init_rc(DNXHDEncContext *ctx)
     return -1;
 }
 
-static int dnxhd_encode_init(AVCodecContext *avctx)
+static av_cold int dnxhd_encode_init(AVCodecContext *avctx)
 {
     DNXHDEncContext *ctx = avctx->priv_data;
     int i, index, bit_depth;
diff --git a/libavcodec/dsputil.c b/libavcodec/dsputil.c
index 97a79b4..3c7579d 100644
--- a/libavcodec/dsputil.c
+++ b/libavcodec/dsputil.c
@@ -27,6 +27,7 @@
  * DSP utils
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/internal.h"
 #include "avcodec.h"
@@ -106,7 +107,9 @@ static const uint8_t simple_mmx_permutation[64]={
 
 static const uint8_t idct_sse2_row_perm[8] = {0, 4, 1, 5, 2, 6, 3, 7};
 
-void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_scantable){
+av_cold void ff_init_scantable(uint8_t *permutation, ScanTable *st,
+                               const uint8_t *src_scantable)
+{
     int i;
     int end;
 
@@ -127,8 +130,8 @@ void ff_init_scantable(uint8_t *permutation, ScanTable *st, const uint8_t *src_s
     }
 }
 
-void ff_init_scantable_permutation(uint8_t *idct_permutation,
-                                   int idct_permutation_type)
+av_cold void ff_init_scantable_permutation(uint8_t *idct_permutation,
+                                           int idct_permutation_type)
 {
     int i;
 
diff --git a/libavcodec/dvdsubdec.c b/libavcodec/dvdsubdec.c
index cf4524e..970da86 100644
--- a/libavcodec/dvdsubdec.c
+++ b/libavcodec/dvdsubdec.c
@@ -21,6 +21,7 @@
 #include "avcodec.h"
 #include "get_bits.h"
 #include "dsputil.h"
+#include "libavutil/attributes.h"
 #include "libavutil/colorspace.h"
 #include "libavutil/imgutils.h"
 #include "libavutil/avstring.h"
@@ -501,7 +502,7 @@ static int dvdsub_decode(AVCodecContext *avctx,
     return buf_size;
 }
 
-static int dvdsub_init(AVCodecContext *avctx)
+static av_cold int dvdsub_init(AVCodecContext *avctx)
 {
     DVDSubContext *ctx = avctx->priv_data;
     char *data, *cur;
diff --git a/libavcodec/eac3enc.c b/libavcodec/eac3enc.c
index 3c7a611..69777fe 100644
--- a/libavcodec/eac3enc.c
+++ b/libavcodec/eac3enc.c
@@ -25,6 +25,8 @@
  */
 
 #define CONFIG_AC3ENC_FLOAT 1
+
+#include "libavutil/attributes.h"
 #include "ac3enc.h"
 #include "eac3enc.h"
 #include "eac3_data.h"
@@ -43,7 +45,7 @@ static const AVClass eac3enc_class = { "E-AC-3 Encoder", av_default_item_name,
 static int8_t eac3_frame_expstr_index_tab[3][4][4][4][4][4];
 
 
-void ff_eac3_exponent_init(void)
+av_cold void ff_eac3_exponent_init(void)
 {
     int i;
 
diff --git a/libavcodec/ffv1.c b/libavcodec/ffv1.c
index 81c684c..378b55b 100644
--- a/libavcodec/ffv1.c
+++ b/libavcodec/ffv1.c
@@ -25,6 +25,7 @@
  * FF Video Codec 1 (a lossless codec)
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "avcodec.h"
 #include "get_bits.h"
@@ -130,7 +131,7 @@ const uint8_t ffv1_ver2_state[256] = {
 };
 
 
-int ffv1_common_init(AVCodecContext *avctx)
+av_cold int ffv1_common_init(AVCodecContext *avctx)
 {
     FFV1Context *s = avctx->priv_data;
 
diff --git a/libavcodec/ffv1enc.c b/libavcodec/ffv1enc.c
index 34191b7..b7a2b22 100644
--- a/libavcodec/ffv1enc.c
+++ b/libavcodec/ffv1enc.c
@@ -25,6 +25,7 @@
  * FF Video Codec 1 (a lossless codec) encoder
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/pixdesc.h"
 #include "libavutil/crc.h"
@@ -544,7 +545,7 @@ static int sort_stt(FFV1Context *s, uint8_t stt[256])
     return print;
 }
 
-static int init_slices_state(FFV1Context *f)
+static av_cold int init_slices_state(FFV1Context *f)
 {
     int i, ret;
     for (i = 0; i < f->slice_count; i++) {
diff --git a/libavcodec/flac_parser.c b/libavcodec/flac_parser.c
index 155162a..bf2c118 100644
--- a/libavcodec/flac_parser.c
+++ b/libavcodec/flac_parser.c
@@ -32,6 +32,7 @@
  * The parser returns the frame with the highest score.
  **/
 
+#include "libavutil/attributes.h"
 #include "libavutil/crc.h"
 #include "libavutil/fifo.h"
 #include "bytestream.h"
@@ -653,7 +654,7 @@ handle_error:
     return read_end - buf;
 }
 
-static int flac_parse_init(AVCodecParserContext *c)
+static av_cold int flac_parse_init(AVCodecParserContext *c)
 {
     FLACParseContext *fpc = c->priv_data;
     fpc->pc = c;
diff --git a/libavcodec/h261enc.c b/libavcodec/h261enc.c
index 3ef7a7c..6a8d993 100644
--- a/libavcodec/h261enc.c
+++ b/libavcodec/h261enc.c
@@ -25,6 +25,7 @@
  * H.261 encoder.
  */
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "mpegvideo.h"
 #include "h263.h"
@@ -311,7 +312,7 @@ void ff_h261_encode_mb(MpegEncContext *s, int16_t block[6][64],
     }
 }
 
-void ff_h261_encode_init(MpegEncContext *s)
+av_cold void ff_h261_encode_init(MpegEncContext *s)
 {
     ff_h261_common_init();
 
diff --git a/libavcodec/h264_parser.c b/libavcodec/h264_parser.c
index aa930d9..e5d2c03 100644
--- a/libavcodec/h264_parser.c
+++ b/libavcodec/h264_parser.c
@@ -25,6 +25,7 @@
  * @author Michael Niedermayer <michaelni at gmx.at>
  */
 
+#include "libavutil/attributes.h"
 #include "parser.h"
 #include "h264data.h"
 #include "golomb.h"
@@ -333,7 +334,7 @@ static void close(AVCodecParserContext *s)
     ff_h264_free_context(h);
 }
 
-static int init(AVCodecParserContext *s)
+static av_cold int init(AVCodecParserContext *s)
 {
     H264Context *h = s->priv_data;
     h->thread_context[0] = h;
diff --git a/libavcodec/h264chroma.c b/libavcodec/h264chroma.c
index 6194c4d..8aa5e93 100644
--- a/libavcodec/h264chroma.c
+++ b/libavcodec/h264chroma.c
@@ -17,6 +17,7 @@
  */
 
 #include "config.h"
+#include "libavutil/attributes.h"
 #include "h264chroma.h"
 
 #define BIT_DEPTH 8
@@ -35,7 +36,7 @@
     c->avg_h264_chroma_pixels_tab[1] = avg_h264_chroma_mc4_ ## depth ## _c; \
     c->avg_h264_chroma_pixels_tab[2] = avg_h264_chroma_mc2_ ## depth ## _c; \
 
-void ff_h264chroma_init(H264ChromaContext *c, int bit_depth)
+av_cold void ff_h264chroma_init(H264ChromaContext *c, int bit_depth)
 {
     if (bit_depth > 8 && bit_depth <= 16) {
         SET_CHROMA(16);
diff --git a/libavcodec/h264dsp.c b/libavcodec/h264dsp.c
index 6ba465b..3ca6abe 100644
--- a/libavcodec/h264dsp.c
+++ b/libavcodec/h264dsp.c
@@ -26,6 +26,8 @@
  */
 
 #include <stdint.h>
+
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "h264dsp.h"
 #include "h264idct.h"
@@ -51,7 +53,8 @@
 #include "h264addpx_template.c"
 #undef BIT_DEPTH
 
-void ff_h264dsp_init(H264DSPContext *c, const int bit_depth, const int chroma_format_idc)
+av_cold void ff_h264dsp_init(H264DSPContext *c, const int bit_depth,
+                             const int chroma_format_idc)
 {
 #undef FUNC
 #define FUNC(a, depth) a ## _ ## depth ## _c
diff --git a/libavcodec/h264pred.c b/libavcodec/h264pred.c
index 6825cf2..2c991fd 100644
--- a/libavcodec/h264pred.c
+++ b/libavcodec/h264pred.c
@@ -25,6 +25,7 @@
  * @author Michael Niedermayer <michaelni at gmx.at>
  */
 
+#include "libavutil/attributes.h"
 #include "dsputil.h"
 #include "h264pred.h"
 
@@ -397,8 +398,9 @@ static void pred8x8_tm_vp8_c(uint8_t *src, ptrdiff_t stride)
 /**
  * Set the intra prediction function pointers.
  */
-void ff_h264_pred_init(H264PredContext *h, int codec_id, const int bit_depth,
-                       const int chroma_format_idc)
+av_cold void ff_h264_pred_init(H264PredContext *h, int codec_id,
+                               const int bit_depth,
+                               const int chroma_format_idc)
 {
 #undef FUNC
 #undef FUNCC
diff --git a/libavcodec/h264qpel.c b/libavcodec/h264qpel.c
index 1bf3168..24c9299 100644
--- a/libavcodec/h264qpel.c
+++ b/libavcodec/h264qpel.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "h264qpel.h"
 
 #define BIT_DEPTH 8
@@ -33,7 +34,7 @@
 #include "h264qpel_template.c"
 #undef BIT_DEPTH
 
-void ff_h264qpel_init(H264QpelContext *c, int bit_depth)
+av_cold void ff_h264qpel_init(H264QpelContext *c, int bit_depth)
 {
 #undef FUNCC
 #define FUNCC(f, depth) f ## _ ## depth ## _c
diff --git a/libavcodec/iirfilter.c b/libavcodec/iirfilter.c
index acfa904..40a543d 100644
--- a/libavcodec/iirfilter.c
+++ b/libavcodec/iirfilter.c
@@ -26,6 +26,7 @@
 
 #include "iirfilter.h"
 #include <math.h>
+#include "libavutil/attributes.h"
 #include "libavutil/common.h"
 
 /**
@@ -48,10 +49,11 @@ typedef struct FFIIRFilterState{
 /// maximum supported filter order
 #define MAXORDER 30
 
-static int butterworth_init_coeffs(void *avc, struct FFIIRFilterCoeffs *c,
-                                   enum IIRFilterMode filt_mode,
-                                   int order, float cutoff_ratio,
-                                   float stopband)
+static av_cold int butterworth_init_coeffs(void *avc,
+                                           struct FFIIRFilterCoeffs *c,
+                                           enum IIRFilterMode filt_mode,
+                                           int order, float cutoff_ratio,
+                                           float stopband)
 {
     int i, j;
     double wa;
@@ -113,9 +115,9 @@ static int butterworth_init_coeffs(void *avc, struct FFIIRFilterCoeffs *c,
     return 0;
 }
 
-static int biquad_init_coeffs(void *avc, struct FFIIRFilterCoeffs *c,
-                              enum IIRFilterMode filt_mode, int order,
-                              float cutoff_ratio, float stopband)
+static av_cold int biquad_init_coeffs(void *avc, struct FFIIRFilterCoeffs *c,
+                                      enum IIRFilterMode filt_mode, int order,
+                                      float cutoff_ratio, float stopband)
 {
     double cos_w0, sin_w0;
     double a0, x0, x1;
diff --git a/libavcodec/ituh263dec.c b/libavcodec/ituh263dec.c
index 9a42c2d..b528f2f 100644
--- a/libavcodec/ituh263dec.c
+++ b/libavcodec/ituh263dec.c
@@ -30,6 +30,7 @@
 //#define DEBUG
 #include <limits.h>
 
+#include "libavutil/attributes.h"
 #include "libavutil/internal.h"
 #include "libavutil/mathematics.h"
 #include "avcodec.h"
@@ -101,7 +102,7 @@ static VLC cbpc_b_vlc;
 /* init vlcs */
 
 /* XXX: find a better solution to handle static init */
-void ff_h263_decode_init_vlc(void)
+av_cold void ff_h263_decode_init_vlc(void)
 {
     static int done = 0;
 
diff --git a/libavcodec/ituh263enc.c b/libavcodec/ituh263enc.c
index eb91142..54629a2 100644
--- a/libavcodec/ituh263enc.c
+++ b/libavcodec/ituh263enc.c
@@ -30,6 +30,7 @@
 //#define DEBUG
 #include <limits.h>
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "mpegvideo.h"
 #include "h263.h"
@@ -682,7 +683,7 @@ void ff_h263_encode_motion(MpegEncContext * s, int val, int f_code)
     }
 }
 
-static void init_mv_penalty_and_fcode(MpegEncContext *s)
+static av_cold void init_mv_penalty_and_fcode(MpegEncContext *s)
 {
     int f_code;
     int mv;
@@ -724,7 +725,9 @@ static void init_mv_penalty_and_fcode(MpegEncContext *s)
     }
 }
 
-static void init_uni_h263_rl_tab(RLTable *rl, uint32_t *bits_tab, uint8_t *len_tab){
+static av_cold void init_uni_h263_rl_tab(RLTable *rl, uint32_t *bits_tab,
+                                         uint8_t *len_tab)
+{
     int slevel, run, last;
 
     assert(MAX_LEVEL >= 64);
@@ -767,7 +770,7 @@ static void init_uni_h263_rl_tab(RLTable *rl, uint32_t *bits_tab, uint8_t *len_t
     }
 }
 
-void ff_h263_encode_init(MpegEncContext *s)
+av_cold void ff_h263_encode_init(MpegEncContext *s)
 {
     static int done = 0;
 
diff --git a/libavcodec/ivi_common.c b/libavcodec/ivi_common.c
index f068e45..f11b729 100644
--- a/libavcodec/ivi_common.c
+++ b/libavcodec/ivi_common.c
@@ -100,7 +100,7 @@ static int ivi_create_huff_from_desc(const IVIHuffDesc *cb, VLC *vlc, int flag)
                     (flag ? INIT_VLC_USE_NEW_STATIC : 0) | INIT_VLC_LE);
 }
 
-void ff_ivi_init_static_vlc(void)
+av_cold void ff_ivi_init_static_vlc(void)
 {
     int i;
     static VLC_TYPE table_data[8192 * 16][2];
diff --git a/libavcodec/libschroedinger.c b/libavcodec/libschroedinger.c
index 2aa5eb9..fc9188c 100644
--- a/libavcodec/libschroedinger.c
+++ b/libavcodec/libschroedinger.c
@@ -23,8 +23,9 @@
 * function definitions common to libschroedinger decoder and encoder
 */
 
-#include "libschroedinger.h"
+#include "libavutil/attributes.h"
 #include "libavutil/mem.h"
+#include "libschroedinger.h"
 
 static const SchroVideoFormatInfo ff_schro_video_format_info[] = {
     { 640,  480,  24000, 1001},
@@ -66,7 +67,7 @@ static unsigned int get_video_format_idx(AVCodecContext *avctx)
     return ret_idx;
 }
 
-void ff_schro_queue_init(FFSchroQueue *queue)
+av_cold void ff_schro_queue_init(FFSchroQueue *queue)
 {
     queue->p_head = queue->p_tail = NULL;
     queue->size = 0;
diff --git a/libavcodec/libschroedingerenc.c b/libavcodec/libschroedingerenc.c
index 596a8bd..210dd34 100644
--- a/libavcodec/libschroedingerenc.c
+++ b/libavcodec/libschroedingerenc.c
@@ -34,6 +34,7 @@
 #include <schroedinger/schrodebug.h>
 #include <schroedinger/schrovideoformat.h>
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "internal.h"
 #include "libschroedinger.h"
@@ -102,7 +103,7 @@ static int set_chroma_format(AVCodecContext *avctx)
     return -1;
 }
 
-static int libschroedinger_encode_init(AVCodecContext *avctx)
+static av_cold int libschroedinger_encode_init(AVCodecContext *avctx)
 {
     SchroEncoderParams *p_schro_params = avctx->priv_data;
     SchroVideoFormatEnum preset;
diff --git a/libavcodec/libxvid_rc.c b/libavcodec/libxvid_rc.c
index dd4cff2..9c45804 100644
--- a/libavcodec/libxvid_rc.c
+++ b/libavcodec/libxvid_rc.c
@@ -27,6 +27,7 @@
 #include <fcntl.h>
 #endif
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "libxvid.h"
 #include "mpegvideo.h"
@@ -70,7 +71,8 @@ int ff_tempfile(const char *prefix, char **filename) {
     return fd; /* success */
 }
 
-int ff_xvid_rate_control_init(MpegEncContext *s){
+av_cold int ff_xvid_rate_control_init(MpegEncContext *s)
+{
     char *tmp_name;
     int fd, i;
     xvid_plg_create_t xvid_plg_create = { 0 };
diff --git a/libavcodec/mlpdsp.c b/libavcodec/mlpdsp.c
index 7e6da6e..b96200e 100644
--- a/libavcodec/mlpdsp.c
+++ b/libavcodec/mlpdsp.c
@@ -20,6 +20,7 @@
  */
 
 #include "config.h"
+#include "libavutil/attributes.h"
 #include "mlpdsp.h"
 #include "mlp.h"
 
@@ -56,7 +57,7 @@ static void mlp_filter_channel(int32_t *state, const int32_t *coeff,
     }
 }
 
-void ff_mlpdsp_init(MLPDSPContext *c)
+av_cold void ff_mlpdsp_init(MLPDSPContext *c)
 {
     c->mlp_filter_channel = mlp_filter_channel;
     if (ARCH_X86)
diff --git a/libavcodec/mpc.c b/libavcodec/mpc.c
index 97b405f..763ea2c 100644
--- a/libavcodec/mpc.c
+++ b/libavcodec/mpc.c
@@ -26,6 +26,7 @@
  * divided into 32 subbands.
  */
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "get_bits.h"
 #include "mpegaudiodsp.h"
@@ -34,7 +35,7 @@
 #include "mpc.h"
 #include "mpcdata.h"
 
-void ff_mpc_init(void)
+av_cold void ff_mpc_init(void)
 {
     ff_mpa_synth_init_fixed(ff_mpa_synth_window_fixed);
 }
diff --git a/libavcodec/mpeg12.c b/libavcodec/mpeg12.c
index aa0b4d5..8bc5697 100644
--- a/libavcodec/mpeg12.c
+++ b/libavcodec/mpeg12.c
@@ -26,6 +26,7 @@
  */
 
 //#define DEBUG
+#include "libavutil/attributes.h"
 #include "internal.h"
 #include "avcodec.h"
 #include "dsputil.h"
@@ -55,7 +56,7 @@ uint8_t ff_mpeg12_static_rl_table_store[2][2][2*MAX_RUN + MAX_LEVEL + 3];
     init_2d_vlc_rl(&rl);\
 }
 
-static void init_2d_vlc_rl(RLTable *rl)
+static av_cold void init_2d_vlc_rl(RLTable *rl)
 {
     int i;
 
@@ -88,7 +89,7 @@ static void init_2d_vlc_rl(RLTable *rl)
     }
 }
 
-void ff_mpeg12_common_init(MpegEncContext *s)
+av_cold void ff_mpeg12_common_init(MpegEncContext *s)
 {
 
     s->y_dc_scale_table =
diff --git a/libavcodec/mpeg12enc.c b/libavcodec/mpeg12enc.c
index 348d535..91077e7 100644
--- a/libavcodec/mpeg12enc.c
+++ b/libavcodec/mpeg12enc.c
@@ -33,6 +33,7 @@
 #include "mpeg12data.h"
 #include "bytestream.h"
 
+#include "libavutil/attributes.h"
 #include "libavutil/log.h"
 #include "libavutil/opt.h"
 
@@ -67,7 +68,8 @@ static uint32_t mpeg1_chr_dc_uni[512];
 static uint8_t mpeg1_index_run[2][64];
 static int8_t mpeg1_max_level[2][64];
 
-static void init_uni_ac_vlc(RLTable *rl, uint8_t *uni_ac_vlc_len){
+static av_cold void init_uni_ac_vlc(RLTable *rl, uint8_t *uni_ac_vlc_len)
+{
     int i;
 
     for(i=0; i<128; i++){
@@ -702,7 +704,7 @@ static void mpeg1_encode_motion(MpegEncContext *s, int val, int f_or_b_code)
     }
 }
 
-void ff_mpeg1_encode_init(MpegEncContext *s)
+av_cold void ff_mpeg1_encode_init(MpegEncContext *s)
 {
     static int done=0;
 
diff --git a/libavcodec/mpeg4videoenc.c b/libavcodec/mpeg4videoenc.c
index fb4d7a8..fd39b3f 100644
--- a/libavcodec/mpeg4videoenc.c
+++ b/libavcodec/mpeg4videoenc.c
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/log.h"
 #include "libavutil/opt.h"
 #include "mpegvideo.h"
@@ -1083,7 +1084,7 @@ void ff_mpeg4_encode_picture_header(MpegEncContext * s, int picture_number)
 }
 
 
-static void init_uni_dc_tab(void)
+static av_cold void init_uni_dc_tab(void)
 {
     int level, uni_code, uni_len;
 
@@ -1135,7 +1136,9 @@ static void init_uni_dc_tab(void)
     }
 }
 
-static void init_uni_mpeg4_rl_tab(RLTable *rl, uint32_t *bits_tab, uint8_t *len_tab){
+static av_cold void init_uni_mpeg4_rl_tab(RLTable *rl, uint32_t *bits_tab,
+                                          uint8_t *len_tab)
+{
     int slevel, run, last;
 
     assert(MAX_LEVEL >= 64);
diff --git a/libavcodec/mpegaudiodec.c b/libavcodec/mpegaudiodec.c
index fa6ac04..c18f433 100644
--- a/libavcodec/mpegaudiodec.c
+++ b/libavcodec/mpegaudiodec.c
@@ -24,6 +24,7 @@
  * MPEG Audio decoder
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/channel_layout.h"
 #include "libavutil/float_dsp.h"
@@ -1820,7 +1821,7 @@ static av_cold int decode_close_mp3on4(AVCodecContext * avctx)
 }
 
 
-static int decode_init_mp3on4(AVCodecContext * avctx)
+static av_cold int decode_init_mp3on4(AVCodecContext * avctx)
 {
     MP3On4DecodeContext *s = avctx->priv_data;
     MPEG4AudioConfig cfg;
diff --git a/libavcodec/mpegaudiodsp.c b/libavcodec/mpegaudiodsp.c
index 461a9ef..342ed16 100644
--- a/libavcodec/mpegaudiodsp.c
+++ b/libavcodec/mpegaudiodsp.c
@@ -19,11 +19,12 @@
  */
 
 #include "config.h"
+#include "libavutil/attributes.h"
 #include "mpegaudiodsp.h"
 #include "dct.h"
 #include "dct32.h"
 
-void ff_mpadsp_init(MPADSPContext *s)
+av_cold void ff_mpadsp_init(MPADSPContext *s)
 {
     DCTContext dct;
 
diff --git a/libavcodec/mpegaudiodsp_template.c b/libavcodec/mpegaudiodsp_template.c
index e7a7656..621bbd4 100644
--- a/libavcodec/mpegaudiodsp_template.c
+++ b/libavcodec/mpegaudiodsp_template.c
@@ -20,6 +20,7 @@
 
 #include <stdint.h>
 
+#include "libavutil/attributes.h"
 #include "libavutil/mem.h"
 #include "dct32.h"
 #include "mathops.h"
@@ -220,7 +221,7 @@ av_cold void RENAME(ff_mpa_synth_init)(MPA_INT *window)
             window[512+128+16*i+j] = window[64*i+48-j];
 }
 
-void RENAME(ff_init_mpadsp_tabs)(void)
+av_cold void RENAME(ff_init_mpadsp_tabs)(void)
 {
     int i, j;
     /* compute mdct windows */
diff --git a/libavcodec/mpegvideo.c b/libavcodec/mpegvideo.c
index 06278cd..2ab3294 100644
--- a/libavcodec/mpegvideo.c
+++ b/libavcodec/mpegvideo.c
@@ -27,6 +27,7 @@
  * The simplest mpeg encoder (well, it was the simplest!).
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/imgutils.h"
 #include "avcodec.h"
@@ -1303,8 +1304,8 @@ void ff_MPV_common_end(MpegEncContext *s)
     s->linesize = s->uvlinesize = 0;
 }
 
-void ff_init_rl(RLTable *rl,
-                uint8_t static_store[2][2 * MAX_RUN + MAX_LEVEL + 3])
+av_cold void ff_init_rl(RLTable *rl,
+                        uint8_t static_store[2][2 * MAX_RUN + MAX_LEVEL + 3])
 {
     int8_t  max_level[MAX_RUN + 1], max_run[MAX_LEVEL + 1];
     uint8_t index_run[MAX_RUN + 1];
@@ -1355,7 +1356,7 @@ void ff_init_rl(RLTable *rl,
     }
 }
 
-void ff_init_vlc_rl(RLTable *rl)
+av_cold void ff_init_vlc_rl(RLTable *rl)
 {
     int i, q;
 
diff --git a/libavcodec/msmpeg4enc.c b/libavcodec/msmpeg4enc.c
index 936c7a5..45ef208 100644
--- a/libavcodec/msmpeg4enc.c
+++ b/libavcodec/msmpeg4enc.c
@@ -30,6 +30,7 @@
 #include <stdint.h>
 #include <string.h>
 
+#include "libavutil/attributes.h"
 #include "libavutil/avutil.h"
 #include "libavutil/mem.h"
 #include "mpegvideo.h"
@@ -45,7 +46,7 @@
 static uint8_t rl_length[NB_RL_TABLES][MAX_LEVEL+1][MAX_RUN+1][2];
 
 /* build the table which associate a (x,y) motion vector to a vlc */
-static void init_mv_table(MVTable *tab)
+static av_cold void init_mv_table(MVTable *tab)
 {
     int i, x, y;
 
diff --git a/libavcodec/pngdsp.c b/libavcodec/pngdsp.c
index 00734d7..afd9093 100644
--- a/libavcodec/pngdsp.c
+++ b/libavcodec/pngdsp.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "png.h"
 #include "pngdsp.h"
@@ -39,7 +40,7 @@ static void add_bytes_l2_c(uint8_t *dst, uint8_t *src1, uint8_t *src2, int w)
         dst[i] = src1[i] + src2[i];
 }
 
-void ff_pngdsp_init(PNGDSPContext *dsp)
+av_cold void ff_pngdsp_init(PNGDSPContext *dsp)
 {
     dsp->add_bytes_l2         = add_bytes_l2_c;
     dsp->add_paeth_prediction = ff_add_png_paeth_prediction;
diff --git a/libavcodec/proresdsp.c b/libavcodec/proresdsp.c
index 6d45def..1c0f391 100644
--- a/libavcodec/proresdsp.c
+++ b/libavcodec/proresdsp.c
@@ -20,11 +20,12 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
+#include "libavutil/common.h"
 #include "dct.h"
 #include "dsputil.h"
 #include "proresdsp.h"
 #include "simple_idct.h"
-#include "libavutil/common.h"
 
 #define BIAS     (1 << (PRORES_BITS_PER_SAMPLE - 1))           ///< bias value for converting signed pixels into unsigned ones
 #define CLIP_MIN (1 << (PRORES_BITS_PER_SAMPLE - 8))           ///< minimum value for clipping resulting pixels
@@ -71,7 +72,7 @@ static void prores_fdct_c(const uint16_t *src, int linesize, int16_t *block)
 }
 #endif
 
-void ff_proresdsp_init(ProresDSPContext *dsp)
+av_cold void ff_proresdsp_init(ProresDSPContext *dsp)
 {
 #if CONFIG_PRORES_DECODER
     dsp->idct_put = prores_idct_put_c;
diff --git a/libavcodec/ralf.c b/libavcodec/ralf.c
index e02289c..e78a9d4 100644
--- a/libavcodec/ralf.c
+++ b/libavcodec/ralf.c
@@ -26,6 +26,7 @@
  * Dedicated to the mastermind behind it, Ralph Wiggum.
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/channel_layout.h"
 #include "avcodec.h"
 #include "get_bits.h"
@@ -72,7 +73,7 @@ typedef struct RALFContext {
 
 #define MAX_ELEMS 644 // no RALF table uses more than that
 
-static int init_ralf_vlc(VLC *vlc, const uint8_t *data, int elems)
+static av_cold int init_ralf_vlc(VLC *vlc, const uint8_t *data, int elems)
 {
     uint8_t  lens[MAX_ELEMS];
     uint16_t codes[MAX_ELEMS];
diff --git a/libavcodec/rangecoder.c b/libavcodec/rangecoder.c
index fcadfe4..af0a8c0 100644
--- a/libavcodec/rangecoder.c
+++ b/libavcodec/rangecoder.c
@@ -33,11 +33,12 @@
 
 #include <string.h>
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "rangecoder.h"
 #include "bytestream.h"
 
-void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size)
+av_cold void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size)
 {
     c->bytestream_start  =
     c->bytestream        = buf;
@@ -48,7 +49,8 @@ void ff_init_range_encoder(RangeCoder *c, uint8_t *buf, int buf_size)
     c->outstanding_byte  = -1;
 }
 
-void ff_init_range_decoder(RangeCoder *c, const uint8_t *buf, int buf_size)
+av_cold void ff_init_range_decoder(RangeCoder *c, const uint8_t *buf,
+                                   int buf_size)
 {
     /* cast to avoid compiler warning */
     ff_init_range_encoder(c, (uint8_t *)buf, buf_size);
diff --git a/libavcodec/ratecontrol.c b/libavcodec/ratecontrol.c
index 21fc8c5..5aaf151 100644
--- a/libavcodec/ratecontrol.c
+++ b/libavcodec/ratecontrol.c
@@ -25,6 +25,7 @@
  * Rate control for video encoders.
  */
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "ratecontrol.h"
 #include "mpegvideo.h"
@@ -78,7 +79,7 @@ static inline double bits2qp(RateControlEntry *rce, double bits)
     return rce->qscale * (double)(rce->i_tex_bits + rce->p_tex_bits + 1) / bits;
 }
 
-int ff_rate_control_init(MpegEncContext *s)
+av_cold int ff_rate_control_init(MpegEncContext *s)
 {
     RateControlContext *rcc = &s->rc_context;
     int i, res;
@@ -282,7 +283,7 @@ int ff_rate_control_init(MpegEncContext *s)
     return 0;
 }
 
-void ff_rate_control_uninit(MpegEncContext *s)
+av_cold void ff_rate_control_uninit(MpegEncContext *s)
 {
     RateControlContext *rcc = &s->rc_context;
     emms_c();
diff --git a/libavcodec/roqvideoenc.c b/libavcodec/roqvideoenc.c
index 636418a..db95282 100644
--- a/libavcodec/roqvideoenc.c
+++ b/libavcodec/roqvideoenc.c
@@ -56,6 +56,7 @@
 
 #include <string.h>
 
+#include "libavutil/attributes.h"
 #include "roqvideo.h"
 #include "bytestream.h"
 #include "elbg.h"
@@ -952,7 +953,7 @@ static int roq_encode_end(AVCodecContext *avctx)
     return 0;
 }
 
-static int roq_encode_init(AVCodecContext *avctx)
+static av_cold int roq_encode_init(AVCodecContext *avctx)
 {
     RoqContext *enc = avctx->priv_data;
 
diff --git a/libavcodec/sipr16k.c b/libavcodec/sipr16k.c
index a472dfd..f7fcb34 100644
--- a/libavcodec/sipr16k.c
+++ b/libavcodec/sipr16k.c
@@ -24,6 +24,7 @@
 #include <math.h>
 
 #include "sipr.h"
+#include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "libavutil/float_dsp.h"
 #include "libavutil/mathematics.h"
@@ -268,7 +269,7 @@ void ff_sipr_decode_frame_16k(SiprContext *ctx, SiprParameters *params,
     memcpy(ctx->iir_mem, Az[1], LP_FILTER_ORDER_16k * sizeof(float));
 }
 
-void ff_sipr_init_16k(SiprContext *ctx)
+av_cold void ff_sipr_init_16k(SiprContext *ctx)
 {
     int i;
 
diff --git a/libavcodec/utils.c b/libavcodec/utils.c
index 0d62144..df4e305 100644
--- a/libavcodec/utils.c
+++ b/libavcodec/utils.c
@@ -26,6 +26,7 @@
  */
 
 #include "config.h"
+#include "libavutil/attributes.h"
 #include "libavutil/avassert.h"
 #include "libavutil/avstring.h"
 #include "libavutil/channel_layout.h"
@@ -109,7 +110,7 @@ AVCodec *av_codec_next(const AVCodec *c)
         return first_avcodec;
 }
 
-static void avcodec_init(void)
+static av_cold void avcodec_init(void)
 {
     static int initialized = 0;
 
@@ -131,7 +132,7 @@ int av_codec_is_decoder(const AVCodec *codec)
     return codec && codec->decode;
 }
 
-void avcodec_register(AVCodec *codec)
+av_cold void avcodec_register(AVCodec *codec)
 {
     AVCodec **p;
     avcodec_init();
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
index e93ccc4..719c28d 100644
--- a/libavcodec/vc1.c
+++ b/libavcodec/vc1.c
@@ -27,6 +27,7 @@
  *
  */
 
+#include "libavutil/attributes.h"
 #include "internal.h"
 #include "avcodec.h"
 #include "mpegvideo.h"
@@ -1484,7 +1485,7 @@ static const uint16_t vlc_offs[] = {
  * @param v The VC1Context to initialize
  * @return Status
  */
-int ff_vc1_init_common(VC1Context *v)
+av_cold int ff_vc1_init_common(VC1Context *v)
 {
     static int done = 0;
     int i = 0;
diff --git a/libavcodec/vc1_parser.c b/libavcodec/vc1_parser.c
index a6363d9..1bedd98 100644
--- a/libavcodec/vc1_parser.c
+++ b/libavcodec/vc1_parser.c
@@ -25,6 +25,7 @@
  * VC-1 and WMV3 parser
  */
 
+#include "libavutil/attributes.h"
 #include "parser.h"
 #include "vc1.h"
 #include "get_bits.h"
@@ -189,7 +190,7 @@ static int vc1_split(AVCodecContext *avctx,
     return 0;
 }
 
-static int vc1_parse_init(AVCodecParserContext *s)
+static av_cold int vc1_parse_init(AVCodecParserContext *s)
 {
     VC1ParseContext *vpc = s->priv_data;
     vpc->v.s.slice_context_count = 1;
diff --git a/libavcodec/videodsp.c b/libavcodec/videodsp.c
index d14b0a1..a6a1d37 100644
--- a/libavcodec/videodsp.c
+++ b/libavcodec/videodsp.c
@@ -18,6 +18,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/common.h"
 #include "videodsp.h"
 
@@ -33,7 +34,7 @@ static void just_return(uint8_t *buf, ptrdiff_t stride, int h)
 {
 }
 
-void ff_videodsp_init(VideoDSPContext *ctx, int bpc)
+av_cold void ff_videodsp_init(VideoDSPContext *ctx, int bpc)
 {
     ctx->prefetch = just_return;
     if (bpc <= 8) {
diff --git a/libavcodec/vorbisdsp.c b/libavcodec/vorbisdsp.c
index 1764438..34cfe32 100644
--- a/libavcodec/vorbisdsp.c
+++ b/libavcodec/vorbisdsp.c
@@ -17,10 +17,11 @@
  */
 
 #include "config.h"
+#include "libavutil/attributes.h"
 #include "vorbisdsp.h"
 #include "vorbis.h"
 
-void ff_vorbisdsp_init(VorbisDSPContext *dsp)
+av_cold void ff_vorbisdsp_init(VorbisDSPContext *dsp)
 {
     dsp->vorbis_inverse_coupling = ff_vorbis_inverse_coupling;
 
diff --git a/libavcodec/vp56dsp.c b/libavcodec/vp56dsp.c
index 5a36e52..9929530 100644
--- a/libavcodec/vp56dsp.c
+++ b/libavcodec/vp56dsp.c
@@ -20,6 +20,8 @@
  */
 
 #include <stdint.h>
+
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "vp56dsp.h"
 #include "libavutil/common.h"
@@ -75,7 +77,7 @@ VP56_EDGE_FILTER(vp5, ver, stride, 1)
 VP56_EDGE_FILTER(vp6, hor, 1, stride)
 VP56_EDGE_FILTER(vp6, ver, stride, 1)
 
-void ff_vp56dsp_init(VP56DSPContext *s, enum AVCodecID codec)
+av_cold void ff_vp56dsp_init(VP56DSPContext *s, enum AVCodecID codec)
 {
     if (codec == AV_CODEC_ID_VP5) {
         s->edge_filter_hor = vp5_edge_filter_hor;
diff --git a/libavcodec/wma.c b/libavcodec/wma.c
index 03e310b..db27646 100644
--- a/libavcodec/wma.c
+++ b/libavcodec/wma.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "sinewin.h"
 #include "wma.h"
@@ -30,9 +31,9 @@
 
 /* XXX: use same run/length optimization as mpeg decoders */
 //FIXME maybe split decode / encode or pass flag
-static void init_coef_vlc(VLC *vlc, uint16_t **prun_table,
-                          float **plevel_table, uint16_t **pint_table,
-                          const CoefVLCTable *vlc_table)
+static av_cold void init_coef_vlc(VLC *vlc, uint16_t **prun_table,
+                                  float **plevel_table, uint16_t **pint_table,
+                                  const CoefVLCTable *vlc_table)
 {
     int n = vlc_table->n;
     const uint8_t  *table_bits   = vlc_table->huffbits;
@@ -68,7 +69,7 @@ static void init_coef_vlc(VLC *vlc, uint16_t **prun_table,
     av_free(level_table);
 }
 
-int ff_wma_init(AVCodecContext *avctx, int flags2)
+av_cold int ff_wma_init(AVCodecContext *avctx, int flags2)
 {
     WMACodecContext *s = avctx->priv_data;
     int i;
diff --git a/libavcodec/wmadec.c b/libavcodec/wmadec.c
index dbefbe0..b9b176e 100644
--- a/libavcodec/wmadec.c
+++ b/libavcodec/wmadec.c
@@ -33,6 +33,7 @@
  * should be 4 extra bytes for v1 data and 6 extra bytes for v2 data.
  */
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "internal.h"
 #include "wma.h"
@@ -66,7 +67,7 @@ static void dump_floats(WMACodecContext *s, const char *name, int prec, const fl
 }
 #endif
 
-static int wma_decode_init(AVCodecContext * avctx)
+static av_cold int wma_decode_init(AVCodecContext * avctx)
 {
     WMACodecContext *s = avctx->priv_data;
     int i, flags2;
@@ -143,7 +144,7 @@ static inline float pow_m1_4(WMACodecContext *s, float x)
     return s->lsp_pow_e_table[e] * (a + b * t.f);
 }
 
-static void wma_lsp_to_curve_init(WMACodecContext *s, int frame_len)
+static av_cold void wma_lsp_to_curve_init(WMACodecContext *s, int frame_len)
 {
     float wdel, a, b;
     int i, e, m;
diff --git a/libavcodec/wmaenc.c b/libavcodec/wmaenc.c
index adaa7b3..f5bdb67 100644
--- a/libavcodec/wmaenc.c
+++ b/libavcodec/wmaenc.c
@@ -19,6 +19,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "avcodec.h"
 #include "internal.h"
 #include "wma.h"
@@ -27,7 +28,8 @@
 #include <assert.h>
 
 
-static int encode_init(AVCodecContext * avctx){
+static av_cold int encode_init(AVCodecContext *avctx)
+{
     WMACodecContext *s = avctx->priv_data;
     int i, flags1, flags2, block_align;
     uint8_t *extradata;
diff --git a/libavcodec/x86/h264chroma_init.c b/libavcodec/x86/h264chroma_init.c
index bdbbafd..1ed34c0 100644
--- a/libavcodec/x86/h264chroma_init.c
+++ b/libavcodec/x86/h264chroma_init.c
@@ -19,6 +19,7 @@
 #include <stdint.h>
 
 #include "config.h"
+#include "libavutil/attributes.h"
 #include "libavutil/cpu.h"
 #include "libavutil/x86/cpu.h"
 #include "libavcodec/h264chroma.h"
@@ -66,7 +67,7 @@ CHROMA_MC(avg, 8, 10, sse2)
 CHROMA_MC(put, 8, 10, avx)
 CHROMA_MC(avg, 8, 10, avx)
 
-void ff_h264chroma_init_x86(H264ChromaContext *c, int bit_depth)
+av_cold void ff_h264chroma_init_x86(H264ChromaContext *c, int bit_depth)
 {
 #if HAVE_YASM
     int high_bit_depth = bit_depth > 8;
diff --git a/libavcodec/x86/proresdsp_init.c b/libavcodec/x86/proresdsp_init.c
index 9df69b6..8bff85f 100644
--- a/libavcodec/x86/proresdsp_init.c
+++ b/libavcodec/x86/proresdsp_init.c
@@ -20,6 +20,7 @@
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
  */
 
+#include "libavutil/attributes.h"
 #include "libavutil/x86/cpu.h"
 #include "libavcodec/dsputil.h"
 #include "libavcodec/proresdsp.h"
@@ -31,7 +32,7 @@ void ff_prores_idct_put_10_sse4(uint16_t *dst, int linesize,
 void ff_prores_idct_put_10_avx (uint16_t *dst, int linesize,
                                 int16_t *block, const int16_t *qmat);
 
-void ff_proresdsp_x86_init(ProresDSPContext *dsp)
+av_cold void ff_proresdsp_x86_init(ProresDSPContext *dsp)
 {
 #if ARCH_X86_64
     int flags = av_get_cpu_flags();



More information about the ffmpeg-cvslog mailing list