)]}'
{
  "log": [
    {
      "commit": "07be14fb96fc5c106ea2b874faf2b768f468eb8e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "message": "Revert \"Audio V4: Split system and vendor Audio.h\"\n\nThis reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.\n\nReason for revert: Breaks the build of multiple devices\n\nChange-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e\n"
    },
    {
      "commit": "f8ad7f85e9891b2614338330c75ae9e946fccc5a",
      "tree": "957d47ddc7419c688dda1d4c1ac3068eda6d894f",
      "parents": [
        "6d7582e9ad858301b3eeff7b187af6c34808cb7e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 17 15:57:39 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 21:39:40 2018 -0800"
      },
      "message": "Audio V4: Split system and vendor Audio.h\n\naudio.h and its dependencies (audio-effect.h, sound_trigger.h...)\nused to be shared between system and vendor code.\n\nThis led to multiple problems:\n\n1) Such sharing contradicts the Treble policy of\nstrict independence of framework and vendor code.\n\n2) When audio.h was changed, every vendor needed to update\nits code in the next release. This meant that audio*.h\nheaders were mostly changed in backward compatible manner.\nNevertheless, for P the HIDL interface and thus the audio.h\ninterface are changed in backward incompatible way.\n(Some enum are becoming 64 bit long).\n\n3) As the headers were common, some API used only by the framework\nneeded to be visible to the vendors (mostly enum values).\n\n4) Treble policy is to support at least one previous HAL version\n\nAs a result the audio*.h headers are now duplicated,\none set for the framework, and one for the vendor.\n\nEach set will evolve independently. After this split,\nthe framework-only APIs will be removed from the vendor headers\nand vice versa.\n\nThe split is implements as such:\n\n + for system code\n\n    - NOT moving the libaudio_system_headers\n      Eg: system/audio.h and system/audio_effects/effect_equalizer.h\n          are still in system/media/audio\n\n    - the legacy audio HAL API that were in libhardware headers\n          are now in libaudiohal_legacy_headers\n      Eg: hardware/audio.h and hardware/audio_effect.h\n          are now in frameworks/av/media/libaudiohal/legacy/\n\n + for vendor code\n\n    - moving libaudio_system_headers and the legacy audio HAL API\n          that were in libhardware_headers in\n          android.hardware.audio.common.legacy@2.0\n      Note that those headers are now versioned, so migrating to a @4.0\n          HIDL HAL will mean changing the legacy dependency too.\n      Eg: system/audio.h, system/audio-effect.h, hardware/audio.h\n          are now in hardware/interfaces/audio/common/2.0/legacy\n\n    - the legacy audio effect HAL API that was in libaudioeffects\n          is now moved in android.hardware.audio.effect.legacy@2.0\n      Eg: audio_effects/effect*.h are now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\n    - the legacy sound trigger HAL API that were in libhardware_headers\n          is now moved in android.hardware.soundtrigger.legacy@2.0\n      Eg: hardware/sound_trigger.h is now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\nlibaudioutil being used by both system and vendor, had\nto be renamed for system to libaudioutil_system.\n\nVendor libs that now depend on the audio.h of a specific\nversion and are not extensively referenced in non google code,\nappend @2.0 to their name.\n\nNote that headers that are not expected to change in the 4.0 HAL are\nleft in all-versions folder to avoid duplication.\nThis is an implementation detail as the versioned libraries export\nthe all-versions headers.\n\nNote that strict vendor-system separation is enforced by the\nbuild-system. The system headers are not available for vendor\nlibs and vice-versa.\n\nNote that this patch is split between numerous git repository (\u003e10),\nall the commits having the same Change-id for searchability.\n\nNote that audio_policy.h is no longer exposed to vendors\nas the legacy audio policy HAL API was never officially supported.\nAs a result the audiopolicy stub implementation has been removed.\n\nTest: compile taimen-userdebug walleye-userdebug\n              sailfish-userdebug marlin-userdebug\n              gce_x86_phone-userdebug gce_x86_phone\n              full-eng aosp_arm aosp_x86-eng\nTest: check that the emulator booted and played audio\nTest: full QA on sailfish-userdebug and taimen-userdebug\nBug: 38184704\nChange-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "d3dbf0c0bec05ce0cd6c4e0ed0b351c45f7a3964",
      "tree": "7fe3359824705ce57d4121988a165f43b19c13ca",
      "parents": [
        "66ee7d9270444731493a06ecccf0b1512fea17cf",
        "8ff6ec8a731ddccda2fb408af07213dc1aba5418"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 20:16:24 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 14 20:16:24 2017 +0000"
      },
      "message": "[automerger] Add EFFECT_CMD_SET_PARAM parameter checking to Downmix and Reverb am: 804632afcd am: bc1d023cc9 am: 03c1ecd9fe am: c4b06bbc1e am: 5c6acee104 am: fcc98fa3b1 am: 1f2d8b0b36 am: 698581c556 am: e52a6ab853 am: c6905d1c9c am: fe49081e58 am: 716c720 am: 8883fd487b am: f05b30c27f am: de39832ef0\nam: 8ff6ec8a73\n\nChange-Id: If6f3c2af42d5314a9a96e41f4530010f8bec5196\n"
    },
    {
      "commit": "de39832ef0efe558a189f10917c915c5d681db35",
      "tree": "f6f0ba9daf5a8103aa5269db0756118ce44a62e7",
      "parents": [
        "37417526c943ed17405177790e24f381d51492d6",
        "f05b30c27f0d889fe7b5682390e4356202ec3652"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 20:01:15 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Aug 14 20:01:15 2017 +0000"
      },
      "message": "[automerger] Add EFFECT_CMD_SET_PARAM parameter checking to Downmix and Reverb am: 804632afcd am: bc1d023cc9 am: 03c1ecd9fe am: c4b06bbc1e am: 5c6acee104 am: fcc98fa3b1 am: 1f2d8b0b36 am: 698581c556 am: e52a6ab853 am: c6905d1c9c am: fe49081e58 am: 716c720 am: 8883fd487b\nam: f05b30c27f\n\nChange-Id: Idd372cdbc3b4b72d073d1bfd441ed694398a8035\n"
    },
    {
      "commit": "f05b30c27f0d889fe7b5682390e4356202ec3652",
      "tree": "198c64f0fd21e493e1d0ec1c1efa19db1e74cfdd",
      "parents": [
        "6bc3288dab1c6240e43626d4b1053a7f67e65326",
        "8883fd487bc9fedfde02dc9e96fcdb2315730acb"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:38:11 2017 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:38:11 2017 +0000"
      },
      "message": "[automerger] Add EFFECT_CMD_SET_PARAM parameter checking to Downmix and Reverb am: 804632afcd am: bc1d023cc9 am: 03c1ecd9fe am: c4b06bbc1e am: 5c6acee104 am: fcc98fa3b1 am: 1f2d8b0b36 am: 698581c556 am: e52a6ab853 am: c6905d1c9c am: fe49081e58 am: 716c720 am: 8883fd487b\n\nChange-Id: I22555a9162b0b7c3b88104de8ec2d49e87a1a637\n"
    },
    {
      "commit": "fe49081e58c60dfdae1bc3bd7f1db2502aa0eee9",
      "tree": "a65dd4bedd3a1a8caeffc4a1a1495631f5c57dc9",
      "parents": [
        "920df6ca0076b8079d9ee7d2c477151a01a3ed50",
        "c6905d1c9c7e7f959a6101622868687129e98c7b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:37:39 2017 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:37:39 2017 +0000"
      },
      "message": "[automerger] Add EFFECT_CMD_SET_PARAM parameter checking to Downmix and Reverb am: 804632afcd am: bc1d023cc9 am: 03c1ecd9fe am: c4b06bbc1e am: 5c6acee104 am: fcc98fa3b1 am: 1f2d8b0b36 am: 698581c556 am: e52a6ab853 am: c6905d1c9c\n\nChange-Id: I88ef8effb22c7e01ae8d2668e3c832fe0febc90c\n"
    },
    {
      "commit": "c4b06bbc1e6b42cc5b88f57f16135782b58c923d",
      "tree": "ca15163aa11cad9accaf1f9708108f1ab2d3a167",
      "parents": [
        "222dca470e81634b519455a1fb791462d0d9750b",
        "03c1ecd9fe43d355db92609ae592fd5c00efad1b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:37:03 2017 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:37:03 2017 +0000"
      },
      "message": "[automerger] Add EFFECT_CMD_SET_PARAM parameter checking to Downmix and Reverb am: 804632afcd am: bc1d023cc9 am: 03c1ecd9fe\n\nChange-Id: Iaaaead614bb1a1dbc62f0443e7e3e0d7d4fb9012\n"
    },
    {
      "commit": "03c1ecd9fe43d355db92609ae592fd5c00efad1b",
      "tree": "086c4a70a8aac9aa649ecc5962adf3a7cb1f44b4",
      "parents": [
        "87f1a3041d41737185f9c7425c24d4e56dd1356e",
        "bc1d023cc9f96418a4549f1664b307dce4484f49"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:36:57 2017 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 14 19:36:57 2017 +0000"
      },
      "message": "[automerger] Add EFFECT_CMD_SET_PARAM parameter checking to Downmix and Reverb am: 804632afcd am: bc1d023cc9\n\nChange-Id: I8dfe1cdebec08b9ad5d3c7b19b8891158ac51132\n"
    },
    {
      "commit": "804632afcdda6e80945bf27c384757bda50560cb",
      "tree": "2daec5cf329096edd4be3595b54cb16c766ba167",
      "parents": [
        "ab2c5046efeafcf819ac04acf864e32dc10a8403"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 24 17:25:47 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Aug 11 18:51:34 2017 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking to Downmix and Reverb\n\nBug: 63662938\nBug: 63526567\nTest: Added CTS tests\n\nChange-Id: I8ed398cd62a9f461b0590e37f593daa3d8e4dbc4\n"
    },
    {
      "commit": "b636c4fd77c445887eb785f3d94c2aa080572b13",
      "tree": "e07edd18c34d6cc2f9505ad6dfd5a17c388e9ea6",
      "parents": [
        "91b5eb2ffcb78fb4ac02abcebcb76c31b6e9bd9c"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 25 11:25:49 2017 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Jul 25 18:32:34 2017 +0000"
      },
      "message": "Revert float capability for downmixer\n\nRevert floating point processing on downmixer.\n\nThis commits partially reverts d7d013446a64c6de9f0f2dfe098a721b140e0b48\nBug: 63760315\n\nTest: Play multichannel movie\nChange-Id: I16edf8767e02ef5d8ff63f52e8d1222ce0d09e22\n"
    },
    {
      "commit": "27ddf57d4c4afc2a1a558b078b20bcd81ce878cb",
      "tree": "ac4dd1dde3a95e97e6b133d006377240b6d1de8b",
      "parents": [
        "de9075f88d70ddc192fa8ef9ad9c7c30d58dc253"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Jun 01 14:07:20 2017 -0700"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Fri Jun 09 23:21:51 2017 +0000"
      },
      "message": "Add libhardware_headers to various modules\n\nBug: 33241851\nTest: With BOARD_VNDK_VERSION, mma works\nChange-Id: Iabcb5469c4fd936c2d7c1f9a1113c557c8beab88\n(cherry picked from commit da6a063a9ec520373443cdd4796eb643fcbffe34)\n"
    },
    {
      "commit": "88c323433777cd81c18cc71370f3e93e8e6014b4",
      "tree": "8c3b27bac470f7df98e099e7eed3ffd7d8bf0807",
      "parents": [
        "2648da1f70a7b6d397003bee6b0bcb61c6eace5b",
        "d7d013446a64c6de9f0f2dfe098a721b140e0b48"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri Jun 09 17:39:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 09 17:39:44 2017 +0000"
      },
      "message": "Merge \"Floating point support for audio post processing components\""
    },
    {
      "commit": "d7d013446a64c6de9f0f2dfe098a721b140e0b48",
      "tree": "ff3d27c83f1e455574571c22775d9a2630e8c908",
      "parents": [
        "49dabf881f968ce862e6bae897068784800d09c6"
      ],
      "author": {
        "name": "Ramesh Katuri",
        "email": "ramesh.katuri@ittiam.com",
        "time": "Mon May 02 15:03:47 2016 +0530"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Jun 08 17:40:12 2017 -0700"
      },
      "message": "Floating point support for audio post processing components\n\nSource code is added/modified to support floating point processing for\naudio post processing components.All the changes are done under the macro\nBUILD_FLOAT\n\nEnable/disable this macro in Android.mk files to build floating point or\nfixed point code.\n\nBased on the macro either fixed point code or floating point code gets compiled.\n\nBy default this macro is ENABLED.\n\n(cherry picked from partner commit 2ceaff6aafadbcb0fb6d5135ca814ba7c790ab1a)\n(Minor merge conflicts solved, some formatting and safety changes,\nbugfixes in EffectReverb.cpp)\n\nTest: audio comparisons between integer and floating point effects\n\nChange-Id: Idb044ace1e8da1d86c67667aba0101ae8da6788e\n"
    },
    {
      "commit": "da6a063a9ec520373443cdd4796eb643fcbffe34",
      "tree": "100cc0e2f5410c1e9517404ec00b764236590934",
      "parents": [
        "7771449cf13318c074018a1f9aacad56306b8546"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Jun 01 14:07:20 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Jun 01 14:20:01 2017 -0700"
      },
      "message": "Add libhardware_headers to various modules\n\nBug: 33241851\nTest: build target and pass CTS\nTest: With BOARD_VNDK_VERSION, mma works\nChange-Id: Iabcb5469c4fd936c2d7c1f9a1113c557c8beab88\n"
    },
    {
      "commit": "df57a30938ee4cc9b1c32f81ec54445466cbb858",
      "tree": "e0c8f8abc3c954aa72a019b18c171d6137951262",
      "parents": [
        "b05dfdff9f1837eb5216aabaa8aaf03d012468bd"
      ],
      "author": {
        "name": "SzuWei Lin",
        "email": "szuweilin@google.com",
        "time": "Thu Apr 27 14:38:23 2017 +0800"
      },
      "committer": {
        "name": "SzuWei Lin",
        "email": "szuweilin@google.com",
        "time": "Thu Apr 27 07:28:11 2017 +0000"
      },
      "message": "libeffects: move all libraries to vendor\n\nBug: 37490685\nTest: equalizer works in google play music\nTest: CleanSpec works\nChange-Id: I323f4048bce8a512d8aaa1760aef9d176a282c2d\n"
    },
    {
      "commit": "c21a24aa8899a1c6adc23dcd897db15033553c00",
      "tree": "af30b7bf07817f049d3fba1427d808df81618de4",
      "parents": [
        "79a89ef4eb06a2d29fc3d083112de398111a9ddb"
      ],
      "author": {
        "name": "SzuWei Lin",
        "email": "szuweilin@google.com",
        "time": "Thu Apr 27 14:38:23 2017 +0800"
      },
      "committer": {
        "name": "SzuWei Lin",
        "email": "szuweilin@google.com",
        "time": "Thu Apr 27 14:41:46 2017 +0800"
      },
      "message": "libeffects: move all libraries to vendor\n\nBug: 37490685\nTest: equalizer works in google play music\nTest: CleanSpec works\nChange-Id: I323f4048bce8a512d8aaa1760aef9d176a282c2d\n"
    },
    {
      "commit": "ad880540d13db9e39c94496fd9bc89dfbfd1e1f5",
      "tree": "e987c9baef0e830ebb6a2f7f1252b5d84d79210e",
      "parents": [
        "b3962d2405b279abde234e16e5b3bff3a4a5cab5",
        "9033512273129383c8cc78beee61f17b50ffff49"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 21:28:47 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 10 21:28:47 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 06d8feefec am: 71bf335ffa am: 8790fb2613\nam: 9033512273\n\nChange-Id: I67837417d7c8fbc2cc5239f903a0cdf3b107558b\n"
    },
    {
      "commit": "eb16561336e6445f7edae047998f2459e046cdfe",
      "tree": "c4a00a444fb228f725324b66fbf426a0a00728c3",
      "parents": [
        "98d1217d58b1879eccee445c3510a8c563a61d11"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 09:08:19 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Jan 10 10:04:43 2017 -0800"
      },
      "message": "liblog: use log/log.h for ALOG macros\n\nTest: compile\nBug: 30465923\nChange-Id: I247151363604714088b6059279702702b4e9f89a\n"
    },
    {
      "commit": "32a5f5d53f9fe2ba584d2ecdf3edd487fb4146a7",
      "tree": "49e0e3a1b8302a9f7282b6bcab3c32ea3808ec23",
      "parents": [
        "105928c9d30ed4c697cc4cdd9e68d8d47a695133",
        "4532a36bf509d822a77cbc1b7837f9f1158c7796"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:47:40 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:48:15 2016 -0800"
      },
      "message": "resolve merge conflicts of 4532a36 to master\n\nTest: build\nChange-Id: I9b93c4a703c0ee16116be2bea0e6df0606d29363\n"
    },
    {
      "commit": "60d02077d86d2d1092443519290101f503aa6f7a",
      "tree": "57992d2bd94784cd765729b806429928ead0d2e7",
      "parents": [
        "36a75eeb15e58726e8cbbfe9687975740133a11b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 29 08:48:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 08:25:58 2016 -0800"
      },
      "message": "Replace cutils/log.h with either android/log.h or log/log.h\n\nTest: compile\nBug: 31289077\nChange-Id: I795a76f978d2213737f1fa908da789c543219b75\n"
    },
    {
      "commit": "ef225074ea06dc8ac2801b2fb9f4707dcd3f4200",
      "tree": "459f4cd2d64f05daaa281ebab124c115402f1b29",
      "parents": [
        "4e1fe188f263d7774330a0bcb1f6744790198aea"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 05 11:38:32 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Oct 09 10:42:23 2016 -0700"
      },
      "message": "Enable strict warnings and fix unused warnings\n\nTest: builds without warnings\nChange-Id: I0701a44cbd9a2adc405a1e253b57df7ee03a90b7\n"
    },
    {
      "commit": "ee507ef9e5115a923d20f5cf840d128dd49fb00f",
      "tree": "cef4fccf1ff52b8133cee15366661f31ef542f70",
      "parents": [
        "15ac558b0f1873dbe0d9c1e6fed042a349f8b5a4"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Jul 15 11:06:05 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 25 10:21:29 2016 -0700"
      },
      "message": "libeffects: validate channel mask in downmixer configure\n\nValidate channel mask in downmixer configure, this returns\nearly warning to calling module which can fallback to another\ndownmixing module or return error instead of playing improper\ndata.\n\nauthored-by: Dhananjay Kumar \u003cdhakumar@codeaurora.org\u003e\n\nCRs-Fixed: 862105\nChange-Id: Ic19c4913608468d5c5197f65bb5d6a640c9d2d74\n"
    },
    {
      "commit": "c655561b3580ae7ba3a721e69ac240606e11fab8",
      "tree": "b1284c00f28db946f0a416a52c5e9d6a94e9dbdd",
      "parents": [
        "13c925cab2decaed6786b0642f2b5a9f8516e71a",
        "29b83cbb9018e53a18cf6e0fb34893f9774dcb96"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 23 01:32:08 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jun 23 01:32:08 2015 +0000"
      },
      "message": "am 29b83cbb: DO NOT MERGE - audio effects: fix heap overflow\n\n* commit \u002729b83cbb9018e53a18cf6e0fb34893f9774dcb96\u0027:\n  DO NOT MERGE - audio effects: fix heap overflow\n"
    },
    {
      "commit": "29b83cbb9018e53a18cf6e0fb34893f9774dcb96",
      "tree": "c17fd5e1cd3b7e6be790d902a31ea2af520a548c",
      "parents": [
        "6ff53b96235bf99cdc1023b99d44f1c4cade1c0a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 19 15:33:57 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 23 00:40:18 2015 +0000"
      },
      "message": "DO NOT MERGE - audio effects: fix heap overflow\n\nCheck consistency of effect command reply sizes before\ncopying to reply address.\n\nAlso add null pointer check on reply size.\nAlso remove unused parameter warning.\n\nBug: 21953516.\nChange-Id: I4cf00c12eaed696af28f3b7613f7e36f47a160c4\n"
    },
    {
      "commit": "6368e6d23ca27cd59a9a1876d6b5a2301a8657ed",
      "tree": "8a89740c3b4dcb9a5241b5c1156154e5990086a2",
      "parents": [
        "115e995c6b3fe7ed33e2d5d88872cb87ab4e63f0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 19 15:33:57 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 20 01:21:51 2015 +0000"
      },
      "message": "audio effects: fix heap overflow\n\nCheck consistency of effect command reply sizes before\ncopying to reply address.\n\nAlso add null pointer check on reply size.\nAlso remove unused parameter warning.\n\nBug: 21953516.\nChange-Id: I4cf00c12eaed696af28f3b7613f7e36f47a160c4\n(cherry picked from commit 0f714a464d2425afe00d6450535e763131b40844)\n"
    },
    {
      "commit": "0f714a464d2425afe00d6450535e763131b40844",
      "tree": "e949a4874b50e193734fb3541e9011d3a7e54cb6",
      "parents": [
        "3ecc9db40b1fb9c7f807a5892e5c9625aac1fb06"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 19 15:33:57 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 19 18:00:25 2015 -0700"
      },
      "message": "audio effects: fix heap overflow\n\nCheck consistency of effect command reply sizes before\ncopying to reply address.\n\nAlso add null pointer check on reply size.\nAlso remove unused parameter warning.\n\nBug: 21953516.\nChange-Id: I4cf00c12eaed696af28f3b7613f7e36f47a160c4\n"
    },
    {
      "commit": "e541269be94f3a1072932d51537905b120ef4733",
      "tree": "39646def02d7230929eb85189f48b9193b8c23a0",
      "parents": [
        "7c96d53a65085f42ac2b6d416cbc16fd36ed72ff"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 16 11:25:07 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 16 15:05:05 2014 -0700"
      },
      "message": "Use new channel count functions for audio masks\n\nChange-Id: Ia658ab4b6320d19fdb50f123c930918724ff0ef3\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "49f095546d047b52c5070229bbee0c3f27548256",
      "tree": "e8655eaaac3236025d96de19f86ad029aa5ed836",
      "parents": [
        "96b292fd3c76f9af155ee6f7a8559258eeedc6fd",
        "cf79c7a576837d8bccecc80612a1f6f30bb328a8"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu May 08 13:48:00 2014 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Thu May 08 13:48:00 2014 -0700"
      },
      "message": "resolved conflicts for merge of cf79c7a5 to master\n\nChange-Id: Ic4e75541193f733f477cfa4a2a87cce4c9e64f45\n"
    },
    {
      "commit": "029a64e0327ecc1215a3d17ce50f508edae1c4a6",
      "tree": "4c99a37fb8eb563cd55240cba177edc06a45ac7c",
      "parents": [
        "32fa3c6fab55b075c916f4dad38e42e239bb7813"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 15 09:58:55 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 30 13:49:03 2014 -0700"
      },
      "message": "Define CHANNEL_MASK_* in terms of AUDIO_CHANNEL_OUT_*\n\nand use same suffixes\n\nChange-Id: I90b74ede171ba2550db4a220cfd1ad2e3caefe2d\n"
    },
    {
      "commit": "32fa3c6fab55b075c916f4dad38e42e239bb7813",
      "tree": "afcf4bf640ea8ad973e2e613d4d5fee2e21377d3",
      "parents": [
        "bff804655bcc8e94c48e8da170b9381e9aab7980"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 29 09:01:52 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 30 09:34:02 2014 -0700"
      },
      "message": "Remove AUDIO_CHANNEL_OUT_SURROUND\n\nand corresponding downmix effect\n\nChange-Id: I1576aa373ca7acbb84d7742bacbd9c2da04a7a4c\n"
    },
    {
      "commit": "7cb0e733210c2ce7dd2a7c9d32f6d83c4dab9656",
      "tree": "406ac589b6b1cf7efaef89723fd0b8de5e5e2b91",
      "parents": [
        "cd4eb72edb0575ce1e84fbd3f27bb85bab6110ed"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 18 13:48:25 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Apr 18 13:57:58 2014 -0700"
      },
      "message": "libeffects: 64 bit compile issues\n\nChange-Id: I32dd13d307572fee91150f8e113df78924ca0067\n"
    },
    {
      "commit": "a9b82160a6682438d43709ba5e7a29022ad1af58",
      "tree": "7e6fba930126b50bc2e22845552cf930ad44b926",
      "parents": [
        "395c2fc0c422c9218f39f6ed2040e90b1cc9920a",
        "b302bd5d288be2d3363b80053ca2392560b00b25"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Mar 07 16:04:44 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Mar 07 16:04:45 2014 +0000"
      },
      "message": "Merge \"LP64 fixes for media/libeffects\""
    },
    {
      "commit": "8fc4d57d41f532b90187b9404a8ac705770d75b4",
      "tree": "6fa63a63d790ed9a8401f60d5473c21ae2f9fc52",
      "parents": [
        "4ee5d2b9d0cdaf936bd5fecd670e5f38da63e4ae",
        "a93c8c9c89ba679cf312c7d082913121bb5543c2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Tue Feb 25 19:36:22 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Feb 25 19:36:23 2014 +0000"
      },
      "message": "Merge \"Avoid a building error\""
    },
    {
      "commit": "b302bd5d288be2d3363b80053ca2392560b00b25",
      "tree": "7eaf242136ba86c73b7371e47475a2d7c5334847",
      "parents": [
        "80b72e6f4202ce26facbe51b8739814bca198a2c"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Tue Feb 18 11:40:00 2014 +0000"
      },
      "committer": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Thu Feb 20 14:12:49 2014 +0000"
      },
      "message": "LP64 fixes for media/libeffects\n\nChanges include:\n\n[x] In get parameter series of functions, replaced size_t*\n    formal parameter type with uint32_t* where actual parameter\n    passed was uint32_t*.\n\n[x] In set parameter series of functions, changed size_t\n    formal parameter to uint32_t where actual parameter was\n    uint32_t.\n\n[x] Changed the definition of LVM_UINT32 from unsigned\n    long to uint32_t as unsigned long is 64-bit in LP64.\n\n[x] Used other stdint.h types for other LVM_types for\n    consistency.\n\n[x] Use of uintptr_t for the pNextMember of the INST_ALLOC\n    structure, rather than LVM_UINT32, for portablility.\n\n[x] Use of uintptr_t where pointers are used in arithmetic.\n\n[x] Replaced the use of 0xFFFFFFFC with ~3 in places where\n    it was used to clear last two bits.\n\n[x] Removed int casts where cmdSize and *replySize, both\n    uint32_t, were being compared with sizeof().\n\nChange-Id: Ibec0b4d8e9b855f44b1cd853be6df84d13cf4186\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "377b2ec9a2885f9b6405b07ba900a9e3f4349c38",
      "tree": "b938e1d75a1beefae86244f287ca22f4a277740d",
      "parents": [
        "cdda7bf4d3ca9cad6979374a18dd5be79ea83d80"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 03 12:35:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 11:40:06 2014 +0000"
      },
      "message": "Make frameworks/av 64-bit compatible\n\nContains the necessary changes to make frameworks/av build and work\non a 64-bit machine.\n\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n\nChange-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43\n"
    },
    {
      "commit": "7d6fc5ebc8718ebb5bf505d9bda83ab63741a545",
      "tree": "3dff65731f7dcb75e20974287e8008c7048ca86f",
      "parents": [
        "4ef1dc2d5b5f5df93b173b0b4c4719d4484e031d"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri Jan 24 21:00:32 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Jan 27 12:39:29 2014 -0800"
      },
      "message": "frameworks/av: convert LOCAL_MODULE_PATH to LOCAL_MODULE_RELATIVE_PATH\n\nLOCAL_MODULE_PATH doesn\u0027t work for multiarch builds, replace it\nwith LOCAL_MODULE_RELATIVE_PATH.\n\nChange-Id: I4e4ceec61d026bbe74ba604554c06104bde42e5e\n"
    },
    {
      "commit": "c9d8ea7f8f9a1ca8ecd266695e3cac423790b2f9",
      "tree": "ba266ce44ccdc60775b8f91e6b33a05b3c207f89",
      "parents": [
        "0219856e5e45c0bdd20f2199297ec92f11f0875f"
      ],
      "author": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Sat Oct 19 22:51:33 2013 -0700"
      },
      "committer": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Sat Oct 19 22:57:43 2013 -0700"
      },
      "message": "libeffects: do not use GNU old-style field designators\n\nNot using a GNU extension improves portability\n\nChange-Id: I4e8a0376c089828ca4fc7f1aaf3914bfd917d4c5\n"
    },
    {
      "commit": "ecba7488c5cceaacef95836b1b476433451e7761",
      "tree": "83245c19c2dda5c557531edb19478056034b5db5",
      "parents": [
        "5544c66ba0aa789a997b376df503a5ffae425dc7"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6",
      "tree": "67aa5a912048834766759d1842f7e54a20f74481",
      "parents": [
        "ec77122351b4e78c1fe5b60a208f76baf8c67591"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "a93c8c9c89ba679cf312c7d082913121bb5543c2",
      "tree": "c70bb3650465a38237dbbe113c4ba71da410280a",
      "parents": [
        "12834fe289e8173e94f31603fa6d313abe56ad70"
      ],
      "author": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Thu Jan 10 20:52:57 2013 +0800"
      },
      "committer": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@android-x86.org",
        "time": "Thu Jan 10 21:04:50 2013 +0800"
      },
      "message": "Avoid a building error\n\n\u0026pDwmModule-\u003econfig may equal to pConfig that triggers\na building error using gcc 4.7:\n\nIn file included from bionic/libc/include/signal.h:33:0,\n                 from bionic/libc/include/sys/select.h:34,\n                 from bionic/libc/include/unistd.h:34,\n                 from system/core/include/cutils/log.h:34,\n                 from frameworks/av/media/libeffects/downmix/EffectDownmix.c:19:\nIn function \u0027memcpy\u0027,\n    inlined from \u0027Downmix_Configure\u0027 at frameworks/av/media/libeffects/downmix/EffectDownmix.c:651:11,\n    inlined from \u0027Downmix_Init\u0027 at frameworks/av/media/libeffects/downmix/EffectDownmix.c:605:9,\n    inlined from \u0027DownmixLib_Create\u0027 at frameworks/av/media/libeffects/downmix/EffectDownmix.c:233:9:\nbionic/libc/include/string.h:114:31: error: call to \u0027__memcpy_overlap_error\u0027 declared with attribute error: memcpy called with overlapping regions\n\nChange-Id: Ia6c4aab72e38d00d8d526f3b56fc03b6530b4e44\n"
    },
    {
      "commit": "7f16b197c76fbae9399242f055a7ee16dcd0fd6d",
      "tree": "c3ef4aac9bb7cedd1a694a50d4f9be0ec83cc817",
      "parents": [
        "6035cb5a61a7606cc8e4ecddec32b2eb37a9fd56"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "message": "Only export the symbols that need to be\n\nThe effects libraries were exporting many more symbols than needed.\nThis reduces the exported symbols to just the needed ones (basically\njust \"AELI\"), which happens to also save about 28KB.\n\nChange-Id: I115077e52e8dc845282e6f62a522908d26dd72d6\n"
    },
    {
      "commit": "655604a7c1ffadc04ec479e4f45345918f44b460",
      "tree": "35f365521cb1292429a01b80e1d61661d5341121",
      "parents": [
        "1bb85d27f09cb01b7e43e08600229258edf16e60"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 16:05:57 2012 -0700"
      },
      "message": "Only export the symbols that need to be\n\nThe effects libraries were exporting many more symbols than needed.\nThis reduces the exported symbols to just the needed ones (basically\njust \"AELI\"), which happens to also save about 28KB.\n\nChange-Id: I115077e52e8dc845282e6f62a522908d26dd72d6\n"
    },
    {
      "commit": "6035cb5a61a7606cc8e4ecddec32b2eb37a9fd56",
      "tree": "4adad231ee22989258c1d6c6c95ea8c218a9807d",
      "parents": [
        "bd37975395b6517e155f6195d2300872bc26ee70"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 11:02:50 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 12:16:59 2012 -0700"
      },
      "message": "Switch to new fx library API\n\nChange-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5\n"
    },
    {
      "commit": "1bb85d27f09cb01b7e43e08600229258edf16e60",
      "tree": "3c1ec1cf442a4502c430ee07d1ff7ece2fa5276c",
      "parents": [
        "692c3e54c63aaaf7e9ef4d89761f98975bd34f33"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 11:02:50 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 25 12:16:59 2012 -0700"
      },
      "message": "Switch to new fx library API\n\nChange-Id: I6603aef5e3821a8f911e3f33ef8565d04bd1e2e5\n"
    },
    {
      "commit": "3d51d5cb53cc630709a0ba78d0e60501a675f2d5",
      "tree": "c01dc8011b4e0061343c8b60b0da3508c63ae822",
      "parents": [
        "b4ea1ab821d652cb080910d4081f5f1318597a90"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 12 18:10:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 13 15:18:29 2012 -0700"
      },
      "message": "Add NOTICE and MODULE_LICENSE_APACH2 to libs build under /frameworks/av/\n\nChange-Id: I0a3af3e2abdedebd5934f3d941d01c32cfc75e26\nrelated-to-bug: 6647465\n"
    },
    {
      "commit": "aea2715e65994e665a3732551880419ba1cecc0d",
      "tree": "062b9c82f8d9ce4303467e46981c40d3b1fc1d8e",
      "parents": [
        "e737cda649acbfa43fc1b74612a83f2fac9aa449"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 24 10:11:07 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 24 12:12:43 2012 -0700"
      },
      "message": "Prevent occurences of clipping in loud downmixed scenes\n\nThe downmixer effect is a mixer, wich, like the platform mixer,\n  hard-clips. To prevent clipping during loud scenes across multiple\n  chanels, apply a fixed attenuation on the result of the downmix.\n  Note that this attenuation is lower the theoretical required\n  attenuation (except for quad and surround) but is adequate for\n  most content.\n\nBug 4280902\nChange-Id: Iec520e9f1367284d6102633f532429361717692d\n"
    },
    {
      "commit": "6895deeecc8797e6f5b28e7d07ec6bc499355c0c",
      "tree": "9dc5dcdccac3993d0604b69ec08ad2ce75015664",
      "parents": [
        "5d3d12bf58da5b48b1edb7c20b5d1edec0773f75"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 15 15:51:16 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 16 12:28:45 2012 -0700"
      },
      "message": "Stereo downmixer supports generic configurations. Fix 7.1 downmix\n\nAdded a generic downmixer to stereo function to handle the\n  multichannel configurations not supported by the dedicated\n  downmix functions.\n  It first verifies the mask is supported, and then derives\n  channel indices for the downmix.\nAdded support for forcing the generic downmixer to be always\n  used instead of the format-specific functions (define\n  DOWNMIX_ALWAYS_USE_GENERIC_DOWNMIXER to force it).\n\nFixed 7.1 downmix function where handling of accumulate vs\n  overwrite was inversed.\n\nBug 4280902\n\nChange-Id: I8259b32c4e90f76ef4dcd803592fc71df4ae90c5\n"
    },
    {
      "commit": "db46b48d24e03f5bcb8de6d0ff852ec4153401e7",
      "tree": "4d526d6d7e9b7fd92b46f3a8d48c2adfe7f54a63",
      "parents": [
        "36513e357dfc6c53898d4b4f768c9fd4822f4653"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 23 11:29:26 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 23 14:52:34 2012 -0700"
      },
      "message": "Downmix support for 5.1 and quad with side channels\n\nIn DOWNMIX_TYPE_FOLD mode, add support for variants of quad and\n 5.1 channel masks where the \"side\" channels are used instead of\n the \"back\" channels. These variants have the same channel order,\n so they can share the same downmix function.\n\nChange-Id: I5f9cb7cb120927189de680c2a968d6136dc1fc43\n"
    },
    {
      "commit": "f28c8792f64e10c3c477d86bf4804a8566ff524e",
      "tree": "6699a532aeae112ce0be9dcf1bfa3f05493481ab",
      "parents": [
        "9bd23229fdec1657398abc682ccccfce1c95f8aa"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 18 18:38:42 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 18 18:38:42 2012 -0700"
      },
      "message": "Turn off debug in downmix effect\n\nChange-Id: I4eda43166d23b3297cf769056a6db720401799aa\n"
    },
    {
      "commit": "7d5b26230a179cd7bcc01f6578cd80d8c15a92a5",
      "tree": "563086c1185e0e54770d8c60c8eec1aefdddb89f",
      "parents": [
        "4b75a9c8b93a90749bc5d22912ad0d96c12f4ecf"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 04 18:54:36 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Apr 09 11:27:14 2012 -0700"
      },
      "message": "AudioMixer uses downmix effect for multichannel content\n\nIn the AudioMixer structure associated with each track, add an object\n  that acts as the buffer provider when the track has more than two\n  channels of input in the mixer. This object, DownmixerBufferProvider,\n  gets audio from the actual buffer provider of the track, and applies\n  a downmix effect on it.\nThe downmix effect is created and configured when the track gets\n  created in AudioFlinger, which causes AudioMixer::getTrackName()\n  to be called with the new track\u0027s channel mask. It is released\n  when the track is disabled in the mixer.\n\nChange-Id: I05281ed5f61bef663a8af7ca7d5ceac3517c82db\n"
    },
    {
      "commit": "33b383948e8f270bff30378476f00dce289004eb",
      "tree": "a42eeb76674395b36611da694166ddd4144a0fa8",
      "parents": [
        "dfaf549e3e310bc22444f4404b19f4907b24c286"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 15:59:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:44:34 2012 -0700"
      },
      "message": "Remove dependency on audio_* location\n\nChange-Id: I4bc66115fcb9ba22b057bd72db3f561dcb18a0d8\n"
    },
    {
      "commit": "04c1e531b5913c09aa9b2e59e2b8ed9b4d8a4cba",
      "tree": "643a1bd10a8e4d0e9a208a3987d41459d6db49d1",
      "parents": [
        "eb7de4504bdb3a0182021ca6f022cccca01dbf1e"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 10:59:56 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 07 10:17:19 2012 -0800"
      },
      "message": "Effect for multichannel PCM downmix to stereo\n\nFirst pass at implementing an audio effect whose role is to\n downmix multichannel PCM buffers to stereo.\nThe effect is not handling volume changes.\nThe effect code here handles quad, 4.0, 5.1 and 7.1 input configurations,\n to optimize the most commom configurations, and does not yet handle\n generic multichanel configurations.\n\nChange-Id: I74d04bd961348f3f0e4ae7714b70e620808a0829\n"
    }
  ]
}
