Browse code

aac: Add support for Enhanced AAC Low Delay (ER AAC ELD).

This does not include support for LD SBR, epTool, data resilience, nor
the 960 transform family.

Alex Converse authored on 2013/10/15 05:51:46
Showing 6 changed files
... ...
@@ -38,6 +38,7 @@ version 10:
38 38
 - Low Delay AAC (ER AAC LD) decoding
39 39
 - mux chapters in ASF files
40 40
 - Opus in Ogg demuxing
41
+- Enhanced Low Delay AAC (ER AAC ELD) decoding (no LD SBR support)
41 42
 
42 43
 
43 44
 version 9:
... ...
@@ -234,7 +234,7 @@ typedef struct SingleChannelElement {
234 234
     int sf_idx[128];                                ///< scalefactor indices (used by encoder)
235 235
     uint8_t zeroes[128];                            ///< band is not coded (used by encoder)
236 236
     DECLARE_ALIGNED(32, float,   coeffs)[1024];     ///< coefficients for IMDCT
237
-    DECLARE_ALIGNED(32, float,   saved)[1024];      ///< overlap
237
+    DECLARE_ALIGNED(32, float,   saved)[1536];      ///< overlap
238 238
     DECLARE_ALIGNED(32, float,   ret_buf)[2048];    ///< PCM output buffer
239 239
     DECLARE_ALIGNED(16, float,   ltp_state)[3072];  ///< time signal for LTP
240 240
     PredictorState predictor_state[MAX_PREDICTORS];
... ...
@@ -2,6 +2,7 @@
2 2
  * AAC decoder
3 3
  * Copyright (c) 2005-2006 Oded Shimon ( ods15 ods15 dyndns org )
4 4
  * Copyright (c) 2006-2007 Maxim Gavrilov ( maxim.gavrilov gmail com )
5
+ * Copyright (c) 2008-2013 Alex Converse <alex.converse@gmail.com>
5 6
  *
6 7
  * AAC LATM decoder
7 8
  * Copyright (c) 2008-2010 Paul Kendall <paul@kcbbs.gen.nz>
... ...
@@ -778,6 +779,67 @@ static int decode_ga_specific_config(AACContext *ac, AVCodecContext *avctx,
778 778
     return 0;
779 779
 }
780 780
 
781
+static int decode_eld_specific_config(AACContext *ac, AVCodecContext *avctx,
782
+                                     GetBitContext *gb,
783
+                                     MPEG4AudioConfig *m4ac,
784
+                                     int channel_config)
785
+{
786
+    int ret, ep_config, res_flags;
787
+    uint8_t layout_map[MAX_ELEM_ID*4][3];
788
+    int tags = 0;
789
+    const int ELDEXT_TERM = 0;
790
+
791
+    m4ac->ps  = 0;
792
+    m4ac->sbr = 0;
793
+
794
+    if (get_bits1(gb)) { // frameLengthFlag
795
+        avpriv_request_sample(avctx, "960/120 MDCT window");
796
+        return AVERROR_PATCHWELCOME;
797
+    }
798
+
799
+    res_flags = get_bits(gb, 3);
800
+    if (res_flags) {
801
+        avpriv_report_missing_feature(avctx, AV_LOG_ERROR,
802
+                                      "AAC data resilience (flags %x)",
803
+                                      res_flags);
804
+        return AVERROR_PATCHWELCOME;
805
+    }
806
+
807
+    if (get_bits1(gb)) { // ldSbrPresentFlag
808
+        avpriv_report_missing_feature(avctx, AV_LOG_ERROR,
809
+                                      "Low Delay SBR");
810
+        return AVERROR_PATCHWELCOME;
811
+    }
812
+
813
+    while (get_bits(gb, 4) != ELDEXT_TERM) {
814
+        int len = get_bits(gb, 4);
815
+        if (len == 15)
816
+            len += get_bits(gb, 8);
817
+        if (len == 15 + 255)
818
+            len += get_bits(gb, 16);
819
+        if (get_bits_left(gb) < len * 8 + 4) {
820
+            av_log(ac->avctx, AV_LOG_ERROR, overread_err);
821
+            return AVERROR_INVALIDDATA;
822
+        }
823
+        skip_bits_long(gb, 8 * len);
824
+    }
825
+
826
+    if ((ret = set_default_channel_config(avctx, layout_map,
827
+                                          &tags, channel_config)))
828
+        return ret;
829
+
830
+    if (ac && (ret = output_configure(ac, layout_map, tags, OC_GLOBAL_HDR, 0)))
831
+        return ret;
832
+
833
+    ep_config = get_bits(gb, 2);
834
+    if (ep_config) {
835
+        avpriv_report_missing_feature(avctx, AV_LOG_ERROR,
836
+                                      "epConfig %d", ep_config);
837
+        return AVERROR_PATCHWELCOME;
838
+    }
839
+    return 0;
840
+}
841
+
781 842
 /**
782 843
  * Decode audio specific configuration; reference: table 1.13.
783 844
  *
... ...
@@ -836,6 +898,11 @@ static int decode_audio_specific_config(AACContext *ac,
836 836
                                             m4ac, m4ac->chan_config)) < 0)
837 837
             return ret;
838 838
         break;
839
+    case AOT_ER_AAC_ELD:
840
+        if ((ret = decode_eld_specific_config(ac, avctx, &gb,
841
+                                              m4ac, m4ac->chan_config)) < 0)
842
+            return ret;
843
+        break;
839 844
     default:
840 845
         avpriv_report_missing_feature(avctx, AV_LOG_ERROR,
841 846
                                       "Audio object type %s%d",
... ...
@@ -1067,22 +1134,25 @@ static void decode_ltp(LongTermPrediction *ltp,
1067 1067
 static int decode_ics_info(AACContext *ac, IndividualChannelStream *ics,
1068 1068
                            GetBitContext *gb)
1069 1069
 {
1070
-    if (get_bits1(gb)) {
1071
-        av_log(ac->avctx, AV_LOG_ERROR, "Reserved bit set.\n");
1072
-        return AVERROR_INVALIDDATA;
1073
-    }
1074
-    ics->window_sequence[1] = ics->window_sequence[0];
1075
-    ics->window_sequence[0] = get_bits(gb, 2);
1076
-    if (ac->oc[1].m4ac.object_type == AOT_ER_AAC_LD &&
1077
-        ics->window_sequence[0] != ONLY_LONG_SEQUENCE) {
1078
-        av_log(ac->avctx, AV_LOG_ERROR,
1079
-               "AAC LD is only defined for ONLY_LONG_SEQUENCE but "
1080
-               "window sequence %d found.\n", ics->window_sequence[0]);
1081
-        ics->window_sequence[0] = ONLY_LONG_SEQUENCE;
1082
-        return AVERROR_INVALIDDATA;
1070
+    int aot = ac->oc[1].m4ac.object_type;
1071
+    if (aot != AOT_ER_AAC_ELD) {
1072
+        if (get_bits1(gb)) {
1073
+            av_log(ac->avctx, AV_LOG_ERROR, "Reserved bit set.\n");
1074
+            return AVERROR_INVALIDDATA;
1075
+        }
1076
+        ics->window_sequence[1] = ics->window_sequence[0];
1077
+        ics->window_sequence[0] = get_bits(gb, 2);
1078
+        if (aot == AOT_ER_AAC_LD &&
1079
+            ics->window_sequence[0] != ONLY_LONG_SEQUENCE) {
1080
+            av_log(ac->avctx, AV_LOG_ERROR,
1081
+                   "AAC LD is only defined for ONLY_LONG_SEQUENCE but "
1082
+                   "window sequence %d found.\n", ics->window_sequence[0]);
1083
+            ics->window_sequence[0] = ONLY_LONG_SEQUENCE;
1084
+            return AVERROR_INVALIDDATA;
1085
+        }
1086
+        ics->use_kb_window[1]   = ics->use_kb_window[0];
1087
+        ics->use_kb_window[0]   = get_bits1(gb);
1083 1088
     }
1084
-    ics->use_kb_window[1]   = ics->use_kb_window[0];
1085
-    ics->use_kb_window[0]   = get_bits1(gb);
1086 1089
     ics->num_window_groups  = 1;
1087 1090
     ics->group_len[0]       = 1;
1088 1091
     if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
... ...
@@ -1104,7 +1174,7 @@ static int decode_ics_info(AACContext *ac, IndividualChannelStream *ics,
1104 1104
     } else {
1105 1105
         ics->max_sfb               = get_bits(gb, 6);
1106 1106
         ics->num_windows           = 1;
1107
-        if (ac->oc[1].m4ac.object_type == AOT_ER_AAC_LD) {
1107
+        if (aot == AOT_ER_AAC_LD || aot == AOT_ER_AAC_ELD) {
1108 1108
             ics->swb_offset        =     ff_swb_offset_512[ac->oc[1].m4ac.sampling_index];
1109 1109
             ics->num_swb           =    ff_aac_num_swb_512[ac->oc[1].m4ac.sampling_index];
1110 1110
             if (!ics->num_swb || !ics->swb_offset)
... ...
@@ -1114,20 +1184,22 @@ static int decode_ics_info(AACContext *ac, IndividualChannelStream *ics,
1114 1114
             ics->num_swb           =   ff_aac_num_swb_1024[ac->oc[1].m4ac.sampling_index];
1115 1115
         }
1116 1116
         ics->tns_max_bands         = ff_tns_max_bands_1024[ac->oc[1].m4ac.sampling_index];
1117
-        ics->predictor_present     = get_bits1(gb);
1118
-        ics->predictor_reset_group = 0;
1117
+        if (aot != AOT_ER_AAC_ELD) {
1118
+            ics->predictor_present     = get_bits1(gb);
1119
+            ics->predictor_reset_group = 0;
1120
+        }
1119 1121
         if (ics->predictor_present) {
1120
-            if (ac->oc[1].m4ac.object_type == AOT_AAC_MAIN) {
1122
+            if (aot == AOT_AAC_MAIN) {
1121 1123
                 if (decode_prediction(ac, ics, gb)) {
1122 1124
                     return AVERROR_INVALIDDATA;
1123 1125
                 }
1124
-            } else if (ac->oc[1].m4ac.object_type == AOT_AAC_LC ||
1125
-                       ac->oc[1].m4ac.object_type == AOT_ER_AAC_LC) {
1126
+            } else if (aot == AOT_AAC_LC ||
1127
+                       aot == AOT_ER_AAC_LC) {
1126 1128
                 av_log(ac->avctx, AV_LOG_ERROR,
1127 1129
                        "Prediction is not allowed in AAC-LC.\n");
1128 1130
                 return AVERROR_INVALIDDATA;
1129 1131
             } else {
1130
-                if (ac->oc[1].m4ac.object_type == AOT_ER_AAC_LD) {
1132
+                if (aot == AOT_ER_AAC_LD) {
1131 1133
                     av_log(ac->avctx, AV_LOG_ERROR,
1132 1134
                            "LTP in ER AAC LD not yet implemented.\n");
1133 1135
                     return AVERROR_PATCHWELCOME;
... ...
@@ -1749,9 +1821,15 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce,
1749 1749
     TemporalNoiseShaping    *tns = &sce->tns;
1750 1750
     IndividualChannelStream *ics = &sce->ics;
1751 1751
     float *out = sce->coeffs;
1752
-    int global_gain, er_syntax, pulse_present = 0;
1752
+    int global_gain, eld_syntax, er_syntax, pulse_present = 0;
1753 1753
     int ret;
1754 1754
 
1755
+    eld_syntax = ac->oc[1].m4ac.object_type == AOT_ER_AAC_ELD;
1756
+    er_syntax  = ac->oc[1].m4ac.object_type == AOT_ER_AAC_LC ||
1757
+                 ac->oc[1].m4ac.object_type == AOT_ER_AAC_LTP ||
1758
+                 ac->oc[1].m4ac.object_type == AOT_ER_AAC_LD ||
1759
+                 ac->oc[1].m4ac.object_type == AOT_ER_AAC_ELD;
1760
+
1755 1761
     /* This assignment is to silence a GCC warning about the variable being used
1756 1762
      * uninitialized when in fact it always is.
1757 1763
      */
... ...
@@ -1772,11 +1850,8 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce,
1772 1772
         return ret;
1773 1773
 
1774 1774
     pulse_present = 0;
1775
-    er_syntax = ac->oc[1].m4ac.object_type == AOT_ER_AAC_LC ||
1776
-                ac->oc[1].m4ac.object_type == AOT_ER_AAC_LTP ||
1777
-                ac->oc[1].m4ac.object_type == AOT_ER_AAC_LD;
1778 1775
     if (!scale_flag) {
1779
-        if ((pulse_present = get_bits1(gb))) {
1776
+        if (!eld_syntax && (pulse_present = get_bits1(gb))) {
1780 1777
             if (ics->window_sequence[0] == EIGHT_SHORT_SEQUENCE) {
1781 1778
                 av_log(ac->avctx, AV_LOG_ERROR,
1782 1779
                        "Pulse tool not allowed in eight short sequence.\n");
... ...
@@ -1792,7 +1867,7 @@ static int decode_ics(AACContext *ac, SingleChannelElement *sce,
1792 1792
         if (tns->present && !er_syntax)
1793 1793
             if (decode_tns(ac, tns, gb, ics) < 0)
1794 1794
                 return AVERROR_INVALIDDATA;
1795
-        if (get_bits1(gb)) {
1795
+        if (!eld_syntax && get_bits1(gb)) {
1796 1796
             avpriv_request_sample(ac->avctx, "SSR");
1797 1797
             return AVERROR_PATCHWELCOME;
1798 1798
         }
... ...
@@ -1892,8 +1967,9 @@ static void apply_intensity_stereo(AACContext *ac,
1892 1892
 static int decode_cpe(AACContext *ac, GetBitContext *gb, ChannelElement *cpe)
1893 1893
 {
1894 1894
     int i, ret, common_window, ms_present = 0;
1895
+    int eld_syntax = ac->oc[1].m4ac.object_type == AOT_ER_AAC_ELD;
1895 1896
 
1896
-    common_window = get_bits1(gb);
1897
+    common_window = eld_syntax || get_bits1(gb);
1897 1898
     if (common_window) {
1898 1899
         if (decode_ics_info(ac, &cpe->ch[0].ics, gb))
1899 1900
             return AVERROR_INVALIDDATA;
... ...
@@ -2363,6 +2439,62 @@ static void imdct_and_windowing_ld(AACContext *ac, SingleChannelElement *sce)
2363 2363
     memcpy(saved, buf + 256, 256 * sizeof(float));
2364 2364
 }
2365 2365
 
2366
+static void imdct_and_windowing_eld(AACContext *ac, SingleChannelElement *sce)
2367
+{
2368
+    float *in    = sce->coeffs;
2369
+    float *out   = sce->ret;
2370
+    float *saved = sce->saved;
2371
+    const float *const window = ff_aac_eld_window;
2372
+    float *buf  = ac->buf_mdct;
2373
+    int i;
2374
+    const int n  = 512;
2375
+    const int n2 = n >> 1;
2376
+    const int n4 = n >> 2;
2377
+
2378
+    // Inverse transform, mapped to the conventional IMDCT by
2379
+    // Chivukula, R.K.; Reznik, Y.A.; Devarajan, V.,
2380
+    // "Efficient algorithms for MPEG-4 AAC-ELD, AAC-LD and AAC-LC filterbanks,"
2381
+    // Audio, Language and Image Processing, 2008. ICALIP 2008. International Conference on
2382
+    // URL: http://ieeexplore.ieee.org/stamp/stamp.jsp?tp=&arnumber=4590245&isnumber=4589950
2383
+    for (i = 0; i < n2; i+=2) {
2384
+        float temp;
2385
+        temp =  in[i    ]; in[i    ] = -in[n - 1 - i]; in[n - 1 - i] = temp;
2386
+        temp = -in[i + 1]; in[i + 1] =  in[n - 2 - i]; in[n - 2 - i] = temp;
2387
+    }
2388
+    ac->mdct.imdct_half(&ac->mdct_ld, buf, in);
2389
+    for (i = 0; i < n; i+=2) {
2390
+        buf[i] = -buf[i];
2391
+    }
2392
+    // Like with the regular IMDCT at this point we still have the middle half
2393
+    // of a transform but with even symmetry on the left and odd symmetry on
2394
+    // the right
2395
+
2396
+    // window overlapping
2397
+    // The spec says to use samples [0..511] but the reference decoder uses
2398
+    // samples [128..639].
2399
+    for (i = n4; i < n2; i ++) {
2400
+        out[i - n4] =    buf[n2 - 1 - i]       * window[i       - n4] +
2401
+                       saved[      i + n2]     * window[i +   n - n4] +
2402
+                      -saved[  n + n2 - 1 - i] * window[i + 2*n - n4] +
2403
+                      -saved[2*n + n2 + i]     * window[i + 3*n - n4];
2404
+    }
2405
+    for (i = 0; i < n2; i ++) {
2406
+        out[n4 + i] =    buf[i]               * window[i + n2       - n4] +
2407
+                      -saved[      n - 1 - i] * window[i + n2 +   n - n4] +
2408
+                      -saved[  n + i]         * window[i + n2 + 2*n - n4] +
2409
+                       saved[2*n + n - 1 - i] * window[i + n2 + 3*n - n4];
2410
+    }
2411
+    for (i = 0; i < n4; i ++) {
2412
+        out[n2 + n4 + i] =    buf[      i + n2]     * window[i +   n - n4] +
2413
+                           -saved[      n2 - 1 - i] * window[i + 2*n - n4] +
2414
+                           -saved[  n + n2 + i]     * window[i + 3*n - n4];
2415
+    }
2416
+
2417
+    // buffer update
2418
+    memmove(saved + n, saved, 2 * n * sizeof(float));
2419
+    memcpy( saved,       buf,     n * sizeof(float));
2420
+}
2421
+
2366 2422
 /**
2367 2423
  * Apply dependent channel coupling (applied before IMDCT).
2368 2424
  *
... ...
@@ -2460,10 +2592,16 @@ static void spectral_to_sample(AACContext *ac)
2460 2460
 {
2461 2461
     int i, type;
2462 2462
     void (*imdct_and_window)(AACContext *ac, SingleChannelElement *sce);
2463
-    if (ac->oc[1].m4ac.object_type == AOT_ER_AAC_LD)
2463
+    switch (ac->oc[1].m4ac.object_type) {
2464
+    case AOT_ER_AAC_LD:
2464 2465
         imdct_and_window = imdct_and_windowing_ld;
2465
-    else
2466
+        break;
2467
+    case AOT_ER_AAC_ELD:
2468
+        imdct_and_window = imdct_and_windowing_eld;
2469
+        break;
2470
+    default:
2466 2471
         imdct_and_window = imdct_and_windowing;
2472
+    }
2467 2473
     for (type = 3; type >= 0; type--) {
2468 2474
         for (i = 0; i < MAX_ELEM_ID; i++) {
2469 2475
             ChannelElement *che = ac->che[type][i];
... ...
@@ -2556,8 +2694,9 @@ static int aac_decode_er_frame(AVCodecContext *avctx, void *data,
2556 2556
     int err, i;
2557 2557
     int samples = 1024;
2558 2558
     int chan_config = ac->oc[1].m4ac.chan_config;
2559
+    int aot = ac->oc[1].m4ac.object_type;
2559 2560
 
2560
-    if (ac->oc[1].m4ac.object_type == AOT_ER_AAC_LD)
2561
+    if (aot == AOT_ER_AAC_LD || aot == AOT_ER_AAC_ELD)
2561 2562
         samples >>= 1;
2562 2563
 
2563 2564
     ac->frame = data;
... ...
@@ -2581,7 +2720,8 @@ static int aac_decode_er_frame(AVCodecContext *avctx, void *data,
2581 2581
                    elem_type, elem_id);
2582 2582
             return AVERROR_INVALIDDATA;
2583 2583
         }
2584
-        skip_bits(gb, 4);
2584
+        if (aot != AOT_ER_AAC_ELD)
2585
+            skip_bits(gb, 4);
2585 2586
         switch (elem_type) {
2586 2587
         case TYPE_SCE:
2587 2588
             err = decode_ics(ac, &che->ch[0], gb, 0, 0);
... ...
@@ -2783,6 +2923,7 @@ static int aac_decode_frame(AVCodecContext *avctx, void *data,
2783 2783
     case AOT_ER_AAC_LC:
2784 2784
     case AOT_ER_AAC_LTP:
2785 2785
     case AOT_ER_AAC_LD:
2786
+    case AOT_ER_AAC_ELD:
2786 2787
         err = aac_decode_er_frame(avctx, data, got_frame_ptr, &gb);
2787 2788
         break;
2788 2789
     default:
... ...
@@ -1241,3 +1241,486 @@ const uint8_t ff_tns_max_bands_128[] = {
1241 1241
     9, 9, 10, 14, 14, 14, 14, 14, 14, 14, 14, 14, 14
1242 1242
 };
1243 1243
 // @}
1244
+
1245
+const DECLARE_ALIGNED(32, float, ff_aac_eld_window)[1920] = {
1246
+     0.00338834,  0.00567745,  0.00847677,  0.01172641,
1247
+     0.01532555,  0.01917664,  0.02318809,  0.02729259,
1248
+     0.03144503,  0.03560261,  0.03972499,  0.04379783,
1249
+     0.04783094,  0.05183357,  0.05581342,  0.05977723,
1250
+     0.06373173,  0.06768364,  0.07163937,  0.07559976,
1251
+     0.07956096,  0.08352024,  0.08747623,  0.09143035,
1252
+     0.09538618,  0.09934771,  0.10331917,  0.10730456,
1253
+     0.11130697,  0.11532867,  0.11937133,  0.12343922,
1254
+     0.12753911,  0.13167705,  0.13585812,  0.14008529,
1255
+     0.14435986,  0.14868291,  0.15305531,  0.15747594,
1256
+     0.16194193,  0.16645070,  0.17099991,  0.17558633,
1257
+     0.18020600,  0.18485548,  0.18953191,  0.19423322,
1258
+     0.19895800,  0.20370512,  0.20847374,  0.21326312,
1259
+     0.21807244,  0.22290083,  0.22774742,  0.23261210,
1260
+     0.23749542,  0.24239767,  0.24731889,  0.25225887,
1261
+     0.25721719,  0.26219330,  0.26718648,  0.27219630,
1262
+     0.27722262,  0.28226514,  0.28732336,  0.29239628,
1263
+     0.29748247,  0.30258055,  0.30768914,  0.31280508,
1264
+     0.31792385,  0.32304172,  0.32815579,  0.33326397,
1265
+     0.33836470,  0.34345661,  0.34853868,  0.35361188,
1266
+     0.35867865,  0.36374072,  0.36879900,  0.37385347,
1267
+     0.37890349,  0.38394836,  0.38898730,  0.39401912,
1268
+     0.39904236,  0.40405575,  0.40905820,  0.41404819,
1269
+     0.41902398,  0.42398423,  0.42892805,  0.43385441,
1270
+     0.43876210,  0.44365014,  0.44851786,  0.45336632,
1271
+     0.45819759,  0.46301302,  0.46781309,  0.47259722,
1272
+     0.47736435,  0.48211365,  0.48684450,  0.49155594,
1273
+     0.49624679,  0.50091636,  0.50556440,  0.51019132,
1274
+     0.51479771,  0.51938391,  0.52394998,  0.52849587,
1275
+     0.53302151,  0.53752680,  0.54201160,  0.54647575,
1276
+     0.55091916,  0.55534181,  0.55974376,  0.56412513,
1277
+     0.56848615,  0.57282710,  0.57714834,  0.58145030,
1278
+     0.58492489,  0.58918511,  0.59342326,  0.59763936,
1279
+     0.60183347,  0.60600561,  0.61015581,  0.61428412,
1280
+     0.61839056,  0.62247517,  0.62653799,  0.63057912,
1281
+     0.63459872,  0.63859697,  0.64257403,  0.64653001,
1282
+     0.65046495,  0.65437887,  0.65827181,  0.66214383,
1283
+     0.66599499,  0.66982535,  0.67363499,  0.67742394,
1284
+     0.68119219,  0.68493972,  0.68866653,  0.69237258,
1285
+     0.69605778,  0.69972207,  0.70336537,  0.70698758,
1286
+     0.71058862,  0.71416837,  0.71772674,  0.72126361,
1287
+     0.72477889,  0.72827246,  0.73174419,  0.73519392,
1288
+     0.73862141,  0.74202643,  0.74540874,  0.74876817,
1289
+     0.75210458,  0.75541785,  0.75870785,  0.76197437,
1290
+     0.76521709,  0.76843570,  0.77162988,  0.77479939,
1291
+     0.77794403,  0.78106359,  0.78415789,  0.78722670,
1292
+     0.79026979,  0.79328694,  0.79627791,  0.79924244,
1293
+     0.80218027,  0.80509112,  0.80797472,  0.81083081,
1294
+     0.81365915,  0.81645949,  0.81923160,  0.82197528,
1295
+     0.82469037,  0.82737673,  0.83003419,  0.83266262,
1296
+     0.83526186,  0.83783176,  0.84037217,  0.84288297,
1297
+     0.84536401,  0.84781517,  0.85023632,  0.85262739,
1298
+     0.85498836,  0.85731921,  0.85961993,  0.86189052,
1299
+     0.86413101,  0.86634140,  0.86852173,  0.87067211,
1300
+     0.87279275,  0.87488384,  0.87694559,  0.87897824,
1301
+     0.88098206,  0.88295729,  0.88490423,  0.88682332,
1302
+     0.88871519,  0.89058048,  0.89241983,  0.89423391,
1303
+     0.89602338,  0.89778893,  0.89953126,  0.90125142,
1304
+     0.90295086,  0.90463104,  0.90629341,  0.90793946,
1305
+     0.90957067,  0.91118856,  0.91279464,  0.91439073,
1306
+     0.91597898,  0.91756153,  0.91914049,  0.92071690,
1307
+     0.92229070,  0.92386182,  0.92542993,  0.92698946,
1308
+     0.92852960,  0.93003929,  0.93150727,  0.93291739,
1309
+     0.93424863,  0.93547974,  0.93658982,  0.93756587,
1310
+     0.93894072,  0.93922780,  0.93955477,  0.93991290,
1311
+     0.94029104,  0.94067794,  0.94106258,  0.94144084,
1312
+     0.94181549,  0.94218963,  0.94256628,  0.94294662,
1313
+     0.94332998,  0.94371562,  0.94410280,  0.94449122,
1314
+     0.94488106,  0.94527249,  0.94566568,  0.94606074,
1315
+     0.94645772,  0.94685665,  0.94725759,  0.94766054,
1316
+     0.94806547,  0.94847234,  0.94888115,  0.94929190,
1317
+     0.94970469,  0.95011960,  0.95053672,  0.95095604,
1318
+     0.95137751,  0.95180105,  0.95222658,  0.95265413,
1319
+     0.95308380,  0.95351571,  0.95394994,  0.95438653,
1320
+     0.95482538,  0.95526643,  0.95570958,  0.95615486,
1321
+     0.95660234,  0.95705214,  0.95750433,  0.95795892,
1322
+     0.95841582,  0.95887493,  0.95933616,  0.95979949,
1323
+     0.96026500,  0.96073277,  0.96120286,  0.96167526,
1324
+     0.96214986,  0.96262655,  0.96310522,  0.96358586,
1325
+     0.96406853,  0.96455330,  0.96504026,  0.96552936,
1326
+     0.96602051,  0.96651360,  0.96700850,  0.96750520,
1327
+     0.96800376,  0.96850424,  0.96900670,  0.96951112,
1328
+     0.97001738,  0.97052533,  0.97103488,  0.97154597,
1329
+     0.97205867,  0.97257304,  0.97308915,  0.97360694,
1330
+     0.97412631,  0.97464711,  0.97516923,  0.97569262,
1331
+     0.97621735,  0.97674350,  0.97727111,  0.97780016,
1332
+     0.97833051,  0.97886205,  0.97939463,  0.97992823,
1333
+     0.98046291,  0.98099875,  0.98153580,  0.98207405,
1334
+     0.98261337,  0.98315364,  0.98369474,  0.98423664,
1335
+     0.98477941,  0.98532311,  0.98586780,  0.98641348,
1336
+     0.98696003,  0.98750734,  0.98805530,  0.98860389,
1337
+     0.98915320,  0.98970328,  0.99025423,  0.99080602,
1338
+     0.99135855,  0.99191171,  0.99246541,  0.99301962,
1339
+     0.99357443,  0.99412992,  0.99468617,  0.99524320,
1340
+     0.99580092,  0.99635926,  0.99691814,  0.99747748,
1341
+     0.99803721,  0.99859725,  0.99915752,  0.99971793,
1342
+     1.00028215,  1.00084319,  1.00140472,  1.00196665,
1343
+     1.00252889,  1.00309139,  1.00365404,  1.00421679,
1344
+     1.00477954,  1.00534221,  1.00590474,  1.00646713,
1345
+     1.00702945,  1.00759179,  1.00815424,  1.00871678,
1346
+     1.00927930,  1.00984169,  1.01040384,  1.01096575,
1347
+     1.01152747,  1.01208910,  1.01265070,  1.01321226,
1348
+     1.01377365,  1.01433478,  1.01489551,  1.01545584,
1349
+     1.01601582,  1.01657553,  1.01713502,  1.01769427,
1350
+     1.01825316,  1.01881154,  1.01936929,  1.01992639,
1351
+     1.02048289,  1.02103888,  1.02159441,  1.02214945,
1352
+     1.02270387,  1.02325751,  1.02381025,  1.02436204,
1353
+     1.02491295,  1.02546304,  1.02601238,  1.02656092,
1354
+     1.02710853,  1.02765508,  1.02820041,  1.02874449,
1355
+     1.02928737,  1.02982913,  1.03036981,  1.03090937,
1356
+     1.03144768,  1.03198460,  1.03252000,  1.03305384,
1357
+     1.03358617,  1.03411707,  1.03464659,  1.03517470,
1358
+     1.03570128,  1.03622620,  1.03674934,  1.03727066,
1359
+     1.03779024,  1.03830815,  1.03882446,  1.03933914,
1360
+     1.03985206,  1.04036312,  1.04087217,  1.04137920,
1361
+     1.04188428,  1.04238748,  1.04288888,  1.04338845,
1362
+     1.04388610,  1.04438170,  1.04487515,  1.04536645,
1363
+     1.04585569,  1.04634297,  1.04682838,  1.04731192,
1364
+     1.04779350,  1.04827303,  1.04875042,  1.04922568,
1365
+     1.04969891,  1.05017022,  1.05063974,  1.05110746,
1366
+     1.05157332,  1.05203721,  1.05249907,  1.05295889,
1367
+     1.05341676,  1.05387277,  1.05432700,  1.05477948,
1368
+     1.05523018,  1.05567906,  1.05612608,  1.05657124,
1369
+     1.05701459,  1.05745616,  1.05789601,  1.05833426,
1370
+     1.05877109,  1.05920669,  1.05964125,  1.06007444,
1371
+     1.06050542,  1.06093335,  1.06135746,  1.06177909,
1372
+     1.06220164,  1.06262858,  1.06306309,  1.06350050,
1373
+     1.06392837,  1.06433391,  1.06470443,  1.06502996,
1374
+     1.06481076,  1.06469765,  1.06445004,  1.06408002,
1375
+     1.06361382,  1.06307719,  1.06249453,  1.06188365,
1376
+     1.06125612,  1.06062291,  1.05999418,  1.05937132,
1377
+     1.05874726,  1.05811486,  1.05746728,  1.05680000,
1378
+     1.05611070,  1.05539715,  1.05465735,  1.05389329,
1379
+     1.05311083,  1.05231578,  1.05151372,  1.05070811,
1380
+     1.04990044,  1.04909210,  1.04828434,  1.04747647,
1381
+     1.04666590,  1.04585003,  1.04502628,  1.04419009,
1382
+     1.04333499,  1.04245452,  1.04154244,  1.04059452,
1383
+     1.03960846,  1.03858207,  1.03751326,  1.03640189,
1384
+     1.03524976,  1.03405868,  1.03283047,  1.03156812,
1385
+     1.03027574,  1.02895743,  1.02761717,  1.02625804,
1386
+     1.02488222,  1.02349184,  1.02208892,  1.02067450,
1387
+     1.01924861,  1.01781123,  1.01636229,  1.01490045,
1388
+     1.01342315,  1.01192778,  1.01041175,  1.00887284,
1389
+     1.00730915,  1.00571882,  1.00409996,  1.00245032,
1390
+     1.00076734,  0.99904842,  0.99729101,  0.99549380,
1391
+     0.99365664,  0.99177946,  0.98986234,  0.98791024,
1392
+     0.98593294,  0.98394037,  0.98194226,  0.97994532,
1393
+     0.97795324,  0.97596955,  0.97399748,  0.97203326,
1394
+     0.97006624,  0.96808546,  0.96608018,  0.96404416,
1395
+     0.96197556,  0.95987276,  0.95773420,  0.95556018,
1396
+     0.95335291,  0.95111462,  0.94884764,  0.94655663,
1397
+     0.94424858,  0.94193055,  0.93960953,  0.93729154,
1398
+     0.93498157,  0.93268456,  0.93040503,  0.92813771,
1399
+     0.92586755,  0.92357910,  0.92125731,  0.91889642,
1400
+     0.91649998,  0.91407191,  0.91161623,  0.90913975,
1401
+     0.90665202,  0.90416271,  0.90168115,  0.89920934,
1402
+     0.89674189,  0.89427312,  0.89179743,  0.88931147,
1403
+     0.88681415,  0.88430445,  0.88178141,  0.87924528,
1404
+     0.87669753,  0.87413966,  0.87157318,  0.86899958,
1405
+     0.86642037,  0.86383703,  0.86125106,  0.85866393,
1406
+     0.85604236,  0.85344385,  0.85083093,  0.84820550,
1407
+     0.84556943,  0.84292458,  0.84027278,  0.83761586,
1408
+     0.83495565,  0.83229393,  0.82963243,  0.82697135,
1409
+     0.82430933,  0.82164496,  0.81897669,  0.81630017,
1410
+     0.81360822,  0.81089355,  0.80814924,  0.80537741,
1411
+     0.80258920,  0.79979611,  0.79700954,  0.79423813,
1412
+     0.79148780,  0.78876432,  0.78607290,  0.78340590,
1413
+     0.78074288,  0.77806279,  0.77534514,  0.77258187,
1414
+     0.76977737,  0.76693654,  0.76406441,  0.76116851,
1415
+     0.75825892,  0.75534582,  0.75243924,  0.74954634,
1416
+     0.74667135,  0.74381840,  0.74099145,  0.73819147,
1417
+     0.73541641,  0.73266408,  0.72993193,  0.72720913,
1418
+     0.72447661,  0.72171494,  0.71890515,  0.71603932,
1419
+     0.71312056,  0.71015250,  0.70713900,  0.70409084,
1420
+     0.70102565,  0.69796137,  0.69491556,  0.69189772,
1421
+     0.68890931,  0.68595141,  0.68302498,  0.68012852,
1422
+     0.67725801,  0.67440936,  0.67157841,  0.66876081,
1423
+     0.66595195,  0.66314722,  0.66034194,  0.65753027,
1424
+     0.65470525,  0.65185984,  0.64898709,  0.64608214,
1425
+     0.64314221,  0.64016460,  0.63714680,  0.63409034,
1426
+     0.63100082,  0.62788400,  0.62474577,  0.62159473,
1427
+     0.61844225,  0.61529977,  0.61217866,  0.60908811,
1428
+     0.60603510,  0.60302654,  0.60006916,  0.59716588,
1429
+     0.59431580,  0.59151787,  0.58877068,  0.58606495,
1430
+     0.58338353,  0.58070891,  0.57802356,  0.57530864,
1431
+     0.57254404,  0.56970958,  0.56678577,  0.56376860,
1432
+     0.56066951,  0.55750064,  0.55427451,  0.55101301,
1433
+     0.54774732,  0.54450907,  0.54132936,  0.53822744,
1434
+     0.53521072,  0.53228613,  0.52945979,  0.52671997,
1435
+     0.52403708,  0.52138072,  0.51872085,  0.51603570,
1436
+     0.51331170,  0.51053560,  0.50769466,  0.50478931,
1437
+     0.50183308,  0.49884001,  0.49582406,  0.49279905,
1438
+     0.48985748,  0.48679641,  0.48379429,  0.48085363,
1439
+     0.47796576,  0.47512151,  0.47231151,  0.46952402,
1440
+     0.46674486,  0.46395978,  0.46115496,  0.45832607,
1441
+     0.45547830,  0.45261727,  0.44974866,  0.44688011,
1442
+     0.44402125,  0.44118178,  0.43837094,  0.43558772,
1443
+     0.43282082,  0.43005847,  0.42728913,  0.42450572,
1444
+     0.42170567,  0.41888658,  0.41604633,  0.41318897,
1445
+     0.41032472,  0.40746405,  0.40461724,  0.40178943,
1446
+     0.39898066,  0.39619073,  0.39341940,  0.39066519,
1447
+     0.38792536,  0.38519713,  0.38247773,  0.37976476,
1448
+     0.37705620,  0.37435006,  0.37164438,  0.36893869,
1449
+     0.36623396,  0.36353124,  0.36083153,  0.35813533,
1450
+     0.35544262,  0.35275338,  0.35006755,  0.34738530,
1451
+     0.34470699,  0.34203296,  0.33936359,  0.33669922,
1452
+     0.33404027,  0.33138711,  0.32874013,  0.32609944,
1453
+     0.32346493,  0.32083645,  0.31821388,  0.31559703,
1454
+     0.31298573,  0.31037987,  0.30777941,  0.30518446,
1455
+     0.30259525,  0.30001202,  0.29743499,  0.29486428,
1456
+     0.29229989,  0.28974179,  0.28718997,  0.28464452,
1457
+     0.28210562,  0.27957346,  0.27704820,  0.27452992,
1458
+     0.27201854,  0.26951399,  0.26701622,  0.26452533,
1459
+     0.26204158,  0.25956526,  0.25709662,  0.25463583,
1460
+     0.25218294,  0.24973798,  0.24730100,  0.24487207,
1461
+     0.24245133,  0.24003893,  0.23763500,  0.23523959,
1462
+     0.23285262,  0.23047401,  0.22810369,  0.22574170,
1463
+     0.22338818,  0.22104329,  0.21870719,  0.21637986,
1464
+     0.21406117,  0.21175095,  0.20944904,  0.20715535,
1465
+     0.20486987,  0.20259261,  0.20032356,  0.19806259,
1466
+     0.19580944,  0.19356385,  0.19132556,  0.18909442,
1467
+     0.18687040,  0.18465350,  0.18244372,  0.18024164,
1468
+     0.17804841,  0.17586521,  0.17369322,  0.17153360,
1469
+     0.16938755,  0.16725622,  0.16514081,  0.16304247,
1470
+     0.16098974,  0.15896561,  0.15696026,  0.15497259,
1471
+     0.15300151,  0.15104590,  0.14910466,  0.14717666,
1472
+     0.14526081,  0.14335599,  0.14146111,  0.13957570,
1473
+     0.13769993,  0.13583399,  0.13397806,  0.13213229,
1474
+     0.13029682,  0.12847178,  0.12665729,  0.12485353,
1475
+     0.12306074,  0.12127916,  0.11950900,  0.11775043,
1476
+     0.11600347,  0.11426820,  0.11254464,  0.11083292,
1477
+     0.10913318,  0.10744559,  0.10577028,  0.10410733,
1478
+     0.10245672,  0.10081842,  0.09919240,  0.09757872,
1479
+     0.09597750,  0.09438884,  0.09281288,  0.09124964,
1480
+     0.08969907,  0.08816111,  0.08663570,  0.08512288,
1481
+     0.08362274,  0.08213540,  0.08066096,  0.07919944,
1482
+     0.07775076,  0.07631484,  0.07489161,  0.07348108,
1483
+     0.07208335,  0.07069851,  0.06932666,  0.06796781,
1484
+     0.06662187,  0.06528874,  0.06396833,  0.06266065,
1485
+     0.06136578,  0.06008380,  0.05881480,  0.05755876,
1486
+     0.05631557,  0.05508511,  0.05386728,  0.05266206,
1487
+     0.05146951,  0.05028971,  0.04912272,  0.04796855,
1488
+     0.04682709,  0.04569825,  0.04458194,  0.04347817,
1489
+     0.04238704,  0.04130868,  0.04024318,  0.03919056,
1490
+     0.03815071,  0.03712352,  0.03610890,  0.03510679,
1491
+     0.03411720,  0.03314013,  0.03217560,  0.03122343,
1492
+     0.03028332,  0.02935494,  0.02843799,  0.02753230,
1493
+     0.02663788,  0.02575472,  0.02488283,  0.02402232,
1494
+     0.02317341,  0.02233631,  0.02151124,  0.02069866,
1495
+     0.01989922,  0.01911359,  0.01834241,  0.01758563,
1496
+     0.01684248,  0.01611219,  0.01539397,  0.01468726,
1497
+     0.01399167,  0.01330687,  0.01263250,  0.01196871,
1498
+     0.01131609,  0.01067527,  0.01004684,  0.00943077,
1499
+     0.00882641,  0.00823307,  0.00765011,  0.00707735,
1500
+     0.00651513,  0.00596377,  0.00542364,  0.00489514,
1501
+     0.00437884,  0.00387530,  0.00338509,  0.00290795,
1502
+     0.00244282,  0.00198860,  0.00154417,  0.00110825,
1503
+     0.00067934,  0.00025589, -0.00016357, -0.00057897,
1504
+    -0.00098865, -0.00139089, -0.00178397, -0.00216547,
1505
+    -0.00253230, -0.00288133, -0.00320955, -0.00351626,
1506
+    -0.00380315, -0.00407198, -0.00432457, -0.00456373,
1507
+    -0.00479326, -0.00501699, -0.00523871, -0.00546066,
1508
+    -0.00568360, -0.00590821, -0.00613508, -0.00636311,
1509
+    -0.00658944, -0.00681117, -0.00702540, -0.00722982,
1510
+    -0.00742268, -0.00760226, -0.00776687, -0.00791580,
1511
+    -0.00804933, -0.00816774, -0.00827139, -0.00836122,
1512
+    -0.00843882, -0.00850583, -0.00856383, -0.00861430,
1513
+    -0.00865853, -0.00869781, -0.00873344, -0.00876633,
1514
+    -0.00879707, -0.00882622, -0.00885433, -0.00888132,
1515
+    -0.00890652, -0.00892925, -0.00894881, -0.00896446,
1516
+    -0.00897541, -0.00898088, -0.00898010, -0.00897234,
1517
+    -0.00895696, -0.00893330, -0.00890076, -0.00885914,
1518
+    -0.00880875, -0.00874987, -0.00868282, -0.00860825,
1519
+    -0.00852716, -0.00844055, -0.00834941, -0.00825485,
1520
+    -0.00815807, -0.00806025, -0.00796253, -0.00786519,
1521
+    -0.00776767, -0.00766937, -0.00756971, -0.00746790,
1522
+    -0.00736305, -0.00725422, -0.00714055, -0.00702161,
1523
+    -0.00689746, -0.00676816, -0.00663381, -0.00649489,
1524
+    -0.00635230, -0.00620694, -0.00605969, -0.00591116,
1525
+    -0.00576167, -0.00561155, -0.00546110, -0.00531037,
1526
+    -0.00515917, -0.00500732, -0.00485462, -0.00470075,
1527
+    -0.00454530, -0.00438786, -0.00422805, -0.00406594,
1528
+    -0.00390204, -0.00373686, -0.00357091, -0.00340448,
1529
+    -0.00323770, -0.00307066, -0.00290344, -0.00273610,
1530
+    -0.00256867, -0.00240117, -0.00223365, -0.00206614,
1531
+    -0.00189866, -0.00173123, -0.00156390, -0.00139674,
1532
+    -0.00122989, -0.00106351, -0.00089772, -0.00073267,
1533
+    -0.00056849, -0.00040530, -0.00024324, -0.00008241,
1534
+     0.00008214,  0.00024102,  0.00039922,  0.00055660,
1535
+     0.00071299,  0.00086826,  0.00102224,  0.00117480,
1536
+     0.00132579,  0.00147507,  0.00162252,  0.00176804,
1537
+     0.00191161,  0.00205319,  0.00219277,  0.00233029,
1538
+     0.00246567,  0.00259886,  0.00272975,  0.00285832,
1539
+     0.00298453,  0.00310839,  0.00322990,  0.00334886,
1540
+     0.00346494,  0.00357778,  0.00368706,  0.00379273,
1541
+     0.00389501,  0.00399411,  0.00409020,  0.00418350,
1542
+     0.00427419,  0.00436249,  0.00444858,  0.00453250,
1543
+     0.00461411,  0.00469328,  0.00476988,  0.00484356,
1544
+     0.00491375,  0.00497987,  0.00504139,  0.00509806,
1545
+     0.00514990,  0.00519693,  0.00523920,  0.00527700,
1546
+     0.00531083,  0.00534122,  0.00536864,  0.00539357,
1547
+     0.00541649,  0.00543785,  0.00545809,  0.00547713,
1548
+     0.00549441,  0.00550936,  0.00552146,  0.00553017,
1549
+     0.00553494,  0.00553524,  0.00553058,  0.00552065,
1550
+     0.00550536,  0.00548459,  0.00545828,  0.00542662,
1551
+     0.00539007,  0.00534910,  0.00530415,  0.00525568,
1552
+     0.00520417,  0.00515009,  0.00509387,  0.00503595,
1553
+     0.00497674,  0.00491665,  0.00485605,  0.00479503,
1554
+     0.00473336,  0.00467082,  0.00460721,  0.00454216,
1555
+     0.00447517,  0.00440575,  0.00433344,  0.00425768,
1556
+     0.00417786,  0.00409336,  0.00400363,  0.00390837,
1557
+     0.00380759,  0.00370130,  0.00358952,  0.00347268,
1558
+     0.00335157,  0.00322699,  0.00309975,  0.00297088,
1559
+     0.00284164,  0.00271328,  0.00258700,  0.00246328,
1560
+     0.00234195,  0.00222281,  0.00210562,  0.00198958,
1561
+     0.00187331,  0.00175546,  0.00163474,  0.00151020,
1562
+     0.00138130,  0.00124750,  0.00110831,  0.00096411,
1563
+     0.00081611,  0.00066554,  0.00051363,  0.00036134,
1564
+     0.00020940,  0.00005853, -0.00009058, -0.00023783,
1565
+    -0.00038368, -0.00052861, -0.00067310, -0.00081757,
1566
+    -0.00096237, -0.00110786, -0.00125442, -0.00140210,
1567
+    -0.00155065, -0.00169984, -0.00184940, -0.00199910,
1568
+    -0.00214872, -0.00229798, -0.00244664, -0.00259462,
1569
+    -0.00274205, -0.00288912, -0.00303596, -0.00318259,
1570
+    -0.00332890, -0.00347480, -0.00362024, -0.00376519,
1571
+    -0.00390962, -0.00405345, -0.00419658, -0.00433902,
1572
+    -0.00448085, -0.00462219, -0.00476309, -0.00490357,
1573
+    -0.00504361, -0.00518321, -0.00532243, -0.00546132,
1574
+    -0.00559988, -0.00573811, -0.00587602, -0.00601363,
1575
+    -0.00615094, -0.00628795, -0.00642466, -0.00656111,
1576
+    -0.00669737, -0.00683352, -0.00696963, -0.00710578,
1577
+    -0.00724208, -0.00737862, -0.00751554, -0.00765295,
1578
+    -0.00779098, -0.00792976, -0.00806941, -0.00821006,
1579
+    -0.00835183, -0.00849485, -0.00863926, -0.00878522,
1580
+    -0.00893293, -0.00908260, -0.00923444, -0.00938864,
1581
+    -0.00954537, -0.00970482, -0.00986715, -0.01003173,
1582
+    -0.01019711, -0.01036164, -0.01052357, -0.01068184,
1583
+    -0.01083622, -0.01098652, -0.01113252, -0.01127409,
1584
+    -0.01141114, -0.01154358, -0.01167135, -0.01179439,
1585
+    -0.01191268, -0.01202619, -0.01213493, -0.01223891,
1586
+    -0.01233817, -0.01243275, -0.01252272, -0.01260815,
1587
+    -0.01268915, -0.01276583, -0.01283832, -0.01290685,
1588
+    -0.01297171, -0.01303320, -0.01309168, -0.01314722,
1589
+    -0.01319969, -0.01324889, -0.01329466, -0.01333693,
1590
+    -0.01337577, -0.01341125, -0.01344345, -0.01347243,
1591
+    -0.01349823, -0.01352089, -0.01354045, -0.01355700,
1592
+    -0.01357068, -0.01358164, -0.01359003, -0.01359587,
1593
+    -0.01359901, -0.01359931, -0.01359661, -0.01359087,
1594
+    -0.01358219, -0.01357065, -0.01355637, -0.01353935,
1595
+    -0.01351949, -0.01349670, -0.01347088, -0.01344214,
1596
+    -0.01341078, -0.01337715, -0.01334158, -0.01330442,
1597
+    -0.01326601, -0.01322671, -0.01318689, -0.01314692,
1598
+    -0.01310123, -0.01306470, -0.01302556, -0.01298381,
1599
+    -0.01293948, -0.01289255, -0.01284305, -0.01279095,
1600
+    -0.01273625, -0.01267893, -0.01261897, -0.01255632,
1601
+    -0.01249096, -0.01242283, -0.01235190, -0.01227827,
1602
+    -0.01220213, -0.01212366, -0.01204304, -0.01196032,
1603
+    -0.01187543, -0.01178829, -0.01169884, -0.01160718,
1604
+    -0.01151352, -0.01141809, -0.01132111, -0.01122272,
1605
+    -0.01112304, -0.01102217, -0.01092022, -0.01081730,
1606
+    -0.01071355, -0.01060912, -0.01050411, -0.01039854,
1607
+    -0.01029227, -0.01018521, -0.01007727, -0.00996859,
1608
+    -0.00985959, -0.00975063, -0.00964208, -0.00953420,
1609
+    -0.00942723, -0.00932135, -0.00921677, -0.00911364,
1610
+    -0.00901208, -0.00891220, -0.00881412, -0.00871792,
1611
+    -0.00862369, -0.00853153, -0.00844149, -0.00835360,
1612
+    -0.00826785, -0.00818422, -0.00810267, -0.00802312,
1613
+    -0.00794547, -0.00786959, -0.00779533, -0.00772165,
1614
+    -0.00764673, -0.00756886, -0.00748649, -0.00739905,
1615
+    -0.00730681, -0.00721006, -0.00710910, -0.00700419,
1616
+    -0.00689559, -0.00678354, -0.00666829, -0.00655007,
1617
+    -0.00642916, -0.00630579, -0.00618022, -0.00605267,
1618
+    -0.00592333, -0.00579240, -0.00566006, -0.00552651,
1619
+    -0.00539194, -0.00525653, -0.00512047, -0.00498390,
1620
+    -0.00484693, -0.00470969, -0.00457228, -0.00443482,
1621
+    -0.00429746, -0.00416034, -0.00402359, -0.00388738,
1622
+    -0.00375185, -0.00361718, -0.00348350, -0.00335100,
1623
+    -0.00321991, -0.00309043, -0.00296276, -0.00283698,
1624
+    -0.00271307, -0.00259098, -0.00247066, -0.00235210,
1625
+    -0.00223531, -0.00212030, -0.00200709, -0.00189576,
1626
+    -0.00178647, -0.00167936, -0.00157457, -0.00147216,
1627
+    -0.00137205, -0.00127418, -0.00117849, -0.00108498,
1628
+    -0.00099375, -0.00090486, -0.00081840, -0.00073444,
1629
+    -0.00065309, -0.00057445, -0.00049860, -0.00042551,
1630
+    -0.00035503, -0.00028700, -0.00022125, -0.00015761,
1631
+    -0.00009588, -0.00003583,  0.00002272,  0.00007975,
1632
+     0.00013501,  0.00018828,  0.00023933,  0.00028784,
1633
+     0.00033342,  0.00037572,  0.00041438,  0.00044939,
1634
+     0.00048103,  0.00050958,  0.00053533,  0.00055869,
1635
+     0.00058015,  0.00060022,  0.00061935,  0.00063781,
1636
+     0.00065568,  0.00067303,  0.00068991,  0.00070619,
1637
+     0.00072155,  0.00073567,  0.00074826,  0.00075912,
1638
+     0.00076811,  0.00077509,  0.00077997,  0.00078275,
1639
+     0.00078351,  0.00078237,  0.00077943,  0.00077484,
1640
+     0.00076884,  0.00076160,  0.00075335,  0.00074423,
1641
+     0.00073442,  0.00072404,  0.00071323,  0.00070209,
1642
+     0.00069068,  0.00067906,  0.00066728,  0.00065534,
1643
+     0.00064321,  0.00063086,  0.00061824,  0.00060534,
1644
+     0.00059211,  0.00057855,  0.00056462,  0.00055033,
1645
+     0.00053566,  0.00052063,  0.00050522,  0.00048949,
1646
+     0.00047349,  0.00045728,  0.00044092,  0.00042447,
1647
+     0.00040803,  0.00039166,  0.00037544,  0.00035943,
1648
+     0.00034371,  0.00032833,  0.00031333,  0.00029874,
1649
+     0.00028452,  0.00027067,  0.00025715,  0.00024395,
1650
+     0.00023104,  0.00021842,  0.00020606,  0.00019398,
1651
+     0.00018218,  0.00017069,  0.00015953,  0.00014871,
1652
+     0.00013827,  0.00012823,  0.00011861,  0.00010942,
1653
+     0.00010067,  0.00009236,  0.00008448,  0.00007703,
1654
+     0.00006999,  0.00006337,  0.00005714,  0.00005129,
1655
+     0.00004583,  0.00004072,  0.00003597,  0.00003157,
1656
+     0.00002752,  0.00002380,  0.00002042,  0.00001736,
1657
+     0.00001461,  0.00001215,  0.00000998,  0.00000807,
1658
+     0.00000641,  0.00000499,  0.00000378,  0.00000278,
1659
+     0.00000196,  0.00000132,  0.00000082,  0.00000046,
1660
+     0.00000020,  0.00000005, -0.00000003, -0.00000006,
1661
+    -0.00000004, -0.00000001,  0.00000001,  0.00000001,
1662
+     0.00000001,  0.00000001, -0.00000001, -0.00000004,
1663
+    -0.00000005, -0.00000003,  0.00000005,  0.00000020,
1664
+     0.00000043,  0.00000077,  0.00000123,  0.00000183,
1665
+     0.00000257,  0.00000348,  0.00000455,  0.00000581,
1666
+     0.00000727,  0.00000893,  0.00001080,  0.00001290,
1667
+     0.00001522,  0.00001778,  0.00002057,  0.00002362,
1668
+     0.00002691,  0.00003044,  0.00003422,  0.00003824,
1669
+     0.00004250,  0.00004701,  0.00005176,  0.00005676,
1670
+     0.00006200,  0.00006749,  0.00007322,  0.00007920,
1671
+     0.00008541,  0.00009186,  0.00009854,  0.00010543,
1672
+     0.00011251,  0.00011975,  0.00012714,  0.00013465,
1673
+     0.00014227,  0.00014997,  0.00015775,  0.00016558,
1674
+     0.00017348,  0.00018144,  0.00018947,  0.00019756,
1675
+     0.00020573,  0.00021399,  0.00022233,  0.00023076,
1676
+     0.00023924,  0.00024773,  0.00025621,  0.00026462,
1677
+     0.00027293,  0.00028108,  0.00028904,  0.00029675,
1678
+     0.00030419,  0.00031132,  0.00031810,  0.00032453,
1679
+     0.00033061,  0.00033632,  0.00034169,  0.00034672,
1680
+     0.00035142,  0.00035580,  0.00035988,  0.00036369,
1681
+     0.00036723,  0.00037053,  0.00037361,  0.00037647,
1682
+     0.00037909,  0.00038145,  0.00038352,  0.00038527,
1683
+     0.00038663,  0.00038757,  0.00038801,  0.00038790,
1684
+     0.00038717,  0.00038572,  0.00038350,  0.00038044,
1685
+     0.00037651,  0.00037170,  0.00036597,  0.00035936,
1686
+     0.00035191,  0.00034370,  0.00033480,  0.00032531,
1687
+     0.00031537,  0.00030512,  0.00029470,  0.00028417,
1688
+     0.00027354,  0.00026279,  0.00025191,  0.00024081,
1689
+     0.00022933,  0.00021731,  0.00020458,  0.00019101,
1690
+     0.00017654,  0.00016106,  0.00014452,  0.00012694,
1691
+     0.00010848,  0.00008929,  0.00006953,  0.00004935,
1692
+     0.00002884,  0.00000813, -0.00001268, -0.00003357,
1693
+    -0.00005457, -0.00007574, -0.00009714, -0.00011882,
1694
+    -0.00014082, -0.00016318, -0.00018595, -0.00020912,
1695
+    -0.00023265, -0.00025650, -0.00028060, -0.00030492,
1696
+    -0.00032941, -0.00035400, -0.00037865, -0.00040333,
1697
+    -0.00042804, -0.00045279, -0.00047759, -0.00050243,
1698
+    -0.00052728, -0.00055209, -0.00057685, -0.00060153,
1699
+    -0.00062611, -0.00065056, -0.00067485, -0.00069895,
1700
+    -0.00072287, -0.00074660, -0.00077013, -0.00079345,
1701
+    -0.00081653, -0.00083936, -0.00086192, -0.00088421,
1702
+    -0.00090619, -0.00092786, -0.00094919, -0.00097017,
1703
+    -0.00099077, -0.00101098, -0.00103077, -0.00105012,
1704
+    -0.00106904, -0.00108750, -0.00110549, -0.00112301,
1705
+    -0.00114005, -0.00115660, -0.00117265, -0.00118821,
1706
+    -0.00120325, -0.00121779, -0.00123180, -0.00124528,
1707
+    -0.00125822, -0.00127061, -0.00128243, -0.00129368,
1708
+    -0.00130435, -0.00131445, -0.00132395, -0.00133285,
1709
+    -0.00134113, -0.00134878, -0.00135577, -0.00136215,
1710
+    -0.00136797, -0.00137333, -0.00137834, -0.00138305,
1711
+    -0.00138748, -0.00139163, -0.00139551, -0.00139913,
1712
+    -0.00140249, -0.00140559, -0.00140844, -0.00141102,
1713
+    -0.00141334, -0.00141538, -0.00141714, -0.00141861,
1714
+    -0.00141978, -0.00142064, -0.00142117, -0.00142138,
1715
+    -0.00142125, -0.00142077, -0.00141992, -0.00141870,
1716
+    -0.00141710, -0.00141510, -0.00141268, -0.00140986,
1717
+    -0.00140663, -0.00140301, -0.00139900, -0.00139460,
1718
+    -0.00138981, -0.00138464, -0.00137908, -0.00137313,
1719
+    -0.00136680, -0.00136010, -0.00135301, -0.00134555,
1720
+    -0.00133772, -0.00132952, -0.00132095, -0.00131201,
1721
+    -0.00130272, -0.00129307, -0.00128309, -0.00127277,
1722
+    -0.00126211, -0.00125113, -0.00123981, -0.00122817,
1723
+    -0.00121622, -0.00120397, -0.00119141, -0.00117859,
1724
+    -0.00116552, -0.00115223, -0.00113877, -0.00112517,
1725
+    -0.00111144, -0.00109764, -0.00108377, -0.00106989,
1726
+};
... ...
@@ -47,6 +47,7 @@
47 47
 DECLARE_ALIGNED(32, extern float,  ff_aac_kbd_long_1024)[1024];
48 48
 DECLARE_ALIGNED(32, extern float,  ff_aac_kbd_long_512 )[512];
49 49
 DECLARE_ALIGNED(32, extern float,  ff_aac_kbd_short_128)[128];
50
+const DECLARE_ALIGNED(32, extern float, ff_aac_eld_window)[1920];
50 51
 // @}
51 52
 
52 53
 /* @name number of scalefactor window bands for long and short transform windows respectively
... ...
@@ -27,7 +27,7 @@
27 27
  */
28 28
 
29 29
 #define LIBAVCODEC_VERSION_MAJOR 55
30
-#define LIBAVCODEC_VERSION_MINOR 21
30
+#define LIBAVCODEC_VERSION_MINOR 22
31 31
 #define LIBAVCODEC_VERSION_MICRO  0
32 32
 
33 33
 #define LIBAVCODEC_VERSION_INT  AV_VERSION_INT(LIBAVCODEC_VERSION_MAJOR, \