> --- a/libavcodec/twinvq.c
> +++ b/libavcodec/twinvq.c
> @@ -1088,7 +542,7 @@ static av_cold void init_bitstream_params(TwinContext
> *tctx)
> -static av_cold int twin_decode_close(AVCodecContext *avctx)
> +av_cold int ff_tvq_decode_close(AVCodecContext *avctx)
Previously the name prefix was "twin", now it's "tvq". Both seem less
than ideal to me; the natural prefix appears to be "twinvq".
> --- /dev/null
> +++ b/libavcodec/twinvq.h
> @@ -0,0 +1,162 @@
> +
> +enum FrameType {
> + FT_SHORT = 0, ///< Short frame (divided in n sub-blocks)
> + FT_MEDIUM, ///< Medium frame (divided in m<n sub-blocks)
> + FT_LONG, ///< Long frame (single sub-block + PPC)
> + FT_PPC, ///< Periodic Peak Component (part of the long frame)
> +};
Other enums by that name exist, please make the name more specific.
> +struct FrameMode {
> +};
same
> +typedef struct {
> +} ModeTab;
same
No anonymous structs in headers please, we had issues with that
before and I just eliminated all anonymous structs in headers.
Maybe I will need to eliminate all anonymous structs altogether.
> +#define PPC_SHAPE_CB_SIZE 64
> +#define PPC_SHAPE_LEN_MAX 60
> +#define SUB_AMP_MAX 4500.0
> +#define MULAW_MU 100.0
> +#define GAIN_BITS 8
> +#define AMP_MAX 13000.0
> +#define SUB_GAIN_BITS 5
> +#define WINDOW_TYPE_BITS 4
> +#define PGAIN_MU 200
> +#define LSP_COEFS_MAX 20
> +#define LSP_SPLIT_MAX 4
> +#define CHANNELS_MAX 2
> +#define SUBBLOCKS_MAX 16
> +#define BARK_N_COEF_MAX 4
All of this looks like it should be prefixed as well.
> +/** @note not speed critical, hence not optimized */
> +static inline void memset_float(float *buf, float val, int size)
> +{
> + while (size--)
> + *buf++ = val;
> +}
> +
> +static inline float mulawinv(float y, float clip, float mu)
> +{
> + y = av_clipf(y / clip, -1, 1);
> + return clip * FFSIGN(y) * (exp(log(1 + mu) * fabs(y)) - 1) / mu;
> +}
name prefixes?
> +void ff_tvq_decode_lsp(TwinContext *tctx, int lpc_idx1, uint8_t *lpc_idx2,
> + int lpc_hist_idx, float *lsp, float *hist);
> +void ff_tvq_dec_lpc_spectrum_inv(TwinContext *tctx, float *lsp,
> + enum FrameType ftype, float *lpc);
> +void ff_tvq_imdct_output(TwinContext *tctx, enum FrameType ftype, int wtype,
> + float **out);
> +av_cold int ff_tvq_init_mdct_win(TwinContext *tctx);
> +av_cold void ff_tvq_init_bitstream_params(TwinContext *tctx);
> +av_cold int ff_tvq_decode_close(AVCodecContext *avctx);
The naming is an inconsistent and non-obvious mess IMO. The context
struct uses "Twin", here it's "tvq". I suggest "twinvq" everywhere.
This seems to be missing an attributes.h #include, does it pass
"make check"?
Diego
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel