return x;
}
-#ifdef CONFIG_ENCODERS
+#if defined(CONFIG_SONIC_ENCODER) || defined(CONFIG_SONIC_LS_ENCODER)
// Heavily modified Levinson-Durbin algorithm which
// copes better with quantization, and calculates the
// actual whitened result as it goes.
av_free(state);
}
-#endif /* CONFIG_ENCODERS */
+#endif /* defined(CONFIG_SONIC_ENCODER) || defined(CONFIG_SONIC_LS_ENCODER) */
-static int samplerate_table[] =
+static const int samplerate_table[] =
{ 44100, 22050, 11025, 96000, 48000, 32000, 24000, 16000, 8000 };
-#ifdef CONFIG_ENCODERS
-
+#if defined(CONFIG_SONIC_ENCODER) || defined(CONFIG_SONIC_LS_ENCODER)
static inline int code_samplerate(int samplerate)
{
switch (samplerate)
return -1;
}
-static int sonic_encode_init(AVCodecContext *avctx)
+static av_cold int sonic_encode_init(AVCodecContext *avctx)
{
SonicContext *s = avctx->priv_data;
PutBitContext pb;
return 0;
}
-static int sonic_encode_close(AVCodecContext *avctx)
+static av_cold int sonic_encode_close(AVCodecContext *avctx)
{
SonicContext *s = avctx->priv_data;
int i;
flush_put_bits(&pb);
return (put_bits_count(&pb)+7)/8;
}
-#endif //CONFIG_ENCODERS
+#endif /* defined(CONFIG_SONIC_ENCODER) || defined(CONFIG_SONIC_LS_ENCODER) */
-#ifdef CONFIG_DECODERS
-static int sonic_decode_init(AVCodecContext *avctx)
+#ifdef CONFIG_SONIC_DECODER
+static av_cold int sonic_decode_init(AVCodecContext *avctx)
{
SonicContext *s = avctx->priv_data;
GetBitContext gb;
}
s->int_samples = av_mallocz(4* s->frame_size);
+ avctx->sample_fmt = SAMPLE_FMT_S16;
return 0;
}
-static int sonic_decode_close(AVCodecContext *avctx)
+static av_cold int sonic_decode_close(AVCodecContext *avctx)
{
SonicContext *s = avctx->priv_data;
int i;
return (get_bits_count(&gb)+7)/8;
}
-#endif
+#endif /* CONFIG_SONIC_DECODER */
-#ifdef CONFIG_ENCODERS
+#ifdef CONFIG_SONIC_ENCODER
AVCodec sonic_encoder = {
"sonic",
CODEC_TYPE_AUDIO,
sonic_encode_frame,
sonic_encode_close,
NULL,
+ .long_name = NULL_IF_CONFIG_SMALL("Sonic"),
};
+#endif
+#ifdef CONFIG_SONIC_LS_ENCODER
AVCodec sonic_ls_encoder = {
"sonicls",
CODEC_TYPE_AUDIO,
sonic_encode_frame,
sonic_encode_close,
NULL,
+ .long_name = NULL_IF_CONFIG_SMALL("Sonic lossless"),
};
#endif
-#ifdef CONFIG_DECODERS
+#ifdef CONFIG_SONIC_DECODER
AVCodec sonic_decoder = {
"sonic",
CODEC_TYPE_AUDIO,
NULL,
sonic_decode_close,
sonic_decode_frame,
+ .long_name = NULL_IF_CONFIG_SMALL("Sonic"),
};
#endif