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

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.     SDL - Simple DirectMedia Layer
  3.     Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002  Sam Lantinga
  4.     This library is free software; you can redistribute it and/or
  5.     modify it under the terms of the GNU Library General Public
  6.     License as published by the Free Software Foundation; either
  7.     version 2 of the License, or (at your option) any later version.
  8.     This library is distributed in the hope that it will be useful,
  9.     but WITHOUT ANY WARRANTY; without even the implied warranty of
  10.     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  11.     Library General Public License for more details.
  12.     You should have received a copy of the GNU Library General Public
  13.     License along with this library; if not, write to the Free
  14.     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  15.     Sam Lantinga
  16.     slouken@libsdl.org
  17. */
  18. #ifdef SAVE_RCSID
  19. static char rcsid =
  20.  "@(#) $Id: SDL_wave.h,v 1.4 2002/04/22 21:38:02 wmay Exp $";
  21. #endif
  22. /* WAVE files are little-endian */
  23. /*******************************************/
  24. /* Define values for Microsoft WAVE format */
  25. /*******************************************/
  26. #define RIFF 0x46464952 /* "RIFF" */
  27. #define WAVE 0x45564157 /* "WAVE" */
  28. #define FACT 0x74636166 /* "fact" */
  29. #define LIST 0x5453494c /* "LIST" */
  30. #define FMT 0x20746D66 /* "fmt " */
  31. #define DATA 0x61746164 /* "data" */
  32. #define PCM_CODE 0x0001
  33. #define MS_ADPCM_CODE 0x0002
  34. #define IMA_ADPCM_CODE 0x0011
  35. #define WAVE_MONO 1
  36. #define WAVE_STEREO 2
  37. /* Normally, these three chunks come consecutively in a WAVE file */
  38. typedef struct WaveFMT {
  39. /* Not saved in the chunk we read:
  40. Uint32 FMTchunk;
  41. Uint32 fmtlen;
  42. */
  43. Uint16 encoding;
  44. Uint16 channels; /* 1 = mono, 2 = stereo */
  45. Uint32 frequency; /* One of 11025, 22050, or 44100 Hz */
  46. Uint32 byterate; /* Average bytes per second */
  47. Uint16 blockalign; /* Bytes per sample block */
  48. Uint16 bitspersample; /* One of 8, 12, 16, or 4 for ADPCM */
  49. } WaveFMT;
  50. /* The general chunk found in the WAVE file */
  51. typedef struct Chunk {
  52. Uint32 magic;
  53. Uint32 length;
  54. Uint8 *data; /* Data includes magic and length */
  55. } Chunk;