)]}'
{
  "log": [
    {
      "commit": "44182c206f7c5584ef2cf504da6be98fab665dbf",
      "tree": "6b3c4134c8cdd0d92aff4f917dfa3134c2c43bf4",
      "parents": [
        "0b89bc0d285b8fd4798df1ff0ba9f93851a3bd48"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:12:23 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:31:03 2015 -0800"
      },
      "message": "Dump generic information first for each thread\n\nalso mBufferSize was already being displayed as part of dumpBase\n\nChange-Id: I17f3062fcc076c594b5fd6b8fca286b27067e07c\n"
    },
    {
      "commit": "0b89bc0d285b8fd4798df1ff0ba9f93851a3bd48",
      "tree": "9c7813d20bf4cd16d9cec1ae464877432751703e",
      "parents": [
        "d7dca050c630bddbd73a6623271b34b4290460ee"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:37:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:29:51 2015 -0800"
      },
      "message": "Display more fields in thread dumpBase\n\nChange-Id: Ice15e999dda2f6cf9d23685ade4a87f74180322d\n"
    },
    {
      "commit": "d7dca050c630bddbd73a6623271b34b4290460ee",
      "tree": "c95d8f92b3fcaa95a712f862486bc07589ac746f",
      "parents": [
        "bcb1486d052e329ae4790d93055d1c51017286c3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:05:54 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:23:25 2015 -0800"
      },
      "message": "Rename mName to mThreadName and kNameLength to kThreadNameLength\n\nChange-Id: I0adfcdcab7923a07a840ec0e04528cb8bfc41f10\n"
    },
    {
      "commit": "bcb1486d052e329ae4790d93055d1c51017286c3",
      "tree": "27c26a78aea2bfe71a07b61543b4a488e422a4e0",
      "parents": [
        "2f55e7632dfa0dafde58efd8cb2af6593217fd91"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:11:21 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:23:23 2015 -0800"
      },
      "message": "Whitespace\n\nswitch indent\n\nChange-Id: I652c798dd37a80634d247c4d881fb1cce92c4bd6\n"
    },
    {
      "commit": "2f55e7632dfa0dafde58efd8cb2af6593217fd91",
      "tree": "98919a61809f20da6186d3e54537546604d7ff22",
      "parents": [
        "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 16:05:08 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:22:51 2015 -0800"
      },
      "message": "Rename tee sink file name and add prefix to macros\n\nChange-Id: If316b9e32963d9baef8f4382fcc73dc6c4ff684d\n"
    },
    {
      "commit": "e7d6671c1ab1fea7ab1c4a9ebd1cd8f899c87628",
      "tree": "0d55fe4b6aa3009acd3f9253b42d19a3214ed029",
      "parents": [
        "0f5b562737d6b5457aa83a4fdce9c6fb32584d9d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 13:46:52 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:16:44 2015 -0800"
      },
      "message": "Rename formal parameter to match type name\n\nChange-Id: I0761005b751f5c4a4b28729b1820961ff3077afd\n"
    },
    {
      "commit": "0f5b562737d6b5457aa83a4fdce9c6fb32584d9d",
      "tree": "a3d8ffcaf5015d9d66ef5a3f10c7d13bbb278e94",
      "parents": [
        "6ffc14ab6b43d4239f5adb4e6c642b7875d26432"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 18 14:33:30 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 09:16:41 2015 -0800"
      },
      "message": "Add devicesToString, inputFlagsToString, and sourceToString\n\nChange-Id: I0c09d76c204ffc5579f62d2ed1faef07922a5962\n"
    },
    {
      "commit": "6ffc14ab6b43d4239f5adb4e6c642b7875d26432",
      "tree": "64acadc3635637aa5681ccc9ec3092912518c314",
      "parents": [
        "fa8b4792228083a4c95e8bd1c28690d44bb48bd6",
        "dfb0e115d827887e2f56a8877fe41b256d24360e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 06 16:14:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 16:14:38 2015 +0000"
      },
      "message": "Merge \"Fix typo in string table\""
    },
    {
      "commit": "dfb0e115d827887e2f56a8877fe41b256d24360e",
      "tree": "6a43958eaf694d463f19a68193d37e285d548beb",
      "parents": [
        "e8c9a8f78a9f9213060e5d54a15cde364df3e0d0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 18 14:33:39 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 05 17:33:48 2015 -0800"
      },
      "message": "Fix typo in string table\n\nChange-Id: Iaf3d3c77129c62cf3dcad21fc754f390eb43b28e\n"
    },
    {
      "commit": "df68f07ca7cdeb500fcf101b317c61a0f0865723",
      "tree": "9b5ae71ee622c6d05270c5cd18f0d41e8374a563",
      "parents": [
        "60d5023f92f344d1c4e72d8b1eee54a1d014f36c",
        "6b667dde03a5707285a2ff76ada525075d4c60ef"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 04 18:42:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 04 18:42:43 2015 +0000"
      },
      "message": "Merge \"Improve resampler speed for floating point and arm64\""
    },
    {
      "commit": "5115777127bb4d2d50833537e09054dcdffdfc76",
      "tree": "70e9d2aeb62926d0d9513fad6f607904a43de74f",
      "parents": [
        "8a0554c63dc40a2a7c066b03041079ec9eb220e5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:48:45 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:01 2015 -0800"
      },
      "message": "Remove PCM16 assumption from FastCapture\n\nBug: 19586911\nChange-Id: I74d4ddc09a9eb9c651f874482639d39a56f8ca1f\n"
    },
    {
      "commit": "8a0554c63dc40a2a7c066b03041079ec9eb220e5",
      "tree": "4e3739739382f654e9c7b4eb1335e0346ae9f967",
      "parents": [
        "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 12:17:06 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:01 2015 -0800"
      },
      "message": "Pull up comment to superclass\n\nChange-Id: I2e3632ee80744f2f8d932ac1a8597ff805883851\n"
    },
    {
      "commit": "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848",
      "tree": "203ce41ac6f50f6a4c90cefd3b33f6d351037163",
      "parents": [
        "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:32:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:00 2015 -0800"
      },
      "message": "Remove redundant this-\u003e\n\nChange-Id: Iaa11bcce94dd331425197aab49065939e226a6a2\n"
    },
    {
      "commit": "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401",
      "tree": "90743cbfc56a46b815fc5118b0695f5130e8d6a5",
      "parents": [
        "d702a568cb62e5aebe048147350bb3c76f9386ba"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:23:17 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:55:56 2015 -0800"
      },
      "message": "Add \"m\" prefix to fields\n\nChange-Id: Ifdb8fa886d1ff53cd7c8aff3c2f8286e6e18dec2\n"
    },
    {
      "commit": "6b667dde03a5707285a2ff76ada525075d4c60ef",
      "tree": "1034167044ecb2bb9551020bd19441da40748904",
      "parents": [
        "bf31b3301676ad86151f632e9ca186fd02445d86"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 15:05:37 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 03 15:23:19 2015 -0800"
      },
      "message": "Improve resampler speed for floating point and arm64\n\nAdd floating point intrinsics for arm32 and arm64 devices.\nAdd integer intrinsics for arm64 devices.\n\nBug: 17366024\nChange-Id: Id4240f549033deb262815c7145d69820e5fd7b92\n"
    },
    {
      "commit": "d702a568cb62e5aebe048147350bb3c76f9386ba",
      "tree": "507e18b27556b74262a527a7378515fbdcf9b573",
      "parents": [
        "fbdb2aceab7317aa44bc8f301a93eb49e17b2bce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:51:38 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:52:56 2015 -0800"
      },
      "message": "Pull out commandToString() from FastMixerDumpState.cpp\n\nto FastThreadState.cpp, FastMixerState.cpp, and FastCaptureState.cpp\n\nChange-Id: I872efb211e8a0335c42906367859d3674340e374\n"
    },
    {
      "commit": "fbdb2aceab7317aa44bc8f301a93eb49e17b2bce",
      "tree": "97defd36379d3d4770dbd02dbacf046084889761",
      "parents": [
        "63238efb0d674758902918e3cdaac322126484b7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:47:19 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Pull up increaseSamplingN and kSamplingNforLowRamDevice\n\nfrom FastMixerDumpState to FastThreadDumpState, and remove unused parameter\nfrom FastMixerDumpState constructor.\n\nChange-Id: Ib8937b106622a8da28a6ef6043de4528ae82cb05\n"
    },
    {
      "commit": "63238efb0d674758902918e3cdaac322126484b7",
      "tree": "07fdf37a2bc73a886d8ea41f69e722ed914754af",
      "parents": [
        "d7e1d08c2ac21cdd2f3b7f83fec7094f6a98fc08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:50:29 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Remove redundant semicolon from namespace closing\n\nChange-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7\n"
    },
    {
      "commit": "13e71707522a212b192063acb0b221abbe618f60",
      "tree": "e96e4f768235dc77478aef7d9a086b8f61f31d4d",
      "parents": [
        "785b34e6b2743e3303dcd56d269259da73c40dfb",
        "d797a9d5daad3051f9ac1d348abc2f434ea3ddcf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 01:01:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 01:01:05 2015 +0000"
      },
      "message": "Merge \"Fix compile error if FAST_THREAD_STATISTICS not defined\""
    },
    {
      "commit": "785b34e6b2743e3303dcd56d269259da73c40dfb",
      "tree": "d6cc5eb0be4404b51a59f5460a76a3ecb355ba21",
      "parents": [
        "a5c5ad3615613ac0f15012e9e07a34582da7fe77",
        "214b406c813e5baca3e4b5cdc1d986de35f09bbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 01:00:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 03 01:00:54 2015 +0000"
      },
      "message": "Merge \"Rename FAST_MIXER_STATISTICS to FAST_THREAD_STATISTICS\""
    },
    {
      "commit": "d797a9d5daad3051f9ac1d348abc2f434ea3ddcf",
      "tree": "ce8626ab8016e1d162c2adcb14bbf2e3d9731267",
      "parents": [
        "214b406c813e5baca3e4b5cdc1d986de35f09bbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:19:25 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:50:26 2015 -0800"
      },
      "message": "Fix compile error if FAST_THREAD_STATISTICS not defined\n\nChange-Id: I3a4ac558e61ad956a7a6e325534e722066e49b2f\n"
    },
    {
      "commit": "214b406c813e5baca3e4b5cdc1d986de35f09bbb",
      "tree": "9e39728f873648da62d84e101b8dfcb25c58f4f7",
      "parents": [
        "bf31b3301676ad86151f632e9ca186fd02445d86"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:15:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:17:05 2015 -0800"
      },
      "message": "Rename FAST_MIXER_STATISTICS to FAST_THREAD_STATISTICS\n\nChange-Id: Idb5f5bf0c20bffff8536cf4a46f696e12e99e81b\n"
    },
    {
      "commit": "a5c5ad3615613ac0f15012e9e07a34582da7fe77",
      "tree": "36bd8363a603868b2b3b57e47727d932c299dcdf",
      "parents": [
        "bf5d0666b803921541e6a5d6abae05316e533855"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 11:19:12 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 11:23:35 2015 -0800"
      },
      "message": "Re-generate sinc tables with comment and indent by 4\n\nChange-Id: I349273969dfd7e9d7f896f8bd6d552bd6b56ba54\n"
    },
    {
      "commit": "bf31b3301676ad86151f632e9ca186fd02445d86",
      "tree": "4cdb7c795f3fb11cc9c9c730a869e25eb2c29d01",
      "parents": [
        "b2b152afbefb2a3d67c142174da9b7d6ebf8630c",
        "2f5aa01e52b8869515373b5047f00272f245883e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 18:39:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 02 18:39:20 2015 +0000"
      },
      "message": "Merge \"Line length 100\""
    },
    {
      "commit": "ad3738ccfadc1b57428c28e91c5428939bbf19b1",
      "tree": "7daee377cbd216cb85ec1b44ea6627fc63d44d37",
      "parents": [
        "566729efce4035ac4fa09c2c106bcf6756451387",
        "675933be11f2c24f9f66011345377d2840938646"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 18:37:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 02 18:37:53 2015 +0000"
      },
      "message": "Merge \"Extract resampler coefficient tables to separate files\""
    },
    {
      "commit": "2f5aa01e52b8869515373b5047f00272f245883e",
      "tree": "b44c62dca5f9a925ce3b3d860376164597c2780f",
      "parents": [
        "e1984fc72d9f814461992b9f5b1e5f9d45ce7afa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 15:04:28 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:48 2015 -0800"
      },
      "message": "Line length 100\n\nChange-Id: Ic0ae92c300df221387bdd9669e4b7b995d83d28a\n"
    },
    {
      "commit": "675933be11f2c24f9f66011345377d2840938646",
      "tree": "c102134a72b0c8a9948cb6a6b75b431cb444af74",
      "parents": [
        "9060199701c97b290aa4a4184d147e0311ab8897"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 14:23:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 18:29:47 2015 -0800"
      },
      "message": "Extract resampler coefficient tables to separate files\n\nChange-Id: I2e186bd3172cecc08c436e6bf7546b913249e6c8\n"
    },
    {
      "commit": "566729efce4035ac4fa09c2c106bcf6756451387",
      "tree": "65a7fe79cd56ffeeb5fa8b9bb4d864de7b2093c3",
      "parents": [
        "66bcde4a112de4057f80bdef1c8955597d5cca50",
        "d7a77156eb13973f7fce5c9db6113bef83bc205b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 02:12:36 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 02:12:36 2015 +0000"
      },
      "message": "Merge \"Fix comments in resampler assembly\""
    },
    {
      "commit": "66bcde4a112de4057f80bdef1c8955597d5cca50",
      "tree": "4aa8edb37e27830497768883f6daa01ec3c2f192",
      "parents": [
        "d4bd93b22ab9f7dfa32dfc6d48e008db3ea9c634",
        "650ceb93e58435c3cb1fd1860393130121023c0d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 01:05:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 01:05:52 2015 +0000"
      },
      "message": "Merge \"Add channel index mask to AudioMixer\""
    },
    {
      "commit": "d4bd93b22ab9f7dfa32dfc6d48e008db3ea9c634",
      "tree": "6e1effbb661cd90a1c09aed0db9cc44cedaf1544",
      "parents": [
        "9060199701c97b290aa4a4184d147e0311ab8897",
        "0e48d25606c82def035ad10a5b3923767a765cdd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 28 00:38:24 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 28 00:38:25 2015 +0000"
      },
      "message": "Merge \"Change AudioTrack resampling buffers from 3 to 2\""
    },
    {
      "commit": "9060199701c97b290aa4a4184d147e0311ab8897",
      "tree": "ca4bdc0a66470f17929b4c77e43a9d1c6273d7e5",
      "parents": [
        "7841f704fee0e5acd45fa6e47a336120c3cad42c",
        "d2123e631834a887c2d8600c3ac43dda02d47cb9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 27 22:55:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 27 22:55:15 2015 +0000"
      },
      "message": "Merge \"Warmup cycles must be in range and consecutive\""
    },
    {
      "commit": "650ceb93e58435c3cb1fd1860393130121023c0d",
      "tree": "5f33a1ae10e8145bbd914014ec8ce86711811883",
      "parents": [
        "9ee53a49860e91c2b012883eef09d669a7829e06"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 29 13:31:12 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 27 12:44:13 2015 -0800"
      },
      "message": "Add channel index mask to AudioMixer\n\nChange-Id: Ifbcb61cc24111b7efab5e8d119d44dab26ba1778\n"
    },
    {
      "commit": "7841f704fee0e5acd45fa6e47a336120c3cad42c",
      "tree": "c75096dc548d0bdb9eec94663e08dc59fe287fc5",
      "parents": [
        "364b2600670e178931f0e88dbffb4f1f3dccc4ea",
        "5bedff60b2facaa1ec5b9433647ebf1504f065ca"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 26 23:39:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 26 23:39:14 2015 +0000"
      },
      "message": "Merge \"Do not pre-fill OutputTrack buffer for duplicating thread\""
    },
    {
      "commit": "364b2600670e178931f0e88dbffb4f1f3dccc4ea",
      "tree": "a9e0663ae0afba69cc1fa0cd1c55fc0be303ab8f",
      "parents": [
        "212765f2d5ee6e533f3d032d6609125faa95bf48",
        "4019a1e408c12040fc13f7bd0027def630efcc18"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 26 20:05:50 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 26 20:05:52 2015 +0000"
      },
      "message": "Merge \"Remove unused stride-by-8 resampling code\""
    },
    {
      "commit": "0fbad3c813cdd67dcab95f998f1982b2180dc322",
      "tree": "1401cfae977d096245441ce047425e80a1db1633",
      "parents": [
        "a52b8d1f4890f0a695cfbffda106579bcc3a16b5",
        "3e91b5d11866599e8f33e63fb3b6c1d81ce1a1d2"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri Feb 20 00:36:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 20 00:36:26 2015 +0000"
      },
      "message": "Merge \"Fix for getMicMute in AudioFlinger\""
    },
    {
      "commit": "3e91b5d11866599e8f33e63fb3b6c1d81ce1a1d2",
      "tree": "44923162a2e46fcd80271fb04975526081a34aac",
      "parents": [
        "ea78b1497eef36b6a3ba783be20615989e87ed08"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 10:54:52 2015 -0800"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu Feb 19 15:49:36 2015 -0800"
      },
      "message": "Fix for getMicMute in AudioFlinger\n\nPrevious logic will only check for mic state of Primary Hardware\nDevice. Current logic checks state of all devices with valid\nmicrophone input.\nThis is needed for audio_output feature support.\n\nbug: 19439530\nChange-Id: Ibbb92412ac70cf2915bbe8660c04fbaf0ab74171\n"
    },
    {
      "commit": "d2123e631834a887c2d8600c3ac43dda02d47cb9",
      "tree": "1b0fbc7dd7ffb18d7a7084f2cff34f82c61a25b2",
      "parents": [
        "ad8510a339ffab330c2c46e5c247dd1cf9e15c22"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 29 10:02:44 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:44 2015 -0800"
      },
      "message": "Warmup cycles must be in range and consecutive\n\nChange-Id: Ie8a40ec3547bdd62a1e2e05b11fb107c25841784\n"
    },
    {
      "commit": "ad8510a339ffab330c2c46e5c247dd1cf9e15c22",
      "tree": "f8643e6711ce756876c02cbb2c0ed4ed459c6187",
      "parents": [
        "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:24:07 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:41 2015 -0800"
      },
      "message": "Include what you use\n\nChange-Id: I1967861f383bb5ed6743fb69e3bd439907ed7033\n"
    },
    {
      "commit": "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0",
      "tree": "ff205682f760786e3d195f297d60207af0e40792",
      "parents": [
        "658fc18d8e632441cd5d83a4f74b53620cbac1fe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:23:03 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:39 2015 -0800"
      },
      "message": "Pull out FastCaptureDumpState and FastMixerDumpState\n\nChange-Id: I8e44dbfe02338622eb69193b234743b50f0dd79f\n"
    },
    {
      "commit": "045ee7ea3e42b8657869d81c917feed5fb0c2b4a",
      "tree": "aee4e457c5ae65d9135f5008fa239e295162fb2d",
      "parents": [
        "ea78b1497eef36b6a3ba783be20615989e87ed08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:22:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 17:19:17 2015 -0800"
      },
      "message": "Pull out FastThreadDumpState\n\nChange-Id: Ic99890bbba4f856b65535f3df0f928de9e3e9748\n"
    },
    {
      "commit": "d7a77156eb13973f7fce5c9db6113bef83bc205b",
      "tree": "a900af86d420f9514201a871e7faf481373a4186",
      "parents": [
        "4019a1e408c12040fc13f7bd0027def630efcc18"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 14:58:38 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 09 18:01:14 2015 -0800"
      },
      "message": "Fix comments in resampler assembly\n\nChange-Id: Iedbd14a2c6c73dd9631813bd2414bf11cee78c32\n"
    },
    {
      "commit": "4019a1e408c12040fc13f7bd0027def630efcc18",
      "tree": "2faae9fa56d6674a2fc283e97fc1661325c6deac",
      "parents": [
        "27a3e954a587c2cf070fdd2aae7d93d839888db9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 14:53:01 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 09 18:00:44 2015 -0800"
      },
      "message": "Remove unused stride-by-8 resampling code\n\nChange-Id: Id8b0343efd4c6fb9668524fb5fe231b05c7cf31f\n"
    },
    {
      "commit": "0e48d25606c82def035ad10a5b3923767a765cdd",
      "tree": "2811d0042ca0c670bb6fb9cffa83b82de33f8ff8",
      "parents": [
        "c42ab4fcd42875ef74f8e9b8d8150f7bcfd0cd3b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 26 11:43:15 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 06 11:51:26 2015 -0800"
      },
      "message": "Change AudioTrack resampling buffers from 3 to 2\n\nMove computation of minimum AudioTrack buffer size to server\nfor normal streaming PCM tracks.\n\nUse server-side computation to exactly determine requirements\nfor the resampler to avoid triple buffering.\n\nThis reduces latency for normal audio tracks that require resampling,\nand makes things consistent with the minimum buffer size.\n\nChange-Id: I2f2ca0e599ee20e16559bc5c5dab61ed100da16c\n"
    },
    {
      "commit": "5bedff60b2facaa1ec5b9433647ebf1504f065ca",
      "tree": "d9d22703626906b38ee1f5c571f21f49ce447199",
      "parents": [
        "7790a33241f773d8a99c6f27d3bde36da08d6238"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 16 11:05:32 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 22 13:48:03 2015 -0800"
      },
      "message": "Do not pre-fill OutputTrack buffer for duplicating thread\n\nIt is not necessary to start the downstream MixerThread early,\nrather allow stop() to flush the remaining frames.\n\nChange-Id: Ibcf8e7f5eda09d0f915d50697ff0c24c32fd11c4\n"
    },
    {
      "commit": "dce27d0ebab31e82543bb777ed3eb04955cd18ff",
      "tree": "f3dcc003f0c96b18d74c46547c10ef819e083b07",
      "parents": [
        "2d2bd6af573383bced45e2f610e11193e28fdcdb",
        "fbfc3959f4aac839445edc7075532067fef497c2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Jan 17 01:36:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 17 01:36:52 2015 +0000"
      },
      "message": "Merge \"Update duplicating thread to use float audio\""
    },
    {
      "commit": "2d2bd6af573383bced45e2f610e11193e28fdcdb",
      "tree": "9adcafb234c0c027683f08538322e0fa0fa601aa",
      "parents": [
        "50870c983127f2c9e0a3c04a46ea7c24ad2271cf",
        "c25b84abdd7ff229d0af663fbf3a37bd9512939d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 16 21:17:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 16 21:17:12 2015 +0000"
      },
      "message": "Merge \"Allow duplicating thread to use native mixing audio format\""
    },
    {
      "commit": "fbfc3959f4aac839445edc7075532067fef497c2",
      "tree": "75c11d45346280301eb7206d7189881c523fddf3",
      "parents": [
        "c25b84abdd7ff229d0af663fbf3a37bd9512939d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 13:33:51 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 18:18:27 2015 -0800"
      },
      "message": "Update duplicating thread to use float audio\n\nPreviously device format was used, typically pcm 16 bit.\n\nChange-Id: I70a8b594820e948a2caa299194807ec17348b0e9\n"
    },
    {
      "commit": "c25b84abdd7ff229d0af663fbf3a37bd9512939d",
      "tree": "f6b95e15432dfac6410a1c61bd34e1f8aacdbb3e",
      "parents": [
        "abdb990953ffe94a9dc544aea0bed17ef7d5f484"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 14 19:04:10 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 16:57:42 2015 -0800"
      },
      "message": "Allow duplicating thread to use native mixing audio format\n\nUpdate OutputTrack to take variable formats.\nPreviously conversion to AUDIO_FORMAT_PCM_16_BIT was required.\n\nChange-Id: I4a96a60ddd8d8dfe651405a0bcd4f98c89bc1ade\n"
    },
    {
      "commit": "dda683a2ccb84ccc840b76e2ced10052f65ce43e",
      "tree": "dcea45fba84635e924e42c60c710ae2b8789c9d2",
      "parents": [
        "d488982887e24f4a8e61f68d945a2f113f43579e",
        "abdb990953ffe94a9dc544aea0bed17ef7d5f484"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 15 22:56:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 15 22:56:03 2015 +0000"
      },
      "message": "Merge \"Allow AUDIO_FORMAT_PCM_8_BIT AudioTrack buffers\""
    },
    {
      "commit": "abdb990953ffe94a9dc544aea0bed17ef7d5f484",
      "tree": "a5cba46c6820b02771d0759bdb1ef6b6d6292356",
      "parents": [
        "2d85f097d653b21d1ff2c34f0b732c674d20ccc2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jan 12 15:08:22 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 14 13:11:38 2015 -0800"
      },
      "message": "Allow AUDIO_FORMAT_PCM_8_BIT AudioTrack buffers\n\nPreviously conversion to AUDIO_FORMAT_PCM_16_BIT was required.\nClient shared memory for static tracks and AudioFlinger track creation\nand buffer delivery now use native 8 bit PCM data.\n\nChange-Id: I485c07a4971fde9a25442bd43fed95019d39abcc\n"
    },
    {
      "commit": "36d560b1f1146da34016744bb7a72b2f4f348c9d",
      "tree": "4a6a6ff797c152731c35426af06feb8e47f0170a",
      "parents": [
        "e6910780274fb818f1432d10672af4b813c2bc59",
        "27a78b56e1cf9814971192883cb7d15c186465f7"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 20:37:49 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 20:37:49 2015 +0000"
      },
      "message": "am 27a78b56: am 78c02ddb: am cfa5bf04: Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev\n\n* commit \u002727a78b56e1cf9814971192883cb7d15c186465f7\u0027:\n  make libserviceutility a shared lib\n  audio policy: fix remote mic capture\n  audio policy: suppport for dynamic source\n  Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions\n  Fix race condition in signaling completion for decode.\n  AnotherPacketSource: need reset some members before returning from queueDiscontinuity().\n  Fix looping sound playback\n  AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted from seek.\n"
    },
    {
      "commit": "27a78b56e1cf9814971192883cb7d15c186465f7",
      "tree": "78d22ab6884bade675def21c48c251c9a9a15bc0",
      "parents": [
        "69158e3e7b565a5ca131a2efaa9b76615ca80cbb",
        "78c02ddb6bf0d676160244a62c11dceb68301b73"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "message": "am 78c02ddb: am cfa5bf04: Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev\n\n* commit \u002778c02ddb6bf0d676160244a62c11dceb68301b73\u0027:\n  make libserviceutility a shared lib\n  audio policy: fix remote mic capture\n  audio policy: suppport for dynamic source\n  Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions\n  Fix race condition in signaling completion for decode.\n  AnotherPacketSource: need reset some members before returning from queueDiscontinuity().\n  Fix looping sound playback\n  AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted from seek.\n"
    },
    {
      "commit": "cfa5bf04ff250a14b11a75bcfa35ee2d6dbab4e9",
      "tree": "b985df2fc3985bfe5589cb6955ed3369d7d9feef",
      "parents": [
        "610255e8f2d02cb3513695eacf1c37d66b3553d6",
        "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:19:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 19:19:33 2015 +0000"
      },
      "message": "Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev"
    },
    {
      "commit": "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a",
      "tree": "e586c65974e885af85d209c811acb3d3cd592736",
      "parents": [
        "71d13d4c94cea2113d074cf0d0c6e07ad68ff3ec"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:42:33 2015 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:50:09 2015 -0800"
      },
      "message": "make libserviceutility a shared lib\n\nso that we have only one getpid_cached in mediaserver process\n\nbug: 18919657\n\nChange-Id: Iff3cd932c9110e874b3885f79705f49bf3e3f1fc\n"
    },
    {
      "commit": "81879df8dc51df4d8a3880349e9e1e6b5e3cebfb",
      "tree": "920af202ad4576e997a540bfc98479aa97b2a0e2",
      "parents": [
        "197f84845ccea9319a1589b85edeb2dcf56b81b3",
        "69158e3e7b565a5ca131a2efaa9b76615ca80cbb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 16:02:57 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 16:02:57 2015 +0000"
      },
      "message": "am 69158e3e: am 6ab33981: am 610255e8: Merge \"audioflinger: pause HW A/V sync output when AudioTrack underruns\" into lmp-mr1-dev\n\n* commit \u002769158e3e7b565a5ca131a2efaa9b76615ca80cbb\u0027:\n  audioflinger: pause HW A/V sync output when AudioTrack underruns\n"
    },
    {
      "commit": "69158e3e7b565a5ca131a2efaa9b76615ca80cbb",
      "tree": "4dfbea14cb9503808fab3f532c1335d457142e40",
      "parents": [
        "644afb88421ac0e71d526f9b6726404a90c7cccd",
        "6ab33981d45cd69e683a143fec6530e66bd3e371"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 15:57:49 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 15:57:49 2015 +0000"
      },
      "message": "am 6ab33981: am 610255e8: Merge \"audioflinger: pause HW A/V sync output when AudioTrack underruns\" into lmp-mr1-dev\n\n* commit \u00276ab33981d45cd69e683a143fec6530e66bd3e371\u0027:\n  audioflinger: pause HW A/V sync output when AudioTrack underruns\n"
    },
    {
      "commit": "610255e8f2d02cb3513695eacf1c37d66b3553d6",
      "tree": "de334953c45a0c9f692a83d3ac97b33cd6ffae1d",
      "parents": [
        "8140a2b7ef0650e8cce6be16efcbfce56d0ed1e4",
        "0f7b5f2b231caf87da9b20b74d086e5a9d6f4a9d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 15:47:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 15:47:54 2015 +0000"
      },
      "message": "Merge \"audioflinger: pause HW A/V sync output when AudioTrack underruns\" into lmp-mr1-dev"
    },
    {
      "commit": "e443ffac2a09b69470c4663ee031a527c53738d9",
      "tree": "7db596e90207472c7ff018f4778d16de8c806e62",
      "parents": [
        "0d19abb440c7e62e944efbeadf02299990f9a589"
      ],
      "author": {
        "name": "soon1.choi",
        "email": "soon1.choi@lge.com",
        "time": "Mon Jan 05 14:27:42 2015 +0900"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 05 15:34:15 2015 -0800"
      },
      "message": "DO NOT MERGE - fix memory leak in PatchPanel\n\nBefore the audio patch is created, audio patch with same handle is\nremoved from vector for patches. At this time, Patch allocated in the\nheap is not freed. This causes memory leaks in the mediaserver.\n\nBug: 18904322.\n\nChange-Id: Id0d28c36a7e7fbf473753bf4ead7518f28c1b998\n"
    },
    {
      "commit": "5111fe3ea0a5ba4fd0735535ae7e08a0c563353d",
      "tree": "114803ffbd0fdc0e959caeced2ec04d96992829d",
      "parents": [
        "7d0fe65b0aa437d62c56653856a7cc79ee373a53",
        "645b0192ad5d9b46b06aa06ac5670a8390d35f6f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 05 20:08:24 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 05 20:08:24 2015 +0000"
      },
      "message": "am 645b0192: am 76758100: am 43637c2e: Merge \"fix memory leak in PatchPanel\"\n\n* commit \u0027645b0192ad5d9b46b06aa06ac5670a8390d35f6f\u0027:\n  fix memory leak in PatchPanel\n"
    },
    {
      "commit": "645b0192ad5d9b46b06aa06ac5670a8390d35f6f",
      "tree": "29e8dae955b11910d44929c18d50ac9e1d56175a",
      "parents": [
        "51281663443ea39db9b4c6e2415343e26a6b3fb8",
        "76758100c85622c178355959e454651310ea0011"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 05 20:02:56 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 05 20:02:56 2015 +0000"
      },
      "message": "am 76758100: am 43637c2e: Merge \"fix memory leak in PatchPanel\"\n\n* commit \u002776758100c85622c178355959e454651310ea0011\u0027:\n  fix memory leak in PatchPanel\n"
    },
    {
      "commit": "d8cd47792bac11a44096ef8233bb5268a6674bec",
      "tree": "a297a02667e5b2dbed97c6aa03afda3c33aaab1b",
      "parents": [
        "bd08223c450a7a2e8e8d79e6be148ed1ac64caa3"
      ],
      "author": {
        "name": "soon1.choi",
        "email": "soon1.choi@lge.com",
        "time": "Mon Jan 05 14:27:42 2015 +0900"
      },
      "committer": {
        "name": "Soon-won Choi",
        "email": "soon1.choi@lge.com",
        "time": "Mon Jan 05 07:57:42 2015 +0000"
      },
      "message": "fix memory leak in PatchPanel\n\nBefore the audio patch is created, audio patch with same handle is\nremoved from vector for patches. At this time, Patch allocated in the\nheap is not freed. This causes memory leaks in the mediaserver.\n\nChange-Id: Id0d28c36a7e7fbf473753bf4ead7518f28c1b998"
    },
    {
      "commit": "b187de1ada34a9023c05d020a4592686ba761278",
      "tree": "31dea84d078f6198ce17ca856fcbb76c402f37b6",
      "parents": [
        "64cbdee08a18b25448a5fb0b058d3b83d5630d7f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 30 08:18:15 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 30 08:18:15 2014 -0800"
      },
      "message": "Line length 100\n\nChange-Id: I6c8fe626a3825fa9e139319656d682a57b887c97\n"
    },
    {
      "commit": "0f7b5f2b231caf87da9b20b74d086e5a9d6f4a9d",
      "tree": "f6f15345f054cdc13116a1443b80454e256b7c71",
      "parents": [
        "e48cf5b8f823c30af93577c1e380d752ac69b871"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 10:43:21 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 16:41:52 2014 -0800"
      },
      "message": "audioflinger: pause HW A/V sync output when AudioTrack underruns\n\nDo not standby, starve or feed 0s to the audio HAL on direct\noutput using HW A/V sync mode.\n\nBug: 17883772.\n\nChange-Id: I11e6c97ec24360d75f9b602814d40a54b60cb7a7\n"
    },
    {
      "commit": "23c8dc13787186dc98731055858b2fba3aedc105",
      "tree": "08ed5ebd4244095641a3d7494e9dab6b6d471eb5",
      "parents": [
        "c30943f7485fa84a32e7d070234b3def692d9d16",
        "85aca658ac7d20584b0647427256df50a5f243ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 17 18:08:04 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 18:08:04 2014 +0000"
      },
      "message": "am 85aca658: am d33712d7: am 145cf5d8: Merge \"audioflinger: implement pause/resume for direct outputs\" into lmp-mr1-dev\n\n* commit \u002785aca658ac7d20584b0647427256df50a5f243ef\u0027:\n  audioflinger: implement pause/resume for direct outputs\n"
    },
    {
      "commit": "85aca658ac7d20584b0647427256df50a5f243ef",
      "tree": "0a368cd14a99953de3943fa6f43334a8aea9f19f",
      "parents": [
        "22dfb93254de370d401706728aba1f032ef1b172",
        "d33712d7ec5dcf427cc0be9b7d2ca1c99823c8e6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 17 18:04:15 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 18:04:15 2014 +0000"
      },
      "message": "am d33712d7: am 145cf5d8: Merge \"audioflinger: implement pause/resume for direct outputs\" into lmp-mr1-dev\n\n* commit \u0027d33712d7ec5dcf427cc0be9b7d2ca1c99823c8e6\u0027:\n  audioflinger: implement pause/resume for direct outputs\n"
    },
    {
      "commit": "145cf5d885c238b690ab8240137934327b85c427",
      "tree": "f9e3e2f23e92f7ba7c98f0f09a9a4cfb6b40cd47",
      "parents": [
        "71b52b5bb3be81bffa320241ca486fbf964d743e",
        "d1f69b0b17acbd96987ecb2f3378abd394d05903"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 17 17:55:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 17:55:26 2014 +0000"
      },
      "message": "Merge \"audioflinger: implement pause/resume for direct outputs\" into lmp-mr1-dev"
    },
    {
      "commit": "a268a817fb9df2a266f06b58680fa4168517c8cd",
      "tree": "0a2d597a6d69559f7e81fcb3838d94b9a44238a2",
      "parents": [
        "a73d8dba2785771302dde66c369dc6cbae3b170b",
        "93118cd96233b682be95a3eb114d88d69c8cc416"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:49:57 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:49:57 2014 +0000"
      },
      "message": "am 93118cd9: am 99429b40: am 277c7b8c: Merge \"Fix permission check for audio recording\" into lmp-mr1-dev\n\n* commit \u002793118cd96233b682be95a3eb114d88d69c8cc416\u0027:\n  Fix permission check for audio recording\n"
    },
    {
      "commit": "93118cd96233b682be95a3eb114d88d69c8cc416",
      "tree": "64f81b51b6071954122e612e860d2ed106e48a93",
      "parents": [
        "3af7b7291bcd9b1b30dd11a8bedbdc63cc74b5a9",
        "99429b40411790b85e19c57392bbd292a237c470"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "message": "am 99429b40: am 277c7b8c: Merge \"Fix permission check for audio recording\" into lmp-mr1-dev\n\n* commit \u002799429b40411790b85e19c57392bbd292a237c470\u0027:\n  Fix permission check for audio recording\n"
    },
    {
      "commit": "97bb33f58d742539f3382583d7978fca71ffa2d5",
      "tree": "be3e26027b66bfc605a45af032fb91de1bdb7c7a",
      "parents": [
        "6e430fbd927b9cc043639eb728ddc921392a60e8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 12 16:23:43 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Dec 15 18:13:39 2014 -0800"
      },
      "message": "Fix permission check for audio recording\n\nDefine input types covering the different usecases for audio\n  recording, and check the corresponding permissions when\n  starting to record.\nMove the permission check from audio flinger to audio policy,\n  as only the policy has the information to determine which\n  permission to enforce.\nFix missing permission when an application records audio\n  and the audio is injected by an external policy.\n\nBug 18736417\n\nChange-Id: If7ec040502242c990ac8ea464db484339bdce573\n"
    },
    {
      "commit": "d1f69b0b17acbd96987ecb2f3378abd394d05903",
      "tree": "e3061c609dfaa2c217bb79a8d85e4571e8bd0d3d",
      "parents": [
        "8ddb02230d02968d471aa41b22433957c38827c0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 15 14:33:13 2014 -0800"
      },
      "committer": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Tue Dec 16 01:38:34 2014 +0000"
      },
      "message": "audioflinger: implement pause/resume for direct outputs\n\nExtend pause/resume support to direct output threads\n(was only for offload threads).\n\nIf the HAL implements pause/resume, track pause/resume is forwarded to\nthe HAL.\n\nPause, flush, resume sequence is respected by executing the HAL\ncalls in the playback thread (same as offload).\n\nMake sure the track flags on client side are consistent with the\nflags on server side.\n\nBug: 17883772.\nChange-Id: I89b360d69818f7a9204bd36e3ec63a79e106ecf1\n"
    },
    {
      "commit": "105e6e0c38947e97f9e199d9f07f9be64ae3cfe1",
      "tree": "09df304495199fc253b97d1db9ba5acc809e4fb1",
      "parents": [
        "2590fc421ccf5e8199d511ff3022b428ee9122e9",
        "7b2b26750fb0a567f2d1b7a3547ae877d336e405"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Dec 12 01:08:20 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 12 01:08:20 2014 +0000"
      },
      "message": "am 7b2b2675: am 67c93ad7: am f1b12df3: Merge \"Trigger error only when a template is instantiated.\"\n\n* commit \u00277b2b26750fb0a567f2d1b7a3547ae877d336e405\u0027:\n  Trigger error only when a template is instantiated.\n"
    },
    {
      "commit": "7b2b26750fb0a567f2d1b7a3547ae877d336e405",
      "tree": "3a17783e9f464311eb3167cd33e62666ab9d4963",
      "parents": [
        "3e08ca6709b5a75dc3b779cf3eba8196b08a0245",
        "67c93ad704d4418445c6d9693420f1cbaad98b0a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Dec 12 01:01:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 12 01:01:25 2014 +0000"
      },
      "message": "am 67c93ad7: am f1b12df3: Merge \"Trigger error only when a template is instantiated.\"\n\n* commit \u002767c93ad704d4418445c6d9693420f1cbaad98b0a\u0027:\n  Trigger error only when a template is instantiated.\n"
    },
    {
      "commit": "650254065e7c6b5abab5e3d154f720753fe1e1cf",
      "tree": "0fe73082f6e245eed99adffa2ba03e160f901675",
      "parents": [
        "a04c05ab9c0cdca30952a687f9f5bd909c28b86a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 11 13:06:46 2014 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Thu Dec 11 15:43:04 2014 -0800"
      },
      "message": "Trigger error only when a template is instantiated.\n\nClang compiler will check defintions and trigger undefined template\nerror of \u0027android::CompileTimeAssert\u003cfalse\u003e\u0027 even when MixMul is not\ninstantiated. Avoid such parse time error but trigger link error when the\ngeneric MixMul template is used.\n\nChange-Id: I84ef60a69fbfbeefc93b5654e4bdd54f9d530867\n"
    },
    {
      "commit": "65575de268f4c0d75e6c1172469001ace765fc14",
      "tree": "fe1df7262459e2a7a1b86e60389cbec35a62b698",
      "parents": [
        "9ae34ec4f2a78d98643cf8428cd8eafdc48e6245",
        "2592184c976ef83aa9fdad7d63bfdb408c95aa7d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 11 16:21:43 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 11 16:21:43 2014 +0000"
      },
      "message": "am 2592184c: am 6baa8fe7: am 94a92c69: Merge \"[audio][audioflinger] Consume all frames when a DirectThread is done.\" into lmp-mr1-dev\n\n* commit \u00272592184c976ef83aa9fdad7d63bfdb408c95aa7d\u0027:\n  [audio][audioflinger] Consume all frames when a DirectThread is done.\n"
    },
    {
      "commit": "2592184c976ef83aa9fdad7d63bfdb408c95aa7d",
      "tree": "044c942ccc4dbe4b51dbc3312af4dc22923650b9",
      "parents": [
        "b6ac4d49e468e155aa1591f3c400e1c06442e7b1",
        "6baa8fe747621b7121ff18dcdfab15d99c349c15"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 11 16:11:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 11 16:11:49 2014 +0000"
      },
      "message": "am 6baa8fe7: am 94a92c69: Merge \"[audio][audioflinger] Consume all frames when a DirectThread is done.\" into lmp-mr1-dev\n\n* commit \u00276baa8fe747621b7121ff18dcdfab15d99c349c15\u0027:\n  [audio][audioflinger] Consume all frames when a DirectThread is done.\n"
    },
    {
      "commit": "94a92c69af528edf6ec17d7978a0c3bb6ab51e63",
      "tree": "409f45229ea21089bdfb2aadd131288383581b07",
      "parents": [
        "f484952edd94c1b7ee82d7b108edc1ce08671cc4",
        "99adee3c3d9cde6819741a38163954808fea270a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Dec 11 01:59:39 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 11 01:59:40 2014 +0000"
      },
      "message": "Merge \"[audio][audioflinger] Consume all frames when a DirectThread is done.\" into lmp-mr1-dev"
    },
    {
      "commit": "99adee3c3d9cde6819741a38163954808fea270a",
      "tree": "b877a4a43bd36864d8109a42ecdc6b337e6838d1",
      "parents": [
        "9257000c453c1a6f6bf073ff0bf3ba7ef9baf183"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 10 16:46:30 2014 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Dec 10 17:00:18 2014 -0800"
      },
      "message": "[audio][audioflinger] Consume all frames when a DirectThread is done.\n\nThis bug was causing movies to think there was still data left to play so they never finished.\n\nBug: 18360054\nChange-Id: If7aee81d62b7af8532abd14579677848a06fe2b1\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "b67eb5856203e9869aa1e5b5a13c1eff62790335",
      "tree": "7206b055805ef953e85b9157f6472e8f97c7584f",
      "parents": [
        "e62e2637458931d20623b76d0080a56c2f316334",
        "b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 10 22:23:26 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 10 22:23:26 2014 +0000"
      },
      "message": "am b279f5ad: am c49d9cda: am 2dda40d6: Merge \"audio policy: add support for custom mixes\" into lmp-mr1-dev\n\n* commit \u0027b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2\u0027:\n  audio policy: add support for custom mixes\n"
    },
    {
      "commit": "b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2",
      "tree": "3e53a23fbf31379eab4d76b68af9f6b20b4c7e0c",
      "parents": [
        "a2bc118cfe860f9c108ba089b021d3b003185c56",
        "c49d9cda49dab8b7dd0376cf56476b3e1895d5c6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 10 21:55:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 10 21:55:52 2014 +0000"
      },
      "message": "am c49d9cda: am 2dda40d6: Merge \"audio policy: add support for custom mixes\" into lmp-mr1-dev\n\n* commit \u0027c49d9cda49dab8b7dd0376cf56476b3e1895d5c6\u0027:\n  audio policy: add support for custom mixes\n"
    },
    {
      "commit": "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c",
      "tree": "c22e1c0b8541aa04fd6c8d803e4fa6704a84e6e2",
      "parents": [
        "82a69ea8b090d57bff5e02774688b546a711bbb8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Nov 30 15:14:47 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 09 15:47:19 2014 -0800"
      },
      "message": "audio policy: add support for custom mixes\n\nAdd support for custom mixes in AudioPolicyManager.\n\nTwo methods are added to register or unregister a list of custom mixes\nwith their attributes and format.\n\ngetOutputForAttr() and getInputForAttr() first look for a match in\nregistered mixes before defaulting to normal output/input selection\n\nRemote submix device connection disconnection now takes address into\naccount to identify the correspnoding custom mix.\n\nBug: 16009464.\n\nChange-Id: I3f1c2a485a0fb71b1f984ed0adc9b68aa971e408\n"
    },
    {
      "commit": "f849e1984ae639112e125a91e27098cf0ebc68c1",
      "tree": "4eea9fd5416a58567491624048663ae5263fc2da",
      "parents": [
        "5a246de63468f2da0e6e6250a001da0dcefded4e",
        "900f6535af232298e4a77477907a40f68e8dc61b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 09 00:57:40 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 09 00:57:40 2014 +0000"
      },
      "message": "am 900f6535: am 561f50de: am db995fe3: Merge \"Fix getTimestamp if offload thread is not initialized.\" into lmp-mr1-dev\n\n* commit \u0027900f6535af232298e4a77477907a40f68e8dc61b\u0027:\n  Fix getTimestamp if offload thread is not initialized.\n"
    },
    {
      "commit": "900f6535af232298e4a77477907a40f68e8dc61b",
      "tree": "73e79999d2cd094243eecc48eaf18e1809072aa1",
      "parents": [
        "4eb26aa2b549aef5a2e0863a95a5cd2c1138cd7b",
        "561f50de82ce47f11ba8d4f25db1ca1d8467b2a7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 08 19:13:54 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 08 19:13:54 2014 +0000"
      },
      "message": "am 561f50de: am db995fe3: Merge \"Fix getTimestamp if offload thread is not initialized.\" into lmp-mr1-dev\n\n* commit \u0027561f50de82ce47f11ba8d4f25db1ca1d8467b2a7\u0027:\n  Fix getTimestamp if offload thread is not initialized.\n"
    },
    {
      "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": "1e8368d19f792ff4150a88dd6afbac7d54878ea1",
      "tree": "60d7dd1da848335538ef7b441be2dfe17c129c50",
      "parents": [
        "fb112452f4afab4ceca413b1e63d10b7b3790ffe",
        "0ed7138903a85526a85d0cea8ff51b56d5aac236"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 03 02:56:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 03 02:56:39 2014 +0000"
      },
      "message": "am 0ed71389: am eb05bacc: am b0eb7b0a: Merge \"__ARM_HAVE_HALFWORD_MULTIPLY is always true for __arm__.\"\n\n* commit \u00270ed7138903a85526a85d0cea8ff51b56d5aac236\u0027:\n  __ARM_HAVE_HALFWORD_MULTIPLY is always true for __arm__.\n"
    },
    {
      "commit": "0ed7138903a85526a85d0cea8ff51b56d5aac236",
      "tree": "48e8ce7555314cf7ce8d4338474f3fe30d8cad60",
      "parents": [
        "aef46aa8eff1f975ae5253a334cf0c978427ca86",
        "eb05baccea81f125d042be33c36dcf1893d903d9"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Dec 03 02:47:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 03 02:47:50 2014 +0000"
      },
      "message": "am eb05bacc: am b0eb7b0a: Merge \"__ARM_HAVE_HALFWORD_MULTIPLY is always true for __arm__.\"\n\n* commit \u0027eb05baccea81f125d042be33c36dcf1893d903d9\u0027:\n  __ARM_HAVE_HALFWORD_MULTIPLY is always true for __arm__.\n"
    },
    {
      "commit": "8a9737ce64a53f06a2c1774b4ea025897c63bff1",
      "tree": "e77852bd6eda3e2f9c2d6345d1a08344e3c4f58e",
      "parents": [
        "5458756afe20079055d65d9545399288b9298055"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 02 16:59:38 2014 -0800"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Dec 02 16:59:38 2014 -0800"
      },
      "message": "__ARM_HAVE_HALFWORD_MULTIPLY is always true for __arm__.\n\nAnd this is the only user of that macro...\n\nBug: 18556103\nChange-Id: I1b515a54ac8530b150f4dd93070db60c701a5603\n"
    },
    {
      "commit": "3458bb2356e711419487056fe1dd474e100466a3",
      "tree": "1373847b3427ae0d27b5a178e4bcf3ad43e5970e",
      "parents": [
        "127d79425e668077baf1edbbfe80b344f522b7a6",
        "121143d5242a790d0bd01fe1b9cec5d28a1ba1d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 19:57:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 19:57:31 2014 +0000"
      },
      "message": "am 121143d5: am bf14c62e: am 72bf901c: Merge \"audio policy: new getOutputForAttr() prototype.\" into lmp-mr1-dev\n\n* commit \u0027121143d5242a790d0bd01fe1b9cec5d28a1ba1d7\u0027:\n  audio policy: new getOutputForAttr() prototype.\n"
    },
    {
      "commit": "121143d5242a790d0bd01fe1b9cec5d28a1ba1d7",
      "tree": "ede3e199b33b12c6c5767f2bd566e4664905bada",
      "parents": [
        "0e47b16ffcf78acb81b0ebf14d058db191f74af0",
        "bf14c62e7973ed793a3b00c2c67beca4484c1c7a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 18:41:26 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 18:41:26 2014 +0000"
      },
      "message": "am bf14c62e: am 72bf901c: Merge \"audio policy: new getOutputForAttr() prototype.\" into lmp-mr1-dev\n\n* commit \u0027bf14c62e7973ed793a3b00c2c67beca4484c1c7a\u0027:\n  audio policy: new getOutputForAttr() prototype.\n"
    },
    {
      "commit": "3a3e87005fdfbfe4564605220a044b8023d0f539",
      "tree": "657e4b6b3ca4d8d7030333975203c91a895b30dd",
      "parents": [
        "5ecbdf58b0674ac4a8b9d56b49ebeb1033e5bd27",
        "72215491c60fbcdb9a2f0be782e24e39cca249c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 12:10:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:10:00 2014 +0000"
      },
      "message": "am 72215491: am 1a475921: am 223fd5c9: audio: new routing strategies and stream types\n\n* commit \u002772215491c60fbcdb9a2f0be782e24e39cca249c5\u0027:\n  audio: new routing strategies and stream types\n"
    },
    {
      "commit": "72215491c60fbcdb9a2f0be782e24e39cca249c5",
      "tree": "ac366bd0aad25d9575b19f77a75f23518a8810e8",
      "parents": [
        "fd2711ca8c9108d25f18b48b924afd925f41344a",
        "1a475921c0577a4650d1bbe40a85b732d1766939"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 12:01:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:01:49 2014 +0000"
      },
      "message": "am 1a475921: am 223fd5c9: audio: new routing strategies and stream types\n\n* commit \u00271a475921c0577a4650d1bbe40a85b732d1766939\u0027:\n  audio: new routing strategies and stream types\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": "994242df089e1abbd7d1d21d8183b4ad32710948",
      "tree": "f1d9f618e7bd1aab810cdcabb093356d48a8cea3",
      "parents": [
        "8518168a1bdb81e56f4324a72224a724337a5844",
        "c63c09738772133e9b20a7c8576ad116ff855ee2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 21 02:57:55 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 21 02:57:55 2014 +0000"
      },
      "message": "am c63c0973: am f50db74f: Merge \"Fix format conversion in DuplicatingThread\" into lmp-mr1-dev automerge: d48f1b6\n\n* commit \u0027c63c09738772133e9b20a7c8576ad116ff855ee2\u0027:\n  Fix format conversion in DuplicatingThread\n"
    },
    {
      "commit": "c63c09738772133e9b20a7c8576ad116ff855ee2",
      "tree": "2ab99e4bc77c0dd3e7b01f5679b43d5a6d808f76",
      "parents": [
        "f108dc85443936ca219567cc3a8556daa4a20fb3",
        "d48f1b68b2b824ffcfdbf6aa67ad4696020a8a11"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 21 02:45:58 2014 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 21 02:45:58 2014 +0000"
      },
      "message": "am f50db74f: Merge \"Fix format conversion in DuplicatingThread\" into lmp-mr1-dev\nautomerge: d48f1b6\n\n* commit \u0027d48f1b68b2b824ffcfdbf6aa67ad4696020a8a11\u0027:\n  Fix format conversion in DuplicatingThread\n"
    },
    {
      "commit": "3dd2eb810af471df146cb16a680b1b0ca7364be5",
      "tree": "2ab99e4bc77c0dd3e7b01f5679b43d5a6d808f76",
      "parents": [
        "30e0138abb68adb246e610ac5e7d8c5807dacc4a",
        "d48f1b68b2b824ffcfdbf6aa67ad4696020a8a11"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 21 02:43:17 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 21 02:43:17 2014 +0000"
      },
      "message": "am d48f1b68: am f50db74f: Merge \"Fix format conversion in DuplicatingThread\" into lmp-mr1-dev\n\n* commit \u0027d48f1b68b2b824ffcfdbf6aa67ad4696020a8a11\u0027:\n  Fix format conversion in DuplicatingThread\n"
    },
    {
      "commit": "8eeda89ae361ccd048d7bba0fd11291e05577e2a",
      "tree": "d0d3caa349992dcf13355e512ba4e1da28d63f66",
      "parents": [
        "fb4dac55d0d3943e09680e779ba77310eedf011b",
        "d0e12a161471823d1ab269cb608be3f3b0a71ed1"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Nov 20 23:51:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 20 23:51:29 2014 +0000"
      },
      "message": "am d0e12a16: am 902dc42d: am 07715ac3: Merge \"C++11 compatibility.\"\n\n* commit \u0027d0e12a161471823d1ab269cb608be3f3b0a71ed1\u0027:\n  C++11 compatibility.\n"
    },
    {
      "commit": "d0e12a161471823d1ab269cb608be3f3b0a71ed1",
      "tree": "f9a2f2ea19f528495278c1b651db5d75c8306869",
      "parents": [
        "75cfc881e25a9d7647701526484b5885dc43c574",
        "902dc42d79b075395d484ce1c71f215b199aaa2a"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Nov 20 23:47:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 20 23:47:28 2014 +0000"
      },
      "message": "am 902dc42d: am 07715ac3: Merge \"C++11 compatibility.\"\n\n* commit \u0027902dc42d79b075395d484ce1c71f215b199aaa2a\u0027:\n  C++11 compatibility.\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": "36802bd18b7b4e8c87fa019c7e3068bee330d174",
      "tree": "a5c4847a10d5f77a04b9a621174a774d84cb7c31",
      "parents": [
        "de14fae779240a99c53d58ef16ce3086321ff897"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Nov 20 11:31:17 2014 -0800"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu Nov 20 11:34:32 2014 -0800"
      },
      "message": "C++11 compatibility.\n\n * Fix string literal concatenation to not be interpreted as UD\n   literals.\n * Add constexpr compatibility for non-integral static members.\n * Use __typeof__ instead of typeof (should become decltype once this\n   actually becomes C++11).\n * Add an appropriate cast for atomic_uintptr_t, since moving to C++11\n   means moving from \u003cstdatomic.h\u003e to \u003catomic\u003e, which has better\n   typechecking (hooray for not macros!).\n\nBug: 18466763\nChange-Id: I9561dcb2526578687819ff85421ba80d8e1a9694\n"
    },
    {
      "commit": "05743d8f8d3a7b7a669e7ee358dc3bf133c7d8c5",
      "tree": "8b01b90ff8f1274d8ea78e396a23626de5683ac2",
      "parents": [
        "10421a88201503235fe87f4daa057af5ed815f71",
        "7f47549516ae5938759b5c834c8423378a60b3d8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 19 05:18:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 19 05:18:36 2014 +0000"
      },
      "message": "Merge \"Fix AudioMixer floating interaction with downmixer\""
    }
  ],
  "next": "10421a88201503235fe87f4daa057af5ed815f71"
}
