--- /dev/null
+/*
+ (c) Copyright 1998-2000 - Tord Jansson
+ ======================================
+
+ This file is part of the BladeEnc MP3 Encoder, based on
+ ISO's reference code for MPEG Layer 3 compression, and might
+ contain smaller or larger sections that are directly taken
+ from ISO's reference code.
+
+ All changes to the ISO reference code herein are either
+ copyrighted by Tord Jansson (tord.jansson@swipnet.se)
+ or sublicensed to Tord Jansson by a third party.
+
+ BladeEnc is free software; you can redistribute this file
+ and/or modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+
+
+ ------------ Changes ------------
+
+ 2000-02-15 Pirandot
+
+ - reformatted, used 'static', less parameters
+
+ 2000-12-03 ap
+ - adapted according to changes to "loop.h"
+*/
+
+#ifndef __LOOP_PVT__
+#define __LOOP_PVT__
+
+
+
+
+
+static int outer_loop
+(
+ int max_bits,
+ frame_params *fr_ps
+);
+
+static int needed_bits_for_storing_scalefactors
+(
+ frame_params *fr_ps
+);
+
+static void calc_noise (void);
+
+static int loop_break (void);
+
+static int amplify
+(
+ int iteration
+);
+
+static int INLINE cutting_crew (FLOAT in);
+
+static void quantize (void);
+
+static void partial_quantize (void);
+
+static int bin_search_StepSize
+(
+ int desired_rate,
+ double start
+);
+
+
+
+/* ------------ bit counting -------------------------------------------------------- */
+
+
+
+static int count_bits (void);
+
+static int count_bits_short (void);
+
+static int count_bits_long (void);
+
+static void choose_table_long
+(
+ unsigned start,
+ unsigned end,
+ unsigned max,
+ unsigned *table,
+ unsigned *bit_sum
+);
+
+static void choose_table_short
+(
+ unsigned start_sfb,
+ unsigned end_sfb,
+ unsigned max,
+ unsigned *table,
+ unsigned *bit_sum
+);
+
+
+
+/* ------------ Huffmania ----------------------------------------------------------- */
+
+
+
+static void single_Huffman
+(
+ unsigned start,
+ unsigned end,
+/* unsigned table0, == 1 */
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void double_Huffman
+(
+ unsigned start,
+ unsigned end,
+ unsigned table0, /* 2, 5, 13 */
+ unsigned table1, /* 3, 6, 15 */
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void triple_Huffman
+(
+ unsigned start,
+ unsigned end,
+ unsigned table0, /* 7, 10 */
+ unsigned table1, /* 8, 11 */
+ unsigned table2, /* 9, 12 */
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void triple_Huffman_2
+(
+ unsigned start,
+ unsigned end,
+/* unsigned table0, == 13 */
+/* unsigned table1, == 15 */
+/* unsigned table2, == 24 */
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void double_Huffman_2 /* Escape tables */
+(
+ unsigned start,
+ unsigned end,
+ unsigned table0, /* 16... */
+ unsigned table1, /* 24... */
+ unsigned *choice,
+ unsigned *sum
+);
+
+
+
+/* ------------ the struggle continues ---------------------------------------------- */
+
+
+
+static void tiny_single_Huffman
+(
+ unsigned start,
+ unsigned end,
+#if ORG_HUFFMAN_CODING
+ unsigned table0,
+#else
+/* unsigned table0, == 1 */
+#endif
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void tiny_double_Huffman
+(
+ unsigned start,
+ unsigned end,
+ unsigned table0, /* 2, 5, 13 */
+ unsigned table1, /* 3, 6, 15 */
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void tiny_triple_Huffman
+(
+ unsigned start,
+ unsigned end,
+ unsigned table0, /* 7, 10 */
+ unsigned table1, /* 8, 11 */
+ unsigned table2, /* 9, 12 */
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void tiny_triple_Huffman_2
+(
+ unsigned start,
+ unsigned end,
+/* unsigned table0, == 13 */
+/* unsigned table1, == 15 */
+/* unsigned table2, == 24 */
+ unsigned *choice,
+ unsigned *sum
+);
+
+static void tiny_double_Huffman_2 /* Escape tables */
+(
+ unsigned start,
+ unsigned end,
+ unsigned table0, /* 16... */
+ unsigned table1, /* 24... */
+ unsigned *choice,
+ unsigned *sum
+);
+
+
+
+
+
+#endif /* __LOOP_PVT__ */