formatbitstream2.h
上传用户:bjsgzm
上传日期:2007-01-08
资源大小:256k
文件大小:2k
源码类别:

mpeg/mp3

开发平台:

Visual C++

  1. /*
  2. (c) Copyright 1998, 1999 - Tord Jansson
  3. =======================================
  4. This file is part of the BladeEnc MP3 Encoder, based on
  5. ISO's reference code for MPEG Layer 3 compression, and might
  6. contain smaller or larger sections that are directly taken
  7. from ISO's reference code.
  8. All changes to the ISO reference code herein are either
  9. copyrighted by Tord Jansson (tord.jansson@swipnet.se)
  10. or sublicensed to Tord Jansson by a third party.
  11. BladeEnc is free software; you can redistribute this file
  12. and/or modify it under the terms of the GNU Lesser General Public
  13. License as published by the Free Software Foundation; either
  14. version 2.1 of the License, or (at your option) any later version.
  15. */
  16. #ifndef FORMATBITSTREAM2_DOT_H
  17. #define FORMATBITSTREAM2_DOT_H
  18. #define MAX_CHANNELS 2
  19. #define MAX_GRANULES 2
  20. /*____ Structure Definitions ________________________________________________*/
  21. typedef struct
  22. {
  23.   unsigned int value;
  24.   int   length;
  25. } BitHolderElement;
  26. typedef struct
  27. {
  28.   int max_elements;
  29.   int nrEntries;
  30.   BitHolderElement *element;
  31. } BitHolder;
  32. typedef struct BF_FrameData
  33. {
  34.     int         frameLength;
  35.     int         nGranules;
  36.     int         nChannels;
  37.     BitHolder header;
  38.     BitHolder frameSI;
  39.     BitHolder channelSI[MAX_CHANNELS];
  40.     BitHolder spectrumSI[MAX_GRANULES][MAX_CHANNELS];
  41.     BitHolder scaleFactors[MAX_GRANULES][MAX_CHANNELS];
  42.     BitHolder codedData[MAX_GRANULES][MAX_CHANNELS];
  43.     BitHolder userSpectrum[MAX_GRANULES][MAX_CHANNELS];
  44.     BitHolder userFrameData;
  45. } BF_FrameData;
  46. typedef struct BF_FrameResults
  47. {
  48.     int SILength;
  49.     int mainDataLength;
  50.     int nextBackPtr;
  51. } BF_FrameResults;
  52. /*____ Function Prototypes __________________________________________________*/
  53. BitHolder * initBitHolder( BitHolder * wp, int elements );
  54. void exitBitHolder( BitHolder * wp );
  55. void addBits( BitHolder * wp, unsigned int value, int length );
  56. void writeFrame( BF_FrameData *psFrame, BF_FrameResults *results );
  57. void initFormatBitstream( void );
  58. void exitFormatBitstream( void );
  59. #endif