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-2010             *
  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.  
  20. #include "books/coupled/res_books_51.h"
  21.  
  22. /***** residue backends *********************************************/
  23.  
  24. static const vorbis_info_residue0 _residue_44p_lo={
  25.   0,-1, -1, 7,-1,-1,
  26.   /* 0   1   2   3   4   5   6   7   8  */
  27.   {0},
  28.   {-1},
  29.   {  0,  1,  2,  7, 17, 31},
  30.   {  0,  0, 99,  7, 17, 31},
  31. };
  32.  
  33. static const vorbis_info_residue0 _residue_44p={
  34.   0,-1, -1, 8,-1,-1,
  35.   /* 0   1   2   3   4   5   6   7   8  */
  36.   {0},
  37.   {-1},
  38.   {  0,  1,  1,   2,  7, 17, 31},
  39.   {  0,  0, 99,  99,  7, 17, 31},
  40. };
  41.  
  42. static const vorbis_info_residue0 _residue_44p_hi={
  43.   0,-1, -1, 8,-1,-1,
  44.   /* 0   1   2   3   4   5   6   7   8  */
  45.   {0},
  46.   {-1},
  47.   {  0,  1,  2,  4,  7, 17, 31},
  48.   {  0,  1,  2,  4,  7, 17, 31},
  49. };
  50.  
  51. static const vorbis_info_residue0 _residue_44p_lfe={
  52.   0,-1, -1, 2,-1,-1,
  53.   /* 0   1   2   3   4   5   6   7   8  */
  54.   {0},
  55.   {-1},
  56.   { 32},
  57.   { -1}
  58. };
  59.  
  60. static const static_bookblock _resbook_44p_n1={
  61.   {
  62.     {0},
  63.     {0,&_44pn1_p1_0},
  64.  
  65.     {&_44pn1_p2_0,&_44pn1_p2_1,0},
  66.     {&_44pn1_p3_0,&_44pn1_p3_1,0},
  67.     {&_44pn1_p4_0,&_44pn1_p4_1,0},
  68.  
  69.     {&_44pn1_p5_0,&_44pn1_p5_1,&_44pn1_p4_1},
  70.     {&_44pn1_p6_0,&_44pn1_p6_1,&_44pn1_p6_2},
  71.    }
  72. };
  73.  
  74. static const static_bookblock _resbook_44p_0={
  75.   {
  76.     {0},
  77.     {0,&_44p0_p1_0},
  78.  
  79.     {&_44p0_p2_0,&_44p0_p2_1,0},
  80.     {&_44p0_p3_0,&_44p0_p3_1,0},
  81.     {&_44p0_p4_0,&_44p0_p4_1,0},
  82.  
  83.     {&_44p0_p5_0,&_44p0_p5_1,&_44p0_p4_1},
  84.     {&_44p0_p6_0,&_44p0_p6_1,&_44p0_p6_2},
  85.    }
  86. };
  87.  
  88. static const static_bookblock _resbook_44p_1={
  89.   {
  90.     {0},
  91.     {0,&_44p1_p1_0},
  92.  
  93.     {&_44p1_p2_0,&_44p1_p2_1,0},
  94.     {&_44p1_p3_0,&_44p1_p3_1,0},
  95.     {&_44p1_p4_0,&_44p1_p4_1,0},
  96.  
  97.     {&_44p1_p5_0,&_44p1_p5_1,&_44p1_p4_1},
  98.     {&_44p1_p6_0,&_44p1_p6_1,&_44p1_p6_2},
  99.    }
  100. };
  101.  
  102. static const static_bookblock _resbook_44p_2={
  103.   {
  104.     {0},
  105.     {0,0,&_44p2_p1_0},
  106.     {0,&_44p2_p2_0,0},
  107.  
  108.     {&_44p2_p3_0,&_44p2_p3_1,0},
  109.     {&_44p2_p4_0,&_44p2_p4_1,0},
  110.     {&_44p2_p5_0,&_44p2_p5_1,0},
  111.  
  112.     {&_44p2_p6_0,&_44p2_p6_1,&_44p2_p5_1},
  113.     {&_44p2_p7_0,&_44p2_p7_1,&_44p2_p7_2,&_44p2_p7_3}
  114.    }
  115. };
  116. static const static_bookblock _resbook_44p_3={
  117.   {
  118.     {0},
  119.     {0,0,&_44p3_p1_0},
  120.     {0,&_44p3_p2_0,0},
  121.  
  122.     {&_44p3_p3_0,&_44p3_p3_1,0},
  123.     {&_44p3_p4_0,&_44p3_p4_1,0},
  124.     {&_44p3_p5_0,&_44p3_p5_1,0},
  125.  
  126.     {&_44p3_p6_0,&_44p3_p6_1,&_44p3_p5_1},
  127.     {&_44p3_p7_0,&_44p3_p7_1,&_44p3_p7_2,&_44p3_p7_3}
  128.    }
  129. };
  130. static const static_bookblock _resbook_44p_4={
  131.   {
  132.     {0},
  133.     {0,0,&_44p4_p1_0},
  134.     {0,&_44p4_p2_0,0},
  135.  
  136.     {&_44p4_p3_0,&_44p4_p3_1,0},
  137.     {&_44p4_p4_0,&_44p4_p4_1,0},
  138.     {&_44p4_p5_0,&_44p4_p5_1,0},
  139.  
  140.     {&_44p4_p6_0,&_44p4_p6_1,&_44p4_p5_1},
  141.     {&_44p4_p7_0,&_44p4_p7_1,&_44p4_p7_2,&_44p4_p7_3}
  142.    }
  143. };
  144. static const static_bookblock _resbook_44p_5={
  145.   {
  146.     {0},
  147.     {0,0,&_44p5_p1_0},
  148.     {0,&_44p5_p2_0,0},
  149.  
  150.     {&_44p5_p3_0,&_44p5_p3_1,0},
  151.     {&_44p5_p4_0,&_44p5_p4_1,0},
  152.     {&_44p5_p5_0,&_44p5_p5_1,0},
  153.  
  154.     {&_44p5_p6_0,&_44p5_p6_1,&_44p5_p5_1},
  155.     {&_44p5_p7_0,&_44p5_p7_1,&_44p5_p7_2,&_44p5_p7_3}
  156.    }
  157. };
  158. static const static_bookblock _resbook_44p_6={
  159.   {
  160.     {0},
  161.     {0,0,&_44p6_p1_0},
  162.     {0,&_44p6_p2_0,0},
  163.  
  164.     {&_44p6_p3_0,&_44p6_p3_1,0},
  165.     {&_44p6_p4_0,&_44p6_p4_1,0},
  166.     {&_44p6_p5_0,&_44p6_p5_1,0},
  167.  
  168.     {&_44p6_p6_0,&_44p6_p6_1,&_44p6_p5_1},
  169.     {&_44p6_p7_0,&_44p6_p7_1,&_44p6_p7_2,&_44p6_p7_3}
  170.    }
  171. };
  172. static const static_bookblock _resbook_44p_7={
  173.   {
  174.     {0},
  175.     {0,0,&_44p7_p1_0},
  176.     {0,&_44p7_p2_0,0},
  177.  
  178.     {&_44p7_p3_0,&_44p7_p3_1,0},
  179.     {&_44p7_p4_0,&_44p7_p4_1,0},
  180.     {&_44p7_p5_0,&_44p7_p5_1,0},
  181.  
  182.     {&_44p7_p6_0,&_44p7_p6_1,&_44p7_p5_1},
  183.     {&_44p7_p7_0,&_44p7_p7_1,&_44p7_p7_2,&_44p7_p7_3}
  184.    }
  185. };
  186. static const static_bookblock _resbook_44p_8={
  187.   {
  188.     {0},
  189.     {0,0,&_44p8_p1_0},
  190.     {0,&_44p8_p2_0,0},
  191.  
  192.     {&_44p8_p3_0,&_44p8_p3_1,0},
  193.     {&_44p8_p4_0,&_44p8_p4_1,0},
  194.     {&_44p8_p5_0,&_44p8_p5_1,0},
  195.  
  196.     {&_44p8_p6_0,&_44p8_p6_1,&_44p8_p5_1},
  197.     {&_44p8_p7_0,&_44p8_p7_1,&_44p8_p7_2,&_44p8_p7_3}
  198.    }
  199. };
  200. static const static_bookblock _resbook_44p_9={
  201.   {
  202.     {0},
  203.     {0,0,&_44p9_p1_0},
  204.     {0,&_44p9_p2_0,0},
  205.  
  206.     {&_44p9_p3_0,&_44p9_p3_1,0},
  207.     {&_44p9_p4_0,&_44p9_p4_1,0},
  208.     {&_44p9_p5_0,&_44p9_p5_1,0},
  209.  
  210.     {&_44p9_p6_0,&_44p9_p6_1,&_44p9_p5_1},
  211.     {&_44p9_p7_0,&_44p9_p7_1,&_44p9_p7_2,&_44p9_p7_3}
  212.    }
  213. };
  214.  
  215. static const static_bookblock _resbook_44p_ln1={
  216.   {
  217.     {&_44pn1_l0_0,&_44pn1_l0_1,0},
  218.     {&_44pn1_l1_0,&_44pn1_p6_1,&_44pn1_p6_2},
  219.    }
  220. };
  221. static const static_bookblock _resbook_44p_l0={
  222.   {
  223.     {&_44p0_l0_0,&_44p0_l0_1,0},
  224.     {&_44p0_l1_0,&_44p0_p6_1,&_44p0_p6_2},
  225.    }
  226. };
  227. static const static_bookblock _resbook_44p_l1={
  228.   {
  229.     {&_44p1_l0_0,&_44p1_l0_1,0},
  230.     {&_44p1_l1_0,&_44p1_p6_1,&_44p1_p6_2},
  231.    }
  232. };
  233. static const static_bookblock _resbook_44p_l2={
  234.   {
  235.     {&_44p2_l0_0,&_44p2_l0_1,0},
  236.     {&_44p2_l1_0,&_44p2_p7_2,&_44p2_p7_3},
  237.    }
  238. };
  239. static const static_bookblock _resbook_44p_l3={
  240.   {
  241.     {&_44p3_l0_0,&_44p3_l0_1,0},
  242.     {&_44p3_l1_0,&_44p3_p7_2,&_44p3_p7_3},
  243.    }
  244. };
  245. static const static_bookblock _resbook_44p_l4={
  246.   {
  247.     {&_44p4_l0_0,&_44p4_l0_1,0},
  248.     {&_44p4_l1_0,&_44p4_p7_2,&_44p4_p7_3},
  249.    }
  250. };
  251. static const static_bookblock _resbook_44p_l5={
  252.   {
  253.     {&_44p5_l0_0,&_44p5_l0_1,0},
  254.     {&_44p5_l1_0,&_44p5_p7_2,&_44p5_p7_3},
  255.    }
  256. };
  257. static const static_bookblock _resbook_44p_l6={
  258.   {
  259.     {&_44p6_l0_0,&_44p6_l0_1,0},
  260.     {&_44p6_l1_0,&_44p6_p7_2,&_44p6_p7_3},
  261.    }
  262. };
  263. static const static_bookblock _resbook_44p_l7={
  264.   {
  265.     {&_44p7_l0_0,&_44p7_l0_1,0},
  266.     {&_44p7_l1_0,&_44p7_p7_2,&_44p7_p7_3},
  267.    }
  268. };
  269. static const static_bookblock _resbook_44p_l8={
  270.   {
  271.     {&_44p8_l0_0,&_44p8_l0_1,0},
  272.     {&_44p8_l1_0,&_44p8_p7_2,&_44p8_p7_3},
  273.    }
  274. };
  275. static const static_bookblock _resbook_44p_l9={
  276.   {
  277.     {&_44p9_l0_0,&_44p9_l0_1,0},
  278.     {&_44p9_l1_0,&_44p9_p7_2,&_44p9_p7_3},
  279.    }
  280. };
  281.  
  282.  
  283. static const vorbis_info_mapping0 _map_nominal_51[2]={
  284.   {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 4,{0,3,0,0},{2,4,1,3}},
  285.   {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 4,{0,3,0,0},{2,4,1,3}}
  286. };
  287. static const vorbis_info_mapping0 _map_nominal_51u[2]={
  288.   {2, {0,0,0,0,0,1}, {0,2}, {0,2}, 0,{0},{0}},
  289.   {2, {0,0,0,0,0,1}, {1,2}, {1,2}, 0,{0},{0}}
  290. };
  291.  
  292. static const vorbis_residue_template _res_44p51_n1[]={
  293.   {2,0,30,  &_residue_44p_lo,
  294.    &_huff_book__44pn1_short,&_huff_book__44pn1_short,
  295.    &_resbook_44p_n1,&_resbook_44p_n1},
  296.  
  297.   {2,0,30,  &_residue_44p_lo,
  298.    &_huff_book__44pn1_long,&_huff_book__44pn1_long,
  299.    &_resbook_44p_n1,&_resbook_44p_n1},
  300.  
  301.   {1,2,6,  &_residue_44p_lfe,
  302.    &_huff_book__44pn1_lfe,&_huff_book__44pn1_lfe,
  303.    &_resbook_44p_ln1,&_resbook_44p_ln1}
  304. };
  305. static const vorbis_residue_template _res_44p51_0[]={
  306.   {2,0,15,  &_residue_44p_lo,
  307.    &_huff_book__44p0_short,&_huff_book__44p0_short,
  308.    &_resbook_44p_0,&_resbook_44p_0},
  309.  
  310.   {2,0,30,  &_residue_44p_lo,
  311.    &_huff_book__44p0_long,&_huff_book__44p0_long,
  312.    &_resbook_44p_0,&_resbook_44p_0},
  313.  
  314.   {1,2,6,  &_residue_44p_lfe,
  315.    &_huff_book__44p0_lfe,&_huff_book__44p0_lfe,
  316.    &_resbook_44p_l0,&_resbook_44p_l0}
  317. };
  318. static const vorbis_residue_template _res_44p51_1[]={
  319.   {2,0,15,  &_residue_44p_lo,
  320.    &_huff_book__44p1_short,&_huff_book__44p1_short,
  321.    &_resbook_44p_1,&_resbook_44p_1},
  322.  
  323.   {2,0,30,  &_residue_44p_lo,
  324.    &_huff_book__44p1_long,&_huff_book__44p1_long,
  325.    &_resbook_44p_1,&_resbook_44p_1},
  326.  
  327.   {1,2,6,  &_residue_44p_lfe,
  328.    &_huff_book__44p1_lfe,&_huff_book__44p1_lfe,
  329.    &_resbook_44p_l1,&_resbook_44p_l1}
  330. };
  331. static const vorbis_residue_template _res_44p51_2[]={
  332.   {2,0,15,  &_residue_44p,
  333.    &_huff_book__44p2_short,&_huff_book__44p2_short,
  334.    &_resbook_44p_2,&_resbook_44p_2},
  335.  
  336.   {2,0,30,  &_residue_44p,
  337.    &_huff_book__44p2_long,&_huff_book__44p2_long,
  338.    &_resbook_44p_2,&_resbook_44p_2},
  339.  
  340.   {1,2,6,  &_residue_44p_lfe,
  341.    &_huff_book__44p2_lfe,&_huff_book__44p2_lfe,
  342.    &_resbook_44p_l2,&_resbook_44p_l2}
  343. };
  344. static const vorbis_residue_template _res_44p51_3[]={
  345.   {2,0,15,  &_residue_44p,
  346.    &_huff_book__44p3_short,&_huff_book__44p3_short,
  347.    &_resbook_44p_3,&_resbook_44p_3},
  348.  
  349.   {2,0,30,  &_residue_44p,
  350.    &_huff_book__44p3_long,&_huff_book__44p3_long,
  351.    &_resbook_44p_3,&_resbook_44p_3},
  352.  
  353.   {1,2,6,  &_residue_44p_lfe,
  354.    &_huff_book__44p3_lfe,&_huff_book__44p3_lfe,
  355.    &_resbook_44p_l3,&_resbook_44p_l3}
  356. };
  357. static const vorbis_residue_template _res_44p51_4[]={
  358.   {2,0,15,  &_residue_44p,
  359.    &_huff_book__44p4_short,&_huff_book__44p4_short,
  360.    &_resbook_44p_4,&_resbook_44p_4},
  361.  
  362.   {2,0,30,  &_residue_44p,
  363.    &_huff_book__44p4_long,&_huff_book__44p4_long,
  364.    &_resbook_44p_4,&_resbook_44p_4},
  365.  
  366.   {1,2,6,  &_residue_44p_lfe,
  367.    &_huff_book__44p4_lfe,&_huff_book__44p4_lfe,
  368.    &_resbook_44p_l4,&_resbook_44p_l4}
  369. };
  370. static const vorbis_residue_template _res_44p51_5[]={
  371.   {2,0,15,  &_residue_44p_hi,
  372.    &_huff_book__44p5_short,&_huff_book__44p5_short,
  373.    &_resbook_44p_5,&_resbook_44p_5},
  374.  
  375.   {2,0,30,  &_residue_44p_hi,
  376.    &_huff_book__44p5_long,&_huff_book__44p5_long,
  377.    &_resbook_44p_5,&_resbook_44p_5},
  378.  
  379.   {1,2,6,  &_residue_44p_lfe,
  380.    &_huff_book__44p5_lfe,&_huff_book__44p5_lfe,
  381.    &_resbook_44p_l5,&_resbook_44p_l5}
  382. };
  383. static const vorbis_residue_template _res_44p51_6[]={
  384.   {2,0,15,  &_residue_44p_hi,
  385.    &_huff_book__44p6_short,&_huff_book__44p6_short,
  386.    &_resbook_44p_6,&_resbook_44p_6},
  387.  
  388.   {2,0,30,  &_residue_44p_hi,
  389.    &_huff_book__44p6_long,&_huff_book__44p6_long,
  390.    &_resbook_44p_6,&_resbook_44p_6},
  391.  
  392.   {1,2,6,  &_residue_44p_lfe,
  393.    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
  394.    &_resbook_44p_l6,&_resbook_44p_l6}
  395. };
  396.  
  397.  
  398. static const vorbis_residue_template _res_44p51_7[]={
  399.   {2,0,15,  &_residue_44p_hi,
  400.    &_huff_book__44p7_short,&_huff_book__44p7_short,
  401.    &_resbook_44p_7,&_resbook_44p_7},
  402.  
  403.   {2,0,30,  &_residue_44p_hi,
  404.    &_huff_book__44p7_long,&_huff_book__44p7_long,
  405.    &_resbook_44p_7,&_resbook_44p_7},
  406.  
  407.   {1,2,6,  &_residue_44p_lfe,
  408.    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
  409.    &_resbook_44p_l6,&_resbook_44p_l6}
  410. };
  411. static const vorbis_residue_template _res_44p51_8[]={
  412.   {2,0,15,  &_residue_44p_hi,
  413.    &_huff_book__44p8_short,&_huff_book__44p8_short,
  414.    &_resbook_44p_8,&_resbook_44p_8},
  415.  
  416.   {2,0,30,  &_residue_44p_hi,
  417.    &_huff_book__44p8_long,&_huff_book__44p8_long,
  418.    &_resbook_44p_8,&_resbook_44p_8},
  419.  
  420.   {1,2,6,  &_residue_44p_lfe,
  421.    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
  422.    &_resbook_44p_l6,&_resbook_44p_l6}
  423. };
  424. static const vorbis_residue_template _res_44p51_9[]={
  425.   {2,0,15,  &_residue_44p_hi,
  426.    &_huff_book__44p9_short,&_huff_book__44p9_short,
  427.    &_resbook_44p_9,&_resbook_44p_9},
  428.  
  429.   {2,0,30,  &_residue_44p_hi,
  430.    &_huff_book__44p9_long,&_huff_book__44p9_long,
  431.    &_resbook_44p_9,&_resbook_44p_9},
  432.  
  433.   {1,2,6,  &_residue_44p_lfe,
  434.    &_huff_book__44p6_lfe,&_huff_book__44p6_lfe,
  435.    &_resbook_44p_l6,&_resbook_44p_l6}
  436. };
  437.  
  438. static const vorbis_mapping_template _mapres_template_44_51[]={
  439.   { _map_nominal_51, _res_44p51_n1 }, /* -1 */
  440.   { _map_nominal_51, _res_44p51_0 }, /* 0 */
  441.   { _map_nominal_51, _res_44p51_1 }, /* 1 */
  442.   { _map_nominal_51, _res_44p51_2 }, /* 2 */
  443.   { _map_nominal_51, _res_44p51_3 }, /* 3 */
  444.   { _map_nominal_51, _res_44p51_4 }, /* 4 */
  445.   { _map_nominal_51u, _res_44p51_5 }, /* 5 */
  446.   { _map_nominal_51u, _res_44p51_6 }, /* 6 */
  447.   { _map_nominal_51u, _res_44p51_7 }, /* 7 */
  448.   { _map_nominal_51u, _res_44p51_8 }, /* 8 */
  449.   { _map_nominal_51u, _res_44p51_9 }, /* 9 */
  450. };
  451.