Felicia Lim | 0c2090c | 2017-07-05 17:36:56 -0700 | [diff] [blame] | 1 | /* Copyright (c) 2016 Mark Harris, Jean-Marc Valin */ |
| 2 | /* |
| 3 | Redistribution and use in source and binary forms, with or without |
| 4 | modification, are permitted provided that the following conditions |
| 5 | are met: |
| 6 | |
| 7 | - Redistributions of source code must retain the above copyright |
| 8 | notice, this list of conditions and the following disclaimer. |
| 9 | |
| 10 | - Redistributions in binary form must reproduce the above copyright |
| 11 | notice, this list of conditions and the following disclaimer in the |
| 12 | documentation and/or other materials provided with the distribution. |
| 13 | |
| 14 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| 15 | ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| 16 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| 17 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER |
| 18 | OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, |
| 19 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, |
| 20 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR |
| 21 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF |
| 22 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING |
| 23 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
| 24 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 25 | */ |
| 26 | |
| 27 | |
| 28 | #ifdef HAVE_CONFIG_H |
| 29 | #include "config.h" |
| 30 | #endif |
| 31 | |
| 32 | #include <stdio.h> |
| 33 | #include <stdlib.h> |
| 34 | #include <limits.h> |
| 35 | #include <stdint.h> |
| 36 | #include <math.h> |
| 37 | #include <string.h> |
| 38 | #include <assert.h> |
| 39 | #include "opus_multistream.h" |
| 40 | #include "opus.h" |
| 41 | #include "test_opus_common.h" |
| 42 | |
| 43 | |
| 44 | static int celt_ec_internal_error(void) |
| 45 | { |
| 46 | OpusMSEncoder *enc; |
| 47 | int err; |
| 48 | unsigned char data[2460]; |
| 49 | int streams; |
| 50 | int coupled_streams; |
| 51 | unsigned char mapping[1]; |
| 52 | |
| 53 | enc = opus_multistream_surround_encoder_create(16000, 1, 1, &streams, |
| 54 | &coupled_streams, mapping, OPUS_APPLICATION_VOIP, &err); |
| 55 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 56 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 57 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(0)); |
| 58 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 59 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(0)); |
| 60 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(0)); |
| 61 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(0)); |
| 62 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_NARROWBAND)); |
| 63 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_AUTO)); |
| 64 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(8)); |
| 65 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(0)); |
| 66 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(0)); |
| 67 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(OPUS_AUTO)); |
| 68 | { |
| 69 | static const short pcm[320] = |
| 70 | { |
| 71 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 72 | 0, 0, 0, 0, 0, 0, 1792, 1799, 1799, |
| 73 | 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, |
| 74 | 1799, 1799, 1799, 1799, 1799, 0, 25600, 1799, 1799, |
| 75 | 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, |
| 76 | 1799, 1799, 1799, 1799, 7, 0, 255, 0, 0, |
| 77 | 0, 0, 0, 0, 0, 0, 0, 32767, -1, |
| 78 | 0, 0, 0, 100, 0, 16384, 0, 0, 0, |
| 79 | 0, 0, 0, 4, 0, 0, -256, 255, 0, |
| 80 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 81 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 82 | 0, 0,-32768, 0, 0, 0, 0, 0, 0, |
| 83 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 84 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 85 | 0, 0, 0, 0, 128, 0, 0, 0, 0, |
| 86 | 0, 0, 0, 0, -256, 0, 0, 32, 0, |
| 87 | 0, 0, 0, 0, 0, 0, 4352, 4, 228, |
| 88 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 89 | 0, 0, 0, 0, 0, 0, 5632, 0, 0, |
| 90 | 0, 0,-32768, 0, 0, 0, 0, 0, 0, |
| 91 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 92 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 93 | 0, 0, 0, 256, 0, 0, 0, 0, 0, |
| 94 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 95 | -3944, 10500, 4285, 10459, -6474, 10204, -6539, 11601, -6824, |
| 96 | 13385, -7142, 13872,-11553, 13670, -7725, 13463, -6887, 7874, |
| 97 | -5580, 12600, -4964, 12480, 3254, 11741, -4210, 9741, -3155, |
| 98 | 7558, -5468, 5431, -1073, 3641, -1304, 0, -1, 343, |
| 99 | 26, 0, 0, 150, 0, 0, 0, 0, 0, |
| 100 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 101 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 102 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 103 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 104 | 0, 0, 0, 1799, 1799, 1799, 1799, 1799, -2553, |
| 105 | 7, 1792, 1799, 1799, 1799, 1799, 1799, 1799, 1799, |
| 106 | 1799, 1799, 1799, 1799, -9721 |
| 107 | }; |
| 108 | err = opus_multistream_encode(enc, pcm, 320, data, 2460); |
| 109 | assert(err > 0); |
| 110 | } |
| 111 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 112 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 113 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(1)); |
| 114 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 115 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(0)); |
| 116 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(1)); |
| 117 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(10)); |
| 118 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 119 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 120 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(18)); |
| 121 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); |
| 122 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(90)); |
| 123 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(280130)); |
| 124 | { |
| 125 | static const short pcm[160] = |
| 126 | { |
| 127 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 128 | -9510, -9510, -9510, -9510, -9510, -9510, -9526, -9510, -9510, |
| 129 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 130 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 131 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 132 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 133 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 134 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 135 | -9510, -9510, -9510, -9510, -9510, 25600, -9510, -9510, -9510, |
| 136 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 137 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 138 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 139 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 140 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 141 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 142 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 143 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 144 | -9510, -9510, -9510, -9510, -9510, -9510, -9510 |
| 145 | }; |
| 146 | err = opus_multistream_encode(enc, pcm, 160, data, 2460); |
| 147 | assert(err > 0); |
| 148 | } |
| 149 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 150 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 151 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(1)); |
| 152 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 153 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(0)); |
| 154 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(1)); |
| 155 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(10)); |
| 156 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 157 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 158 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(18)); |
| 159 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); |
| 160 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(90)); |
| 161 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(280130)); |
| 162 | { |
| 163 | static const short pcm[160] = |
| 164 | { |
| 165 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 166 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 167 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 168 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 169 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 170 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 171 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 172 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 173 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 174 | -9510, -9494, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 175 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 176 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 177 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 178 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 179 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 180 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 181 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 182 | -9510, -9510, -9510, -9510, -9510, -9510, -9510 |
| 183 | }; |
| 184 | err = opus_multistream_encode(enc, pcm, 160, data, 2460); |
| 185 | assert(err > 0); |
| 186 | } |
| 187 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 188 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 189 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(1)); |
| 190 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 191 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(0)); |
| 192 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(1)); |
| 193 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(10)); |
| 194 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 195 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 196 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(18)); |
| 197 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); |
| 198 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(90)); |
| 199 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(280130)); |
| 200 | { |
| 201 | static const short pcm[160] = |
| 202 | { |
| 203 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 204 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 205 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 206 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 207 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 208 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 209 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 210 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 211 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 212 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 213 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 214 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 215 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 216 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 217 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9479, -9510, |
| 218 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 219 | -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, -9510, |
| 220 | -9510, -9510, -9510, -9510, -9510, -9510, -9510 |
| 221 | }; |
| 222 | err = opus_multistream_encode(enc, pcm, 160, data, 2460); |
| 223 | assert(err > 0); |
| 224 | } |
| 225 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 226 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 227 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(1)); |
| 228 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 229 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(0)); |
| 230 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(1)); |
| 231 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(10)); |
| 232 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 233 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 234 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(18)); |
| 235 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); |
| 236 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(90)); |
| 237 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(280130)); |
| 238 | { |
| 239 | static const short pcm[160] = |
| 240 | { |
| 241 | -9510, -9510, 1799, 1799, 1799, 1799, 1799, 1799, 1799, |
| 242 | 1799, 1799, 1799, 1799, 1799, 1799, 1799, 1799, 0, |
| 243 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 244 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 245 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 246 | -256, 255, 0, 0, 0, 0, 0, 0, 0, |
| 247 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 248 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 249 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 250 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 251 | 0, 0, 0, 0, 0, 0, 0, 128, 0, |
| 252 | 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 253 | 0, 32, 0, 0, 0, 0, 0, 0, 0, |
| 254 | 4352, 4, 0, 0, 0, 0, 0, 0, 0, |
| 255 | 0, 0, 0, 0, 148, 0, 0, 0, 0, |
| 256 | 5632 |
| 257 | }; |
| 258 | err = opus_multistream_encode(enc, pcm, 160, data, 2460); |
| 259 | assert(err > 0); |
| 260 | } |
| 261 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_VOICE)); |
| 262 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 263 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(1)); |
| 264 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 265 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(1)); |
| 266 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(1)); |
| 267 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(0)); |
| 268 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_NARROWBAND)); |
| 269 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_AUTO)); |
| 270 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(12)); |
| 271 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(0)); |
| 272 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(41)); |
| 273 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(21425)); |
| 274 | { |
| 275 | static const short pcm[40] = |
| 276 | { |
| 277 | 10459, -6474, 10204, -6539, 11601, -6824, 13385, -7142, 13872, |
| 278 | -11553, 13670, -7725, 13463, -6887, 12482, -5580, 12600, -4964, |
| 279 | 12480, 3254, 11741, -4210, 9741, -3155, 7558, -5468, 5431, |
| 280 | -1073, 3641, -1304, 0, -1, 343, 26, 0, 0, |
| 281 | 0, 0, -256, 226 |
| 282 | }; |
| 283 | err = opus_multistream_encode(enc, pcm, 40, data, 2460); |
| 284 | assert(err > 0); |
| 285 | /* returns -3 */ |
| 286 | } |
| 287 | opus_multistream_encoder_destroy(enc); |
| 288 | return 0; |
| 289 | } |
| 290 | |
| 291 | static int mscbr_encode_fail10(void) |
| 292 | { |
| 293 | OpusMSEncoder *enc; |
| 294 | int err; |
| 295 | unsigned char data[627300]; |
| 296 | static const unsigned char mapping[255] = |
| 297 | { |
| 298 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
| 299 | 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, |
| 300 | 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, |
| 301 | 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, |
| 302 | 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, |
| 303 | 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101, |
| 304 | 102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118, |
| 305 | 119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135, |
| 306 | 136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152, |
| 307 | 153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169, |
| 308 | 170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186, |
| 309 | 187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203, |
| 310 | 204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220, |
| 311 | 221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237, |
| 312 | 238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254 |
| 313 | }; |
| 314 | |
| 315 | enc = opus_multistream_encoder_create(8000, 255, 254, 1, mapping, |
| 316 | OPUS_APPLICATION_RESTRICTED_LOWDELAY, &err); |
| 317 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_VOICE)); |
| 318 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 319 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(0)); |
| 320 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(0)); |
| 321 | opus_multistream_encoder_ctl(enc, OPUS_SET_FORCE_CHANNELS(2)); |
| 322 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(1)); |
| 323 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(1)); |
| 324 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(2)); |
| 325 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_NARROWBAND)); |
| 326 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_AUTO)); |
| 327 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(14)); |
| 328 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(0)); |
| 329 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(57)); |
| 330 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(3642675)); |
| 331 | { |
| 332 | static const short pcm[20*255] = |
| 333 | { |
| 334 | 0 |
| 335 | }; |
| 336 | err = opus_multistream_encode(enc, pcm, 20, data, 627300); |
| 337 | assert(err > 0); |
| 338 | /* returns -1 */ |
| 339 | } |
| 340 | opus_multistream_encoder_destroy(enc); |
| 341 | return 0; |
| 342 | } |
| 343 | |
| 344 | static int mscbr_encode_fail(void) |
| 345 | { |
| 346 | OpusMSEncoder *enc; |
| 347 | int err; |
| 348 | unsigned char data[472320]; |
| 349 | static const unsigned char mapping[192] = |
| 350 | { |
| 351 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, |
| 352 | 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, |
| 353 | 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, |
| 354 | 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, |
| 355 | 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, |
| 356 | 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99,100,101, |
| 357 | 102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118, |
| 358 | 119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135, |
| 359 | 136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152, |
| 360 | 153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169, |
| 361 | 170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186, |
| 362 | 187,188,189,190,191 |
| 363 | }; |
| 364 | |
| 365 | enc = opus_multistream_encoder_create(8000, 192, 189, 3, mapping, |
| 366 | OPUS_APPLICATION_RESTRICTED_LOWDELAY, &err); |
| 367 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 368 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 369 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(0)); |
| 370 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(0)); |
| 371 | opus_multistream_encoder_ctl(enc, OPUS_SET_FORCE_CHANNELS(OPUS_AUTO)); |
| 372 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(0)); |
| 373 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(0)); |
| 374 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(0)); |
| 375 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_MEDIUMBAND)); |
| 376 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_AUTO)); |
| 377 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(8)); |
| 378 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(0)); |
| 379 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(0)); |
| 380 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(15360)); |
| 381 | { |
| 382 | static const short pcm[20*192] = |
| 383 | { |
| 384 | 0 |
| 385 | }; |
| 386 | err = opus_multistream_encode(enc, pcm, 20, data, 472320); |
| 387 | assert(err > 0); |
| 388 | /* returns -1 */ |
| 389 | } |
| 390 | opus_multistream_encoder_destroy(enc); |
| 391 | return 0; |
| 392 | } |
| 393 | |
| 394 | static int surround_analysis_uninit(void) |
| 395 | { |
| 396 | OpusMSEncoder *enc; |
| 397 | int err; |
| 398 | unsigned char data[7380]; |
| 399 | int streams; |
| 400 | int coupled_streams; |
| 401 | unsigned char mapping[3]; |
| 402 | |
| 403 | enc = opus_multistream_surround_encoder_create(24000, 3, 1, &streams, |
| 404 | &coupled_streams, mapping, OPUS_APPLICATION_AUDIO, &err); |
| 405 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_VOICE)); |
| 406 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(1)); |
| 407 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(1)); |
| 408 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(0)); |
| 409 | opus_multistream_encoder_ctl(enc, OPUS_SET_FORCE_CHANNELS(OPUS_AUTO)); |
| 410 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(0)); |
| 411 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(0)); |
| 412 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(0)); |
| 413 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_NARROWBAND)); |
| 414 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_NARROWBAND)); |
| 415 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(8)); |
| 416 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); |
| 417 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(84315)); |
| 418 | { |
| 419 | static const short pcm[960*3] = |
| 420 | { |
| 421 | -6896, 4901, -6158, 4120, -5164, 3631, -4442, 3153, -4070, |
| 422 | 3349, -4577, 4474, -5541, 5058, -6701, 3881, -7933, 1863, |
| 423 | -8041, 697, -6738,-31464, 14330,-12523, 4096, -6130, 29178, |
| 424 | -250,-21252, 10467, 16907, -3359, -6644, 31965, 14607,-21544, |
| 425 | -32497, 24020, 12557,-26926,-18421, -1842, 24587, 19659, 4878, |
| 426 | 10954, 23060, 8907,-10215,-16179, 31772,-11825,-15590,-23089, |
| 427 | 17173,-25903,-17387, 11733, 4884, 10204,-16476,-14367, 516, |
| 428 | 20453,-16898, 20967,-23813, -20, 22011,-17167, 9459, 32499, |
| 429 | -25855, -523, -3883, -390, -4206, 634, -3767, 2325, -2751, |
| 430 | 3115, -2392, 2746, -2173, 2317, -1147, 2326, 23142, 11314, |
| 431 | -15350,-24529, 3026, 6146, 2150, 2476, 1105, -830, 1775, |
| 432 | -3425, 3674,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 433 | 4293,-14023, 3879,-15553, 3158,-16161, 2629, 18433,-12535, |
| 434 | -6645,-20735,-32763,-13824,-20992, 25859, 13052, -8731, 2292, |
| 435 | -3860, 24049, 10225,-19220, 10478,-22294, 22773, 28137, 13816, |
| 436 | 30953,-25863,-24598, 16888,-14612,-28942, 20974,-27397,-18944, |
| 437 | -18690, 20991,-16638, 5632,-14330, 28911,-25594, 17408, 29958, |
| 438 | -517,-20984, -1800, 11281, 9977,-21221,-14854, 23840, -9477, |
| 439 | 3362,-12805,-22493, 32507, 156, 16384, -1163, 2301, -1874, |
| 440 | 4600, -1748, 6950, 16557, 8192, -7372, -1033, -3278, 2806, |
| 441 | 20275, 3317, -717, 9792, -767, 9099, -613, 8362, 5027, |
| 442 | 7774, 2597, 8549, 5278, 8743, 9343, 6940, 13038, 4826, |
| 443 | 14086, 2964, 13215, 1355, 11596, 455, 9850, -519, 10680, |
| 444 | -2287, 12551, -3736, 13639, -4291, 13790, -2722, 14544, -866, |
| 445 | 15050, -304, 22833, -1196, 13520, -2063, 13051, -2317, 13066, |
| 446 | -2737, 13773, -2664, 14105, -3447, 13854, 24589, 24672, -5280, |
| 447 | 10388, -4933, 7543, -4149, 3654, -1552, 1726, 661, 57, |
| 448 | 2922, -751, 3917, 8419, 3840, -5218, 3435, 5540, -1073, |
| 449 | 4153, -6656, 1649, -769, -7276,-13072, 6380, -7948, 20717, |
| 450 | 18425, 17392, 14335,-18190, -1842, 24587, 19659, 11790, 10954, |
| 451 | 23060, 8907,-10215,-16179, 31772,-11825,-15590,-23101, 17173, |
| 452 | -25903,-17387, 11733, 4884, 10192,-16627,-14367, 516, 20453, |
| 453 | -16898, 20967,-23813, -20, 22011,-17167, 9468, 32499,-25607, |
| 454 | -523, -3883, -390, -4206, 634, -3767, 2325, -2751, 3115, |
| 455 | -2392, 2746, -2161, 2317, -1147, 2326, 23142, 11314,-15350, |
| 456 | -29137, 3026,-15056, -491,-15170, -386,-16015, -641,-16505, |
| 457 | -930,-16206, -717,-16175, -2839,-16374, -4558,-16237, -5207, |
| 458 | -15903, -6421, 6373, -1403, 5431, -1073, 3641, -1304, -4495, |
| 459 | -769, -7276, 2856, -7870, 3314, -8730, 3964,-10183, 4011, |
| 460 | -11135, 3421,-11727, 2966,-12360, 2818,-13472, 3660,-13805, |
| 461 | 5162,-13478, 6434,-12840, 7335,-12420, 6865,-12349, 5541, |
| 462 | -11965, 5530,-10820, 5132, -9197, 3367, -7745, 1223, -6910, |
| 463 | -433, -6211, -1711, -4958, -1025, -3755, -836, -3292, -1666, |
| 464 | -2661,-10755, 31472,-27906, 31471, 18690, 5617, 16649, 11253, |
| 465 | -22516,-17674,-31990, 3575,-31479, 5883, 26121, 12890, -6612, |
| 466 | 12228,-11634, 523, 26136,-21496, 20745,-15868, -4100,-24826, |
| 467 | 23282, 22798, 491, -1774, 15075,-27373,-13094, 6417,-29487, |
| 468 | 14608, 10185, 16143, 22211, -8436, 4288, -8694, 2375, 3023, |
| 469 | 486, 1455, 128, 202, 942, -923, 2068, -1233, -717, |
| 470 | -1042, -2167, 32255, -4632, 310, -4458, -3639, -5258, 2106, |
| 471 | -6857, 2681, -7497, 2765, -6601, 1945, -5219, 19154, -4877, |
| 472 | 619, -5719, -1928, -6208, -121, 593, 188, 1558, -4152, |
| 473 | 1648, 156, 1604, -3664, -6862, -2851, -5112, -3600, -3747, |
| 474 | -5081, -4428, -5592, 20974,-27397,-18944,-18690, 20991,-17406, |
| 475 | 5632,-14330, 28911, 15934, 15934, 15934, 15934, 15934, 15934, |
| 476 | 15934, 15934, 15934, 15934, 15934, 15934,-25594, 17408, 29958, |
| 477 | -7173,-16888, 9098, -613, 8362, 675, 7774, 2597, 8549, |
| 478 | 5278, 8743, 9375, 6940, 13038, 4826, 14598, 7721,-24308, |
| 479 | -29905,-19703,-17106,-16124, -3287,-26118,-19709,-10769, 24353, |
| 480 | 28648, 6946, -1363, 12485, -1187, 26074,-25055, 10004,-24798, |
| 481 | 7204, -4581, -9678, 1554, 10553, 3102, 12193, 2443, 11955, |
| 482 | 1213, 10689, -1293, 921, -4173, 10709, -6049, 8815, -7128, |
| 483 | 8147, -8308, 6847, -2977, 4920,-11447,-22426,-11794, 3514, |
| 484 | -10220, 3430, -7993, 1926, -7072, 327, -7569, -608, -7605, |
| 485 | 3695, -6271, -1579, -4877, -1419, -3103, -2197, 128, -3904, |
| 486 | 3760, -5401, 4906, -6051, 4250, -6272, 3492, -6343, 3197, |
| 487 | -6397, 4041, -6341, 6255, -6381, 7905, 16504, 0, -6144, |
| 488 | 8062, -5606, 8622, -5555, -9, -1, 7423, 0, 1, |
| 489 | 238, 5148, 1309, 4700, 2218, 4403, 2573, 3568, 28303, |
| 490 | 1758, 3454, -1247, 3434, -4912, 2862, -7844, 1718,-10095, |
| 491 | 369,-12631, 128, -3904, 3632, -5401, 4906, -6051, 4250, |
| 492 | -6272, 3492, -6343, 3197, -6397, 4041, -6341, 6255, -6381, |
| 493 | 7905, 16504, 0, -6144, 8062, -5606, 8622, -5555, 8439, |
| 494 | -3382, 7398, -1170, 6132, 238, 5148, 1309, 4700, 2218, |
| 495 | 4403, 2573, 3568, 2703, 1758, 3454, -1247, 3434, -4912, |
| 496 | 2862, -7844, 1718,-10095, 369,-12631, -259,-14632, 234, |
| 497 | -15056, -521,-15170, -386,-16015, -641,-16505, -930,-16206, |
| 498 | -1209,-16146, -2839,-16374, -4558,-16218, -5207,-15903, -6421, |
| 499 | -15615, -6925,-14871, -6149,-13759, -5233,-12844, 18313, -4357, |
| 500 | -5696, 2804, 12992,-22802, -6720, -9770, -7088, -8998, 14330, |
| 501 | -12523, 14843, -6130, 29178, -250,-27396, 10467, 16907, -3359, |
| 502 | -6644, 31965, 14607,-21544,-32497, 24020, 12557,-26926, -173, |
| 503 | -129, -6401, -130,-25089, -3841, -4916, -3048, 224, -237, |
| 504 | -3969, -189, -3529, -535, -3464,-14863,-14907,-14907,-14907, |
| 505 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 506 | -14907,-14395,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 507 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 508 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 509 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 510 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 511 | -14907,-14907, 0, 32512,-14907,-14907,-14907,-14907,-14907, |
| 512 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 513 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 514 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 515 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 516 | -14907,-14907,-14907,-14907,-14907, 9925, -718, 9753, -767, |
| 517 | 9099, -613, 8362, 675, 7774, 2597, 8549, 5278, 8743, |
| 518 | 9375, 6940, 13038, 4826, 14598, 7721,-24308,-29905,-19703, |
| 519 | -17106,-16124, -3287,-26118,-19709, 0, 24353, 28648, 10274, |
| 520 | -11292,-29665,-16417, 24346, 14553, 18707, 26323, -4596,-17711, |
| 521 | 5133, 26328, 13,-31168, 24583, 18404,-28927,-24350, 19453, |
| 522 | 28642, 1019,-10777, -3079, 30188, -7686, 27635,-32521,-16384, |
| 523 | 12528, -6386, 10986, 23827,-25880,-32752,-23321, 14605, 32231, |
| 524 | 780,-13849, 15119, 28647, 4888, -7705, 30750, 64, 0, |
| 525 | 32488, 6687,-20758, 19745, -2070,-13792, -6414, 28188, -2821, |
| 526 | -4585, 7168, 7444, 23557,-21998, 13064, 3345, -4086,-28915, |
| 527 | -8694, 32262, 8461, 27387,-12275, 12012, 23563,-18719,-28410, |
| 528 | 29144,-22271, -562, -9986, -5434, 12288, 5573,-16642, 32448, |
| 529 | 29182, 32705,-30723, 24255,-19716, 18368, -4357, -5696, 2804, |
| 530 | 12992,-22802,-22080, -7701, -5183, 486, -3133, -5660, -1083, |
| 531 | 16871,-28726,-11029,-30259, -1209,-16146, -2839,-16374, -4558, |
| 532 | -16218,-10523, 20697, -9500, -1316, 5431, -1073, 3641, -1304, |
| 533 | 1649, -769, -7276, 2856, -7870, 3314, -8730, 3964,-10183, |
| 534 | 4011,-11135, 3421,-11727, 21398, 32767, -1, 32486, -1, |
| 535 | 6301,-13071, 6380, -7948, -1, 32767, 240, 14081, -5646, |
| 536 | 30973, -3598,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 537 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 538 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 539 | -14907,-14907,-14907,-14907, 32767,-14907,-14907,-14907,-14907, |
| 540 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 541 | -14907, 8901, 9375, 6940, 13038, 4826, 14598, 7721,-24308, |
| 542 | -29905,-19703,-17106,-16124, -3287,-26118,-19709,-10769, 24361, |
| 543 | 28648, 10274,-11292,-29665,-16417, 24346, 14580, 18707, 26323, |
| 544 | -4440,-17711, 5133, 26328,-14579,-31008, 24583, 18404, 28417, |
| 545 | -24350, 19453, 28642,-32513,-10777, -3079, 30188, -7686, 27635, |
| 546 | -32521,-16384,-20240, -6386, 10986, 23827,-25880,-32752,-23321, |
| 547 | 14605, 32231, 780,-13849, 15119, 28647, 4888, -7705,-15074, |
| 548 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 549 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 550 | -14907,-14907,-14907, 8192,-14907,-14907,-14907,-14907,-14907, |
| 551 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 552 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 553 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 554 | -14907,-14907,-14907,-14897,-14907,-14907,-14907,-14907,-14907, |
| 555 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 556 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 557 | -15931,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 558 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 559 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 560 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 561 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 562 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 563 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 564 | -14907,-14907,-14907,-14907,-14907,-14907, 26121, 12890, 2604, |
| 565 | 12228,-11634, 12299, 5573,-16642, 32452, 29182, 32705,-30723, |
| 566 | 24255,-19716, 13248,-11779, -5696, 2804, 12992,-27666,-22080, |
| 567 | -7701, -5183, -6682,-31464, 14330,-12523, 14843, -6130, 29178, |
| 568 | -18,-27396, 10467, 16907, -3359, -6644, 31965, 14607,-21544, |
| 569 | -32497, 24020, 12557,-26926,-18421, 706, 24587, 19659, 4878, |
| 570 | 10954, 23060, 8907,-10215,-22579, 31772,-11825,-15590,-23089, |
| 571 | 17173,-25903,-17387, 3285, 4884, 10204,-16627,-14367, 516, |
| 572 | 20453,-16898, 20967,-23815, -20, 22011,-17167, 9468, 32499, |
| 573 | -25607, -523, -3883, -390, -4206, 634, -3767, 2325, -2751, |
| 574 | 3115, -2392, 2746, -2173, 2317, -1147, 2326, 23142, 11314, |
| 575 | -15130,-29137, 3026, 6146, 2150, 2476, 1105, -830, 1775, |
| 576 | -3425, 3674, -5287, 4609, -7175, 4922, -9579, 4556,-12007, |
| 577 | 4236,-14023, 3879,-15553, 3158,-16161, 2576, 18398,-12535, |
| 578 | -6645,-20735,-32763,-13824,-20992, 25859, 5372, 12040, 13307, |
| 579 | -4355,-30213, -9, -6019, 14061,-31487,-13842, 30449, 15083, |
| 580 | 14088, 31205,-18678,-12830, 14090,-26138,-25337,-11541, -3254, |
| 581 | 27628,-22270, 30953,-16136,-30745, 20991,-17406, 5632,-14330, |
| 582 | 28911,-25594, 17408,-20474, 13041, -8731, 2292, -3860, 24049, |
| 583 | 10225,-19220, 10478, -4374, -1199, 148, -330, -74, 593, |
| 584 | 188, 1558, -4152, 15984, 15934, 15934, 15934, 15934, 15934, |
| 585 | 15934, 15934, 15934, 15934, 15934, 15934, 1598, 156, 1604, |
| 586 | -1163, 2278,-30018,-25821,-21763,-23776, 24066, 9502, 25866, |
| 587 | -25055, 10004,-24798, 7204, -4581, -9678, 1554, 10553, 3102, |
| 588 | 12193, 2443, 11955, 1213, 10689, -1293, 921, -4173, 8661, |
| 589 | -6049, 8815,-21221,-14854, 23840, -9477, 8549, 5278, 8743, |
| 590 | 9375, 6940, 13038, 4826, 14598, 7721,-24308,-29905,-19703, |
| 591 | -17106,-16124, -3287,-26118,-19709,-10769, 24361, 28648, 10274, |
| 592 | -11292,-29665,-16417, 24346, 14580, 18707, 26323, -4410,-17711, |
| 593 | 5133, 26328,-14579,-31008, 24583, 18404, 28417,-24350, 19453, |
| 594 | 28642,-32513,-10777, -3079, 30188, -7686, 27635,-32521,-16384, |
| 595 | -20240, -6386, 10986, 23827,-25880,-32752,-23321, 14605, 32231, |
| 596 | 780,-13849, 15119, 28647, 4888, -7705, 30750, 64, 0, |
| 597 | 32488, 6687,-20758, 19745, -2070, -1, -1, 28, 256, |
| 598 | -4608, 7168, 7444, 23557,-21998, 13064, 3345, -4086,-28915, |
| 599 | -8594, 32262, 8461, 27387,-12275, 12012, 23563,-18719,-28410, |
| 600 | 29144,-22271,-32562,-16384, 12528, -6386, 10986, 23827,-25880, |
| 601 | -32752,-23321, 14605, 32231, 780,-13849, 15119, 28647, 4888, |
| 602 | -7705, 30750, 64, 0, 32488, 6687,-20758, 19745, -2070, |
| 603 | -13792, -6414, 28188, -2821, -4585, 7168, 7444, 23557,-21998, |
| 604 | 13064, 3345, -4086,-28915, -8694, 32262, 8461, 27387,-12275, |
| 605 | 12012, 23563,-18719,-28410, 29144,-22271, -562, -9986, -5434, |
| 606 | 12288, -2107,-16643, 32452, 29182, 32705,-30723, 24255,-19716, |
| 607 | 18368, -4357, -5696, 2804, 12992,-22802,-22080, -7701, -5183, |
| 608 | 486, -3133, -5660, -1083, 16871,-28726,-11029,-30259, -1209, |
| 609 | -16146, -2839,-16374, -4558,-16218,-10523, 20697, -9500, -1316, |
| 610 | 5431, -1073, 3641, -1304, 1649, -769, -7276, 2856, -7870, |
| 611 | 3314, -8730, 3964,-10183, 4011,-11135, 3421,-11727, 21398, |
| 612 | 32767, -1, 32486, -1, -99,-13072, 6380, -7948, 4864, |
| 613 | 32767, 17392, 14335, -5646, 30973, -3598,-10299,-14907,-14907, |
| 614 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 615 | -14907,-14907,-14905,-14907,-14907,-14907,-14907,-14907,-14907, |
| 616 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 617 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 618 | -14907,-14907,-14907,-14907,-14907,-19771,-14907,-14907,-14907, |
| 619 | -14907,-14907,-14907,-14907,-14907,-16443,-14907,-14907,-14907, |
| 620 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 621 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 622 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 623 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 624 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 625 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 626 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 627 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 628 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 629 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 630 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 631 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 632 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 633 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 634 | -14907,-14907,-14907,-14907,-15931,-14907,-14907,-14907,-14907, |
| 635 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 636 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 637 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 638 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 639 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 640 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 641 | -14907,-14907,-14907,-14907,-14907,-14907, -1,-14907,-14907, |
| 642 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 643 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 644 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 645 | -14907,-14907, 7877, 7710, 7710, 7710, 7710, 7710, 7710, |
| 646 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 647 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 648 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 649 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 650 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 651 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 652 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 653 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 654 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 655 | 7710, 7710, 7710, 7710, 7710, -994, -7276, 2856, -7870, |
| 656 | 3314, -8730, 3964,-10183, 4011,-11135, 3421,-11727, 21398, |
| 657 | 32767, -1, 32486, -1, -99,-13072, 6380, -7948, 4864, |
| 658 | 32767, 17392, 14335, -5646, 30973, -3598,-14907,-14907,-14907, |
| 659 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 660 | -14907,-14907,-14905,-14907,-14907,-14907,-14907,-14907,-14907, |
| 661 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 662 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 663 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 664 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 665 | -14907,-14907, 197, 0,-14977,-14907,-14907,-14907,-14907, |
| 666 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 667 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 668 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 669 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 670 | -14907,-14907,-14907,-14907,-14907,-14907, 12838, 6653, 294, |
| 671 | -29699,-25821,-21763,-23776, 24066, 9502, 25866,-25055, 10004, |
| 672 | -24798, 7204, -4581, -9678, 1554, 10553, 3102, 12193, 2443, |
| 673 | 11955, 1213, 10689, -1293, 921, 179, 8448, -6049, 8815, |
| 674 | -7128, 8147, -8308, 6847, -9889, 4920,-11447, 3174,-11794, |
| 675 | 3514,-10220, 3430, 16384, 1926, -7072, 327, -7537, -608, |
| 676 | -7605, -1169, -6397, -1579, -4877, -1419, -3103, -2197, 128, |
| 677 | -3904, 3632, -5401, 4906, -6051, 4250, -6272, 3492, -6343, |
| 678 | 3197, -6397, 4041, -6341, 6255, -6381, 7905, 16504, 0, |
| 679 | -6144, 8062, -5606, 8622, -5555, 8439, -3382, 7398, -1170, |
| 680 | 6132, 238, 5148, 1309, 4700, 2218, 4403, 2573, 3568, |
| 681 | 2703, 1758, 3454, -1247, 3434, -4912, 2862, -7844, 1718, |
| 682 | -10095, 369,-12631, -259,-14632, 234,-15056, -491,-16194, |
| 683 | -386,-16015, -641,-16505, -930,-16206, -1209,-16146, -2839, |
| 684 | -16374, -4558,-16218, -5207,-15903, -6421,-15615, -6925,-14871, |
| 685 | -6149,-13759, -5233,-12844, 18313, -4357, -5696, 2804, 12992, |
| 686 | -22802, -6720, -9770, -7088, -8998, 14330,-12523, 14843, -6130, |
| 687 | 29178, -250,-27396, 10467, 16907, -3359, -6644, 31965, 14607, |
| 688 | -21544,-32497, 24020, 12557,-26926, -173, -129, -6401, -130, |
| 689 | -25089, -3816, -4916, -3048, -32, -1, -3969, 256, -3529, |
| 690 | -535, -3464,-14863,-14907,-14907,-14907,-14907,-14907,-14907, |
| 691 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 692 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 693 | -1209,-16146, -2839,-16374, -4558,-16218,-10523, 20697, -9500, |
| 694 | -1316, 5431, -1073, 3641, -1304, 1649, -769, -7276, 2856, |
| 695 | -7870, 3314, -8730, 3964,-10183, 4011,-11135, 3421,-11727, |
| 696 | 21398, 32767, -1, 32486, -1, 6301,-13071, 6380, -7948, |
| 697 | -1, 32767, 240, 14081, -5646, 30973, -3598,-14907,-14907, |
| 698 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 699 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 700 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 701 | 32767,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 702 | -14907,-14907,-14907,-14907,-14907,-14907, 8901, 9375, 6940, |
| 703 | 13038, 4826, 14598, 7721,-24308,-29905,-19703,-17106,-16124, |
| 704 | -3287,-26118,-19709,-10769, 24361, 28648, 10274,-11292,-29665, |
| 705 | -16417, 24346, 14580, 18707, 26323, -4440,-17711, 5133, 26328, |
| 706 | -14579,-31008, 24583, 18404, 28417,-24350, 19453, 28642,-32513, |
| 707 | -10777, -3079, 30188, -7686, 27635,-32521,-16384,-20240, -6386, |
| 708 | 10986, 23827,-25880,-32752,-23321, 14605, 32231, 780,-13849, |
| 709 | 15119, 28647, 4888, -7705,-15074,-14907,-14907,-14907,-14907, |
| 710 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 711 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, 8192, |
| 712 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 713 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 714 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 715 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14897, |
| 716 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 717 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 718 | -14907,-14907,-14907,-14907,-14907,-15931,-14907,-14907,-14907, |
| 719 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 720 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 721 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 722 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 723 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 724 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 725 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 726 | -14907,-14907, 26121, 12890, 2604, 12228,-11634, 12299, 5573, |
| 727 | -16642, 32452, 29182, 32705,-30723, 24255,-19716, 13248,-11779, |
| 728 | -5696, 2804, 12992,-27666,-22080, -7701, -5183, -6682,-31464, |
| 729 | 14330,-12523, 14843, -6130, 29178, -18,-27396, 10467, 16907, |
| 730 | -3359, -6644, 31965, 14607,-21544,-32497, 24020, 12557,-26926, |
| 731 | -18421, 706, 24587, 19659, 4878, 10954, 23060, 8907,-10215, |
| 732 | -22579, 31772,-11825,-15590,-23089, 17173,-25903,-17387, 3285, |
| 733 | 4884, 10204,-16627,-14367, 516, 20453,-16898, 20967,-23815, |
| 734 | -20, 22011,-17167, 9468, 32499,-25607, -523, -3883, -390, |
| 735 | -4206, 634, -3767, 2325, -2751, 3115, -2392, 2746, -2173, |
| 736 | 2317, -1147, 2326, 23142, 11314,-15130,-29137, 3026, 6146, |
| 737 | 2150, 2476, 1105, -830, 1775, -3425, 3674, -5287, 4609, |
| 738 | -7175, 4922, -9579, 4556,-12007, 4236,-14023, 3879,-15553, |
| 739 | 3158,-16161, 2576, 18398,-12535, -6645,-20735,-32763,-13824, |
| 740 | -20992, 25859, 5372, 12040, 13307, -4355,-30213, -9, -6019 |
| 741 | }; |
| 742 | err = opus_multistream_encode(enc, pcm, 960, data, 7380); |
| 743 | assert(err > 0); |
| 744 | } |
| 745 | opus_multistream_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 746 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR(1)); |
| 747 | opus_multistream_encoder_ctl(enc, OPUS_SET_VBR_CONSTRAINT(0)); |
| 748 | opus_multistream_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 749 | opus_multistream_encoder_ctl(enc, OPUS_SET_FORCE_CHANNELS(OPUS_AUTO)); |
| 750 | opus_multistream_encoder_ctl(enc, OPUS_SET_PHASE_INVERSION_DISABLED(1)); |
| 751 | opus_multistream_encoder_ctl(enc, OPUS_SET_DTX(1)); |
| 752 | opus_multistream_encoder_ctl(enc, OPUS_SET_COMPLEXITY(6)); |
| 753 | opus_multistream_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_NARROWBAND)); |
| 754 | opus_multistream_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_AUTO)); |
| 755 | opus_multistream_encoder_ctl(enc, OPUS_SET_LSB_DEPTH(9)); |
| 756 | opus_multistream_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); |
| 757 | opus_multistream_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(5)); |
| 758 | opus_multistream_encoder_ctl(enc, OPUS_SET_BITRATE(775410)); |
| 759 | { |
| 760 | static const short pcm[1440*3] = |
| 761 | { |
| 762 | 30449, 15083, 14088, 31205,-18678,-12830, 14090,-26138,-25337, |
| 763 | -11541, -3254, 27628,-22270, 30953,-16136,-30745, 20991,-17406, |
| 764 | 5632,-14330, 28911,-25594, 17408,-20474, 13041, -8731, 2292, |
| 765 | -3860, 24049, 10225,-19220, 10478, -4374, -1199, 148, -330, |
| 766 | -74, 593, 188, 1558, -4152, 15984, 15934, 15934, 15934, |
| 767 | 15934, 15934, 15934, 15934, 15934, 15934, 15934, 15934, 1598, |
| 768 | 156, 1604, -1163, 2278,-30018,-25821,-21763,-23776, 24066, |
| 769 | 9502, 25866,-25055, 10004,-24798, 7204, -4581, -9678, 1554, |
| 770 | 10553, 3102, 12193, 2443, 11955, 1213, 10689, -1293, 921, |
| 771 | -4173, 8661, -6049, 8815,-21221,-14854, 23840, -9477, 8549, |
| 772 | 5278, 8743, 9375, 6940, 13038, 4826, 14598, 7721,-24308, |
| 773 | -29905,-19703,-17106,-16124, -3287,-26118,-19709,-10769, 24361, |
| 774 | 28648, 10274,-11292,-29665,-16417, 24346, 14580, 18707, 26323, |
| 775 | -4410,-17711, 5133, 26328,-14579,-31008, 24583, 18404, 28417, |
| 776 | -24350, 19453, 28642,-32513,-10777, -3079, 30188, -7686, 27635, |
| 777 | -32521,-16384,-20240, -6386, 10986, 23827,-25880,-32752,-23321, |
| 778 | 14605, 32231, 780,-13849, 15119, 28647, 4888, -7705, 30750, |
| 779 | 64, 0, 32488, 6687,-20758, 19745, -2070, -1, -1, |
| 780 | 28, 256, -4608, 7168, 7444, 23557,-21998, 13064, 3345, |
| 781 | -4086,-28915, -8594, 32262, 8461, 27387,-12275, 12012, 23563, |
| 782 | -18719,-28410, 29144,-22271,-32562,-16384, 12528, -6386, 10986, |
| 783 | 23827,-25880,-32752,-23321, 14605, 32231, 780,-13849, 15119, |
| 784 | 28647, 4888, -7705, 30750, 64, 0, 32488, 6687,-20758, |
| 785 | 19745, -2070,-13792, -6414, 28188, -2821, -4585, 7168, 7444, |
| 786 | 23557,-21998, 13064, 3345, -4086,-28915, -8694, 32262, 8461, |
| 787 | -14853,-14907,-14907,-14907,-14907, 32767,-14907,-14907,-14907, |
| 788 | -14907,-14907,-14907,-14907,-14907,-14891,-14907,-14907,-14907, |
| 789 | -14907,-14907, 8901, 9375, 6940, 13038, 4826, 14598, 7721, |
| 790 | -24308,-29905,-19703,-17106,-16124, -3287,-26118,-19709,-10769, |
| 791 | 24361, 28648, 10274,-11292,-29665,-16417, 24346, 14580, 18707, |
| 792 | 26323, -4440,-17711, 5133, 26328,-14579,-31008, 24583, 18404, |
| 793 | 28417,-24350, 19453, 28642,-32513,-10777, -3079, 30188, -7686, |
| 794 | 27635,-32521,-16384,-20240, -6386, 10986, 23827,-25880,-32752, |
| 795 | -23321, 14605, 32231, 780,-13849, 15119, 28647, 4888, -7705, |
| 796 | -15074,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 797 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 798 | -14907,-14907,-14907,-14907, 8192,-14907,-14907,-14907,-14907, |
| 799 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 800 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 801 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 802 | -14907,-14907,-14907,-14907,-14897,-14907,-14907,-14907,-14907, |
| 803 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 804 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 805 | -14907,-15931,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 806 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 807 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 808 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 809 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 810 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 811 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 812 | -14907,-14907,-14907,-14907,-14907,-14907,-14907, 26121, 12890, |
| 813 | 2604, 12228,-11634, 12299, 5573,-16642, 32452, 29182, 7710, |
| 814 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 815 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 816 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 817 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 818 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 819 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 820 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 821 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 822 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 823 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 824 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 825 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 826 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 827 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 828 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 829 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 830 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 831 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 832 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 833 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 834 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 835 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 836 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 837 | 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, 7710, |
| 838 | 7710,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 839 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 840 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 841 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 842 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 843 | -14907,-14907,-14907,-14907,-14907,-14907,-10811,-14907,-14907, |
| 844 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 845 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 846 | -14907,-14907,-14917,-14907,-14907,-14907,-14907,-14907,-14907, |
| 847 | -14907,-14907,-14907,-14907,-14907,-14907,-14938,-14907,-14907, |
| 848 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 849 | -14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907,-14907, |
| 850 | -14907,-14907,-14907,-14907, -571, -9986, -58, 12542,-18491, |
| 851 | 32507, 12838, 6653, 294, -1, 0,-19968, 18368, -4357, |
| 852 | -5696, 2804, 12998,-22802,-22080, -7701, -5183, 486, -3133, |
| 853 | -5660, -1083, 13799,-28726,-11029, 205,-14848, 32464, -1, |
| 854 | -129,-13072, 6380, -7948, 20717, 18425, 17392, 14335, -5646, |
| 855 | 30973, -3598, 7188, -3867, 3055, -4247, 5597, -4011,-26427, |
| 856 | -11,-30418, 7922, 2614, 237, -5839,-27413,-17624,-29716, |
| 857 | -13539, 239, 20991, 18164, -4082,-16647,-27386, 19458, 20224, |
| 858 | 4619, 19728, -7409,-18186,-25073, 27627,-23539, -7945,-31464, |
| 859 | 14330,-12523,-22021, -7701, -5183, 486, -3133, -5660, -1083, |
| 860 | 13799,-28726,-11029, 205,-14848, 32464, -1, -129,-13072, |
| 861 | 6380, -7948, 20717, 18425, 17392, 14093, -5646, 30973, -3598, |
| 862 | 7188, -3867, 3055, 3689, -5401, 4906, -6051, 4250, -6272, |
| 863 | 3492, -6343, 3197, -6397, 4041, -6341, 6255, -6381, 239, |
| 864 | 20991, 18164, -4082,-16647,-27386, 19458, 20224, 4619, 19728, |
| 865 | -7409,-18186,-25073, 27627,-23539, -7945,-31464, 14330,-12523, |
| 866 | 14843, -6130, 30202, -250,-28420, 10467, 16907, -3359, -6644, |
| 867 | 31965, 3343,-11727, 2966,-12616, 3064,-13472, 6732,-12349, |
| 868 | 5541,-11965, 5530,-10820, -1912, -3637, 32285, -4607, 310, |
| 869 | -32768, 0, -5258, 2106, -6857, 2681, -5449, -3606, -6717, |
| 870 | -5482, -3606, -1853, 4082, -7631, -9808, -1742, -2851, -5112, |
| 871 | 64, -868,-13546,-13365,-13365,-13365,-13365,-13365,-13365, |
| 872 | -13365,-13365,-13365,-13365,-13365,-13365,-13365,-13365,-13365, |
| 873 | -13365,-13365,-13365,-13365,-13365,-13365,-13365,-13365,-13365, |
| 874 | -13365,-13365,-13365,-13365,-13365,-13365,-13365,-13365,-13365, |
| 875 | -13365,-13365,-13365,-13365,-13365,-13365,-13365, 7883, -2316, |
| 876 | 9086, -3944, 10500, 4285, 10459, -6474, 10204, -6539, 11601, |
| 877 | -6824, 13385, -7142, 13872, -7457, 13670, -7725, 13463, -6887, |
| 878 | 12482, -5580, 12600, -4964, 12480, 3254, 11741, -4210,-24819, |
| 879 | 23282, 22798, 491, -1774, -1073, 3641, -1304, 28928, -250, |
| 880 | -27396, 6657, -8961, 22524, 19987, 10231, 1791, 8947,-32763, |
| 881 | -26385,-31227, -792,-30461, 8926, 4866, 27863, 27756, 27756, |
| 882 | 27756, 27756, 27756, 27756, 27756, 27756, 5630,-11070,-16136, |
| 883 | 20671,-11530, 27328, 8179, 5059,-31503,-24379,-19472, 17863, |
| 884 | -29202, 22986, -23, 8909, 8422, 10450 |
| 885 | }; |
| 886 | err = opus_multistream_encode(enc, pcm, 1440, data, 7380); |
| 887 | /* reads uninitialized data at src/opus_multistream_encoder.c:293 */ |
| 888 | assert(err > 0); |
| 889 | } |
| 890 | opus_multistream_encoder_destroy(enc); |
| 891 | return 0; |
| 892 | } |
| 893 | |
| 894 | static int ec_enc_shrink_assert(void) |
| 895 | { |
| 896 | OpusEncoder *enc; |
| 897 | int err; |
| 898 | int data_len; |
| 899 | unsigned char data[2000]; |
| 900 | static const short pcm1[960] = { 5140 }; |
| 901 | static const short pcm2[2880] = |
| 902 | { |
| 903 | -256,-12033, 0, -2817, 6912, 0, -5359, 5200, 3061, |
| 904 | 0, -2903, 5652, -1281,-24656,-14433,-24678, 32,-29793, |
| 905 | 2870, 0, 4096, 5120, 5140, -234,-20230,-24673,-24633, |
| 906 | -24673,-24705, 0,-32768,-25444,-25444, 0,-25444,-25444, |
| 907 | 156,-20480, -7948, -5920, -7968, -7968, 224, 0, 20480, |
| 908 | 11, 20496, 13, 20496, 11,-20480, 2292,-20240, 244, |
| 909 | 20480, 11, 20496, 11,-20480, 244,-20240, 7156, 20456, |
| 910 | -246,-20243, 244, 128, 244, 20480, 11, 20496, 11, |
| 911 | -20480, 244,-20256, 244, 20480, 256, 0, -246, 16609, |
| 912 | -176, 0, 29872, -4096, -2888, 516, 2896, 4096, 2896, |
| 913 | -20480, -3852, -2896, -1025,-31056,-14433, 244, 1792, -256, |
| 914 | -12033, 0, -2817, 0, 0, -5359, 5200, 3061, 16, |
| 915 | -2903, 5652, -1281,-24656,-14433,-24678, 32,-29793, 2870, |
| 916 | 0, 4096, 5120, 5140, -234,-20230,-24673,-24633,-24673, |
| 917 | -24705, 0,-32768,-25444,-25444, 0,-25444,-25444, 156, |
| 918 | -20480, -7973, -5920, -7968, -7968, 224, 0, 20480, 11, |
| 919 | 20496, 11, 20496, 11,-20480, 2292,-20213, 244, 20480, |
| 920 | 11, 20496, 11,-24698, -2873, 0, 7, -1, 208, |
| 921 | -256, 244, 0, 4352, 20715, -2796, 11,-22272, 5364, |
| 922 | -234,-20230,-24673,-25913, 8351,-24832, 13963, 11, 0, |
| 923 | 16, 5140, 5652, -1281,-24656,-14433,-24673, 32671, 159, |
| 924 | 0,-25472,-25444, 156,-25600,-25444,-25444, 0, -2896, |
| 925 | -7968, -7960, -7968, -7968, 0, 0, 2896, 4096, 2896, |
| 926 | 4096, 2896, 0, -2896, -4088, -2896, 0, 2896, 0, |
| 927 | -2896, -4096, -2896, 11, 2640, -4609, -2896,-32768, -3072, |
| 928 | 0, 2896, 4096, 2896, 0, -2896, -4096, -2896, 0, |
| 929 | 80, 1, 2816, 0, 20656, 255,-20480, 116,-18192 |
| 930 | }; |
| 931 | static const short pcm3[2880] = { 0 }; |
| 932 | |
| 933 | enc = opus_encoder_create(48000, 1, OPUS_APPLICATION_AUDIO, &err); |
| 934 | opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(10)); |
| 935 | opus_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(6)); |
| 936 | opus_encoder_ctl(enc, OPUS_SET_BITRATE(6000)); |
| 937 | data_len = opus_encode(enc, pcm1, 960, data, 2000); |
| 938 | assert(data_len > 0); |
| 939 | |
| 940 | opus_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_VOICE)); |
| 941 | opus_encoder_ctl(enc, OPUS_SET_PREDICTION_DISABLED(1)); |
| 942 | opus_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_SUPERWIDEBAND)); |
| 943 | opus_encoder_ctl(enc, OPUS_SET_INBAND_FEC(1)); |
| 944 | opus_encoder_ctl(enc, OPUS_SET_BITRATE(15600)); |
| 945 | data_len = opus_encode(enc, pcm2, 2880, data, 122); |
| 946 | assert(data_len > 0); |
| 947 | |
| 948 | opus_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 949 | opus_encoder_ctl(enc, OPUS_SET_BITRATE(27000)); |
| 950 | data_len = opus_encode(enc, pcm3, 2880, data, 122); /* assertion failure */ |
| 951 | assert(data_len > 0); |
| 952 | |
| 953 | opus_encoder_destroy(enc); |
| 954 | return 0; |
| 955 | } |
| 956 | |
| 957 | static int ec_enc_shrink_assert2(void) |
| 958 | { |
| 959 | OpusEncoder *enc; |
| 960 | int err; |
| 961 | int data_len; |
| 962 | unsigned char data[2000]; |
| 963 | |
| 964 | enc = opus_encoder_create(48000, 1, OPUS_APPLICATION_AUDIO, &err); |
| 965 | opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(6)); |
| 966 | opus_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_VOICE)); |
| 967 | opus_encoder_ctl(enc, OPUS_SET_BANDWIDTH(OPUS_BANDWIDTH_FULLBAND)); |
| 968 | opus_encoder_ctl(enc, OPUS_SET_PACKET_LOSS_PERC(26)); |
| 969 | opus_encoder_ctl(enc, OPUS_SET_BITRATE(27000)); |
| 970 | { |
| 971 | static const short pcm[960] = { 0 }; |
| 972 | data_len = opus_encode(enc, pcm, 960, data, 2000); |
| 973 | assert(data_len > 0); |
| 974 | } |
| 975 | opus_encoder_ctl(enc, OPUS_SET_SIGNAL(OPUS_SIGNAL_MUSIC)); |
| 976 | { |
| 977 | static const short pcm[480] = |
| 978 | { |
| 979 | 32767, 32767, 0, 0, 32767, 32767, 0, 0, 32767, 32767, |
| 980 | -32768, -32768, 0, 0, -32768, -32768, 0, 0, -32768, -32768 |
| 981 | }; |
| 982 | data_len = opus_encode(enc, pcm, 480, data, 19); |
| 983 | assert(data_len > 0); |
| 984 | } |
| 985 | opus_encoder_destroy(enc); |
| 986 | return 0; |
| 987 | } |
| 988 | |
| 989 | static int silk_gain_assert(void) |
| 990 | { |
| 991 | OpusEncoder *enc; |
| 992 | int err; |
| 993 | int data_len; |
| 994 | unsigned char data[1000]; |
| 995 | static const short pcm1[160] = { 0 }; |
| 996 | static const short pcm2[960] = |
| 997 | { |
| 998 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 999 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1000 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1001 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1002 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1003 | 32767, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, |
| 1004 | 0, 0, 0, 0, 32767 |
| 1005 | }; |
| 1006 | |
| 1007 | enc = opus_encoder_create(8000, 1, OPUS_APPLICATION_AUDIO, &err); |
| 1008 | opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(3)); |
| 1009 | opus_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_NARROWBAND)); |
| 1010 | opus_encoder_ctl(enc, OPUS_SET_BITRATE(6000)); |
| 1011 | data_len = opus_encode(enc, pcm1, 160, data, 1000); |
| 1012 | assert(data_len > 0); |
| 1013 | |
| 1014 | opus_encoder_ctl(enc, OPUS_SET_VBR(0)); |
| 1015 | opus_encoder_ctl(enc, OPUS_SET_COMPLEXITY(0)); |
| 1016 | opus_encoder_ctl(enc, OPUS_SET_MAX_BANDWIDTH(OPUS_BANDWIDTH_MEDIUMBAND)); |
| 1017 | opus_encoder_ctl(enc, OPUS_SET_BITRATE(2867)); |
| 1018 | data_len = opus_encode(enc, pcm2, 960, data, 1000); |
| 1019 | assert(data_len > 0); |
| 1020 | |
| 1021 | opus_encoder_destroy(enc); |
| 1022 | return 0; |
| 1023 | } |
| 1024 | |
| 1025 | void regression_test(void) |
| 1026 | { |
| 1027 | fprintf(stderr, "Running simple tests for bugs that have been fixed previously\n"); |
| 1028 | celt_ec_internal_error(); |
| 1029 | mscbr_encode_fail10(); |
| 1030 | mscbr_encode_fail(); |
| 1031 | surround_analysis_uninit(); |
| 1032 | ec_enc_shrink_assert(); |
| 1033 | ec_enc_shrink_assert2(); |
| 1034 | silk_gain_assert(); |
| 1035 | } |