/* * 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-2002 * by the Xiph.Org Foundation http://www.xiph.org/ */ package org.xiph.libvorbis; import static org.xiph.libvorbis.vorbis_constants.integer_constants.*; class bitrate_manager_state { int managed; int avg_reservoir; // long int minmax_reservoir; // long int avg_bitsper; // long int min_bitsper; // long int max_bitsper; // long int short_per_long; // long float avgfloat; // double vorbis_block vb; int choice; public bitrate_manager_state(vorbis_info vi) { codec_setup_info ci = vi.codec_setup; bitrate_manager_info bi = ci.bi; if (bi.reservoir_bits > 0) { int ratesamples = vi.rate; int halfsamples = ci.blocksizes[0] >> 1; short_per_long = ci.blocksizes[1] / ci.blocksizes[0]; managed = 1; avg_bitsper = new Double(Math.rint(1. * bi.avg_rate * halfsamples / ratesamples)).intValue(); min_bitsper = new Double(Math.rint(1. * bi.min_rate * halfsamples / ratesamples)).intValue(); max_bitsper = new Double(Math.rint(1. * bi.max_rate * halfsamples / ratesamples)).intValue(); avgfloat = PACKETBLOBS / 2; // not a necessary fix, but one that leads to a more balanced typical initialization { int desired_fill = new Float(bi.reservoir_bits * bi.reservoir_bias).intValue(); // long minmax_reservoir = desired_fill; avg_reservoir = desired_fill; } } } }