ref: d85abbe0bd47c8a7cba3db8623f55175d0c69557
dir: /sys/src/cmd/audio/libvorbis/highlevel.h/
/********************************************************************
 *                                                                  *
 * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
 * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
 * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
 * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
 *                                                                  *
 * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2009             *
 * by the Xiph.Org Foundation https://xiph.org/                     *
 *                                                                  *
 ********************************************************************
 function: highlevel encoder setup struct separated out for vorbisenc clarity
 ********************************************************************/
typedef struct highlevel_byblocktype {
  double tone_mask_setting;
  double tone_peaklimit_setting;
  double noise_bias_setting;
  double noise_compand_setting;
} highlevel_byblocktype;
typedef struct highlevel_encode_setup {
  int   set_in_stone;
  const void *setup;
  double base_setting;
  double impulse_noisetune;
  /* bitrate management below all settable */
  float  req;
  int    managed;
  long   bitrate_min;
  long   bitrate_av;
  double bitrate_av_damp;
  long   bitrate_max;
  long   bitrate_reservoir;
  double bitrate_reservoir_bias;
  int impulse_block_p;
  int noise_normalize_p;
  int coupling_p;
  double stereo_point_setting;
  double lowpass_kHz;
  int    lowpass_altered;
  double ath_floating_dB;
  double ath_absolute_dB;
  double amplitude_track_dBpersec;
  double trigger_setting;
  highlevel_byblocktype block[4]; /* padding, impulse, transition, long */
} highlevel_encode_setup;