@ -68,6 +68,7 @@ typedef struct RiceContext {
enum CodingMode coding_mode ;
enum CodingMode coding_mode ;
int porder ;
int porder ;
int params [ MAX_PARTITIONS ] ;
int params [ MAX_PARTITIONS ] ;
uint32_t udata [ FLAC_MAX_BLOCKSIZE ] ;
} RiceContext ;
} RiceContext ;
typedef struct FlacSubframe {
typedef struct FlacSubframe {
@ -647,7 +648,6 @@ static uint64_t calc_rice_params(RiceContext *rc, int pmin, int pmax,
uint64_t bits [ MAX_PARTITION_ORDER + 1 ] ;
uint64_t bits [ MAX_PARTITION_ORDER + 1 ] ;
int opt_porder ;
int opt_porder ;
RiceContext tmp_rc ;
RiceContext tmp_rc ;
uint32_t * udata ;
uint64_t sums [ MAX_PARTITIONS ] ;
uint64_t sums [ MAX_PARTITIONS ] ;
av_assert1 ( pmin > = 0 & & pmin < = MAX_PARTITION_ORDER ) ;
av_assert1 ( pmin > = 0 & & pmin < = MAX_PARTITION_ORDER ) ;
@ -656,11 +656,10 @@ static uint64_t calc_rice_params(RiceContext *rc, int pmin, int pmax,
tmp_rc . coding_mode = rc - > coding_mode ;
tmp_rc . coding_mode = rc - > coding_mode ;
udata = av_malloc_array ( n , sizeof ( uint32_t ) ) ;
for ( i = 0 ; i < n ; i + + )
for ( i = 0 ; i < n ; i + + )
udata [ i ] = ( 2 * data [ i ] ) ^ ( data [ i ] > > 31 ) ;
rc - > udata [ i ] = ( 2 * data [ i ] ) ^ ( data [ i ] > > 31 ) ;
calc_sum_top ( pmax , udata , n , pred_order , sums ) ;
calc_sum_top ( pmax , rc - > udata , n , pred_order , sums ) ;
opt_porder = pmin ;
opt_porder = pmin ;
bits [ pmin ] = UINT32_MAX ;
bits [ pmin ] = UINT32_MAX ;
@ -675,7 +674,6 @@ static uint64_t calc_rice_params(RiceContext *rc, int pmin, int pmax,
calc_sum_next ( - - i , sums ) ;
calc_sum_next ( - - i , sums ) ;
}
}
av_freep ( & udata ) ;
return bits [ opt_porder ] ;
return bits [ opt_porder ] ;
}
}