> --- 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

Reply via email to