Coverage Report

Created: 2025-07-11 06:38

/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
}