dts.h
上传用户:xjjlds
上传日期:2015-12-05
资源大小:22823k
文件大小:2k
源码类别:

多媒体编程

开发平台:

Visual C++

  1. /*
  2.  * dts.h
  3.  * Copyright (C) 2004 Gildas Bazin <gbazin@videolan.org>
  4.  *
  5.  * This file is part of dtsdec, a free DTS Coherent Acoustics stream decoder.
  6.  * See http://www.videolan.org/dtsdec.html for updates.
  7.  *
  8.  * dtsdec is free software; you can redistribute it and/or modify
  9.  * it under the terms of the GNU General Public License as published by
  10.  * the Free Software Foundation; either version 2 of the License, or
  11.  * (at your option) any later version.
  12.  *
  13.  * dtsdec is distributed in the hope that it will be useful,
  14.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  15.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  16.  * GNU General Public License for more details.
  17.  *
  18.  * You should have received a copy of the GNU General Public License
  19.  * along with this program; if not, write to the Free Software
  20.  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  21.  */
  22. #ifndef DTS_H
  23. #define DTS_H
  24. #define LIBDTS_DOUBLE
  25. # ifdef __cplusplus
  26. extern "C" {
  27. # endif
  28. #if defined(LIBDTS_FIXED)
  29. typedef int32_t sample_t;
  30. typedef int32_t level_t;
  31. #elif defined(LIBDTS_DOUBLE)
  32. typedef double sample_t;
  33. typedef double level_t;
  34. #else
  35. typedef float sample_t;
  36. typedef float level_t;
  37. #endif
  38. typedef struct dts_state_s dts_state_t;
  39. #define DTS_MONO 0
  40. #define DTS_CHANNEL 1
  41. #define DTS_STEREO 2
  42. #define DTS_STEREO_SUMDIFF 3
  43. #define DTS_STEREO_TOTAL 4
  44. #define DTS_3F 5
  45. #define DTS_2F1R 6
  46. #define DTS_3F1R 7
  47. #define DTS_2F2R 8
  48. #define DTS_3F2R 9
  49. #define DTS_4F2R 10
  50. #define DTS_DOLBY 101 /* FIXME */
  51. #define DTS_CHANNEL_MAX  DTS_3F2R /* We don't handle anything above that */
  52. #define DTS_CHANNEL_BITS 6
  53. #define DTS_CHANNEL_MASK 0x3F
  54. #define DTS_LFE 0x80
  55. #define DTS_ADJUST_LEVEL 0x100
  56. dts_state_t * dts_init (uint32_t mm_accel);
  57. int dts_syncinfo (dts_state_t *state, uint8_t * buf, int * flags,
  58.                   int * sample_rate, int * bit_rate, int *frame_length);
  59. int dts_frame (dts_state_t * state, uint8_t * buf, int * flags,
  60.                level_t * level, sample_t bias);
  61. void dts_dynrng (dts_state_t * state,
  62.                  level_t (* call) (level_t, void *), void * data);
  63. int dts_blocks_num (dts_state_t * state);
  64. int dts_block (dts_state_t * state);
  65. sample_t * dts_samples (dts_state_t * state);
  66. void dts_free (dts_state_t * state);
  67. # ifdef __cplusplus
  68. }
  69. # endif
  70. #endif /* DTS_H */