/src/libxaac/decoder/ixheaacd_Windowing.c
Line | Count | Source (jump to first uncovered line) |
1 | | /****************************************************************************** |
2 | | * * |
3 | | * Copyright (C) 2018 The Android Open Source Project |
4 | | * |
5 | | * Licensed under the Apache License, Version 2.0 (the "License"); |
6 | | * you may not use this file except in compliance with the License. |
7 | | * You may obtain a copy of the License at: |
8 | | * |
9 | | * http://www.apache.org/licenses/LICENSE-2.0 |
10 | | * |
11 | | * Unless required by applicable law or agreed to in writing, software |
12 | | * distributed under the License is distributed on an "AS IS" BASIS, |
13 | | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
14 | | * See the License for the specific language governing permissions and |
15 | | * limitations under the License. |
16 | | * |
17 | | ***************************************************************************** |
18 | | * Originally developed and contributed by Ittiam Systems Pvt. Ltd, Bangalore |
19 | | */ |
20 | | #include "ixheaacd_cnst.h" |
21 | | |
22 | | #include "ixheaac_constants.h" |
23 | | #include "ixheaac_type_def.h" |
24 | | #include "ixheaac_basic_ops32.h" |
25 | | #include "ixheaac_basic_ops40.h" |
26 | | |
27 | | #include "ixheaacd_windows.h" |
28 | | |
29 | 441k | WORD32 ixheaacd_calc_window(WORD32 **win, WORD32 win_sz, WORD32 win_sel, WORD32 ec_flag) { |
30 | 441k | switch (win_sel) { |
31 | 329k | case WIN_SEL_0: |
32 | 329k | switch (win_sz) { |
33 | 132k | case WIN_LEN_128: |
34 | 132k | *win = (WORD32 *)ixheaacd_sine_win_128; |
35 | 132k | break; |
36 | 146k | case WIN_LEN_1024: |
37 | 146k | *win = (WORD32 *)ixheaacd_sine_win_1024; |
38 | 146k | break; |
39 | 0 | case WIN_LEN_64: |
40 | 0 | *win = (WORD32 *)ixheaacd_sine_win_64; |
41 | 0 | break; |
42 | 19.7k | case WIN_LEN_768: |
43 | 19.7k | *win = (WORD32 *)ixheaacd_sine_win_768; |
44 | 19.7k | break; |
45 | 2.03k | case WIN_LEN_192: |
46 | 2.03k | *win = (WORD32 *)ixheaacd_sine_win_192; |
47 | 2.03k | break; |
48 | 17.5k | case WIN_LEN_96: |
49 | 17.5k | *win = (WORD32 *)ixheaacd_sine_win_96; |
50 | 17.5k | break; |
51 | 10.6k | case WIN_LEN_256: |
52 | 10.6k | *win = (WORD32 *)ixheaacd_sine_win_256; |
53 | 10.6k | break; |
54 | 0 | default: |
55 | 0 | if (ec_flag) |
56 | 0 | *win = (WORD32 *)ixheaacd_sine_win_1024; |
57 | 0 | else |
58 | 0 | return -1; |
59 | 0 | break; |
60 | 329k | } |
61 | 329k | break; |
62 | | |
63 | 329k | case WIN_SEL_1: |
64 | 112k | switch (win_sz) { |
65 | 0 | case WIN_LEN_120: |
66 | 0 | *win = (WORD32 *)ixheaacd_kbd_win120; |
67 | 0 | break; |
68 | 90.1k | case WIN_LEN_128: |
69 | 90.1k | *win = (WORD32 *)ixheaacd_kbd_win128; |
70 | 90.1k | break; |
71 | 0 | case WIN_LEN_960: |
72 | 0 | *win = (WORD32 *)ixheaacd_kbd_win960; |
73 | 0 | break; |
74 | 21.3k | case WIN_LEN_1024: |
75 | 21.3k | *win = (WORD32 *)ixheaacd_kbd_win1024; |
76 | 21.3k | break; |
77 | 0 | case WIN_LEN_4: |
78 | 0 | *win = (WORD32 *)ixheaacd_kbd_win4; |
79 | 0 | break; |
80 | 0 | case WIN_LEN_16: |
81 | 0 | *win = (WORD32 *)ixheaacd_kbd_win16; |
82 | 0 | break; |
83 | 0 | case WIN_LEN_64: |
84 | 0 | *win = (WORD32 *)ixheaacd_kbd_win_64; |
85 | 0 | break; |
86 | 406 | case WIN_LEN_768: |
87 | 406 | *win = (WORD32 *)ixheaacd_kbd_win768; |
88 | 406 | break; |
89 | 0 | case WIN_LEN_192: |
90 | 0 | *win = (WORD32 *)ixheaacd_kbd_win192; |
91 | 0 | break; |
92 | 1.06k | case WIN_LEN_96: |
93 | 1.06k | *win = (WORD32 *)ixheaacd_kbd_win96; |
94 | 1.06k | break; |
95 | 0 | case WIN_LEN_48: |
96 | 0 | *win = (WORD32 *)ixheaacd_kbd_win48; |
97 | 0 | break; |
98 | 0 | default: |
99 | 0 | if (ec_flag) |
100 | 0 | *win = (WORD32 *)ixheaacd_kbd_win1024; |
101 | 0 | else |
102 | 0 | return -1; |
103 | 0 | break; |
104 | 112k | } |
105 | 112k | break; |
106 | | |
107 | 112k | default: |
108 | 0 | return -1; |
109 | 0 | break; |
110 | 441k | } |
111 | 441k | return 0; |
112 | 441k | } |