/* Feed liba52 */
a52_frame( pv->state, pv->frame, &pv->flags_out, &pv->level, 0 );
- if ( pv->dynamic_range_compression > 1.0 )
+ /* If a user specifies strong dynamic range compression (>1), adjust it.
+ If a user specifies default dynamic range compression (1), leave it alone.
+ If a user specifies no dynamic range compression (0), call a null function. */
+ if( pv->dynamic_range_compression > 1.0 )
{
- a52_dynrng( pv->state, dynrng_call, &pv->dynamic_range_compression);
+ a52_dynrng( pv->state, dynrng_call, &pv->dynamic_range_compression );
+ }
+ else if( !pv->dynamic_range_compression )
+ {
+ a52_dynrng( pv->state, NULL, NULL );
}
/* 6 blocks per frame, 256 samples per block, channelsused channels */
}
}
- if ( audio->config.out.dynamic_range_compression > 1 && (audio->config.out.codec != HB_ACODEC_AC3) && (audio->config.out.codec != HB_ACODEC_DCA))
+ if ( audio->config.out.dynamic_range_compression && (audio->config.out.codec != HB_ACODEC_AC3) && (audio->config.out.codec != HB_ACODEC_DCA))
{
hb_log(" + dynamic range compression: %f", audio->config.out.dynamic_range_compression);
}