)]}'
{
  "log": [
    {
      "commit": "9a1c8892f6835325db6931529dc74bf98cf0aee8",
      "tree": "8b6d6b4dcaf964cf16c68bdc5080239126d2caac",
      "parents": [
        "ab05b4ccb8ea59079d7f773aa0e090029c479bad"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 03 11:37:42 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 03 16:12:35 2014 -0800"
      },
      "message": "Fix getTimestamp if offload thread is not initialized.\n\nReturns INVALID_OPERATION.\n\nBug: 18605649\nChange-Id: I440fb687fbf9249098e049982fa83bcd1515fd80\n"
    },
    {
      "commit": "e83b55dc29ca16092ba02f36f55fa6e0e37fd78c",
      "tree": "f8232611b6372b74579e3ed03dfbeb167011d257",
      "parents": [
        "0f78eabb733e1413d7febd00c0bad0f0add02314"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 14 10:06:21 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:48:19 2014 -0800"
      },
      "message": "audio policy: new getOutputForAttr() prototype.\n\nUpdate getOutputForAttr() prototype and group all logic\ndealing with audio attributes to stream type conversion in\naudio policy manager.\n\ngetOutputForAttr():\n- specifies the audio session (for future use)\n- returns a status code\n- receives either stream type (for legacy) or audio attributes\n- returns an updated streamtype\n\nRemove logic dealing with legacy stream types to attributes conversion\nfrom AudioTrack.\n\nUse correct type for audio sessions in other APIs (startOutput() ...).\n\nreleaseOutput() specifies the audio session (for future use).\n\nBug: 18067208.\n\nChange-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817\n"
    },
    {
      "commit": "223fd5c9738e9665e495904d37d4632414b68c1e",
      "tree": "33e0afab9a7479cdc4c688a742a8977c8ead21e4",
      "parents": [
        "bc0f452b9a76dd8c8244e775bc9c5aa85cae3ddf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 11 13:43:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 21 10:41:13 2014 -0800"
      },
      "message": "audio: new routing strategies and stream types\n\nAdded new routing strategies and stream type for internal use\nby audio policy manager and audio flinger:\n- One for accessibility to allow different routing than media\n- One for re-routing (remote submix) in preparation of dynamic\npolicies\n- Added stream type for \"internal\" audio flinger tracks used\nfor audio patches and duplication.\n\nBug: 18067208.\nChange-Id: I88f884b552e51e4a49c29125e5a1204cf58ff434\n"
    },
    {
      "commit": "ec0eeafa8a7fd882e8206e9cf8c4c7e1db81857b",
      "tree": "a40aab7cb04a88cc63a45cffa376ec12ce5bc3b9",
      "parents": [
        "ec9459c63d1c2969505ffdc4a100646fd07223bd"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Thu Nov 20 11:32:27 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 20 13:04:15 2014 -0800"
      },
      "message": "Fix format conversion in DuplicatingThread\n\nDuplicatingThread converts PCM data from the format of the source thread\nto PCM_16BIT before writing to all connected output tracks.\nThis needs to be done just once before writing to all tracks.\n\nBug: 18461844\nChange-Id: If05254f87f9198e09a0fa3c4e857afbb53ae7073\n"
    },
    {
      "commit": "27876c02c21cd3ab7ef01bdd1fc5400c5143584a",
      "tree": "3c096ec71dfdb81fcafe4a68165006f1371fdf5d",
      "parents": [
        "97e6ca1a0be83e420ab238d9a1c31d3112126646"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 09 18:07:55 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 17 18:06:10 2014 -0800"
      },
      "message": "Prevent stopped audio tracks from mixing data\n\nStatic tracks should have zero framesReady when stopping or stopped,\nto prevent mixer from running potentially indefinitely with loop mode.\n\nBug: 16070883\n\nChange-Id: Iab9968044d1a6f8543bbcbfb246f49f27d68cace\n"
    },
    {
      "commit": "02b5708776ba2a9b4ff8c09008483aef7dbe38c7",
      "tree": "4b94a6347b1f33b8a9c0966fac8d37019d818219",
      "parents": [
        "e662cd5cdbe1312d6b74754d2945fffe99e4fe2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 07 17:28:28 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 07 17:28:28 2014 -0800"
      },
      "message": "audioflinger: fix duplicating thread output buffers clear\n\nAlso clear mix buffer in DuplicatingThread::threadLoop_mix()\ninstead of just sink buffer when output threads are not\nready.\n\nBug: 18262127.\nChange-Id: I4c22bbeaccdcc8d7c10c5882dde3439eb73d6ede\n"
    },
    {
      "commit": "b10352f4bc11ae6f3d93e464074709555ecf9e06",
      "tree": "52187ad264691c11e3d1efc541fe791568a33d69",
      "parents": [
        "b1322c78b035c9f47ebe57a39799d7a0e13bf57f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 03 16:25:39 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 03 16:25:39 2014 -0800"
      },
      "message": "remove some restrictions on effect output channels\n\nDo not prevent from attaching effects to a non stereo\noutput thread, unless the output thread is a mixer thread.\n\nBug: 18157592.\nChange-Id: I6ac3187187a1b8aade7db04ea6dfbc47dacc25c3\n"
    },
    {
      "commit": "fd4c14883b268a0bc5514da135fe6b7d1ce2071b",
      "tree": "29e4594fffdc70dc7d51a3abd7586a556df1e448",
      "parents": [
        "31551f8dd625b8d40961e141d2913b0073f852ab"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Aug 06 16:02:28 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Oct 27 16:03:09 2014 -0700"
      },
      "message": "Always use an address for remote submix\n\nUsage of remote submix device for audio rerouting (e.g. wifi display)\n didn\u0027t mandate the use of addresses. Use \"0\" as the default address\n when none is specificed.\nIn logs, only use hex format for audio devices\n\nBug 16009464\n\nChange-Id: Ibfb1ce6881eba8b7e34420293b8a7077a6e659e6\n"
    },
    {
      "commit": "9d0d5958969cffae5d4305025bc20d05f32e6ff2",
      "tree": "13d3ef1adc3e281778d2cab53846c337469cfec4",
      "parents": [
        "1f58bb157ded117fe931142e9906b2b6b406b534",
        "fa90e84ed0cb2abdc0e0873a06d10ccf2b3c34f6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 22 17:16:29 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 22 17:16:30 2014 +0000"
      },
      "message": "Merge \"audioflinger: new HW A/V sync ID allocation flow\" into lmp-mr1-dev"
    },
    {
      "commit": "fa90e84ed0cb2abdc0e0873a06d10ccf2b3c34f6",
      "tree": "cfb0730e677246729f44e97465edfac2f0fb45ad",
      "parents": [
        "0cfc8f2500bb76d44ad45a723a570835aeff502b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 17 18:12:31 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 22 10:04:14 2014 -0700"
      },
      "message": "audioflinger: new HW A/V sync ID allocation flow\n\nThe HW A/V sync ID is now allocated by the audio HAL before the\noutput stream is created by a call to global get_parameters() with\nkey AUDIO_PARAMETER_HW_AV_SYNC.\n\nWhen the AudioTrack is created, the HW A/V sync ID is communicated\nto the output stream by stream set_parameters() with key\nAUDIO_PARAMETER_STREAM_HW_AV_SYNC.\n\nBug: 17112525.\nChange-Id: Ia8bc6f3bf9f358aa89f3f56ac554e893a19811ad\n"
    },
    {
      "commit": "36d9256f956b2ed4d7a221d84ad05bf4ba482958",
      "tree": "bc20d87abb869e949cb479a1311b676e5b04f8bb",
      "parents": [
        "145a4c679a9ab27aceaa1d386ea9aca1c0cd4d33",
        "ac302143551a8b964f026385a524dda9ff8ea5ba"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 20 21:05:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 20 21:05:02 2014 +0000"
      },
      "message": "am ac302143: Fix the fix\n\n* commit \u0027ac302143551a8b964f026385a524dda9ff8ea5ba\u0027:\n  Fix the fix\n"
    },
    {
      "commit": "ac302143551a8b964f026385a524dda9ff8ea5ba",
      "tree": "7c32fc205e52cb690abd0e7bbe46c749eac38b48",
      "parents": [
        "22bc10a347569a0ab2980c24783e31aba4d7414d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 20 13:15:38 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 20 13:15:38 2014 -0700"
      },
      "message": "Fix the fix\n\nWe need to clear the buffer a little more often.\n\nBug: 18023017\nChange-Id: If8a522b9133a4269e2435af8958f6ced322e71e9\n"
    },
    {
      "commit": "145a4c679a9ab27aceaa1d386ea9aca1c0cd4d33",
      "tree": "88670be9f175704f5de07f2bb8fef4f19a1e7f7a",
      "parents": [
        "e0459eb091d98b944d9d1c9483a08f322aa60eda",
        "22bc10a347569a0ab2980c24783e31aba4d7414d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 20 14:51:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 20 14:51:24 2014 +0000"
      },
      "message": "am 22bc10a3: Merge \"Clear effect buffer before sending to chain\" into lmp-dev\n\n* commit \u002722bc10a347569a0ab2980c24783e31aba4d7414d\u0027:\n  Clear effect buffer before sending to chain\n"
    },
    {
      "commit": "57088b5c8e76855b99b3e6b3e410de5b6382670e",
      "tree": "3b0f7cbcfdc6237d24ae173fc0b624977bbfaaef",
      "parents": [
        "380757ba5c927015d403e3b97cc418413330453e"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 17 16:39:39 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Oct 17 16:39:39 2014 -0700"
      },
      "message": "Clear effect buffer before sending to chain\n\notherwise the effect might get a buffer with previous data instead\nof silence.\n\nBug: 18023017\nChange-Id: Ic6be5ce0e74552aac2a0cce9c660893f9ad27f5c\n"
    },
    {
      "commit": "f53eaf49df1e1e1c01708919e9e0a046543de9b6",
      "tree": "01274169d31d750a0a0e08c59aa56bd5b84f3ff2",
      "parents": [
        "e86f4be598b1d2c521e2b3fcd05101c3848e93e2"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Thu Oct 09 11:36:22 2014 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Tue Oct 14 10:38:08 2014 -0700"
      },
      "message": "    fix FM no sound issue\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/184276\n\n    Signed-off-by: Carson Liao \u003ccarson.liao@mediatek.com\u003e\n\nChange-Id: I0847c8a6e6d054a9258b52402c914105d902c573\n"
    },
    {
      "commit": "2b217bb3aee87ce8486014f261c0f498f6209e80",
      "tree": "3199fbc19fc6329f1e764ad63a478dbe2308ddc3",
      "parents": [
        "b220fe0e40bc3752b62a9576fc824634a16fc3ab",
        "1b92868010b5c1409692a86f6b27e4a265b64c1a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 03 20:37:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 03 20:37:47 2014 +0000"
      },
      "message": "Merge \"audioflinger: fix pre processing transfer between record threads.\" into lmp-dev"
    },
    {
      "commit": "1b92868010b5c1409692a86f6b27e4a265b64c1a",
      "tree": "aa514a65d23d1bebbceef49cc6b7f2662c7bad76",
      "parents": [
        "d8b03abf1d003e2940a19f0071ea2892689dd10e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 02 19:41:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 02 19:41:47 2014 -0700"
      },
      "message": "audioflinger: fix pre processing transfer between record threads.\n\nFix two problems remaining with pre processing effects transfer from\none record thread to the next in case of tear down due to device connection:\n1 - the enabled state of the effects was not communicated to the new HAL\ninput stream.\n2 - the effects saved in orphan chains list were not transfered to the\nnew thread when a AudioRecord was created.\n\nBug: 17757378.\nChange-Id: I0923c98470db3b51154dc89846157780a4c21e86\n"
    },
    {
      "commit": "4c053ea158b29fa2cdd4c6f39d3c8da4ee5a7a02",
      "tree": "129617d405d098b749beafbcd87c58321bf2b055",
      "parents": [
        "8b76b592be5bc162fb5a6d7e8c47812544b6b345"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Sep 28 14:41:07 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 02 16:50:26 2014 -0700"
      },
      "message": "Fix uncertainty of one normal mix buffer in AudioTrack::getTimestamp\n\nThe per-thread timestamp latch was not synchronized with the per-track\nreleased frames.  Now the value of each track\u0027s released frames is\nlatched along with the timestamp.\n\nBug: 17531839\nBug: 17669342\nChange-Id: I9d50c8c6a5de55a3f4561ac40e20d497376c1257\n"
    },
    {
      "commit": "cb4b6e9f05d1c0b3fcc5be5ebe3f7d6f32669b1a",
      "tree": "7bf2965353146579d1af3a5015ec468029d1f5dc",
      "parents": [
        "a49c94ea49c8329a1bdefe980e1f7d335c0d1ec5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 01 14:26:10 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 01 16:52:30 2014 -0700"
      },
      "message": "audioflinger: fix failure to indicate volume to effect\n\nIf an effect is added and enabled after a track is started\nit will not receive current volume information because volume\nis indicated only to active effects and if there is a volume change.\n\nAdd a flag to force EffectChain::setVolume_l() to pass volume indication\nto all effects each time an effect is enabled.\n\nBug: 17572556.\n\nChange-Id: I6b68488c9aca8b2095fb210aa124d02e4f759660\n"
    },
    {
      "commit": "a49c94ea49c8329a1bdefe980e1f7d335c0d1ec5",
      "tree": "c095d3a59114c8a893e3657ad5efc6fdb40f2c9b",
      "parents": [
        "d0b9efe7d8300e48f7a99c1dd746d60060206b3c",
        "6954127b7ace022677ac407ff943c2793f8a11be"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 01 23:09:52 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 01 23:09:53 2014 +0000"
      },
      "message": "Merge \"Revert \"Fix uncertainty of one normal mix buffer in AudioTrack::getTimestamp\"\" into lmp-dev"
    },
    {
      "commit": "6954127b7ace022677ac407ff943c2793f8a11be",
      "tree": "3e038561671d256e03d63fb88a32e529e198701a",
      "parents": [
        "54464ba861aaafd11ee5645f5d1ecd1171c6e9fe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 01 22:38:43 2014 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 01 22:45:18 2014 +0000"
      },
      "message": "Revert \"Fix uncertainty of one normal mix buffer in AudioTrack::getTimestamp\"\n\nThis reverts commit 54464ba861aaafd11ee5645f5d1ecd1171c6e9fe.\n\nBug: 17733142.\n\nChange-Id: I9886d40032b2f7d96bee03e600e14f78943d8052\n"
    },
    {
      "commit": "955e24d3a8e218d4711cabc6558781e095011132",
      "tree": "1b27aa45a2224cbdc9e247935c811e8ab62af40a",
      "parents": [
        "6c7ae72f0eccf456744474785afd25f9e205881c",
        "54464ba861aaafd11ee5645f5d1ecd1171c6e9fe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 30 01:44:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 30 01:44:18 2014 +0000"
      },
      "message": "Merge \"Fix uncertainty of one normal mix buffer in AudioTrack::getTimestamp\" into lmp-dev"
    },
    {
      "commit": "f71224ce266abb39f83ecba87783c2347631654a",
      "tree": "2ab4c81c96918d94c5ff0acc66a68606c08b47de",
      "parents": [
        "c8c05d6a5821dd56209e160066314a03d2f2ca06",
        "e659ef420dae0caae84ab78f9df8952acb9ad3a0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 30 01:11:19 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 30 01:11:20 2014 +0000"
      },
      "message": "Merge \"audioflinger: forward flush to direct output streams\" into lmp-dev"
    },
    {
      "commit": "54464ba861aaafd11ee5645f5d1ecd1171c6e9fe",
      "tree": "c04a12c44ee589fec8baebafe200fe95529fa76a",
      "parents": [
        "a67ced9746e6f0d4e03ff8007682091afea71f6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Sep 28 14:41:07 2014 -0700"
      },
      "committer": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Tue Sep 30 01:10:58 2014 +0000"
      },
      "message": "Fix uncertainty of one normal mix buffer in AudioTrack::getTimestamp\n\nThe per-thread timestamp latch was not synchronized with the per-track\nreleased frames.  Now the value of each track\u0027s released frames is\nlatched along with the timestamp.\n\nBug: 17531839\nBug: 17669342\nChange-Id: I96252782911bd42a2534cc4030521b7eeb99a7b9\n"
    },
    {
      "commit": "e659ef420dae0caae84ab78f9df8952acb9ad3a0",
      "tree": "9b21158041ed871365f939fc37034858328ef115",
      "parents": [
        "dc2e6ddc933e40632e79a866d9ece870db1a975e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 29 13:06:46 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 29 17:39:39 2014 -0700"
      },
      "message": "audioflinger: forward flush to direct output streams\n\nTrack flush should be forwarded to the audio HAL when playing\non a direct output stream.\n\nBug: 17704953.\nChange-Id: Iafc94327fe9aebf1d4eaa97b76c6767b7ac5babe\n"
    },
    {
      "commit": "ba0b34c18da93681c0813ecdab19b0e215b6d261",
      "tree": "9f401bc394b276294b706fb42d62f35131046c55",
      "parents": [
        "a67ced9746e6f0d4e03ff8007682091afea71f6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Sep 28 13:06:06 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Sep 28 13:42:35 2014 -0700"
      },
      "message": "Fix tee sink\n\nNote: this does not fix the bug below, but it helps to investigate the bug.\n\nBug: 17578238\nChange-Id: I0fd27a477b73ba0e1c5a658bdfad17c500f5dc67\n"
    },
    {
      "commit": "80b617cf82e0030deef4f968a6341e2867166135",
      "tree": "750b04ddad1418eac7be6fb53322f7ab4e734583",
      "parents": [
        "90869c2bef1bc47394a9f603ccebb62b2592fd2b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 17 12:30:19 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 17 12:30:19 2014 -0700"
      },
      "message": "audioflinger: remove debug log.\n\nRemove debug log left by commit ab5cdbaf.\n\nbug: 17537746.\nChange-Id: I10f672f607f8e87caaa8228fc05eff8aee7dfa15\n"
    },
    {
      "commit": "cf7863ea8d9137aadf6bfd9756eb07ebd1c81b5c",
      "tree": "3030c350f57e8d813a19be08c77c3e53502433f3",
      "parents": [
        "c7b29572d22dff51b5432a7d211875d528406da6",
        "aaa44478a373232d8416657035a9020f9c7aa7c3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 15 18:36:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 15 18:36:49 2014 +0000"
      },
      "message": "Merge \"audioflinger: fix pre processing effect leak\" into lmp-dev"
    },
    {
      "commit": "aaa44478a373232d8416657035a9020f9c7aa7c3",
      "tree": "95a4724c0d7ebbe065551f0aeaf5d65283ab3e04",
      "parents": [
        "f0b31e6333839972afb2e374f6d8824180d29fc2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 17:41:50 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 15 09:31:31 2014 -0700"
      },
      "message": "audioflinger: fix pre processing effect leak\n\nWhen a capture thread was closed, the effects attached to this thread\nwere left dangling and the associated effect chain destroyed.\nWhen their last client was disconnected, the effects were not released\nproperly from the effect library because the destruction process could\nnot be completed without the effect being attached to a thread.\n\nA similar problem prevented a RecordTrack to be properly released if\nits client was destroyed after the capture thread.\n\nThe fix consists in allowing the effect or record track to be properly\nreleased even if its parent thread cannot be promoted.\n\nAlso save any effect chain still present on a closed capture thread\nin case a new client wants to reuse the effects on the same session later.\n\nBug: 17110064.\nChange-Id: I5cd644daa357afd1f3548f9bcb28e6152d95fdb8\n"
    },
    {
      "commit": "2f035f59d1e28728d38d18a7f0f7a9c6e8b0c11b",
      "tree": "790ddf009cc4207fd4faa14bf8aa1dc3a59775cf",
      "parents": [
        "f0b31e6333839972afb2e374f6d8824180d29fc2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Sep 14 12:11:52 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 15 09:10:36 2014 -0700"
      },
      "message": "audioflinger: send mic mute command to all audio HALs\n\nMic mute should be sent to all audio HALs, not\nonly the primary HAL as telephony can use\ncapture devices on other HALs (e.g USB)\n\nBug: 17321604.\nChange-Id: I658f6084d5b5cdc5a70784661d5cea0b6f81c3a9\n"
    },
    {
      "commit": "f8fd8d6daab5ced86ce950be68070d27c24d487f",
      "tree": "4ccbca767b6711112f9aacdaf72ca40fa7473e06",
      "parents": [
        "8270e1d13a101fa946848871b9903b31ff11981f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 09 17:00:14 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 09 17:00:14 2014 -0700"
      },
      "message": "audioflinger: fix audio patch release\n\nFix error in PatchPanel:releaseAudioPatch() causing\nthe wrong patch handle to be passed to the audio HAL.\n\nBug: 17368621.\nChange-Id: I037fd2e6273508c830414b5900d07c0178b96dae\n"
    },
    {
      "commit": "3abc2ded40066f3b1df23aceb553f22d569c5cd3",
      "tree": "12bc71f5efa13cc53c28138bcae9f7b5b0b25903",
      "parents": [
        "52c6a355503dbbe9bb134af07faee982534031dd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 05 16:45:52 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 05 17:15:32 2014 -0700"
      },
      "message": "Make IPowerManager native conform to .aidl for oneway\n\nBut provide a temporary escape hatch for AudioFlinger.\nThis oneway option will be removed as soon as possible.\n\nBug: 16408906\nChange-Id: I058a50906af810787e444a96819cb781b7f639ad\n"
    },
    {
      "commit": "23c8cf958b1a756d5e0c78c46eac676676be4fdd",
      "tree": "c7f8168bbcfd431ede64ded70c06ca33902a2bcc",
      "parents": [
        "453d633ba6351c8efc2103383ca178a0674bd373",
        "329f6511ee4e03a4605c70bbda8d3a96d2544884"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Sep 03 15:29:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 15:29:58 2014 +0000"
      },
      "message": "Merge \"Restore the ability to build tee sink for debugging\" into lmp-dev"
    },
    {
      "commit": "97d547da43c9c41711d1ed1e3f4fa87c2ee3cb9a",
      "tree": "7691517aee519ffaf4a7c5dbfd422b742d4401b7",
      "parents": [
        "b72726bad6c9253c26c82fea76bdf99e18b8ba6d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 02 14:45:53 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 02 14:45:53 2014 -0700"
      },
      "message": "audio flinger: fix use of global effect buffer\n\nWhen float mixing format is enabled, audio effects use a specific\nbuffer in 16 bit format. This buffer was not enabled when only\nglobal effects were present resulting in the mixer accumulating directly\nto the output sink buffer.\n\nBug: 16202259.\nChange-Id: I3537d36c63196d97772f0ab22dd31d04dfa7fdd6\n"
    },
    {
      "commit": "329f6511ee4e03a4605c70bbda8d3a96d2544884",
      "tree": "7c80c71e7eb84ba39106205214c9e58b5f6aed1e",
      "parents": [
        "9dd4a2ddd7caf8cbe50d8a76e0ec3e0274d2bce6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 28 16:23:16 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 02 13:54:21 2014 -0700"
      },
      "message": "Restore the ability to build tee sink for debugging\n\nThis changelist does not enable tee sink, but makes it possible to do so.\nTee sink had suffered some bit rot since it is not built by default.\n\nAlso fixes a crash for \u003e 2 byte per sample or \u003e 2 channels.\nStill does not write correct header for floating-point;\nthat will be best solved by moving to libsndfile.\n\nBug: 16990102\nChange-Id: I8e92c588ccc513d7802d696fcfb324e815772df6\n"
    },
    {
      "commit": "395db4bfa5b43a839f95632676d59cde99a9840d",
      "tree": "2699e187d6fc59dd4f2b60a70c9131759d2b4a88",
      "parents": [
        "2a1bcb8347ad4778a49bb340c3ed28ba27caa7d7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 25 17:15:29 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 25 17:15:29 2014 -0700"
      },
      "message": "Fix AudioMixer MONO muted track handling\n\nIncorrect handling caused \"stereo\" mode to be used.\nAugmented error handling to print more debug info.\n\nBug: 17208475\nChange-Id: I5bcaf0ba5bd5a4f7d4885f8cce43bbf42e5f1e6b\n"
    },
    {
      "commit": "735f45fbc37d7905ffb722f40727edbed82319b7",
      "tree": "e8abf5e80a5b9a05efeb9f8ea1f3ace03ffea6a4",
      "parents": [
        "a7ee3549823af3dc4b22284f1a2fe4fbf31cf30b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 18 15:51:59 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 18 16:19:01 2014 -0700"
      },
      "message": "Fix memory access error due to race during fast track removal\n\nBug: 16205169\nChange-Id: Ie15ec2a737b6ddd16b2d26030d01564ff70177f5\n"
    },
    {
      "commit": "49d00ad9164ea5ce48c85765a2b6460d9b457d38",
      "tree": "bf5a60ee980e9f7d6313f5495c4722a070fc3566",
      "parents": [
        "ca05eb4b0194bb9b37a5261fa91f89add7a6df53"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 21 11:22:03 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 12 16:06:16 2014 -0700"
      },
      "message": "Fix overruns when capturing with resampling\n\nBug: 16658148\nChange-Id: I2dd04b23a143e0948b299d408790e7a46b5a53b0\n"
    },
    {
      "commit": "e7a1737c92cf2e84754ffbc52cfec8edeffcbc75",
      "tree": "a455b627387548eb77e11e88fb7b54612516c296",
      "parents": [
        "dbdaa08cbed61b9ba4afc43f0ce0230346a1ca2f",
        "726b6a7540ac997928df1a14dfede872a82f6210"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Aug 12 16:04:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 11 17:59:47 2014 +0000"
      },
      "message": "Merge \"Fix to support mono in effect buffer allocation.\" into lmp-dev"
    },
    {
      "commit": "726b6a7540ac997928df1a14dfede872a82f6210",
      "tree": "deb87bb07b384d104a3e1661a6ef320fa10d34f3",
      "parents": [
        "2dfe8ea7c131a045067c123efc934ef6ccdb8821"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Aug 11 12:04:54 2014 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Aug 11 14:28:45 2014 -0700"
      },
      "message": "Fix to support mono in effect buffer allocation.\n\nSince effects are now enabled for recording, mono cases are possible\nand needed to be correctly allocated.\n\nBug: 16917961\nChange-Id: I760fc421f9f90fabb3f0deadd5f9dc61cd284371\n"
    },
    {
      "commit": "cd04484f4837b8ca0041d118286ab6a98e84fc75",
      "tree": "4b9e501bb71969c0ca5049201aeae42284ac9b80",
      "parents": [
        "53a1e46e559b00653eadf6f4bb5572679b0ee734"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 07 11:04:34 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 11 10:17:18 2014 -0700"
      },
      "message": "Extend downsampling ratios greater than 2:1\n\nAlso improve robustness to choice of sampling rate or buffer size\nsuch that increasing either by 10x does not cause overflow.\n\nBug: 12979141\nBug: 15933066\nChange-Id: If7989bd745d1bee3bdf811b8b7c978543ccafb65\n"
    },
    {
      "commit": "874c4287a4e49c59ac88767751dce00fcd3edb73",
      "tree": "2a0e4adc0bd18f26c8488b74d7e3df9751d493df",
      "parents": [
        "0912a5738d6baf2df7cd62e877240e3807b4b21f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 08 15:13:39 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 08 17:07:31 2014 -0700"
      },
      "message": "audio policy: enable more than one sink per audio patch.\n\nAllow creation of audio patches with more than one sink.\nMore than one sink is enabled when:\n- Connecting an input device to output devices on the same audio HW module.\n- Connecting an output mix to output devices on the same audio HA module.\n\nAll other patches are limited to one sink.\n\nBug: 16879363.\nChange-Id: I95be6948ef29df64e51e5b8ace38c2db7f3e89f2\n"
    },
    {
      "commit": "0912a5738d6baf2df7cd62e877240e3807b4b21f",
      "tree": "58e7ad3a76e384408d02cdef7a9c9215a8000878",
      "parents": [
        "317bb9163befccd87348c11bdfc0044e629b362b",
        "389cfdbb9a92a438a0d7710321c2964c7ad55eca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 08 17:28:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 07 18:49:59 2014 +0000"
      },
      "message": "Merge \"Fix effect and mono sink handling.\" into lmp-dev"
    },
    {
      "commit": "389cfdbb9a92a438a0d7710321c2964c7ad55eca",
      "tree": "7ef80332e73a04ccc3221bb0f75dc1a7932234ac",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 07 17:49:53 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 08 09:59:02 2014 -0700"
      },
      "message": "Fix effect and mono sink handling.\n\nDo not permit mixing to mono sink in AudioFlinger.\nAllow effects on mono sink if not Mixer thread (e.g. Record).\n\nBug: 16863095\nChange-Id: I8b232fc1fb3f07bf017020c5d4f9ace644dec6d8\n"
    },
    {
      "commit": "7f04ec2a4ec94ada7ef89db8c50fd1e5c3a93a3b",
      "tree": "42d4ba5895c3943fd7d8e61cd75a9590a09c6f93",
      "parents": [
        "a9522673f3076ea937eb2912945d7ed646ca05df",
        "c2730ba7c5e9559b7499ef5e0d7742deb18c5110"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 07 15:54:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 06 23:49:20 2014 +0000"
      },
      "message": "Merge \"audio policy: add support for USB devices for voice call\" into lmp-dev"
    },
    {
      "commit": "c2730ba7c5e9559b7499ef5e0d7742deb18c5110",
      "tree": "efa845ec9fd1cb5cc2a2cf20b62538b74668b173",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 20 15:47:07 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 11:42:07 2014 -0700"
      },
      "message": "audio policy: add support for USB devices for voice call\n\nAdd possibility to use sink and source devices not on\nthe primary HW module for voice calls (e.g. USB headsets).\n\nBug: 15520724.\n\nChange-Id: Ib27db4ba759b6d91ea1104dc2e35c87733517b30\n"
    },
    {
      "commit": "0a0e5f02037f396237461a9840b2fc7271812bdc",
      "tree": "e7e029f1a04fde3a58657c4131f439c90ae3a5e5",
      "parents": [
        "7f3f2fa386b8dd917022663bcb01f10ea67061be",
        "93c3d41bdb15e39dac0faea9c5b60f1637cd477c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 19:40:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 06 17:19:40 2014 +0000"
      },
      "message": "Merge \"AudioSystem: add API to query audio HW sync source\" into lmp-dev"
    },
    {
      "commit": "7f3f2fa386b8dd917022663bcb01f10ea67061be",
      "tree": "8bfe560b2e67fd002f8d39150d7208330e63ced3",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9",
        "322bab26dc3fe9bd9c1cbb829dc62ff44f1ae810"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Aug 06 19:11:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 06 17:19:40 2014 +0000"
      },
      "message": "Merge \"MediaServer crashing and audio effects not applied to TTS.\" into lmp-dev"
    },
    {
      "commit": "322bab26dc3fe9bd9c1cbb829dc62ff44f1ae810",
      "tree": "51abbc969cf66fceeebbd97199f0d9ce18aaf13c",
      "parents": [
        "63c0ce7ab7bd99d51414dcb4f765bc6faabf367d"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Aug 06 11:43:46 2014 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Aug 06 12:06:14 2014 -0700"
      },
      "message": "MediaServer crashing and audio effects not applied to TTS.\n\nA memclear in the EffectChain was out of bounds.\n\nBug 15432115\nBug 16845751\n\nChange-Id: Ib0adc7fa730d630bb71fb87d51163a26149b16e2\n"
    },
    {
      "commit": "93c3d41bdb15e39dac0faea9c5b60f1637cd477c",
      "tree": "a0d739ad732f10bc9d4548923c78c590841b14da",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 14:48:35 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 00:38:23 2014 +0000"
      },
      "message": "AudioSystem: add API to query audio HW sync source\n\nAdd a method to query from the audio HAL the HW sync\nsource used for a given audio session.\nModify audio policy to select a direct output with HW sync\nwhen requested.\n\nBug: 16132368.\n\nChange-Id: I03038f9188f2d389f8a5fd76a671854013a4513e\n"
    },
    {
      "commit": "cf817a2330936947df94c11859f48771f5596a59",
      "tree": "c9c386dabb997f20b2f1046b6087b26e71b66ed9",
      "parents": [
        "e46711343b43786c049a007369a72c1c78e6c5db"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 04 20:36:31 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 05 17:16:32 2014 -0700"
      },
      "message": "audio: fix crashes upon USB device connection\n\n- Audio policy:\nReplace unknown device assertion by debug log in setDeviceConnectionState().\nIt is possible that some kernels indicate connection of a legacy device type\nwhen a USB audio device is connected.\nWe should just ignore this device.\n\n- Audio flinger:\nMake sure FastMixer thread is idle before exiting the normal mixer thread and\nclosing the output stream.\n\nChange-Id: Ia10a20176a60a8aa56765538093a555fc998508a\n"
    },
    {
      "commit": "7a9b25940309e2967820daa13a7f71e41293d165",
      "tree": "551ee8d8a32b689b5ea72ea75272c08b175f5aa1",
      "parents": [
        "d0fded31e473e909c018f534d3019fb5168bdcd6",
        "5241b8cacee86e17223695190959f4752910680f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Aug 05 15:33:24 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 05 00:34:22 2014 +0000"
      },
      "message": "Merge \"Remove unused TwoTrack process mode from AudioMixer\" into lmp-dev"
    },
    {
      "commit": "5241b8cacee86e17223695190959f4752910680f",
      "tree": "7294f55179540aaf0c3050839d5193bb98c0cb3c",
      "parents": [
        "63c0ce7ab7bd99d51414dcb4f765bc6faabf367d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 04 20:43:10 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 04 20:43:10 2014 -0700"
      },
      "message": "Remove unused TwoTrack process mode from AudioMixer\n\nLegacy code that has not been hooked up.\n\nChange-Id: Ic01a4eddfa1020089d5bc42f58b6a4697698c27a\n"
    },
    {
      "commit": "44622db93a24219123facbbe14259000f90de728",
      "tree": "e9d4700757e0546ec0f8e76330d1ff5d421374f5",
      "parents": [
        "678792e362c4cd70640934049491d9f21560c63b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 19:00:33 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 04 09:48:17 2014 -0700"
      },
      "message": "audio flinger: fix service fuzz test crash\n\nBug: 13744704.\nChange-Id: I572c89f88dcab2b8b612ec6860983306f9f159ab\n"
    },
    {
      "commit": "e6fa1b7fdc74bec3292d6a10c99f25f9fd989d3f",
      "tree": "06b39ec27ac3c54b02d1dde99b3be297e29cfe81",
      "parents": [
        "3c6fac2c807e4234953dcdc793029a82d1f3a089"
      ],
      "author": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Wed Jul 16 12:13:16 2014 -0700"
      },
      "committer": {
        "name": "Hans Boehm",
        "email": "hboehm@google.com",
        "time": "Thu Jul 31 15:44:16 2014 -0700"
      },
      "message": "Remove 64-bit android_atomic uses from StateQueue.\n\nUse stdatomic.h instead.  We\u0027re trying to remove android_atomic use\nwherever possible.  The 64-bit uses seem easiest to remove first.\nThis cleans up the code, though not as much as C++ \u003catomic\u003e would,\nif it worked everywhere.\n\n(cherry picked from commit f39b560952d3706a7ff47ef0d82c1a836daeea42)\nChange-Id: I3c29bdbd5915cb9d47118834a3a742fe296cf87f\n"
    },
    {
      "commit": "318be3e7d245aea99efa194a16002395b609ab90",
      "tree": "5c390913d27d9cd5a9da253af37e74f1a10664eb",
      "parents": [
        "8b685b9e56cc207d44b08d124148e7d752ef2241",
        "b1ee3954153e9c40280f68d278526ca43c31fdcf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 29 23:53:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 29 21:36:00 2014 +0000"
      },
      "message": "Merge \"Enable multichannel in AudioFlinger\" into lmp-dev"
    },
    {
      "commit": "a4daf0b4f934b800a49f199fb8c09409391c8fc0",
      "tree": "f2b1f47f9c09d21d0eb22f1f78d10c766e7a1c11",
      "parents": [
        "5fedaffddebd6b37f09cdc9804812945b9622498"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 28 16:34:45 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 29 15:45:38 2014 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Ife5e40264f43fb3ccb40830228701003fe106bf5\n"
    },
    {
      "commit": "b1ee3954153e9c40280f68d278526ca43c31fdcf",
      "tree": "508023ffd2ea5af10131b4896c543e413069195c",
      "parents": [
        "9a60538b9ee2b097770dcd378281b31f4218ae56"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 28 16:28:06 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 28 16:28:06 2014 -0700"
      },
      "message": "Enable multichannel in AudioFlinger\n\nChange-Id: Ibdbdc6ea0b87cdcd15432257a3455b11b3ce14b7\n"
    },
    {
      "commit": "4dc680607181e6a76f4e91a39366c4f5dfb7b03e",
      "tree": "5212b6ff474b8ef68a68cb1cf144f54e5348de77",
      "parents": [
        "d530d415e60373caf875a37d2d747a51470ee45c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 17:26:49 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 18:10:29 2014 -0700"
      },
      "message": "audio policy: pass session ID to capture activity methods\n\nIndicate the audio session ID when calling getInput(),\nstartInput(), stopInput(), releaseInput().\n\nBug: 12378680.\nChange-Id: I763793752f93e2f4e1445a5ab217c895af011038\n"
    },
    {
      "commit": "d530d415e60373caf875a37d2d747a51470ee45c",
      "tree": "d5dd64384cee9e4ec3bb28419e71622c9ba4a69f",
      "parents": [
        "de3f8392fbf380ba6f09d009b00d7172477389a2",
        "8661aaff9e9a4d4c1b57f6a68cdbcab006354ab2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 28 23:55:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 28 18:28:56 2014 +0000"
      },
      "message": "Merge \"Fix rounding in RecordThread resampler buffer computation\" into lmp-dev"
    },
    {
      "commit": "8661aaff9e9a4d4c1b57f6a68cdbcab006354ab2",
      "tree": "bb9166671a068c5a4c07a264475f30556d16d69a",
      "parents": [
        "141670d465d7673dfa6ad712ad100f84882dfa95"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 28 14:38:41 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 28 14:44:24 2014 -0700"
      },
      "message": "Fix rounding in RecordThread resampler buffer computation\n\nBug: 16525305\nChange-Id: Ie010822b0fa9dec74adde1d1b091ee44c183fc94\n"
    },
    {
      "commit": "de3f8392fbf380ba6f09d009b00d7172477389a2",
      "tree": "77687cb28cf7dfb34ebb6317e246b3cad5672b86",
      "parents": [
        "03524dcc1215b2c468f5c8c8abe6f1c26239fd71"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:38:22 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 21:43:16 2014 +0000"
      },
      "message": "rename AudioSystem::newAudioSessionId()\n\nRename AudioSystem::newAudioSessionId() to\nAudioSystem::newAudioUniqueId() as it can be used\nalso for I/O handles.\n\nBug: 12378680.\nChange-Id: I611ea3b5eb57a4b0774437f477ee87dc4ccc2cc2\n"
    },
    {
      "commit": "03524dcc1215b2c468f5c8c8abe6f1c26239fd71",
      "tree": "c168e631ce77c50e6627ed783a98f33f901420cb",
      "parents": [
        "7d70c5e5fe787ae5d7af8830864d208749d6337f",
        "cf2c0210c8afbe7d0661ccbbae3835b5ce73c0bf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 20:56:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 25 21:16:23 2014 +0000"
      },
      "message": "Merge \"AudioFlinger: update openInput() and openOutput()\" into lmp-dev"
    },
    {
      "commit": "cf2c0210c8afbe7d0661ccbbae3835b5ce73c0bf",
      "tree": "26824707249d553efaabe2003381b4e9159e199d",
      "parents": [
        "97117153a0d681be70bfa9dc9876541375355c47"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 25 16:20:43 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 12:06:00 2014 -0700"
      },
      "message": "AudioFlinger: update openInput() and openOutput()\n\nAdd parameters to openInput() and openOutput(): device address,\ninput source.\nAllow caller to specify a given I/O handle\nGroup parameters in a struct audio_config.\n\nBug: 12378680.\nChange-Id: I7e9af74c0d996561cc13cbee7d9012d2daf33025\n"
    },
    {
      "commit": "9f81de3452dfb2385bd57dc05456a045174a1ab1",
      "tree": "af5e18f9686c58444ecd82e1bac52c530d503d1c",
      "parents": [
        "0fb47759256ecdaedbc34c880238bc9d102ef160"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jul 27 15:02:23 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jul 27 15:03:00 2014 -0700"
      },
      "message": "Enable lower latency audio capture on more devices\n\nBug: 16601366\nChange-Id: I573b98631f81b7768f7cc00aa09e560008dea587\n"
    },
    {
      "commit": "9a59276fb465e492138e0576523b54079671e8f4",
      "tree": "e3e51544dc4e641cdfe0b38bfaac530167656eb8",
      "parents": [
        "e93b6b7347a7846c8fd746542364ec11b0cd5124"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 21 21:56:01 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 24 18:57:27 2014 -0700"
      },
      "message": "Add multichannel capability to AudioFlinger\n\nBut not enabled (kEnableExtendedChannels \u003d\u003d false).\n\nChange-Id: I62f7e31fbd29ad703a9a02f5d1a280b6972dd423\n"
    },
    {
      "commit": "e93b6b7347a7846c8fd746542364ec11b0cd5124",
      "tree": "d5498ae539ae460d4153026be9714129fc45a21f",
      "parents": [
        "81e50d0c782cc18eab4ef40ecd6c7f36df50fea5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 17 21:30:53 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 24 18:40:33 2014 -0700"
      },
      "message": "Add multichannel capability to AudioMixer\n\ntests/test-mixer updated to handle multichannel.\nNew mixer path is still disabled (kUseNewMixer \u003d false).\nSubsequent CL will enable multichannel capability.\n\nChange-Id: I71dafa94cc1d9af567c285e0ded7c5c94e3ff926\n"
    },
    {
      "commit": "83b8808faad1e91690c64d7007348be8d9ebde73",
      "tree": "b541b1172f804e04bd19b29f7878a1becf6205d7",
      "parents": [
        "c15c265676da2226a18a5373812608b19d4719d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 20 18:31:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 24 02:56:47 2014 +0000"
      },
      "message": "audio flinger: add patch connection between hw modules\n\nAdd support for audio device connections between different audio\nhw modules.\nThe patch is performed by creating a bridge between the playback\nthread connected to the sink device and the record thread connected\nto the source device using a pair of specialized PlaybackTrack and\nRecordTrack.\n- Added PatchTrack and PatchRecord classes.\n- Added TrackBase type to indicate more clearly the track behavior.\n- A TrackBase can allocate the buffer or reuse an existing one.\n- Factored some code in openOutput() and openInput() for internal use\nby PatchPanel.\n\nBug: 14815883.\n\nChange-Id: Ib9515fcda864610458a4bc81fa8f59096ff4d7db\n"
    },
    {
      "commit": "17d0842cf33464a79a81b0e78e49514c3419d1cf",
      "tree": "df4161ca751aa1860442fa9563ed5584b56abb74",
      "parents": [
        "4730fa07a3290cc3a904dcb16dbb92fcf46c36ac",
        "42b011166ece30969667e0ff9dcf4832568c9c1a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 23 20:41:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 23 18:25:52 2014 +0000"
      },
      "message": "Merge \"Fix multichannel integer resampling and add tests\" into lmp-dev"
    },
    {
      "commit": "42b011166ece30969667e0ff9dcf4832568c9c1a",
      "tree": "16f653a56d0daaeb02dfd27659ac96796163e8dc",
      "parents": [
        "8bce84142802ecdc1794d59488ede629801a5cba"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Jul 20 14:04:19 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 21 21:59:51 2014 -0700"
      },
      "message": "Fix multichannel integer resampling and add tests\n\nChange-Id: I384bf8317d4f03616bf9f2b458a8700965d5cf56\n"
    },
    {
      "commit": "a7e04803ffa0d8d4cc51a122f68bf5038422aabb",
      "tree": "e1c60583b09461df3be42a04dbae4d51e1bd75e9",
      "parents": [
        "8bce84142802ecdc1794d59488ede629801a5cba"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 21 11:49:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 21 11:55:33 2014 -0700"
      },
      "message": "Remove execute bit\n\nChange-Id: I1cf0c0d9375779b3074af12f4cbf9c1ec07bf4ff\n"
    },
    {
      "commit": "8bce84142802ecdc1794d59488ede629801a5cba",
      "tree": "802c25b58a915542533fbedd62ca8b81c70270ce",
      "parents": [
        "cf1f53baa636f1782ff924d6003c70c6b8542c0b",
        "a08810b2feafeec88870c7c1f01efc39ee8e0d78"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Jul 20 20:53:44 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 17 17:59:02 2014 +0000"
      },
      "message": "Merge \"Add RemixBufferProvider to AudioMixer\" into lmp-dev"
    },
    {
      "commit": "a08810b2feafeec88870c7c1f01efc39ee8e0d78",
      "tree": "6c33f28c0c637f0d67530058493f653e453a131b",
      "parents": [
        "34803d594232af5604d893eff7ee40bb57d459a4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 16 21:53:43 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 18 20:34:02 2014 -0700"
      },
      "message": "Add RemixBufferProvider to AudioMixer\n\nThis is used to convert between channel masks for input AudioTrack\ndata.\n\nChange-Id: Iedffaeccb99c7053992152e7b1cb6b2d33b12eef\n"
    },
    {
      "commit": "34803d594232af5604d893eff7ee40bb57d459a4",
      "tree": "13991635bf72797e6ff00a3ec739b465af53614d",
      "parents": [
        "1b2fdcb005f9fbe5ad465cec46ec5992b718b5e3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 16 21:41:35 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 18 18:05:19 2014 -0700"
      },
      "message": "Update DownmixerBufferProvider to use CopyBufferProvider\n\nChange-Id: I6b1a8755a1e6c29b916662fd376e9509cda5df55\n"
    },
    {
      "commit": "1b2fdcb005f9fbe5ad465cec46ec5992b718b5e3",
      "tree": "af0ac40d490c649b1c3a13ba0c5c9a22e1890c6b",
      "parents": [
        "91be1fbc424035e70688e60306b755893e0fb0ae"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 16 17:44:34 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jul 18 17:56:04 2014 -0700"
      },
      "message": "Add CopyBufferProvider class for AudioMixer\n\nAudioMixer::ReformatBufferProvider now uses it as a base class.\n\nFix ReformatBufferProvider object leak.\n\nChange-Id: If196f844eaaa124a173ffa27afe88098023c2ff9\n"
    },
    {
      "commit": "4287942b0d6fabe5f99e15cd70c470b04f345de8",
      "tree": "8ae6a614689746e0f520d884eb00bdd1c7998af4",
      "parents": [
        "c60780517a882e0905fd36a06b1c45da12e49557",
        "34803d594232af5604d893eff7ee40bb57d459a4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jul 19 03:39:26 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 18 22:16:50 2014 +0000"
      },
      "message": "Merge \"Update DownmixerBufferProvider to use CopyBufferProvider\" into lmp-dev"
    },
    {
      "commit": "c60780517a882e0905fd36a06b1c45da12e49557",
      "tree": "a0b1dd3d1b196b287aed2fdf6983bb0d4a82b346",
      "parents": [
        "c63680d80ac262a6be4a22a66f92960e9f44d460",
        "1b2fdcb005f9fbe5ad465cec46ec5992b718b5e3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jul 19 03:23:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 17 21:09:48 2014 +0000"
      },
      "message": "Merge \"Add CopyBufferProvider class for AudioMixer\" into lmp-dev"
    },
    {
      "commit": "529c61b7e4468a3e21f302f2a92a660249daa722",
      "tree": "26133aeea97d8ea2d564a6ff0193e471c575914f",
      "parents": [
        "ada688878122d6504cccebb9121f9d4f8f701e38"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 18 15:31:02 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 18 15:32:41 2014 -0700"
      },
      "message": "Fix copy/paste bug\n\nintroduced by Change-Id: I4e9b7fa99858b488ac98a441fa70e31dbba1b865\n\nChange-Id: I9a0c8800f5cf3767cc259776f95c96cad972e392\n"
    },
    {
      "commit": "91be1fbc424035e70688e60306b755893e0fb0ae",
      "tree": "eef36fd4610590775c813de29a63d68885c11d59",
      "parents": [
        "e94754c9601d132354e5db2079762c7d1a0bddda",
        "7410591dad836434c72ddee66680802708b70c10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 21:56:55 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 17 21:04:20 2014 +0000"
      },
      "message": "Merge \"Move AudioRecord frame count calculations to server\" into lmp-dev"
    },
    {
      "commit": "2e8186a258c934798129847f66171df36e95d23e",
      "tree": "4da37472f2c220fe210c1539fbd536ce5942d77d",
      "parents": [
        "d1a4f35ec10f36c33cf7391e800910da8fdebb6e",
        "5567aaf4818007cd8e77329683a91c0f5d7a8837"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 17 21:23:26 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 17 21:09:48 2014 +0000"
      },
      "message": "Merge \"Fix initial audio glitch on startup\" into lmp-dev"
    },
    {
      "commit": "5567aaf4818007cd8e77329683a91c0f5d7a8837",
      "tree": "02be3dd69b9b538662abc033d08fd0207d2fd607",
      "parents": [
        "d81d48961da30f657fb095ed00a697bd50266269"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 17 14:00:07 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 17 14:00:07 2014 -0700"
      },
      "message": "Fix initial audio glitch on startup\n\nAlso happens when restarting AudioFlinger.\n\nBug: 16322824\nChange-Id: I382b20174cb0639e04316130141f2094d7dd0cb3\n"
    },
    {
      "commit": "7410591dad836434c72ddee66680802708b70c10",
      "tree": "697a233ffced732dbe113c927d9de61f14ea3f2c",
      "parents": [
        "b3b1660ecb67f61f9da54efced8677fa3a6f4863"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 12:28:53 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:18 2014 -0700"
      },
      "message": "Move AudioRecord frame count calculations to server\n\nBuffer frame count and notification frame count\nare now calculated by server instead of by client.\nThe server has more information and can do a better job.\n\nAlso fix a few bugs:\n\n - If a fast track was re-created, even with same pipe depth, it would fail.\n   Now it can correctly re-create a fast track provided the pipe depth is same.\n\n - Notification frame count for fast tracks was calculated by client\n   as 1/2 of the total frame count, which is a large value due to the pipe.\n   Now the notification frame count is set by server to the HAL frame count.\n   This should reduce latency for fast tracks.\n\n - EVENT_OVERRUN were happening frequently when there was sample rate conversion,\n   because the client didn\u0027t know about the sample rate conversion,\n   and under-estimated the necessary buffer size.  Now since server\n   calculates the buffer sizes, EVENT_OVERRUN is unlikely.\n\n - RecordThread::createRecordTrack_l was checking for mono and stereo\n   for fast tracks.  This is not necessary, and now we can handle a\n   multi-channel fast track.\n\nBug: 7498763\nChange-Id: I0c581618e8db33084d5ff9ed50a592990c9749e8\n"
    },
    {
      "commit": "ec40d284218466d8f0e832e7eb88e6ea6c479c88",
      "tree": "46ae774a4f3535d07374bed459b1dcf2bb9d8803",
      "parents": [
        "6e6704c06d61bc356e30c164081e5bcffb37920c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 15 15:31:26 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:07 2014 -0700"
      },
      "message": "Add audio_input_flags_t to IAudioFlinger::openInput\n\nFor backward compatibility, until flags are correctly calculated,\nwe will assume that the request is for a low latency input stream.\n\nChange-Id: I76746834e870df00833dc77cbdaa2edd2ffeec95\n"
    },
    {
      "commit": "6e6704c06d61bc356e30c164081e5bcffb37920c",
      "tree": "825e014f01a7eb5a2f3282965d2a5ba9a21b4071",
      "parents": [
        "7b24ee381e806dcb53308c1cafc8a45f4e2d8300"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 10:20:00 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:05 2014 -0700"
      },
      "message": "Improve dumpsys for capture threads\n\nShow per-track sample rate, and whether there is a fast capture thread\n\nChange-Id: If6a08a40d1eeba0690aa8da3c541f845ec101b7f\n"
    },
    {
      "commit": "da3bd9f12883f8344d2db00ce2fa47511ed9bef6",
      "tree": "a570ee165ca19b3fd27afd543eeca77fa1e8ba52",
      "parents": [
        "efebe3974d4ad5870f957b77450c26a499fc467e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 15 15:34:27 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 15 15:53:19 2014 -0700"
      },
      "message": "Add audio_input_flags_t to HAL open_input_stream\n\nFor backward compatibility, until flags are added to openInput(),\nwe will assume that the request is for a low latency input stream.\n\nChange-Id: I5e6f7e574418917ff1b41b0a47199203c69cb40f\n"
    },
    {
      "commit": "cd704219d22ec51660103684a680caf2c3a12dad",
      "tree": "6572f8fad52b82a72eba711fda2779a6e0ad6ca7",
      "parents": [
        "f6ef963fecde3b63696028fadce4bcfb5b998db0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 14 17:26:36 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 15 11:20:45 2014 -0700"
      },
      "message": "const correctness on downmix and upmix\n\nChange-Id: I0f51470a6d58a22310ce7cda80afc55e9d6df1dc\n"
    },
    {
      "commit": "2829edccd7d2bb8244246f316face82b650b8949",
      "tree": "485dbd465bc203b2227c87fe582abeffd1ece08c",
      "parents": [
        "7bad72237b49ac47e77ffe2a89fd26f3d171324c"
      ],
      "author": {
        "name": "aarti jadhav-gaikwad",
        "email": "agaikwad@nvidia.com",
        "time": "Wed Jun 18 15:25:26 2014 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 11 09:53:16 2014 -0700"
      },
      "message": "stagefright: Pass audio aac sub formats in offloadinfo\n\nPass audio aac sub formats in offloadinfo according to\naac profile. Audio HAL can take decision about offload\nusing DSP capabilities\n\nChange-Id: If269a3654b5d2b09c183212b0646ef03e06f2d8f\n"
    },
    {
      "commit": "463be250de73907965faa6a216c00312bf81e049",
      "tree": "fb6e9ba368855cf8fadb66fa221795d1b061afca",
      "parents": [
        "01cab9ce4fb203fab8f5115ff866f9f0cc96a73a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 10 16:56:07 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 10 17:02:21 2014 -0700"
      },
      "message": "Return negotiated format with HAL in AudioFlinger\n\nFixes an issue caused by extended precision and the FastMixer\nwhen the format to the FastMixer was returned instead of the\nHAL format.\n\nChange-Id: I2be9d55d5c87d82e46b5200b07fcdd986ebde08a\n"
    },
    {
      "commit": "0dba9b1719a598f5d78cbcef4b0b9e47313f1037",
      "tree": "3ad0181876bcac400b08564d9feb6ead793455d9",
      "parents": [
        "91848a568e6ef4d6b214b81d3f82b6d49d00ffb6",
        "5e58b0abe5b6c8f5bd96a8f78bbeeeb4d3892020"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 09 20:35:08 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 08 23:31:34 2014 +0000"
      },
      "message": "Merge \"Add floating point volume handling to AudioMixer\""
    },
    {
      "commit": "91848a568e6ef4d6b214b81d3f82b6d49d00ffb6",
      "tree": "a0a7b6eed932db5dea13b02daaf658e9c9fbf793",
      "parents": [
        "f16a9a0b4469d65e2f13d9a940a5e358ba1f6b80",
        "a494e82c3c73508b4d3cfe89e9134de94e12fd31"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 09 17:47:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 09 14:43:38 2014 +0000"
      },
      "message": "Merge \"Enable extended precision PCM output in AudioFlinger\""
    },
    {
      "commit": "5e58b0abe5b6c8f5bd96a8f78bbeeeb4d3892020",
      "tree": "975ed02efce4eaefcf5b0ceb5f33d212542a33a6",
      "parents": [
        "72d039f007722c92ee5ea7ffd03ece19d2781103"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 23 19:07:29 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 08 21:09:13 2014 -0700"
      },
      "message": "Add floating point volume handling to AudioMixer\n\nUse floating point volume in AudioMixer mixing when floating\npoint input is used with the new mixer engine.\nAudioResampler is updated to take floating point volume to match.\nBoth legacy integer and floating point mixer engines work.\n\nFor now, integer volume is used when the new mixer engine\nruns in integer input mode, for backward compatibility with\nthe legacy mixer.  The new mixer engine will generally run in\nfloating point input mode. When the legacy path is removed,\nthe integer volumes will be removed.\n\nChange-Id: I79e80c292ae7c8b8bdd0aa371a1b2c3a1b618290\n"
    },
    {
      "commit": "a494e82c3c73508b4d3cfe89e9134de94e12fd31",
      "tree": "7e4cb804f1f0e1b2609d8c046d815a39a07cc760",
      "parents": [
        "2e8863b31e987f9bb54e52645e03e75120863a2e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 08 18:09:40 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 08 18:09:40 2014 -0700"
      },
      "message": "Enable extended precision PCM output in AudioFlinger\n\nChange-Id: I7c0907c7b2369681975d8ea0192b722d7ed7a867\n"
    },
    {
      "commit": "3d638b30dcc67ef9eaa389160ef285cda055ed64",
      "tree": "f327239fac8300e22f97ea42f5bb927d3fff320b",
      "parents": [
        "0ea8fa4ccbf9b2b179370b983f3887d3daf2381f",
        "3348e36c51e91e78020bcc6578eda83d97c31bec"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 08 17:31:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 07 18:07:48 2014 +0000"
      },
      "message": "Merge \"Replace int bitDepth with audio_format_t in Resampler\""
    },
    {
      "commit": "3348e36c51e91e78020bcc6578eda83d97c31bec",
      "tree": "ee3df8ed9f79863fc34589813710896a7e08af86",
      "parents": [
        "075abae2a954bf3edf18ad1705c2c0f188454ae0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 07 10:21:44 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 07 10:29:36 2014 -0700"
      },
      "message": "Replace int bitDepth with audio_format_t in Resampler\n\nRemove mBitDepth from class (not used).\nReplace with audio_format_t in factory method to distinguish\nbetween float and pcm 16-bit.\n\nChange-Id: I166860796c68285077ef4458d8758d19b82523f9\n"
    },
    {
      "commit": "075abae2a954bf3edf18ad1705c2c0f188454ae0",
      "tree": "a2fdfffb6a6831a082a1367c303d542ae9f9c286",
      "parents": [
        "68ffa200de7c4662c088851a328923be715c6c24"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 09 19:36:43 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 02 16:00:53 2014 -0700"
      },
      "message": "Add and enable multichannel for audio resampler\n\nChange-Id: I2b86fb73d70abc4c456f7567270a888086b301d4\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "68ffa200de7c4662c088851a328923be715c6c24",
      "tree": "7f2ec009e6ae6bdedd867acbec9fa380845d2ce5",
      "parents": [
        "b647abc0959b07c7568d9eeaf6b177aac3b20b60"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 09 19:19:06 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 02 15:56:55 2014 -0700"
      },
      "message": "Add multichannel to audio resample processing\n\nChange-Id: If6bfbf74000520713f9ba19488a475fc2eefc271\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "5c68f959eaa2e02fed5643c78e281fff42bcc0a2",
      "tree": "c2009db526d2f2d81713f149edf2bc7a7adf41b6",
      "parents": [
        "11fa4012f1c68083abfc21972f3f46da397d2c5c",
        "7df8c0b799d8f52d6386e03313286dbd7d5cdc7c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 07 13:27:01 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 02 20:11:01 2014 +0000"
      },
      "message": "Merge \"IAudioFlinger::openRecord now suggests notificationFrames\""
    },
    {
      "commit": "7df8c0b799d8f52d6386e03313286dbd7d5cdc7c",
      "tree": "e87404b99042b2c21ffcc0c34ac397ae14b4c2d4",
      "parents": [
        "7c6f87856c0880ee39c2107a0fc3c9b41f8c195c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 12:23:29 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 16:28:41 2014 -0700"
      },
      "message": "IAudioFlinger::openRecord now suggests notificationFrames\n\nChange-Id: I08885cc381d03c522a23289e74f0e1ed46563863\n"
    },
    {
      "commit": "665470b36f202bcc8ee2f7417f68fd2608dd07c1",
      "tree": "b2ab9efffb5af2d730c1899c23c1706bf4793c6d",
      "parents": [
        "5ba4440c11eb975ec0e104e0af1981838f42f57c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 03 16:37:08 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 03 16:46:52 2014 -0700"
      },
      "message": "audio: deprecate audio_stream_frame_size()\n\nBug: 15000850.\nChange-Id: I955a6efa620b8f70fa5193c7853cbe88e879c9c3\n"
    },
    {
      "commit": "5ba4440c11eb975ec0e104e0af1981838f42f57c",
      "tree": "d925693d3af7691ffdbc46fde146b7e13eb24285",
      "parents": [
        "0d3679e21146bfa497c38842c80ae1f9906a042a",
        "f947dbce4390f2c3c460325d37002a34f09c0b74"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 23:37:21 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 02 18:17:00 2014 +0000"
      },
      "message": "Merge \"Remove obsolete IAudioFlinger::channelCount()\""
    }
  ],
  "next": "296b741e8eb38e749e3202182f703a2e30ee5f1f"
}
