Index: libhb/deca52.c =================================================================== --- libhb/deca52.c (revision 1055) +++ libhb/deca52.c (working copy) @@ -56,6 +56,21 @@ static hb_buffer_t * Decode( hb_work_object_t * w ); /*********************************************************************** + * dynrng_call + *********************************************************************** + * Boosts soft audio + **********************************************************************/ +static sample_t dynrng_call (sample_t c, void *data) +{ + double *level = (double *)data; + float levelToUse = (float)*level; + if(c > 1.0 || levelToUse <= 1.0) + return powf(c, levelToUse); + else + return c; +} + +/*********************************************************************** * hb_work_deca52_init *********************************************************************** * Allocate the work object, initialize liba52 @@ -200,7 +215,9 @@ /* Feed liba52 */ a52_frame( pv->state, pv->frame, &pv->flags_out, &pv->level, 0 ); - + int dynamic_compression_level = 1; + a52_dynrng( pv->state, dynrng_call, &dynamic_compression_level); + /* 6 blocks per frame, 256 samples per block, channelsused channels */ buf = hb_buffer_init( 6 * 256 * pv->out_discrete_channels * sizeof( float ) ); if (pts == -1)