Version 0.94.1 of the bladeenc mp3 encoder
[swftools.git] / lib / bladeenc / formatbitstream2.h
diff --git a/lib/bladeenc/formatbitstream2.h b/lib/bladeenc/formatbitstream2.h
new file mode 100644 (file)
index 0000000..68f133d
--- /dev/null
@@ -0,0 +1,101 @@
+/*
+                       (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-12-15  Andre Piotrowski
+
+       -       reformatted
+*/
+
+#ifndef                __FORMATBITSTREAM2__
+#define                __FORMATBITSTREAM2__
+
+
+
+
+
+#define                MAX_CHANNELS                    2
+#define                MAX_GRANULES                    2
+
+
+
+
+
+
+/*____ Structure Definitions ________________________________________________*/
+
+typedef                struct
+                       {
+                               unsigned int                    value;
+                               int                                             length;
+                       }                                       BitHolderElement;
+
+
+typedef                struct
+                       {
+                               int                                             max_elements;
+                               int                                             nrEntries;
+                               BitHolderElement                *element;
+                       }                                       BitHolder;
+
+
+typedef                struct BF_FrameData
+                       {
+                               int                                             frameLength;
+                               int                                             nGranules;
+                               int                                             nChannels;
+                               BitHolder                               header;
+                               BitHolder                               frameSI;
+                               BitHolder                                  channelSI[MAX_CHANNELS];
+                               BitHolder                                 spectrumSI[MAX_GRANULES][MAX_CHANNELS];
+                               BitHolder                               scaleFactors[MAX_GRANULES][MAX_CHANNELS];
+                               BitHolder                                  codedData[MAX_GRANULES][MAX_CHANNELS];
+                               BitHolder                               userSpectrum[MAX_GRANULES][MAX_CHANNELS];
+                               BitHolder                               userFrameData;
+                       }                                       BF_FrameData;
+
+
+typedef                struct BF_FrameResults
+                       {
+                               int                                             SILength;
+                               int                                             mainDataLength;
+                               int                                             nextBackPtr;
+                       }                                       BF_FrameResults;
+
+
+
+
+
+/*____ Function Prototypes __________________________________________________*/
+
+BitHolder                              *initBitHolder (BitHolder *wp, int elements);
+void                                   exitBitHolder (BitHolder *wp);
+void                                   addBits (BitHolder *wp, unsigned int value, int length);
+void                                   writeFrame (BF_FrameData *psFrame, BF_FrameResults *results);
+void                                   initFormatBitstream (void);
+void                                   exitFormatBitstream (void);
+void                                   flushFrame (void);
+
+
+
+
+
+#endif   /* __FORMATBITSTREAM2__ */