API
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:2k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. The LAME API
  2. This is the simple interface to the lightweight encoding library
  3. obtained by compiling libmp3lame.a without defining any of
  4. the following extra features:
  5. #define HAVEMPGLIB   to use mpglib's mp3 *decoding* capibility
  6. #define AMIGA_MPEGA  to use mpega.library (Amiga), don't use with HAVEMPGLIB
  7. #define BRHIST       to allow the display of the VBR historgram
  8. #define LIBSNDFILE   to use Erik de Castro Lopo's libsndfile
  9. #define LAMESNDFILE  to use LAME's minimial internal sndfile I/O
  10. #define LAMEPARSE    to use LAME's command line parsing/option setting routines
  11. #define HAVEGTK      to compile in support for the GTK mp3 frame analyzer
  12. To use any of the above features, see lame.h more for details.
  13. For an example of a simple command line interface to lame, see
  14. main.c
  15. =========================================================================
  16. 1. (optional) Get the version number of the encoder, if you are interested.  
  17.    lame_version(char *);
  18. 2. Initialize the encoder.  sets default for all encoder parameters,
  19. returns pointer to encoder parameters listed above 
  20.    #include "lame.h"
  21.    lame_global_flags gf;
  22.    lame_init(%gf);
  23. Then override various default settings as necessary, for example:
  24.    gf.num_channels=2;
  25.    gf.in_samplerate = 44100;
  26.    gf.brate = 128;
  27.    gf.mode = 0,1 or 3      /* stereo, jstereo, mono */
  28.    gf.quality = 2,5 or 9       /* 2=high, 5=medium 9=low */
  29. see lame.h for the complete list of options.
  30. 3. sets more internal configuration based on data provided above:
  31.    lame_init_params(&gf);
  32. 4. Encode some data.  input pcm data, output (maybe) mp3 frames.
  33. This routine handles all buffering, resampling and filtering for you.
  34. The required mp3buffer_size can be computed from num_samples, 
  35. samplerate and encoding rate, but here is a worst case estimate:
  36. mp3buffer_size (in bytes) = 1.25*num_samples + 7200
  37. The return code = number of bytes output in mp3buffer.  This can be 0.
  38. If it is -1, an error occured.  
  39.    int lame_encode_buffer(lame_global_flags *gfp,
  40.          short int leftpcm[], short int rightpcm[],
  41.          int num_samples,char *mp3buffer,int  mp3buffer_size);
  42. 5. lame_encode_finish will flush the buffers and may return a 
  43. final few mp3 frames.  mp3buffer should be at least 7200 bytes.
  44. return code = number of bytes output to mp3buffer.  This can be 0.
  45.    int lame_encode_finish(lame_global_flags *gfp,char *mp3buffer);