mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2025-01-15 11:51:33 +00:00
Allow clean initialization of lut_status array by changing type to signed int.
Originally committed as revision 25710 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
361d275879
commit
4051ae7617
@ -203,7 +203,7 @@ typedef struct {
|
|||||||
unsigned int num_blocks; ///< number of blocks used in the current frame
|
unsigned int num_blocks; ///< number of blocks used in the current frame
|
||||||
unsigned int s_max; ///< maximum Rice parameter allowed in entropy coding
|
unsigned int s_max; ///< maximum Rice parameter allowed in entropy coding
|
||||||
uint8_t *bgmc_lut; ///< pointer at lookup tables used for BGMC
|
uint8_t *bgmc_lut; ///< pointer at lookup tables used for BGMC
|
||||||
unsigned int *bgmc_lut_status; ///< pointer at lookup table status flags used for BGMC
|
int *bgmc_lut_status; ///< pointer at lookup table status flags used for BGMC
|
||||||
int ltp_lag_length; ///< number of bits used for ltp lag value
|
int ltp_lag_length; ///< number of bits used for ltp lag value
|
||||||
int *use_ltp; ///< contains use_ltp flags for all channels
|
int *use_ltp; ///< contains use_ltp flags for all channels
|
||||||
int *ltp_lag; ///< contains ltp lag values for all channels
|
int *ltp_lag; ///< contains ltp lag values for all channels
|
||||||
@ -749,7 +749,7 @@ static int read_var_block_data(ALSDecContext *ctx, ALSBlockData *bd)
|
|||||||
|
|
||||||
// read all residuals
|
// read all residuals
|
||||||
if (sconf->bgmc) {
|
if (sconf->bgmc) {
|
||||||
unsigned int delta[8];
|
int delta[8];
|
||||||
unsigned int k [8];
|
unsigned int k [8];
|
||||||
unsigned int b = av_clip((av_ceil_log2(bd->block_length) - 3) >> 1, 0, 5);
|
unsigned int b = av_clip((av_ceil_log2(bd->block_length) - 3) >> 1, 0, 5);
|
||||||
unsigned int i = start;
|
unsigned int i = start;
|
||||||
|
@ -426,8 +426,8 @@ static const uint16_t * const cf_table[16] = {
|
|||||||
|
|
||||||
/** Initialize a given lookup table using a given delta
|
/** Initialize a given lookup table using a given delta
|
||||||
*/
|
*/
|
||||||
static void bgmc_lut_fillp(uint8_t *lut, unsigned int *lut_status,
|
static void bgmc_lut_fillp(uint8_t *lut, int *lut_status,
|
||||||
unsigned int delta)
|
int delta)
|
||||||
{
|
{
|
||||||
unsigned int sx, i;
|
unsigned int sx, i;
|
||||||
|
|
||||||
@ -448,8 +448,8 @@ static void bgmc_lut_fillp(uint8_t *lut, unsigned int *lut_status,
|
|||||||
|
|
||||||
/** Retune the index of a suitable lookup table for a given delta
|
/** Retune the index of a suitable lookup table for a given delta
|
||||||
*/
|
*/
|
||||||
static uint8_t* bgmc_lut_getp(uint8_t *lut, unsigned int *lut_status,
|
static uint8_t* bgmc_lut_getp(uint8_t *lut, int *lut_status,
|
||||||
unsigned int delta)
|
int delta)
|
||||||
{
|
{
|
||||||
unsigned int i = av_clip(delta, 0, LUT_BUFF - 1);
|
unsigned int i = av_clip(delta, 0, LUT_BUFF - 1);
|
||||||
|
|
||||||
@ -464,7 +464,7 @@ static uint8_t* bgmc_lut_getp(uint8_t *lut, unsigned int *lut_status,
|
|||||||
|
|
||||||
/** Initialize the lookup table arrays
|
/** Initialize the lookup table arrays
|
||||||
*/
|
*/
|
||||||
int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, unsigned int **cf_lut_status)
|
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 = av_malloc(sizeof(*cf_lut ) * LUT_BUFF * 16 * LUT_SIZE);
|
||||||
*cf_lut_status = av_malloc(sizeof(*cf_lut_status) * LUT_BUFF);
|
*cf_lut_status = av_malloc(sizeof(*cf_lut_status) * LUT_BUFF);
|
||||||
@ -473,6 +473,9 @@ int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, unsigned int **cf_lut_
|
|||||||
ff_bgmc_end(cf_lut, cf_lut_status);
|
ff_bgmc_end(cf_lut, cf_lut_status);
|
||||||
av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n");
|
av_log(avctx, AV_LOG_ERROR, "Allocating buffer memory failed.\n");
|
||||||
return AVERROR(ENOMEM);
|
return AVERROR(ENOMEM);
|
||||||
|
} else {
|
||||||
|
// initialize lut_status buffer to a value never used to compare against
|
||||||
|
memset(*cf_lut_status, -1, sizeof(*cf_lut_status) * LUT_BUFF);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@ -481,7 +484,7 @@ int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, unsigned int **cf_lut_
|
|||||||
|
|
||||||
/** Release the lookup table arrays
|
/** Release the lookup table arrays
|
||||||
*/
|
*/
|
||||||
void ff_bgmc_end(uint8_t **cf_lut, unsigned int **cf_lut_status)
|
void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status)
|
||||||
{
|
{
|
||||||
av_freep(cf_lut);
|
av_freep(cf_lut);
|
||||||
av_freep(cf_lut_status);
|
av_freep(cf_lut_status);
|
||||||
@ -510,9 +513,9 @@ void ff_bgmc_decode_end(GetBitContext *gb)
|
|||||||
/** Read and decode a block Gilbert-Moore coded symbol
|
/** Read and decode a block Gilbert-Moore coded symbol
|
||||||
*/
|
*/
|
||||||
void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
|
void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
|
||||||
unsigned int delta, unsigned int sx,
|
int delta, unsigned int sx,
|
||||||
unsigned int *h, unsigned int *l, unsigned int *v,
|
unsigned int *h, unsigned int *l, unsigned int *v,
|
||||||
uint8_t *cf_lut, unsigned int *cf_lut_status)
|
uint8_t *cf_lut, int *cf_lut_status)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
unsigned int i;
|
||||||
uint8_t *lut = bgmc_lut_getp(cf_lut, cf_lut_status, delta);
|
uint8_t *lut = bgmc_lut_getp(cf_lut, cf_lut_status, delta);
|
||||||
|
@ -34,10 +34,10 @@
|
|||||||
#include "get_bits.h"
|
#include "get_bits.h"
|
||||||
|
|
||||||
|
|
||||||
int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, unsigned int **cf_lut_status);
|
int ff_bgmc_init(AVCodecContext *avctx, uint8_t **cf_lut, int **cf_lut_status);
|
||||||
|
|
||||||
|
|
||||||
void ff_bgmc_end(uint8_t **cf_lut, unsigned int **cf_lut_status);
|
void ff_bgmc_end(uint8_t **cf_lut, int **cf_lut_status);
|
||||||
|
|
||||||
|
|
||||||
void ff_bgmc_decode_init(GetBitContext *gb,
|
void ff_bgmc_decode_init(GetBitContext *gb,
|
||||||
@ -48,9 +48,9 @@ void ff_bgmc_decode_end(GetBitContext *gb);
|
|||||||
|
|
||||||
|
|
||||||
void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
|
void ff_bgmc_decode(GetBitContext *gb, unsigned int num, int32_t *dst,
|
||||||
unsigned int delta, unsigned int sx,
|
int delta, unsigned int sx,
|
||||||
unsigned int *h, unsigned int *l, unsigned int *v,
|
unsigned int *h, unsigned int *l, unsigned int *v,
|
||||||
uint8_t *cf_lut, unsigned int *cf_lut_status);
|
uint8_t *cf_lut, int *cf_lut_status);
|
||||||
|
|
||||||
|
|
||||||
#endif /* AVCODEC_BGMC_H */
|
#endif /* AVCODEC_BGMC_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user