)]}'
{
  "log": [
    {
      "commit": "b3deb8a5dcfb42d8c10ba1f2f1ac9bd7bf7271cc",
      "tree": "c8c9e393f727fe8518894be2f357d4e0f25d5cf0",
      "parents": [
        "32609636d6ce5f82e53ae8793de868f851ea8cd5"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 10:57:10 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 10:57:10 2026 +0100"
      },
      "message": "Release 2.2\n"
    },
    {
      "commit": "32609636d6ce5f82e53ae8793de868f851ea8cd5",
      "tree": "b1dd2c80472a0912dbb5fc28b7d7062ec500d47e",
      "parents": [
        "3557d15e75f93df4748014b7aaf3696e888c9684"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 10:47:39 2026 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 10:49:14 2026 +0100"
      },
      "message": "build: Update library revision number\n"
    },
    {
      "commit": "3557d15e75f93df4748014b7aaf3696e888c9684",
      "tree": "cbd45f0345832406daf0ec71a1ecd07e007bf83a",
      "parents": [
        "9b6c775f02b1ea944c8a203452ce23d7854e9187"
      ],
      "author": {
        "name": "Sam James",
        "email": "sam@gentoo.org",
        "time": "Tue Dec 30 20:01:32 2025 +0000"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Feb 09 10:49:03 2026 +0100"
      },
      "message": "sbc: Fix armv6 build w/ C23\n\nC23 makes () mean \u0027no arguments\u0027, not \u0027unspecified\u0027.\n\nEven though the function is naked and doesn\u0027t use the args as explicit inputs\nto the inline asm block, we can\u0027t get away with none, and ... would be wrong as\nit\u0027s not variadic. So just fill them in.\n\nBug: https://bugs.gentoo.org/968161\n"
    },
    {
      "commit": "9b6c775f02b1ea944c8a203452ce23d7854e9187",
      "tree": "68beb014c53515fe2912857aa18de95e83c7339c",
      "parents": [
        "504546a266dab2518ec1596aa17aec2e7b16b6aa"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 21 09:16:31 2025 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 21 09:16:31 2025 +0100"
      },
      "message": "Release 2.1\n"
    },
    {
      "commit": "504546a266dab2518ec1596aa17aec2e7b16b6aa",
      "tree": "04991cbcc02b25514c9a555c1e69eec109d47517",
      "parents": [
        "e099c6cd43f717d22f4bda56dd2865304fac0480"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 21 09:09:25 2025 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Fri Mar 21 09:10:01 2025 +0100"
      },
      "message": "sbc: Fix issue when compiling without SBC_BUILD_WITH_SSE_SUPPORT\n\n  CC       sbc/sbc_primitives_sse.lo\nsbc/sbc_primitives_sse.c:317:6: error: no previous declaration for ‘sbc_init_primitives_sse’ [-Werror\u003dmissing-declarations]\n  317 | void sbc_init_primitives_sse(struct sbc_encoder_state *state)\n      |      ^~~~~~~~~~~~~~~~~~~~~~~\n"
    },
    {
      "commit": "e099c6cd43f717d22f4bda56dd2865304fac0480",
      "tree": "f5b26fae2a0fcfac8b49ed9593261ccd431c2844",
      "parents": [
        "15a2b5b6177f7ea5a5a802d9d1de4a283520f883"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 19:13:38 2023 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 19:13:38 2023 +0200"
      },
      "message": "src: Use SPDX-License-Identifier instead of license boilerplate\n"
    },
    {
      "commit": "15a2b5b6177f7ea5a5a802d9d1de4a283520f883",
      "tree": "010512ddc7283e9403f3e297e5773071c589c5e8",
      "parents": [
        "4a62b40604a56fb270aa35b68e9918caf8fe3115"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 19:13:00 2023 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 19:13:00 2023 +0200"
      },
      "message": "sbc: Use SPDX-License-Identifier instead of license boilerplate\n"
    },
    {
      "commit": "4a62b40604a56fb270aa35b68e9918caf8fe3115",
      "tree": "0d3d245b26be0acf8a925e942f4d86e39625605a",
      "parents": [
        "35089e373458f456eabb3e3958a771dbafcd5a69"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 19:08:11 2023 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 19:08:11 2023 +0200"
      },
      "message": "build: Add build-aux directory to .gitignore\n"
    },
    {
      "commit": "35089e373458f456eabb3e3958a771dbafcd5a69",
      "tree": "c1883dc59c7651ba60825317090609047feb4396",
      "parents": [
        "0d5d486c538778290fb5b49065ab95306a9ba979"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 18:58:09 2023 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 18:58:09 2023 +0200"
      },
      "message": "TODO: Add a few extra empty lines for readability\n"
    },
    {
      "commit": "0d5d486c538778290fb5b49065ab95306a9ba979",
      "tree": "a44f65947288b1b340cbb88d4b1721922b3997c8",
      "parents": [
        "a964d0a1be5e5c18a1a3b2075f305aae4c24edf3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 18:57:31 2023 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 18:57:31 2023 +0200"
      },
      "message": "build: Remove unused .mailmap and NEWS files\n"
    },
    {
      "commit": "a964d0a1be5e5c18a1a3b2075f305aae4c24edf3",
      "tree": "34c74a849f9cf5e886b1dc5df01043fd4ac623ea",
      "parents": [
        "8dc5d5ba381512ad5b1afa45c63ec6b0a3833244"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 18:56:40 2023 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Sep 07 18:56:40 2023 +0200"
      },
      "message": "build: Use build-aux directory for autoconf files\n"
    },
    {
      "commit": "8dc5d5ba381512ad5b1afa45c63ec6b0a3833244",
      "tree": "442984941f4a53e0b48655847f0fa2e9cf608b2a",
      "parents": [
        "eafca3c6b9cac98896d4d54923b5a420a2bde11d"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:20:13 2022 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:20:13 2022 +0200"
      },
      "message": "Release 2.0\n"
    },
    {
      "commit": "eafca3c6b9cac98896d4d54923b5a420a2bde11d",
      "tree": "95bb23b357a6a0d4ca2284b8dfc4bc161970493d",
      "parents": [
        "08d5df2b60d47532b7dfba1a91714a3fa20dd4a1"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:19:46 2022 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:19:46 2022 +0200"
      },
      "message": "build: Update library revision number\n"
    },
    {
      "commit": "08d5df2b60d47532b7dfba1a91714a3fa20dd4a1",
      "tree": "c6f18f00583f3c5d66830a4fdbcafb95191aa47c",
      "parents": [
        "9f2e1916b6f28db3a263697f2dabb3c1a0f04ad6"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:13:19 2022 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:13:19 2022 +0200"
      },
      "message": "build: Update to support Libtool \u003e\u003d 2.2\n"
    },
    {
      "commit": "9f2e1916b6f28db3a263697f2dabb3c1a0f04ad6",
      "tree": "0d3bcdd534c05dc8f27ec15d6c49285486cd45ac",
      "parents": [
        "b12ae44620303fcc234151cb84ee0eb474a3b2b3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:07:56 2022 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 18:07:56 2022 +0200"
      },
      "message": "build: Switch to using tar.xz packaging\n"
    },
    {
      "commit": "b12ae44620303fcc234151cb84ee0eb474a3b2b3",
      "tree": "c879a1d8d49277b16c662a777b373acdc7776975",
      "parents": [
        "13d85b14cd56e8ee78fc40ef712175d9bf8c58f7"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 17:58:46 2022 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jun 20 17:58:46 2022 +0200"
      },
      "message": "build: Update to support Autoconf \u003e\u003d 2.69\n"
    },
    {
      "commit": "13d85b14cd56e8ee78fc40ef712175d9bf8c58f7",
      "tree": "2b813187c4aeea224910c8458ec360084c1e888d",
      "parents": [
        "909a9bdf7ab143e1f0baaf9736baebd3cd79aacf"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Jun 16 12:25:01 2022 -0700"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Jun 16 12:25:01 2022 -0700"
      },
      "message": "sbcenc: Fix build warnings\n\nThis fixes the following warnings:\n\nIn file included from /usr/include/stdio.h:894,\n         from src/sbcenc.c:30:\nIn function ‘fprintf’,\n  inlined from ‘encode’ at src/sbcenc.c:160:3,\n  inlined from ‘main’ at src/sbcenc.c:329:3:\n/usr/include/bits/stdio2.h:105:10: error: ‘srate’ may be\nused uninitialized [-Werror\u003dmaybe-uninitialized]\n 105 |  return __fprintf_chk (__stream, __USE_FORTIFY_LEVEL - 1, __fmt,\n   |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n 106 |             __va_arg_pack ());\n   |             ~~~~~~~~~~~~~~~~~\nsrc/sbcenc.c: In function ‘main’:\nsrc/sbcenc.c:54:23: note: ‘srate’ was declared here\n  54 |     int fd, size, srate, codesize, nframes;\n   |            ^~~~~\ncc1: all warnings being treated as errors\n"
    },
    {
      "commit": "909a9bdf7ab143e1f0baaf9736baebd3cd79aacf",
      "tree": "4a9af7347af9c449c1948d93f29254001f5a1b53",
      "parents": [
        "b2c20a3ecf5ed00f63c94077a9762b505935ede9"
      ],
      "author": {
        "name": "Marius Bakke",
        "email": "marius@gnu.org",
        "time": "Tue Dec 22 11:04:26 2020 +0000"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Dec 22 13:14:22 2020 -0800"
      },
      "message": "sbc_primitives: Fix build on non-x86.\n\nDon\u0027t call __builtin_cpu_init unless targeting i386 or x86_64.\nOtherwise we get an error at link time:\n\n  CC       sbc/sbc_primitives.lo\nsbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’:\nsbc/sbc_primitives.c:596:2: warning: implicit declaration of function ‘__builtin_cpu_init’; did you mean ‘__builtin_irint’? [-Wimplicit-function-declaration]\n[...]\n  CCLD     src/sbcdec\nld: sbc/.libs/libsbc-private.a(sbc_primitives.o): in function `sbc_init_primitives\u0027:\nsbc_primitives.c:(.text+0x3a30): undefined reference to `__builtin_cpu_init\u0027\n"
    },
    {
      "commit": "b2c20a3ecf5ed00f63c94077a9762b505935ede9",
      "tree": "9826b5038da7e2fe5db7c3a5c34d27984ab51dec",
      "parents": [
        "76f4d931d237517c443dd793390ed7d73b12746e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Dec 07 23:24:36 2020 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Dec 07 23:24:36 2020 +0100"
      },
      "message": "Release 1.5\n"
    },
    {
      "commit": "76f4d931d237517c443dd793390ed7d73b12746e",
      "tree": "340e8f8738d8fd358435046e916069965d02f581",
      "parents": [
        "10310fb983b0fced7db7bdb2d14ec03c252f8a88"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Dec 03 13:29:47 2020 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 22:57:59 2020 +0100"
      },
      "message": "sbc_primitives: Fix build on non-x86 arch\n\nCheck if SBC_BUILD_WITH_MMX_SUPPORT is defined otherwise\nsbc_init_primitives_mmx will not be declared and\n_builtin_cpu_supports(“mmx”)) likely fail:\n\nCC    sbc/sbc_primitives.lo\nsbc/sbc_primitives.c: In function ‘sbc_init_primitives_x86’:\nsbc/sbc_primitives.c:599:3: warning: implicit declaration of function\n‘sbc_init_primitives_mmx’; did you mean ‘sbc_init_primitives_x86’?\n[-Wimplicit-function-declaration]\n 599 |  sbc_init_primitives_mmx(state);\n   |  ^~~~~~~~~~~~~~~~~~~~~~~\n   |  sbc_init_primitives_x86\nsbc/sbc_primitives.c: In function ‘sbc_init_primitives’:\nsbc/sbc_primitives.c:598:6: error: hwcap ‘mmx’ is an invalid argument to\nbuiltin ‘__builtin_cpu_supports’\n 598 | if (__builtin_cpu_supports(“mmx”))\n   |   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~\nmake[1]: *** [Makefile:711: sbc/sbc_primitives.lo] Error 1\nmake: *** [Makefile:453: all] Error 2\n"
    },
    {
      "commit": "10310fb983b0fced7db7bdb2d14ec03c252f8a88",
      "tree": "f0ec3d18d9a0fa0354fbf560410ea09923d65868",
      "parents": [
        "932c9ea09ae204f7a3ef6d46e769a59e6b62a76e"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali@kernel.org",
        "time": "Mon Nov 23 01:01:57 2020 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Dec 03 14:25:06 2020 +0100"
      },
      "message": "sbc: Add sbc_reinit_msbc\n\nThis adds a new API function sbc_reinit_msbc. Like sbc_reinit or\nsbc_reinit_a2dp but for msbc.\n"
    },
    {
      "commit": "932c9ea09ae204f7a3ef6d46e769a59e6b62a76e",
      "tree": "83a19a44cc45d78b3182bda8c1cc88e596334b02",
      "parents": [
        "6dc7aa8da11a450b2cd252fd432c237cd1534acf"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Sep 22 17:15:45 2014 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Aug 18 17:01:36 2020 -0700"
      },
      "message": "sbc/sbc_primitives_sse: Optimize sbc_analyze_8s\n\nThis makes use 128 bit XMM registers whenever possible.\n\n$ time src/sbcenc_mmx -s 8 sin_64m.au \u003e /dev/null\nreal    0m1.064s\nuser    0m1.012s\nsys     0m0.049s\n\n\u003d\u003d\u003d  After \u003d\u003d\u003d\u003d\n\n$ time src/sbcenc -s 8 sin_64m.au \u003e /dev/null\nreal    0m1.032s\nuser    0m0.996s\nsys     0m0.033s\n"
    },
    {
      "commit": "6dc7aa8da11a450b2cd252fd432c237cd1534acf",
      "tree": "4f871e0552fda030cb8ade125321e25fbe500a00",
      "parents": [
        "9181e1ba64d98334b914109d431a6d474f86cb31"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Sep 22 16:29:15 2014 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Aug 18 17:01:36 2020 -0700"
      },
      "message": "sbc/sbc_primitives_sse: Optimize sbc_analyze_4s\n\nThis makes use 128 bit XMM registers whenever possible.\n\n$ time src/sbcenc_mmx -s 4 sin_4m.au \u003e /dev/null\nreal    0m1.073s\nuser    0m1.039s\nsys     0m0.030s\n\n\u003d\u003d\u003d  After \u003d\u003d\u003d\u003d\n\n$ time src/sbcenc -s 4 sin_4m.au \u003e /dev/null\nreal    0m1.049s\nuser    0m1.000s\nsys     0m0.047s\n"
    },
    {
      "commit": "9181e1ba64d98334b914109d431a6d474f86cb31",
      "tree": "53026dfd62abb41675c14921e4a04de9d1f510ba",
      "parents": [
        "b606dcb6f28b309fafcb74056a7473bd18ddb42f"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Feb 07 14:39:17 2014 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Aug 18 17:01:36 2020 -0700"
      },
      "message": "sbc: Add initial code for SSE primitives\n"
    },
    {
      "commit": "b606dcb6f28b309fafcb74056a7473bd18ddb42f",
      "tree": "abac4513e51bb429284f370ec9143bd55bd2933e",
      "parents": [
        "a59baf862ce3df1fd044a2f455dbaf1f9ff729c9"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali@kernel.org",
        "time": "Sat Aug 08 21:30:26 2020 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Aug 11 11:21:48 2020 -0700"
      },
      "message": "sbcenc: Remove duplicate check for num of channels\n"
    },
    {
      "commit": "a59baf862ce3df1fd044a2f455dbaf1f9ff729c9",
      "tree": "841a7c15a4d779fd91afd4bf0b8a811fbac32ce8",
      "parents": [
        "c6df585d420a34c7c29b09c92f4be50f8aa9ecd1"
      ],
      "author": {
        "name": "Pali Rohár",
        "email": "pali@kernel.org",
        "time": "Sat Aug 08 21:30:14 2020 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Aug 11 11:21:47 2020 -0700"
      },
      "message": "sbcenc: Add missing error check for unsupported sample rates\n"
    },
    {
      "commit": "c6df585d420a34c7c29b09c92f4be50f8aa9ecd1",
      "tree": "7ffa463c90c011d25f7b798db0101e1c33b0b797",
      "parents": [
        "99f0fc55e2abf736cfe891374ab5d6d4b58de4f8"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Dec 10 17:50:16 2019 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Dec 10 17:50:16 2019 +0100"
      },
      "message": "sbc: Style fixes for sbc.sym file\n"
    },
    {
      "commit": "99f0fc55e2abf736cfe891374ab5d6d4b58de4f8",
      "tree": "059c81782e27d422b58de7c73d563f5eb80f2e07",
      "parents": [
        "8c31f87f40d4cfb2cba122ba89ada3062a2e4b49"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Dec 10 17:46:19 2019 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Dec 10 17:46:19 2019 +0100"
      },
      "message": "AUTHORS: Mention John\u0027s contributions\n"
    },
    {
      "commit": "8c31f87f40d4cfb2cba122ba89ada3062a2e4b49",
      "tree": "f9b5775107a75f8d6757785783f145af6f04637a",
      "parents": [
        "878912e12ae9864c7b9aca2a61d782f8e1044ffe"
      ],
      "author": {
        "name": "John Keeping",
        "email": "john@metanate.com",
        "time": "Tue Dec 10 16:09:54 2019 +0000"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Dec 10 17:44:34 2019 +0100"
      },
      "message": "sbc: Fix visibility of sbc_reinit_a2dp()\n\nsbc_reinit_a2dp() is missing the SBC_EXPORT attribute so it\u0027s not\nvisibile to be used by consumers of the shared object.\n"
    },
    {
      "commit": "878912e12ae9864c7b9aca2a61d782f8e1044ffe",
      "tree": "aa534c3d05b93b0c3b7ee979b86f4b876914e0b1",
      "parents": [
        "e8a71b38caec0a53f914c24ebaee36740f03e5d1"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Sep 19 22:29:06 2018 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Sep 19 22:29:06 2018 +0200"
      },
      "message": "Release 1.4\n"
    },
    {
      "commit": "e8a71b38caec0a53f914c24ebaee36740f03e5d1",
      "tree": "d0903c1b047e80b02a3947e9ef3902f1cb49c58c",
      "parents": [
        "f1ec98990ff5c867c5c4304aeee48a275fd22862"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Sep 19 22:19:40 2018 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Sep 19 22:19:40 2018 +0200"
      },
      "message": "build: Update library revision number\n"
    },
    {
      "commit": "f1ec98990ff5c867c5c4304aeee48a275fd22862",
      "tree": "7fe774acfaa668b5954074bab6ddc907cea5c9e2",
      "parents": [
        "f7412ee508a154ed7b882dfd32a37b583f6341ef"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Sep 19 22:17:52 2018 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Sep 19 22:17:52 2018 +0200"
      },
      "message": "AUTHORS: Mention Joshua\u0027s and Tanu\u0027s contributions\n"
    },
    {
      "commit": "f7412ee508a154ed7b882dfd32a37b583f6341ef",
      "tree": "d1ae55cf8aa9c423a327d8ecbcc96f9f377fbb5f",
      "parents": [
        "b3ae4260da118e53f5e6c195d40788273ff3d0b4"
      ],
      "author": {
        "name": "Tanu Kaskinen",
        "email": "tanuk@iki.fi",
        "time": "Tue Sep 04 19:29:55 2018 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Sep 11 11:06:17 2018 +0300"
      },
      "message": "sbc: fix frame_length and codesize documentation\n\nframe_length is the output block size when encoding and the input block\nsize when decoding, with codesize it\u0027s vice versa. The documentation was\ninaccurate regarding this. Using the terms \"compressed\" and\n\"uncompressed\" instead of \"output\" and \"input\" should make the function\nsemantics clear.\n"
    },
    {
      "commit": "b3ae4260da118e53f5e6c195d40788273ff3d0b4",
      "tree": "6415b46a1d5c8ca13de93109ecfbc498741fc658",
      "parents": [
        "24812c660036a693f8770766aa6fdea667de05d0"
      ],
      "author": {
        "name": "Joshua Kessinger",
        "email": "jkessinger@google.com",
        "time": "Wed Feb 21 11:28:00 2018 -0800"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Sep 11 11:06:17 2018 +0300"
      },
      "message": "sbc: Fix stack overflow read in sbc_crc8.\n\nWhen encoding or decoding with JOINT_STEREO and 8 subbands the crc_pos is 88\nbits. In this case there are no extra bits which need to be added to the CRC,\nbut there is still a read 1 byte past the end of the crc_header stack variable.\n"
    },
    {
      "commit": "24812c660036a693f8770766aa6fdea667de05d0",
      "tree": "5aec47400f0f32234f1fc057380fc7770f8f8b69",
      "parents": [
        "2d3771563339910a5c2ca783032fcc859aca18ba"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Oct 30 05:00:56 2014 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Oct 30 05:00:56 2014 +0100"
      },
      "message": "Release 1.3\n"
    },
    {
      "commit": "2d3771563339910a5c2ca783032fcc859aca18ba",
      "tree": "96a31dbf59ad7d2791ac14250dde25913d173a70",
      "parents": [
        "d9a45b53b382f5a8f9038052b4612f1fe74dda6c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Oct 30 04:57:37 2014 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Oct 30 04:57:47 2014 +0100"
      },
      "message": "AUTHORS: Mention Aurélien\u0027s contributions\n"
    },
    {
      "commit": "d9a45b53b382f5a8f9038052b4612f1fe74dda6c",
      "tree": "012b5790b8917a4b95031e211de25c3d877d9e8d",
      "parents": [
        "68e7cbde5c9d02a76fa5b712a0f0adc0ca04b8ad"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Oct 30 04:55:38 2014 +0100"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Oct 30 04:55:38 2014 +0100"
      },
      "message": "build: Update library revision number\n"
    },
    {
      "commit": "68e7cbde5c9d02a76fa5b712a0f0adc0ca04b8ad",
      "tree": "fddd48dd5e3be8eae2e01aebb3678664ad0b83c7",
      "parents": [
        "7110480576985842a7f7f3dbb4d432f0098d51ad"
      ],
      "author": {
        "name": "Aurélien Zanelli",
        "email": "aurelien.zanelli@parrot.com",
        "time": "Thu Oct 23 16:32:21 2014 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Oct 24 17:56:46 2014 +0300"
      },
      "message": "sbc: use an uint16 to store frame length in internal frame structure\n\nOtherwise it could overflow in some cases.\nFor instance in DUAL_CHANNEL mode, with subbands set to SBC_SB_8, blocks\nset to SBC_BLK_16 and bitpool set to 64 results in a frame length of 268.\n"
    },
    {
      "commit": "7110480576985842a7f7f3dbb4d432f0098d51ad",
      "tree": "991c554123b7c692490d666804170b161c0ec4b4",
      "parents": [
        "431e5c2d3243371e4ade8bceab587424c1b2aa6c"
      ],
      "author": {
        "name": "Aurélien Zanelli",
        "email": "aurelien.zanelli@parrot.com",
        "time": "Thu Oct 23 16:32:20 2014 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Fri Oct 24 17:56:46 2014 +0300"
      },
      "message": "sbc: fix frame length calculation for DUAL_CHANNEL mode\n\nAccording to A2DP specification, section 12.9, for DUAL_CHANNEL mode, we\nshall use the same formula as for MONO mode.\n"
    },
    {
      "commit": "431e5c2d3243371e4ade8bceab587424c1b2aa6c",
      "tree": "7c3169e5f389a91acd9694d62563e8568012463f",
      "parents": [
        "bca32d2b6efc5c10ca6120e6a7e7becb83f309e3"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 23 07:39:47 2014 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Thu Jan 23 07:39:47 2014 -0800"
      },
      "message": "Release 1.2\n"
    },
    {
      "commit": "bca32d2b6efc5c10ca6120e6a7e7becb83f309e3",
      "tree": "7ab8cfac7c54fdf4b37d5e3ddf2cd8f03f1a8ce4",
      "parents": [
        "6e079c0287c81f91d76828f57d1154958a9f1989"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Jan 23 14:19:17 2014 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Jan 23 14:19:42 2014 +0200"
      },
      "message": "sbc: Add sbc_reinit_a2dp to sbc.sym\n"
    },
    {
      "commit": "6e079c0287c81f91d76828f57d1154958a9f1989",
      "tree": "cbb7268c056b717569871805a58b5d8fc3b15aba",
      "parents": [
        "27fab34fb2d1dc97fcce849de709cd17638826d8"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Jan 23 14:16:38 2014 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Thu Jan 23 14:19:42 2014 +0200"
      },
      "message": "sbc: Add sbc_reinit_a2dp\n\nThis adds sbc_reinit_a2dp that can be used to reconfigure a previous\ninitialized sbc_t with new A2DP configuration.\n"
    },
    {
      "commit": "27fab34fb2d1dc97fcce849de709cd17638826d8",
      "tree": "bb5cc0dc01bc7d188f37fee691cf8304fab89cdb",
      "parents": [
        "130c50a3e61f8b9bedc85cabf29af80d1a5c2f85"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 15:07:01 2014 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 15:07:42 2014 -0800"
      },
      "message": "TODO: Update entries in TODO list\n"
    },
    {
      "commit": "130c50a3e61f8b9bedc85cabf29af80d1a5c2f85",
      "tree": "4ac494b663fa80ab509624ca6498179f1215e55b",
      "parents": [
        "8317df8f77a2444104ca56299b5c6e78992bc8a9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:47:48 2014 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:47:48 2014 -0800"
      },
      "message": "sbc: Use bool variable for priv-\u003einit\n"
    },
    {
      "commit": "8317df8f77a2444104ca56299b5c6e78992bc8a9",
      "tree": "8a960b184820b9880ec56283958e72e972cb0122",
      "parents": [
        "f826af8d1dce75c09191b2abee4b328cc15c532c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:33:58 2014 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:33:58 2014 -0800"
      },
      "message": "sbc: Add Intel copyright to public header file\n"
    },
    {
      "commit": "f826af8d1dce75c09191b2abee4b328cc15c532c",
      "tree": "562c58b093dbd3de0d5151ce2f23455a4eaf4513",
      "parents": [
        "c27737fde0655b498204371815a63bcb780d225b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:30:57 2014 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:30:57 2014 -0800"
      },
      "message": "build: Update library version for new sbc_init_a2dp() function\n"
    },
    {
      "commit": "c27737fde0655b498204371815a63bcb780d225b",
      "tree": "e1324108e86320ccd6b6a0db28b223f39cc31e2e",
      "parents": [
        "d56ae5945373880b1ff670314a8dc5872a361085"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:19:57 2014 -0800"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Wed Jan 22 08:19:57 2014 -0800"
      },
      "message": "build: Keep high precision support disabled by default\n"
    },
    {
      "commit": "d56ae5945373880b1ff670314a8dc5872a361085",
      "tree": "a64b756817b634e68de855e22003c3a37271cd86",
      "parents": [
        "5cb59902a6fd2c6d4a0f8c6c0ab447602b54c555"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Jan 20 11:29:14 2014 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Jan 21 11:03:34 2014 +0200"
      },
      "message": "sbc: Add sbc_init_a2dp to sbc.sym\n"
    },
    {
      "commit": "5cb59902a6fd2c6d4a0f8c6c0ab447602b54c555",
      "tree": "2f23b3b2a4d5a941d61458b1c58dd7d951834643",
      "parents": [
        "c0a74816996faa8fa5fd87a80570936910f1f165"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Jan 20 11:26:00 2014 +0200"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Tue Jan 21 11:03:28 2014 +0200"
      },
      "message": "sbc: Add sbc_init_a2dp\n\nThis adds sbc_init_a2dp that can be used to convert A2DP configuration to\nthe internal representation since they are not binary compatible.\n"
    },
    {
      "commit": "c0a74816996faa8fa5fd87a80570936910f1f165",
      "tree": "1a6f559c92f8d736b860bf6a074ff132ce56bf59",
      "parents": [
        "4210339058f56c504a553cb77b853e5597cfaf7c"
      ],
      "author": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Sep 16 11:11:15 2013 +0300"
      },
      "committer": {
        "name": "Luiz Augusto von Dentz",
        "email": "luiz.von.dentz@intel.com",
        "time": "Mon Sep 16 12:17:36 2013 +0300"
      },
      "message": "build: Add configure option --disable-high-precision\n\nThis enables high precision using 64 bits accumulators by default which\ncan be disabled with --disable-high-precision.\n"
    },
    {
      "commit": "4210339058f56c504a553cb77b853e5597cfaf7c",
      "tree": "94a8db6ce4c97dfd8e94dcaa298b794901e6e91c",
      "parents": [
        "ec14d34809303205d645d64c4b91deff47f557e1"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Aug 25 10:35:27 2013 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Aug 25 10:35:27 2013 -0700"
      },
      "message": "sbc: Fix declaration of sbc_init_msbc symbol\n"
    },
    {
      "commit": "ec14d34809303205d645d64c4b91deff47f557e1",
      "tree": "b927f27a034ee9200929441507852669a7f82550",
      "parents": [
        "97265b60e8b5e4ea682f62e5c5bfeb2bdd462303"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 30 14:23:57 2013 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 30 14:23:57 2013 -0700"
      },
      "message": "Release 1.1\n"
    },
    {
      "commit": "97265b60e8b5e4ea682f62e5c5bfeb2bdd462303",
      "tree": "04c15e64ffad8b90ebd4d280c6f9f37a3e8ec272",
      "parents": [
        "ae4d98333a3cd843ba3307e64034db0ee216ec2e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 30 14:18:52 2013 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Apr 30 14:18:52 2013 -0700"
      },
      "message": "build: Update library version for new sbc_init_msbc() function\n"
    },
    {
      "commit": "ae4d98333a3cd843ba3307e64034db0ee216ec2e",
      "tree": "67225d170b94c84615486119adbd6323b4fba08e",
      "parents": [
        "c9e50c6ac4b478216cefdb89ff0b0909b18ab49f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Apr 15 07:47:55 2013 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Apr 15 07:48:07 2013 -0700"
      },
      "message": "AUTHORS: Mention Frédéric\u0027s contributions\n"
    },
    {
      "commit": "c9e50c6ac4b478216cefdb89ff0b0909b18ab49f",
      "tree": "2d8bc49c82c404fe377eaf835ba240bec1e64434",
      "parents": [
        "80adf9b6b14e11dcf558588fe68159406ff8dcbf"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:18 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:10:06 2013 +0300"
      },
      "message": "TODO: Add TODO list\n"
    },
    {
      "commit": "80adf9b6b14e11dcf558588fe68159406ff8dcbf",
      "tree": "9362588d47b2cb955b2814904e5a1c5253c03580",
      "parents": [
        "15d668cfbde5d0a46cde08b171b1eb84cdba104a"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:17 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:06:46 2013 +0300"
      },
      "message": "sbc: Update sbcinfo for msbc\n"
    },
    {
      "commit": "15d668cfbde5d0a46cde08b171b1eb84cdba104a",
      "tree": "b5d1418933746b05cfe1216043979181065680d7",
      "parents": [
        "a1f21fb6439aa5c9bfe3b49df2bbf2744c022b9a"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:16 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:06:37 2013 +0300"
      },
      "message": "sbc: Update sbcenc for msbc\n"
    },
    {
      "commit": "a1f21fb6439aa5c9bfe3b49df2bbf2744c022b9a",
      "tree": "c86e4817040ba83d47484840c9713f039c04a9b4",
      "parents": [
        "63bdc1a9ac18c25876dacfdcf7ad21eee5822848"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:15 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:06:16 2013 +0300"
      },
      "message": "sbc: Update sbcdec for msbc\n"
    },
    {
      "commit": "63bdc1a9ac18c25876dacfdcf7ad21eee5822848",
      "tree": "b7d59533588e72259664c2233bbd11a0cbd6b853",
      "parents": [
        "09ff8b9b3146cb9597684402594d466960640db5"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:14 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:05:56 2013 +0300"
      },
      "message": "sbc: Add support for mSBC frame header\n\nTraditionnal SBC frame header describe encoding parameters for each\nframe: nr of blocks, subbands, allocation method, and bitpool. In mSBC,\nonly one combination of parameter is defined. That combination cannot be\nexpressed using a traditionnal SBC header. Because of this, a specific\nheader is defined with 0xAD followed by two reserved zero bytes.\n"
    },
    {
      "commit": "09ff8b9b3146cb9597684402594d466960640db5",
      "tree": "1ca995a56bc8a44e5f977af98b785d5009cbe1fe",
      "parents": [
        "4686ca8af3e7a3fa3885be83e4d39c529db4f6d1"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:13 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:04:57 2013 +0300"
      },
      "message": "sbc: Declare and implement sbc_init_msbc\n"
    },
    {
      "commit": "4686ca8af3e7a3fa3885be83e4d39c529db4f6d1",
      "tree": "42e2037445b4af1ba1171f64022caea343faf805",
      "parents": [
        "e9bc3e0083a2e8a23d8191b66b7e371af936040d"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:12 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:04:41 2013 +0300"
      },
      "message": "sbc: Add a private boolean flag to enable 15 block encoding\n\nThis patch introduce a new private member which purpose is to encode 15\nblocks. It is private to the library and can\u0027t be set from standard API.\nsbc_init_msbc() function will be defined to set this flag.\n"
    },
    {
      "commit": "e9bc3e0083a2e8a23d8191b66b7e371af936040d",
      "tree": "d62cb29f4f22d62ac3205e20172025ca469020f5",
      "parents": [
        "c115634f9e4a586f8189b2eba499097c331a1cf6"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:11 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:03:40 2013 +0300"
      },
      "message": "sbc: Fix input reordering for 15 blocks case\n\nSBC analysis handles 8 samples at a time. The optimisation requires 8\nsamples forming an \"odd\" block, followed by 8 samples, forming an \"even\"\nblock. Until now SBC was used for encoding 4, 8, 12, or 16 blocks in a\nframe. Reordering took a frame and for each 16 samples (ie 2 blocks) it\nproduced one \"odd\" block and one \"even\" block.\nA mSBC frame encodes 15 blocks of 8 samples. 14 blocks are processed as\nbefore, two at a time. If 8 samples are remaining, it will form the\nfirst half of two blocks (a bit of an \"odd\" block, and a bit of an\n\"even\" block). When processing the next frame, we detect eight samples\nwere missing at previous iteration and the two block can be finished.\n\nThis reordering is possible because only one sample is moved (x[-7]) AND\nthe first coefficient in the coef table is 0. Thus x[0] doesn\u0027t need to\nbe set and 0 can be used in calculation instead. Note that x[-7] is not\nused in analysis for this block.\nsee: analysis_consts_fixed8_simd_odd.\n\nTo detect that two blocks are not completed, the number of processed\nsamples can be used. This value is stored in position. position starts\nat SBC_X_BUFFER_SIZE-72 and is decremented by 16 as long as two blocks\ncan be formed. If only 8 samples are remaining in input, then position\nis decremented by 8 *arbitrarly*, thus indicating that some samples are\npending. During next frame reordering, position will be decremented by 8\nagain, back to a 16 multiple.\n\nThis logic works for SBC_X_BUFFER_SIZE-72 multiple of 16 and bigger than\n8*2*15+72\u003d312 and less than 8*3*15+72\u003d432. The current value of 328\nmatches this constraint and X buffer is shifted every two frames (30\nblocks) in mSBC. This way, we don\u0027t need to care about x[-7] when\nshifting, we also know that it won\u0027t be before X.\n"
    },
    {
      "commit": "c115634f9e4a586f8189b2eba499097c331a1cf6",
      "tree": "1950c2ed53c4968e4a1960690e3d1ab49a65ef86",
      "parents": [
        "c0d184e9371cc892780decc9c7231e963733c5a6"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:10 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:03:11 2013 +0300"
      },
      "message": "sbc: Use plain C primitive if doing msbc on neon\n\nneon has it\u0027s own optimized input reordering. Until this code gets optimized,\nthe neon assembly code will not work with the mSBC input reordering.\nHowever, the plain C version of mSBC can be used in this case.\nThis patch makes use of plain C code if the block increment is 1 which is\ntypical for mSBC.\n"
    },
    {
      "commit": "c0d184e9371cc892780decc9c7231e963733c5a6",
      "tree": "e121bbbde4ba54503602e3fb762743794ebd6b94",
      "parents": [
        "0d91bc1391f79ff4afd1e4a4cab495dcd5ba2608"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:09 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:02:27 2013 +0300"
      },
      "message": "sbc: Add plain C primitive for 1b 8s analysis\n"
    },
    {
      "commit": "0d91bc1391f79ff4afd1e4a4cab495dcd5ba2608",
      "tree": "6cfc2dc55d34c1765480f508a9f4d24b713fa834",
      "parents": [
        "27e6b38618255f29f747bdbffb44dcfca06a0c1c"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:08 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:01:35 2013 +0300"
      },
      "message": "sbc: Add iwmmxt primitive for 1b 8s encoding\n"
    },
    {
      "commit": "27e6b38618255f29f747bdbffb44dcfca06a0c1c",
      "tree": "19e49a747b0318f73678aa14e73858d93fb684ac",
      "parents": [
        "5cfc3820967b188e27ed12bd24a9e6b70dd047fd"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:07 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 11:00:56 2013 +0300"
      },
      "message": "sbc: Add armv6 primitive for 1b 8s analysis\n"
    },
    {
      "commit": "5cfc3820967b188e27ed12bd24a9e6b70dd047fd",
      "tree": "f5efef1a0922126a6b689c449401285aa7288bce",
      "parents": [
        "7bc0d7e760e46ab155bd40542d282855972dbaf1"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:06 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 10:59:37 2013 +0300"
      },
      "message": "sbc: Add mmx primitive for 1b 8s analysis\n"
    },
    {
      "commit": "7bc0d7e760e46ab155bd40542d282855972dbaf1",
      "tree": "e92850d9968be6d5376a55dbf2c914c5ca9939aa",
      "parents": [
        "0a4eb97ab44e339442069ec628d8cefaa71d3f11"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:05 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 10:59:21 2013 +0300"
      },
      "message": "sbc: Rename sbc_analyze_4b_xx to sbc_analyze_xx\n"
    },
    {
      "commit": "0a4eb97ab44e339442069ec628d8cefaa71d3f11",
      "tree": "fcb66c02eb8a2ec814183b05dbe8a70239c303d8",
      "parents": [
        "92f3298371bea8bbdf02b6a64ba9e624b4befc47"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:04 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 10:58:39 2013 +0300"
      },
      "message": "sbc: Break 4 blocks processing to variable steps\n\nUntil now SBC processed 4 blocks at a time. If we want to process 15\nblocks, then we need to break this processing in one block steps. 4\nblocks is still default increment.\n"
    },
    {
      "commit": "92f3298371bea8bbdf02b6a64ba9e624b4befc47",
      "tree": "978ea8f70d7eec4bbbbbcaafd374a0f1c31f2fd5",
      "parents": [
        "49dcc23f95f11b53fee495226886b0ba0f62e63c"
      ],
      "author": {
        "name": "Frédéric Dalleau",
        "email": "frederic.dalleau@linux.intel.com",
        "time": "Mon Apr 08 15:24:03 2013 +0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Mon Apr 15 10:58:04 2013 +0300"
      },
      "message": "sbc: Add encoder_state to analysis functions\n\nUntil now, SIMD analysis used to process 4 blocks of 8 samples at a\ntime. This was implemented using two constant tables: odd and even. This\nmean we can only process 4, 8, 12, or 16 blocks par SBC packets.\nmSBC requires 15 blocks, so to be able to analyse 1 block, it will be\nnecessary to know if we are processing an odd or even block. This will\nbe done with a new member to encoder_state.\n"
    },
    {
      "commit": "49dcc23f95f11b53fee495226886b0ba0f62e63c",
      "tree": "2ebe11222feefb43c23a34e874eaac87ea859b9a",
      "parents": [
        "dca9b99e54370ddfd5dcc6fd06fef79748900c15"
      ],
      "author": {
        "name": "Lucas De Marchi",
        "email": "lucas.demarchi@profusion.mobi",
        "time": "Thu Feb 14 12:27:01 2013 -0200"
      },
      "committer": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Fri Mar 01 07:53:36 2013 +0200"
      },
      "message": "build: Do not use deprecated AM_CONFIG_HEADER\n\nThe long-obsoleted AM_CONFIG_HEADER macro was removed in automake 1.13.\nUse AC_CONFIG_HEADERS instead.\n"
    },
    {
      "commit": "dca9b99e54370ddfd5dcc6fd06fef79748900c15",
      "tree": "9c897b5b1eb3470016c612a2feda51b2248e9dfd",
      "parents": [
        "1598331472b0b6afe97ca3a5510783def2ad75c9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 30 13:41:33 2012 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Mon Jul 30 13:41:33 2012 -0700"
      },
      "message": "Release 1.0\n"
    },
    {
      "commit": "1598331472b0b6afe97ca3a5510783def2ad75c9",
      "tree": "89a4c6a63c7176d98dea6269368a7f75da6519a9",
      "parents": [
        "0edd8beead3c5c9ae5da4d86187a0fca4dd058a3"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Wed Jul 18 10:31:57 2012 +0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:51 2012 -0700"
      },
      "message": "sbc: Remove unnecessary whitespace from empty line\n"
    },
    {
      "commit": "0edd8beead3c5c9ae5da4d86187a0fca4dd058a3",
      "tree": "363f6da603f3f48619cadc0bcd5c386d08a53ede",
      "parents": [
        "f69668451027e340e444d4fff398d0b6316447e5"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jul 17 06:19:35 2012 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:51 2012 -0700"
      },
      "message": "build: Set initial public library version\n"
    },
    {
      "commit": "f69668451027e340e444d4fff398d0b6316447e5",
      "tree": "10a9838820049778a4cd60d81696aafdc46c48b9",
      "parents": [
        "77d350e55c33fda59ed93cbf617dc87715322f6a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jul 17 06:19:15 2012 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:51 2012 -0700"
      },
      "message": "sbc: Set symbols for version 1.0\n"
    },
    {
      "commit": "77d350e55c33fda59ed93cbf617dc87715322f6a",
      "tree": "6c34f3d58958847b72725338d9a373c06d8328f8",
      "parents": [
        "fa39dea564998079a5c31fdcdc3cebada0ee8f9a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jul 17 06:10:12 2012 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:51 2012 -0700"
      },
      "message": "build: Add symbol table for library\n"
    },
    {
      "commit": "fa39dea564998079a5c31fdcdc3cebada0ee8f9a",
      "tree": "57f85f6758d5049e25e8563789bb3ce2b10d7f84",
      "parents": [
        "818b882951dc28a0ef9032e409ba607eabb77d1f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jul 17 00:50:45 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:51 2012 -0700"
      },
      "message": "sbc: Use SBC_EXPORT instead of LIB_EXPORT\n"
    },
    {
      "commit": "818b882951dc28a0ef9032e409ba607eabb77d1f",
      "tree": "13688c49ef213fc40358035c057dd6c989d8ced4",
      "parents": [
        "b6cdb2965ab268421a552e9bea8ef70d9bad9fea"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jul 17 00:48:23 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "sbc: Fix spelling mistake\n"
    },
    {
      "commit": "b6cdb2965ab268421a552e9bea8ef70d9bad9fea",
      "tree": "2e23d2c9c93c96d9190455656c09b5c80108edf1",
      "parents": [
        "868f67dedba07e7e42bf02704eed3a797dfadabc"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Tue Jul 17 00:41:22 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Add library version information\n"
    },
    {
      "commit": "868f67dedba07e7e42bf02704eed3a797dfadabc",
      "tree": "ca46b2edbceece687082043850e583fc3bdc2d70",
      "parents": [
        "c2cc8f18050fc66f0f2ab0541ab766a0e433326f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 18:31:09 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "README: Add basic information\n"
    },
    {
      "commit": "c2cc8f18050fc66f0f2ab0541ab766a0e433326f",
      "tree": "fd156309a31b0e00f33592bfb936459a6544b18e",
      "parents": [
        "2eccfa5184d110404306ae79ead605d4c978341c"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 18:28:46 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "AUTHORS: Add missing original contributor\n"
    },
    {
      "commit": "2eccfa5184d110404306ae79ead605d4c978341c",
      "tree": "78bbcf330b2ce3cf72150bb8e8e2d1142fa30b79",
      "parents": [
        "d7dfab4c59bdcace3dead160cbd4a26b1d3db71a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 18:23:43 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "sbc: Export public functions as API\n"
    },
    {
      "commit": "d7dfab4c59bdcace3dead160cbd4a26b1d3db71a",
      "tree": "736d4c62f0968e68edd0c84d37e4354090afd60f",
      "parents": [
        "6d50bedbfddb049717b12c693747fab65545e2f9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 18:20:32 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Add private SBC library header\n"
    },
    {
      "commit": "6d50bedbfddb049717b12c693747fab65545e2f9",
      "tree": "fbfc5890be1e6e835a98eb3277a7ffa5afd9968b",
      "parents": [
        "ed49fb9aa9e4bda317bb3b9bf19e1ba1a2de3187"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 18:16:22 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Switch to -fvisibility\u003dhidden by default\n"
    },
    {
      "commit": "ed49fb9aa9e4bda317bb3b9bf19e1ba1a2de3187",
      "tree": "e76cddfa64036ed7b134f672562477b6e347110f",
      "parents": [
        "af403e2e2cc06b7ab8b5e0411060ef4d940c2c7f"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 18:12:45 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Add pkg-config information\n"
    },
    {
      "commit": "af403e2e2cc06b7ab8b5e0411060ef4d940c2c7f",
      "tree": "0ffbc10d7daa1e0fe0cc05dbd1aef17e6899fb3c",
      "parents": [
        "1c165b7cce6c2a255a71b9899cbb1f1adc83fee2"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 15:19:12 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Private library is not needed when tools are disabled\n"
    },
    {
      "commit": "1c165b7cce6c2a255a71b9899cbb1f1adc83fee2",
      "tree": "e82c36fc6332bb83bcfc2a0cc858cfdddcd99dcb",
      "parents": [
        "70115c1e2c9daeea95c9e4cb91453a07abf7a2b9"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 15:16:10 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Rename option for SBC tester\n"
    },
    {
      "commit": "70115c1e2c9daeea95c9e4cb91453a07abf7a2b9",
      "tree": "34bf589496c2a995b89e2f7875d7c2a7b0911f4f",
      "parents": [
        "a7434beb92a510fcdb90ab4aa23a117785eb538b"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 15:14:42 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Add option to disable SBC tools\n"
    },
    {
      "commit": "a7434beb92a510fcdb90ab4aa23a117785eb538b",
      "tree": "837339e8ef6af366c202c9f928a5f989b1051ea7",
      "parents": [
        "47734800951642efbbfdd52451494cf21293a30e"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 14:32:50 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Install SBC header includes\n"
    },
    {
      "commit": "47734800951642efbbfdd52451494cf21293a30e",
      "tree": "01b367564ee26eaf8eda30bd10f954067544c5f1",
      "parents": [
        "15c685f43c69ad249dd778a6618f002105558c12"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 14:17:53 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "AUTHORS: Update list of contributors\n"
    },
    {
      "commit": "15c685f43c69ad249dd778a6618f002105558c12",
      "tree": "e4fae78f1954d5f43d21e1bb3915d3b590f1aee1",
      "parents": [
        "ff95a6c45fd7f6cddab7e0505a4d61770e35f4cb"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 14:07:31 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Add support for building SBC tester\n"
    },
    {
      "commit": "ff95a6c45fd7f6cddab7e0505a4d61770e35f4cb",
      "tree": "ec3ddcd0435482566f426f108c6b189cf3cf7faf",
      "parents": [
        "8c7928acddfd2b7d87db3ff89fe6c01d1b93b73a"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 14:05:34 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Use -Wshadow compiler option\n"
    },
    {
      "commit": "8c7928acddfd2b7d87db3ff89fe6c01d1b93b73a",
      "tree": "b66cd8ce61de1cfc166066829658a8591f46bd7f",
      "parents": [
        "7a68627f577dd312181e8cf0784d36a95522ec43"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 14:05:05 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Add support for building SBC tools\n"
    },
    {
      "commit": "7a68627f577dd312181e8cf0784d36a95522ec43",
      "tree": "bda496030fc6da53df412005c9706d507903aa70",
      "parents": [
        "e1fe3564a83c0d83334e184924a6e42b4487aee0"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 15 14:03:34 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:50 2012 -0700"
      },
      "message": "build: Add support for building SBC library\n"
    },
    {
      "commit": "e1fe3564a83c0d83334e184924a6e42b4487aee0",
      "tree": "cbbf050559391333b3aa1dac1e4fceaa248356fc",
      "parents": [
        "91815a03cf63a859a5bf5a46c3d5d40337853767"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:29 2012 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:01:29 2012 -0700"
      },
      "message": "src: Move SBC tester utility\n"
    },
    {
      "commit": "91815a03cf63a859a5bf5a46c3d5d40337853767",
      "tree": "c9abe0a013741c5f59b34ce928912e674a8df08b",
      "parents": [
        "fab7c1faab81fac92346b1da0a062d6626b37deb"
      ],
      "author": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:00:29 2012 -0700"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 20:00:29 2012 -0700"
      },
      "message": "src: Move subband encoder, decoder and info tools\n"
    },
    {
      "commit": "fab7c1faab81fac92346b1da0a062d6626b37deb",
      "tree": "89c74b5b7f0fd2ae0f59af96c02c24087036d47d",
      "parents": [
        "758ced4c902693fd74147c2e8cf052a2316fa757"
      ],
      "author": {
        "name": "Rafael Fonseca",
        "email": "fonsecasantos.rafael@gmail.com",
        "time": "Tue Apr 03 10:16:22 2012 -0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 19:48:30 2012 -0700"
      },
      "message": "sbc: Fix spelling errors\n\nFix spelling errors found using the codespell tool\n(https://github.com/lucasdemarchi/codespell).\n"
    },
    {
      "commit": "758ced4c902693fd74147c2e8cf052a2316fa757",
      "tree": "94264976003918f370e44ed497c9e35d5f0c9f27",
      "parents": [
        "feb1bd576eec00fd1f5f197851be595036c7ff9b"
      ],
      "author": {
        "name": "Siarhei Siamashka",
        "email": "siarhei.siamashka@gmail.com",
        "time": "Fri Feb 24 14:13:16 2012 +0200"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 19:48:30 2012 -0700"
      },
      "message": "sbc: fix \"always_inline function might not be inlinable\" warning\n\n\"__attribute__((always_inline))\" does not replace \"inline\" and they\nstill need to be used together. This fixes \"always_inline function\nmight not be inlinable [-Wattributes]\" warning in gcc 4.7\n"
    },
    {
      "commit": "feb1bd576eec00fd1f5f197851be595036c7ff9b",
      "tree": "d335e5d9ae654d126d9b5506032af76f86eeb5dd",
      "parents": [
        "4787dcf6f9294042f3b56f46e257027b3b7dc15e"
      ],
      "author": {
        "name": "Johan Hedberg",
        "email": "johan.hedberg@intel.com",
        "time": "Wed Oct 19 11:09:13 2011 +0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 19:48:30 2012 -0700"
      },
      "message": "sbc: Reduce for-loop induced indentation in sbc_unpack_frame\n"
    },
    {
      "commit": "4787dcf6f9294042f3b56f46e257027b3b7dc15e",
      "tree": "f9a273124962184b01383bf9c2dcde1e648e9de5",
      "parents": [
        "0f2c5de7da10203f425b815d840b180ecec06598"
      ],
      "author": {
        "name": "Siarhei Siamashka",
        "email": "siarhei.siamashka@nokia.com",
        "time": "Mon Oct 17 04:24:38 2011 +0300"
      },
      "committer": {
        "name": "Marcel Holtmann",
        "email": "marcel@holtmann.org",
        "time": "Sun Jul 29 19:48:29 2012 -0700"
      },
      "message": "sbc: overflow bugfix and audio decoding quality improvement\n\nThe \"(((audio_sample \u003c\u003c 1) | 1) \u003c\u003c frame-\u003escale_factor[ch][sb])\"\npart of expression\n    \"frame-\u003esb_sample[blk][ch][sb] \u003d\n        (((audio_sample \u003c\u003c 1) | 1) \u003c\u003c frame-\u003escale_factor[ch][sb]) /\n        levels[ch][sb] - (1 \u003c\u003c frame-\u003escale_factor[ch][sb])\"\nin \"sbc_unpack_frame\" function can sometimes overflow 32-bit signed int.\nThis problem can be reproduced by first using bitpool 128 and encoding\nsome random noise data, and then feeding it to sbc decoder. The obvious\nthing to do would be to change \"audio_sample\" variable type to uint32_t.\n\nHowever the problem is a little bit more complicated. According\nto the section \"12.6.2 Scale Factors\" of A2DP spec:\n    scalefactor[ch][sb] \u003d pow(2.0, (scale_factor[ch][sb] + 1))\n\nAnd according to \"12.6.4 Reconstruction of the Subband Samples\":\n    sb_sample[blk][ch][sb] \u003d scalefactor[ch][sb] *\n        ((audio_sample[blk][ch][sb]*2.0+1.0) / levels[ch][sb]-1.0);\n\nHence the current code for calculating \"sb_sample[blk][ch][sb]\" is\nnot quite correct, because it loses one least significant bit of\nsample data and passes twice smaller sample values to the synthesis\nfilter (the filter also deviates from the spec to compensate this).\nThis all has quite a noticeable impact on audio quality. Moreover,\nit makes sense to keep a few extra bits of precision here in order\nto minimize rounding errors. So the proposed patch introduces a new\nSBCDEC_FIXED_EXTRA_BITS constant and uses uint64_t data type\nfor intermediate calculations in order to safeguard against\noverflows. This patch intentionally addresses only the quality\nissue, but performance can be also improved later (like replacing\ndivision with multiplication by reciprocal).\n\nTest for the difference of sbc encoding/decoding roundtrip vs.\nthe original audio file for joint stereo, bitpool 128, 8 subbands\nand http://media.xiph.org/sintel/sintel-master-st.flac sample\ndemonstrates some quality improvement:\n\n\u003d\u003d\u003d before \u003d\u003d\u003d\n    --- comparing original / sbc_encoder.exe + sbcdec ---\n    stddev:    4.64 PSNR: 82.97 bytes:170495708/170496000\n\u003d\u003d\u003d after \u003d\u003d\u003d\n    --- comparing original / sbc_encoder.exe + sbcdec ---\n    stddev:    1.95 PSNR: 90.50 bytes:170495708/170496000\n"
    }
  ],
  "next": "0f2c5de7da10203f425b815d840b180ecec06598"
}
