- case AV_CODEC_ID_PCM_ALAW:
- pcm_alaw_tableinit();
- break;
- case AV_CODEC_ID_PCM_MULAW:
- pcm_ulaw_tableinit();
- break;
- case AV_CODEC_ID_PCM_VIDC:
- pcm_vidc_tableinit();
- break;
+#define INIT_ONCE(id, name) \
+ case AV_CODEC_ID_PCM_ ## id: \
+ if (CONFIG_PCM_ ## id ## _ENCODER) { \
+ static AVOnce init_static_once = AV_ONCE_INIT; \
+ ff_thread_once(&init_static_once, pcm_ ## name ## _tableinit); \
+ } \
+ break
+ INIT_ONCE(ALAW, alaw);
+ INIT_ONCE(MULAW, ulaw);
+ INIT_ONCE(VIDC, vidc);