2 ** FAAD2 - Freeware Advanced Audio (AAC) Decoder including SBR decoding
3 ** Copyright (C) 2003-2004 M. Bakker, Ahead Software AG, http://www.nero.com
5 ** This program is free software; you can redistribute it and/or modify
6 ** it under the terms of the GNU General Public License as published by
7 ** the Free Software Foundation; either version 2 of the License, or
8 ** (at your option) any later version.
10 ** This program is distributed in the hope that it will be useful,
11 ** but WITHOUT ANY WARRANTY; without even the implied warranty of
12 ** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 ** GNU General Public License for more details.
15 ** You should have received a copy of the GNU General Public License
16 ** along with this program; if not, write to the Free Software
17 ** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
19 ** Any non-GPL usage of this software or parts of this software is strictly
22 ** Commercial non-GPL licensing of this software is possible.
23 ** For more info contact Ahead Software through Mpeg4AAClicense@nero.com.
36 void ms_decode(ic_stream
*ics
, ic_stream
*icsr
, real_t
*l_spec
, real_t
*r_spec
,
41 uint16_t nshort
= frame_len
/8;
46 if (ics
->ms_mask_present
>= 1)
48 for (g
= 0; g
< ics
->num_window_groups
; g
++)
50 for (b
= 0; b
< ics
->window_group_length
[g
]; b
++)
52 for (sfb
= 0; sfb
< ics
->max_sfb
; sfb
++)
54 /* If intensity stereo coding or noise substitution is on
55 for a particular scalefactor band, no M/S stereo decoding
58 if ((ics
->ms_used
[g
][sfb
] || ics
->ms_mask_present
== 2) &&
59 !is_intensity(icsr
, g
, sfb
) && !is_noise(ics
, g
, sfb
))
61 for (i
= ics
->swb_offset
[sfb
]; i
< ics
->swb_offset
[sfb
+1]; i
++)
63 k
= (group
*nshort
) + i
;
64 tmp
= l_spec
[k
] - r_spec
[k
];
65 l_spec
[k
] = l_spec
[k
] + r_spec
[k
];