Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | RSS feed

  1. /********************************************************************
  2.  *                                                                  *
  3.  * THIS FILE IS PART OF THE OggVorbis SOFTWARE CODEC SOURCE CODE.   *
  4.  * USE, DISTRIBUTION AND REPRODUCTION OF THIS LIBRARY SOURCE IS     *
  5.  * GOVERNED BY A BSD-STYLE SOURCE LICENSE INCLUDED WITH THIS SOURCE *
  6.  * IN 'COPYING'. PLEASE READ THESE TERMS BEFORE DISTRIBUTING.       *
  7.  *                                                                  *
  8.  * THE OggVorbis SOURCE CODE IS (C) COPYRIGHT 1994-2007             *
  9.  * by the Xiph.Org Foundation https://xiph.org/                     *
  10.  *                                                                  *
  11.  ********************************************************************
  12.  
  13.  function: toplevel residue templates for 32/44.1/48kHz uncoupled
  14.  
  15.  ********************************************************************/
  16.  
  17. #include "vorbis/codec.h"
  18. #include "backends.h"
  19. #include "books/uncoupled/res_books_uncoupled.h"
  20.  
  21. /***** residue backends *********************************************/
  22.  
  23.  
  24. static const vorbis_info_residue0 _residue_44_low_un={
  25.   0,-1, -1, 8,-1,-1,
  26.   {0},
  27.   {-1},
  28.   {  0,  1,  1,  2,  2,  4, 28},
  29.   { -1, 25, -1, 45, -1, -1, -1}
  30. };
  31.  
  32. static const vorbis_info_residue0 _residue_44_mid_un={
  33.   0,-1, -1, 10,-1,-1,
  34.   /* 0   1   2   3   4   5   6   7   8   9 */
  35.   {0},
  36.   {-1},
  37.   {  0,  1,  1,  2,  2,  4,  4, 16, 60},
  38.   { -1, 30, -1, 50, -1, 80, -1, -1, -1}
  39. };
  40.  
  41. static const vorbis_info_residue0 _residue_44_hi_un={
  42.   0,-1, -1, 10,-1,-1,
  43.   /* 0   1   2   3   4   5   6   7   8   9 */
  44.   {0},
  45.   {-1},
  46.   {  0,  1,  2,  4,  8, 16, 32, 71,157},
  47.   { -1, -1, -1, -1, -1, -1, -1, -1, -1}
  48. };
  49.  
  50. /* mapping conventions:
  51.    only one submap (this would change for efficient 5.1 support for example)*/
  52. /* Four psychoacoustic profiles are used, one for each blocktype */
  53. static const vorbis_info_mapping0 _map_nominal_u[2]={
  54.   {1, {0,0,0,0,0,0}, {0}, {0}, 0,{0},{0}},
  55.   {1, {0,0,0,0,0,0}, {1}, {1}, 0,{0},{0}}
  56. };
  57.  
  58. static const static_bookblock _resbook_44u_n1={
  59.   {
  60.     {0},
  61.     {0,0,&_44un1__p1_0},
  62.     {0,0,&_44un1__p2_0},
  63.     {0,0,&_44un1__p3_0},
  64.     {0,0,&_44un1__p4_0},
  65.     {0,0,&_44un1__p5_0},
  66.     {&_44un1__p6_0,&_44un1__p6_1},
  67.     {&_44un1__p7_0,&_44un1__p7_1,&_44un1__p7_2}
  68.    }
  69. };
  70. static const static_bookblock _resbook_44u_0={
  71.   {
  72.     {0},
  73.     {0,0,&_44u0__p1_0},
  74.     {0,0,&_44u0__p2_0},
  75.     {0,0,&_44u0__p3_0},
  76.     {0,0,&_44u0__p4_0},
  77.     {0,0,&_44u0__p5_0},
  78.     {&_44u0__p6_0,&_44u0__p6_1},
  79.     {&_44u0__p7_0,&_44u0__p7_1,&_44u0__p7_2}
  80.    }
  81. };
  82. static const static_bookblock _resbook_44u_1={
  83.   {
  84.     {0},
  85.     {0,0,&_44u1__p1_0},
  86.     {0,0,&_44u1__p2_0},
  87.     {0,0,&_44u1__p3_0},
  88.     {0,0,&_44u1__p4_0},
  89.     {0,0,&_44u1__p5_0},
  90.     {&_44u1__p6_0,&_44u1__p6_1},
  91.     {&_44u1__p7_0,&_44u1__p7_1,&_44u1__p7_2}
  92.    }
  93. };
  94. static const static_bookblock _resbook_44u_2={
  95.   {
  96.     {0},
  97.     {0,0,&_44u2__p1_0},
  98.     {0,0,&_44u2__p2_0},
  99.     {0,0,&_44u2__p3_0},
  100.     {0,0,&_44u2__p4_0},
  101.     {0,0,&_44u2__p5_0},
  102.     {&_44u2__p6_0,&_44u2__p6_1},
  103.     {&_44u2__p7_0,&_44u2__p7_1,&_44u2__p7_2}
  104.    }
  105. };
  106. static const static_bookblock _resbook_44u_3={
  107.   {
  108.     {0},
  109.     {0,0,&_44u3__p1_0},
  110.     {0,0,&_44u3__p2_0},
  111.     {0,0,&_44u3__p3_0},
  112.     {0,0,&_44u3__p4_0},
  113.     {0,0,&_44u3__p5_0},
  114.     {&_44u3__p6_0,&_44u3__p6_1},
  115.     {&_44u3__p7_0,&_44u3__p7_1,&_44u3__p7_2}
  116.    }
  117. };
  118. static const static_bookblock _resbook_44u_4={
  119.   {
  120.     {0},
  121.     {0,0,&_44u4__p1_0},
  122.     {0,0,&_44u4__p2_0},
  123.     {0,0,&_44u4__p3_0},
  124.     {0,0,&_44u4__p4_0},
  125.     {0,0,&_44u4__p5_0},
  126.     {&_44u4__p6_0,&_44u4__p6_1},
  127.     {&_44u4__p7_0,&_44u4__p7_1,&_44u4__p7_2}
  128.    }
  129. };
  130. static const static_bookblock _resbook_44u_5={
  131.   {
  132.     {0},
  133.     {0,0,&_44u5__p1_0},
  134.     {0,0,&_44u5__p2_0},
  135.     {0,0,&_44u5__p3_0},
  136.     {0,0,&_44u5__p4_0},
  137.     {0,0,&_44u5__p5_0},
  138.     {0,0,&_44u5__p6_0},
  139.     {&_44u5__p7_0,&_44u5__p7_1},
  140.     {&_44u5__p8_0,&_44u5__p8_1},
  141.     {&_44u5__p9_0,&_44u5__p9_1,&_44u5__p9_2}
  142.    }
  143. };
  144. static const static_bookblock _resbook_44u_6={
  145.   {
  146.     {0},
  147.     {0,0,&_44u6__p1_0},
  148.     {0,0,&_44u6__p2_0},
  149.     {0,0,&_44u6__p3_0},
  150.     {0,0,&_44u6__p4_0},
  151.     {0,0,&_44u6__p5_0},
  152.     {0,0,&_44u6__p6_0},
  153.     {&_44u6__p7_0,&_44u6__p7_1},
  154.     {&_44u6__p8_0,&_44u6__p8_1},
  155.     {&_44u6__p9_0,&_44u6__p9_1,&_44u6__p9_2}
  156.    }
  157. };
  158. static const static_bookblock _resbook_44u_7={
  159.   {
  160.     {0},
  161.     {0,0,&_44u7__p1_0},
  162.     {0,0,&_44u7__p2_0},
  163.     {0,0,&_44u7__p3_0},
  164.     {0,0,&_44u7__p4_0},
  165.     {0,0,&_44u7__p5_0},
  166.     {0,0,&_44u7__p6_0},
  167.     {&_44u7__p7_0,&_44u7__p7_1},
  168.     {&_44u7__p8_0,&_44u7__p8_1},
  169.     {&_44u7__p9_0,&_44u7__p9_1,&_44u7__p9_2}
  170.    }
  171. };
  172. static const static_bookblock _resbook_44u_8={
  173.   {
  174.     {0},
  175.     {0,0,&_44u8_p1_0},
  176.     {0,0,&_44u8_p2_0},
  177.     {0,0,&_44u8_p3_0},
  178.     {0,0,&_44u8_p4_0},
  179.     {&_44u8_p5_0,&_44u8_p5_1},
  180.     {&_44u8_p6_0,&_44u8_p6_1},
  181.     {&_44u8_p7_0,&_44u8_p7_1},
  182.     {&_44u8_p8_0,&_44u8_p8_1},
  183.     {&_44u8_p9_0,&_44u8_p9_1,&_44u8_p9_2}
  184.    }
  185. };
  186. static const static_bookblock _resbook_44u_9={
  187.   {
  188.     {0},
  189.     {0,0,&_44u9_p1_0},
  190.     {0,0,&_44u9_p2_0},
  191.     {0,0,&_44u9_p3_0},
  192.     {0,0,&_44u9_p4_0},
  193.     {&_44u9_p5_0,&_44u9_p5_1},
  194.     {&_44u9_p6_0,&_44u9_p6_1},
  195.     {&_44u9_p7_0,&_44u9_p7_1},
  196.     {&_44u9_p8_0,&_44u9_p8_1},
  197.     {&_44u9_p9_0,&_44u9_p9_1,&_44u9_p9_2}
  198.    }
  199. };
  200.  
  201. static const vorbis_residue_template _res_44u_n1[]={
  202.   {1,0,32,  &_residue_44_low_un,
  203.    &_huff_book__44un1__short,&_huff_book__44un1__short,
  204.    &_resbook_44u_n1,&_resbook_44u_n1},
  205.  
  206.   {1,0,32,  &_residue_44_low_un,
  207.    &_huff_book__44un1__long,&_huff_book__44un1__long,
  208.    &_resbook_44u_n1,&_resbook_44u_n1}
  209. };
  210. static const vorbis_residue_template _res_44u_0[]={
  211.   {1,0,16,  &_residue_44_low_un,
  212.    &_huff_book__44u0__short,&_huff_book__44u0__short,
  213.    &_resbook_44u_0,&_resbook_44u_0},
  214.  
  215.   {1,0,32,  &_residue_44_low_un,
  216.    &_huff_book__44u0__long,&_huff_book__44u0__long,
  217.    &_resbook_44u_0,&_resbook_44u_0}
  218. };
  219. static const vorbis_residue_template _res_44u_1[]={
  220.   {1,0,16,  &_residue_44_low_un,
  221.    &_huff_book__44u1__short,&_huff_book__44u1__short,
  222.    &_resbook_44u_1,&_resbook_44u_1},
  223.  
  224.   {1,0,32,  &_residue_44_low_un,
  225.    &_huff_book__44u1__long,&_huff_book__44u1__long,
  226.    &_resbook_44u_1,&_resbook_44u_1}
  227. };
  228. static const vorbis_residue_template _res_44u_2[]={
  229.   {1,0,16,  &_residue_44_low_un,
  230.    &_huff_book__44u2__short,&_huff_book__44u2__short,
  231.    &_resbook_44u_2,&_resbook_44u_2},
  232.  
  233.   {1,0,32,  &_residue_44_low_un,
  234.    &_huff_book__44u2__long,&_huff_book__44u2__long,
  235.    &_resbook_44u_2,&_resbook_44u_2}
  236. };
  237. static const vorbis_residue_template _res_44u_3[]={
  238.   {1,0,16,  &_residue_44_low_un,
  239.    &_huff_book__44u3__short,&_huff_book__44u3__short,
  240.    &_resbook_44u_3,&_resbook_44u_3},
  241.  
  242.   {1,0,32,  &_residue_44_low_un,
  243.    &_huff_book__44u3__long,&_huff_book__44u3__long,
  244.    &_resbook_44u_3,&_resbook_44u_3}
  245. };
  246. static const vorbis_residue_template _res_44u_4[]={
  247.   {1,0,16,  &_residue_44_low_un,
  248.    &_huff_book__44u4__short,&_huff_book__44u4__short,
  249.    &_resbook_44u_4,&_resbook_44u_4},
  250.  
  251.   {1,0,32,  &_residue_44_low_un,
  252.    &_huff_book__44u4__long,&_huff_book__44u4__long,
  253.    &_resbook_44u_4,&_resbook_44u_4}
  254. };
  255.  
  256. static const vorbis_residue_template _res_44u_5[]={
  257.   {1,0,16,  &_residue_44_mid_un,
  258.    &_huff_book__44u5__short,&_huff_book__44u5__short,
  259.    &_resbook_44u_5,&_resbook_44u_5},
  260.  
  261.   {1,0,32,  &_residue_44_mid_un,
  262.    &_huff_book__44u5__long,&_huff_book__44u5__long,
  263.    &_resbook_44u_5,&_resbook_44u_5}
  264. };
  265.  
  266. static const vorbis_residue_template _res_44u_6[]={
  267.   {1,0,16,  &_residue_44_mid_un,
  268.    &_huff_book__44u6__short,&_huff_book__44u6__short,
  269.    &_resbook_44u_6,&_resbook_44u_6},
  270.  
  271.   {1,0,32,  &_residue_44_mid_un,
  272.    &_huff_book__44u6__long,&_huff_book__44u6__long,
  273.    &_resbook_44u_6,&_resbook_44u_6}
  274. };
  275.  
  276. static const vorbis_residue_template _res_44u_7[]={
  277.   {1,0,16,  &_residue_44_mid_un,
  278.    &_huff_book__44u7__short,&_huff_book__44u7__short,
  279.    &_resbook_44u_7,&_resbook_44u_7},
  280.  
  281.   {1,0,32,  &_residue_44_mid_un,
  282.    &_huff_book__44u7__long,&_huff_book__44u7__long,
  283.    &_resbook_44u_7,&_resbook_44u_7}
  284. };
  285.  
  286. static const vorbis_residue_template _res_44u_8[]={
  287.   {1,0,16,  &_residue_44_hi_un,
  288.    &_huff_book__44u8__short,&_huff_book__44u8__short,
  289.    &_resbook_44u_8,&_resbook_44u_8},
  290.  
  291.   {1,0,32,  &_residue_44_hi_un,
  292.    &_huff_book__44u8__long,&_huff_book__44u8__long,
  293.    &_resbook_44u_8,&_resbook_44u_8}
  294. };
  295. static const vorbis_residue_template _res_44u_9[]={
  296.   {1,0,16,  &_residue_44_hi_un,
  297.    &_huff_book__44u9__short,&_huff_book__44u9__short,
  298.    &_resbook_44u_9,&_resbook_44u_9},
  299.  
  300.   {1,0,32,  &_residue_44_hi_un,
  301.    &_huff_book__44u9__long,&_huff_book__44u9__long,
  302.    &_resbook_44u_9,&_resbook_44u_9}
  303. };
  304.  
  305. static const vorbis_mapping_template _mapres_template_44_uncoupled[]={
  306.   { _map_nominal_u, _res_44u_n1 }, /* -1 */
  307.   { _map_nominal_u, _res_44u_0 }, /* 0 */
  308.   { _map_nominal_u, _res_44u_1 }, /* 1 */
  309.   { _map_nominal_u, _res_44u_2 }, /* 2 */
  310.   { _map_nominal_u, _res_44u_3 }, /* 3 */
  311.   { _map_nominal_u, _res_44u_4 }, /* 4 */
  312.   { _map_nominal_u, _res_44u_5 }, /* 5 */
  313.   { _map_nominal_u, _res_44u_6 }, /* 6 */
  314.   { _map_nominal_u, _res_44u_7 }, /* 7 */
  315.   { _map_nominal_u, _res_44u_8 }, /* 8 */
  316.   { _map_nominal_u, _res_44u_9 }, /* 9 */
  317. };
  318.