)]}'
{
  "log": [
    {
      "commit": "d8484dd4cf124854e7ff950da4300887f32fd05b",
      "tree": "d73f7050caa36e2f8837f700472dc05cb93ec286",
      "parents": [
        "f2776a5692bb4228decbe4ea3c8cc6df1d9c684c",
        "993fa0603707e94ce259e95e56838a85b5ccbdc5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 05 17:57:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 05 17:57:58 2014 +0000"
      },
      "message": "Merge \"Use audio_is_linear_pcm()\""
    },
    {
      "commit": "c4b88a8d0f524666bf0f390075c334d047a104f2",
      "tree": "a2d45172a9d794b8b626ed9acadb656e346b2e9c",
      "parents": [
        "b53fc4ef8da47df8d5f580e8ee6135866ffebc33"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 30 16:54:30 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 11:52:56 2014 -0700"
      },
      "message": "Fix bug for direct track with PCM !\u003d 16-bit\n\nThe AUDIO_FORMAT_PCM_8_BIT format was being converted to\nAUDIO_FORMAT_PCM_16_BIT on client side even for direct tracks.\nThat conversion was incorrect; it should only be done for mixed tracks.\n\nAlso remove checks for specific PCM formats in the generic part of\nserver side of createTrack.  Those format checks should only be done by\nthe thread.  This will allow direct tracks for PCM 8-bit, PCM 24-bit, etc.\n\nChange-Id: If5b9fd79f8642ed93e2aeabcaf4809b2ed798978\n"
    },
    {
      "commit": "993fa0603707e94ce259e95e56838a85b5ccbdc5",
      "tree": "df2318b3af52103e1cfaa577857759560b1df802",
      "parents": [
        "b53fc4ef8da47df8d5f580e8ee6135866ffebc33"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 11:14:34 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 11:17:21 2014 -0700"
      },
      "message": "Use audio_is_linear_pcm()\n\nChange-Id: I17b30fdb6dbb6454ad0a20dd703fd603a37a8397\n"
    },
    {
      "commit": "2234002b0710c8db73f82d397cb945cd541c6bbb",
      "tree": "be662712131225845bb0afd7d32e7c37a7f295ad",
      "parents": [
        "67ee990d324229ab0565ce632bd5a04297e16a01"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 07 12:04:41 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 28 12:26:11 2014 -0700"
      },
      "message": "Start pulling bits of FastMixer up to FastThread\n\nChange-Id: I4c6f7b8f88fcf107bb29ee6432feecd4ab6554d2\n"
    },
    {
      "commit": "e273141263e988ab086a8d41e0e4fc75c00f1b86",
      "tree": "9423ffa485d085bb073beb546ac24ad8ea8bdeb7",
      "parents": [
        "66036d50a8303cddfdd5c7320eea0eff48cb4a5e",
        "7e5c635114a7762ad44581300021667a0da97389"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Apr 24 15:43:05 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 24 15:43:05 2014 +0000"
      },
      "message": "am 7e5c6351: am 4513aa2c: Merge \"AArch64: rewrite audioflinger\\\u0027s sinc resample by intrinsics.\"\n\n* commit \u00277e5c635114a7762ad44581300021667a0da97389\u0027:\n  AArch64: rewrite audioflinger\u0027s sinc resample by intrinsics.\n"
    },
    {
      "commit": "7e5c635114a7762ad44581300021667a0da97389",
      "tree": "9bf0f89add96547c4f2e9ed730589e6843b5b655",
      "parents": [
        "dae621c2c7f40f1587b97636975908e1374ade9a",
        "4513aa2cda9e636e4ac675dab9a1353b22e951ae"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Apr 24 09:02:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 24 09:02:28 2014 +0000"
      },
      "message": "am 4513aa2c: Merge \"AArch64: rewrite audioflinger\\\u0027s sinc resample by intrinsics.\"\n\n* commit \u00274513aa2cda9e636e4ac675dab9a1353b22e951ae\u0027:\n  AArch64: rewrite audioflinger\u0027s sinc resample by intrinsics.\n"
    },
    {
      "commit": "4513aa2cda9e636e4ac675dab9a1353b22e951ae",
      "tree": "546a77e6c051d4096a60295d7bb259d9c6e771bb",
      "parents": [
        "95006625bd1c562c952833bf08c52e7e6c524363",
        "12b44bd5fe3069cd3450d05b6c446b600e0553d3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Apr 23 23:45:27 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Apr 23 23:45:27 2014 +0000"
      },
      "message": "Merge \"AArch64: rewrite audioflinger\u0027s sinc resample by intrinsics.\""
    },
    {
      "commit": "1b24cf32e02a1372e57b3a2a432bc0adfe496e6d",
      "tree": "220f4583ae1081df62fa5c861eed3e9e90a24515",
      "parents": [
        "4845b69f70ff457be8d8908f6eb61e2af67e00d3",
        "e80631aa1992ca50af679cd6a018c0ffda7f9b17"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 23:37:19 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 15 23:37:19 2014 +0000"
      },
      "message": "am e80631aa: am 839d11d1: Merge changes I0a744dc7,Id993a70d\n\n* commit \u0027e80631aa1992ca50af679cd6a018c0ffda7f9b17\u0027:\n  media: use size_t for integer iterator to Vector::size()\n  media: 64 bit compile issues\n"
    },
    {
      "commit": "e80631aa1992ca50af679cd6a018c0ffda7f9b17",
      "tree": "6b3fcc9fbb5b02976e4bb2163e994952303bead5",
      "parents": [
        "d4a3cae8cc4cf924925ae57723e61c89f6c4fd51",
        "839d11d1f7be9dff2f06c7d30a9eb39cb6782078"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 22:35:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Apr 15 22:35:00 2014 +0000"
      },
      "message": "am 839d11d1: Merge changes I0a744dc7,Id993a70d\n\n* commit \u0027839d11d1f7be9dff2f06c7d30a9eb39cb6782078\u0027:\n  media: use size_t for integer iterator to Vector::size()\n  media: 64 bit compile issues\n"
    },
    {
      "commit": "3ab368e0810d894dcbc0971350c095049478a055",
      "tree": "a50053c391da8c02797158395f2ecfec83218855",
      "parents": [
        "db43b34c3428e480f8c4c66e7e88f4001f37f91e"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 14:55:53 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Tue Apr 15 14:57:31 2014 -0700"
      },
      "message": "media: use size_t for integer iterator to Vector::size()\n\nChange-Id: I0a744dc7815a86a993df9b0623440be620ec8903\n"
    },
    {
      "commit": "96b0d5ef85d4d71690c41c84456afbf19864c785",
      "tree": "4b63ae9e7b754ca77792ad6a062d767250847116",
      "parents": [
        "17ca0141634a7fa552db3cfdf2a3e79289ec54af",
        "bafa561d0c9363c5307b6b1daa498bd3ae36089d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 15 02:09:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 15 02:09:14 2014 +0000"
      },
      "message": "Merge \"Improve resampler filter computation speed\""
    },
    {
      "commit": "c125f38cd0ae35409a01b98a99e483550daa1313",
      "tree": "efee74222317630cd7e90c2d3c25867906030639",
      "parents": [
        "27a17103f99d23157ac80ef7d75e25a3aae788bd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 11 18:37:33 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 14 09:54:46 2014 -0700"
      },
      "message": "audioflinger: forward device change to effects in direct thread\n\nDevice change during offload playback is not informed to effect chain\nwhich causes effects still work on unexpected output devices. Add device\nchange notification in direct output thread.\n\nOriginal author wjiang \u003cwjiang@codeaurora.org\u003e\n\nCRs-Fixed: 630408\nBug: 14053172\nSigned-off-by: Glenn Kasten \u003cgkasten@google.com\u003e\nChange-Id: I094a99bdf540479cee2fca6614ec35c2fa7d6046\n"
    },
    {
      "commit": "df383a5a54582811e5e038efc557172b8ec69dd1",
      "tree": "e619d601e84167d4122bae647bd15aff030f4e86",
      "parents": [
        "771386e6e6e79697e2d839ef0f25a242946ba1e5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 09 19:10:15 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 10 15:19:08 2014 -0700"
      },
      "message": "Update test-resample to handle multichannel\n\nOption -c # specifies number of channels (mono default).\nOption -s to specify stereo is removed (-c 2 replaces).\nOption -h to specify WAV header is removed (WAV is now default).\n\nChange-Id: Iba4b83806028a8a9c1ddba6f555182d214ef73ff\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "12b44bd5fe3069cd3450d05b6c446b600e0553d3",
      "tree": "d7c3ff6a66a682520248b3b39e68a470968e3663",
      "parents": [
        "51b3ea2b8f7298bffbd246c65a606cd053357b66"
      ],
      "author": {
        "name": "Zhongwei Yao",
        "email": "zhongwei.yao@arm.com",
        "time": "Thu Apr 10 17:23:42 2014 +0100"
      },
      "committer": {
        "name": "Zheng Xu",
        "email": "zheng.xu@arm.com",
        "time": "Thu Apr 10 18:28:46 2014 +0100"
      },
      "message": "AArch64: rewrite audioflinger\u0027s sinc resample by intrinsics.\n\nPass conformance test on armv7 and aarch64, performance test is done on armv7.\nCompared with original armv7 assembly version, this version has similar\nresult. Here is performance data on pandaboard android4.4 (input: random wave\nfile, unit: Mspl/s, toolchain:gcc 4.8):\n\n|                | origin(assembly) | current(intrinsics) | C version |\n|----------------+------------------+---------------------+-----------|\n| single channel | 6.17             | 7.14                | 3.43      |\n| double channel | 5.24             | 5.63                | 3.50      |\n\nChange-Id: If5670218e1586e9dfd2b8d9c66a6880f3e4808ca\n"
    },
    {
      "commit": "771386e6e6e79697e2d839ef0f25a242946ba1e5",
      "tree": "a96089d65f91b69e94dfa09c9a31ac6d9274f1cd",
      "parents": [
        "d549139155b20d7cbf6a4326133e06def465ef54"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 08 18:44:38 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 09 14:30:31 2014 -0700"
      },
      "message": "Add and enable floating point option for audio resampler\n\nCan be tested with test-resample.\n\nChange-Id: I8339846d7c647444b6025d33cfa145d5d3658121\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "d549139155b20d7cbf6a4326133e06def465ef54",
      "tree": "2d11e173c5e471f26ebeb11721a2fa65df31a01a",
      "parents": [
        "430b61c72094882bc48693dfc10c256a6ae36ee9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 08 18:28:09 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 09 14:21:54 2014 -0700"
      },
      "message": "Add floating point to audio resample processing\n\nAdd template type parameters for input, output data type.\nMinor change in non-NEON mono channel handling.\nMinor fixup on comments.\n\nChange-Id: I7dc9972d130913718b62f32c02d31f99c06682f2\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "430b61c72094882bc48693dfc10c256a6ae36ee9",
      "tree": "c707e9098f59017e639c5cb1923572ea17b5cd85",
      "parents": [
        "781366833a12877b8d5ad4aa081114e30f799319"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 08 18:10:02 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 08 18:10:02 2014 -0700"
      },
      "message": "Add capability for floating point Kaiser window filters\n\nChange-Id: Idbb33248bbab2300c2650a4657d8fbc482a5d46c\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "781366833a12877b8d5ad4aa081114e30f799319",
      "tree": "0f020ad949f608a8af1991b7d84d0fa264dbac4f",
      "parents": [
        "0d521d91154fe0199181c845b6dc70faf38ca8fb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 08 17:59:59 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 08 17:59:59 2014 -0700"
      },
      "message": "Update test-resample to handle floating point\n\nChange-Id: Ib34d716fbabcd5eb70f8a5ffcf362e242671d916\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "0d521d91154fe0199181c845b6dc70faf38ca8fb",
      "tree": "aa82d7bf0dffdf6d04323067dae8795931b68ab3",
      "parents": [
        "d27368f7d28813f7dad37fc31940c822df80e68e",
        "1e4e4f40b4e2c655ca377adbba53df897545c3ae"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 08 19:16:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 08 19:16:11 2014 +0000"
      },
      "message": "Merge \"Fix 64-bit build warnings\""
    },
    {
      "commit": "1e4e4f40b4e2c655ca377adbba53df897545c3ae",
      "tree": "abf495ff585fcda3118bbf02adfc05690200b366",
      "parents": [
        "c51db0a6bfb71ea9c934fb7971cb5ae1f1cf03a0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 08 10:41:02 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 08 10:41:02 2014 -0700"
      },
      "message": "Fix 64-bit build warnings\n\nChange-Id: I667401522cb4ccd41013e2883a4c75ddeca08ef6\n"
    },
    {
      "commit": "bc6ae9bd4ee93e91e212ad35be038f21797ef31e",
      "tree": "848701c25988f69b4a2c10ae1c25afb28cf84725",
      "parents": [
        "c51db0a6bfb71ea9c934fb7971cb5ae1f1cf03a0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 07 13:02:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 07 13:03:40 2014 -0700"
      },
      "message": "Fix regression in FastMixer statistics\n\nAt some point, the mSampleRate in FastMixerDumpState stopped being\ninitialized correctly.  I\u0027m not sure when this happened, it doesn\u0027t seem to\nbe introduced in recent CLs.  This lack of initialization caused\nsome of the FastMixer statistics based on sample rate to be useless.\n\nChange-Id: Id2a96d606130a90c4c4f1bddd59778f6c6428a9c\n"
    },
    {
      "commit": "84a0c6e87c48f58a0d3be71961432c086a4d24cc",
      "tree": "a9bea7e95223dc4d1f3219d4e60dd385881ec6d8",
      "parents": [
        "99021c47f45ee8bf3317cff7d08226e76c8d8227"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 02 11:24:53 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 02 14:33:26 2014 -0700"
      },
      "message": "Change references of Q19.12 to Q4.27 for clarity\n\nChange-Id: I5beb7daf6ff9bc123ff3582f7c294edcaf8652f6\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "bafa561d0c9363c5307b6b1daa498bd3ae36089d",
      "tree": "725ae0e8b8c8bc532c4c23c2b4a133aec35a9410",
      "parents": [
        "2ade30003882f0c3782d68018d06cb81b99dfeb2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 02 13:52:10 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 02 13:52:10 2014 -0700"
      },
      "message": "Improve resampler filter computation speed\n\nApproximate speed improvement is 10-15% for filter computation,\nwhich is floating point intensive. This will be important\nfor devices without hw floating point support.\n\nChange-Id: I10b4e778c8d632b52218a777504b092c189e437f\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "2ade30003882f0c3782d68018d06cb81b99dfeb2",
      "tree": "515a19da1dc7387195367c0d706ab2cc92a5e6e5",
      "parents": [
        "1e0c8cd8fad2108c8ea085748fcca2059e3ce4ab",
        "f7160b5dc3091fd9624f25d534c6848ee831b706"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 01 17:47:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 01 17:47:01 2014 +0000"
      },
      "message": "Merge \"FastMixer use FastThread and FastMixerState use FastThreadState\""
    },
    {
      "commit": "1e0c8cd8fad2108c8ea085748fcca2059e3ce4ab",
      "tree": "27d07871207369abdba016641f900838fe6f7c28",
      "parents": [
        "3a6c90aa0617666d9abc94c02b752d9eb3d64772",
        "4cd161b5bf7a8008d684db4b217ed84d1704e683"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 01 17:32:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 01 17:32:17 2014 +0000"
      },
      "message": "Merge changes I5748f47d,I3f074933\n\n* changes:\n  Add FastThread.h\n  Add FastThreadState\n"
    },
    {
      "commit": "f7160b5dc3091fd9624f25d534c6848ee831b706",
      "tree": "521236419b4532dc8e91ed22be147a6aeb8baa34",
      "parents": [
        "4cd161b5bf7a8008d684db4b217ed84d1704e683"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 18 17:01:15 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 31 12:23:11 2014 -0700"
      },
      "message": "FastMixer use FastThread and FastMixerState use FastThreadState\n\nChange-Id: I594c973e9f575113bdefee6f4cf8c29d8beac1f3\n"
    },
    {
      "commit": "4cd161b5bf7a8008d684db4b217ed84d1704e683",
      "tree": "7ef8cd9b1e9167a027922256e24675d214551884",
      "parents": [
        "a18f644ce5eb4ab876b343e24ea613566c00058f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 18 16:25:04 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 31 12:23:03 2014 -0700"
      },
      "message": "Add FastThread.h\n\nChange-Id: I5748f47dbfa42c14cc93973742e05ac963bf3ba8\n"
    },
    {
      "commit": "a18f644ce5eb4ab876b343e24ea613566c00058f",
      "tree": "0ae47695a79fd411a88c2ae9272bc76c01469071",
      "parents": [
        "5e184b0d12f1ec436246a391da8d9355cc21ee08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 18 17:17:04 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 31 12:22:54 2014 -0700"
      },
      "message": "Add FastThreadState\n\nChange-Id: I3f07493375ace6e5cfdcd02ad90c4b6fad543b0c\n"
    },
    {
      "commit": "3a6c90aa0617666d9abc94c02b752d9eb3d64772",
      "tree": "150424841e6732f1d3a1c6df6139f8f307db0d2f",
      "parents": [
        "5e184b0d12f1ec436246a391da8d9355cc21ee08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 15:07:51 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 31 12:22:09 2014 -0700"
      },
      "message": "Add FIXMEs to createRecord for fast capture\n\nChange-Id: I759be200fae32969212c52a409f46f2e704081e3\n"
    },
    {
      "commit": "1490d5142d8d485ea0d56a9974726fb6dff0a62d",
      "tree": "8f3e0673fd986949b0e307e401bbbb832bca0d3f",
      "parents": [
        "afe1ba72551d6bd6e3bee9b77fe7538201ab6193",
        "cf515ab0030cf5e0bef843638af7c989a8f6843a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 28 16:43:59 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 28 16:43:59 2014 +0000"
      },
      "message": "Merge \"Mark the logging heap read-only to media.log service\""
    },
    {
      "commit": "c9b8d90dabdf1234be0117c592f635a92c4eb0d9",
      "tree": "8bbeb033b0eb0bcbbfb12faaa6f2133d3cd093ea",
      "parents": [
        "5c4fa907328c8ee586367272c7525cb87742f14d",
        "142f519aa1acd5804d111e60d100f170fed28405"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 23:23:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 23:23:09 2014 +0000"
      },
      "message": "Merge \"Use symbol AUDIO_IO_HANDLE_NONE from \u003csystem/audio.h\u003e\""
    },
    {
      "commit": "5c4fa907328c8ee586367272c7525cb87742f14d",
      "tree": "072ee3fe93cbcc8505118b51bc371265214036f3",
      "parents": [
        "2301acc6a9c7a3af4ad01f3d1d0f76f13eca7350",
        "adad3d7d935da176ff24941b4ae9edf7340e9b96"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 22:22:23 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 22:22:24 2014 +0000"
      },
      "message": "Merge \"Use LOG_ALWAYS_FATAL instead of LOG_FATAL\""
    },
    {
      "commit": "142f519aa1acd5804d111e60d100f170fed28405",
      "tree": "aaffc4a234a4b0a5e719374056edf12eb2333b29",
      "parents": [
        "ecdca392ed40e89a6ef14b86446e952c35497ac4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 25 17:44:59 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 14:56:54 2014 -0700"
      },
      "message": "Use symbol AUDIO_IO_HANDLE_NONE from \u003csystem/audio.h\u003e\n\nChange-Id: Id6b1aa17558eb73e17f22b8eab6cd02e00a96dff\n"
    },
    {
      "commit": "adad3d7d935da176ff24941b4ae9edf7340e9b96",
      "tree": "7a8a2f8e31c7dd690805c1cfd9982d218c66296b",
      "parents": [
        "1392eb3d1802e9f894f87d7a7387207d1b6faca1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 21 14:51:43 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 14:46:28 2014 -0700"
      },
      "message": "Use LOG_ALWAYS_FATAL instead of LOG_FATAL\n\nLOG_FATAL is compiled out in most builds, so the\nassertion checks were not being performed.\n\nChange-Id: I774f0985ab9c5ccecd8989a0f1c940386b73fc35\n"
    },
    {
      "commit": "ecdca392ed40e89a6ef14b86446e952c35497ac4",
      "tree": "bf796efe37aca6ded41ca0ad4291ca344af337ac",
      "parents": [
        "51beebba9d4989d05831a13bbe5cdf53ecac1bf5",
        "66e4635cb09fadcaccf912f37c387396c428378a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 21:29:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 21:29:28 2014 +0000"
      },
      "message": "Merge \"Use symbolic constants from \u003csystem/audio.h\u003e\""
    },
    {
      "commit": "51beebba9d4989d05831a13bbe5cdf53ecac1bf5",
      "tree": "b2c6af1099ba3c20b8dd08d39f8dcf822303971a",
      "parents": [
        "b8f8d231685afdec472136b45c527a71bfb8bcc4",
        "45faf7e02791993a487d6e038d16ff46395f1975"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 21:14:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 21:14:17 2014 +0000"
      },
      "message": "Merge \"Use symbol AUDIO_DEVICE_NONE from \u003csystem/audio.h\u003e\""
    },
    {
      "commit": "73ec11738cd4399c55d4905665a14a7c4cd42cbf",
      "tree": "1105d7402857079f44e234ba1ab6ecfa8290a094",
      "parents": [
        "8c7b9fb41585fccb06573252823b929c82a40999",
        "9ea65d0f4a564478343b1a722fae4ce5883670c3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 20:56:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 26 20:56:04 2014 +0000"
      },
      "message": "Merge \"Fix uses of KeyedVector\""
    },
    {
      "commit": "45faf7e02791993a487d6e038d16ff46395f1975",
      "tree": "d54ff27f6fd42e670ddebfa993a00b5202fb7633",
      "parents": [
        "1392eb3d1802e9f894f87d7a7387207d1b6faca1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 10:23:01 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 25 17:29:00 2014 -0700"
      },
      "message": "Use symbol AUDIO_DEVICE_NONE from \u003csystem/audio.h\u003e\n\nChange-Id: I61f882c5e7c949bf00d3bfc745ebf3b5e1c42a58\n"
    },
    {
      "commit": "66e4635cb09fadcaccf912f37c387396c428378a",
      "tree": "7982a54dbc04375babd42e59c03ef930454a9687",
      "parents": [
        "1392eb3d1802e9f894f87d7a7387207d1b6faca1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 16 17:44:23 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 25 16:22:54 2014 -0700"
      },
      "message": "Use symbolic constants from \u003csystem/audio.h\u003e\n\nAUDIO_INTERLEAVE_*\nAUDIO_STREAM_MIN\nAUDIO_SESSION_ALLOCATE\n\nChange-Id: I31dd6f327204685e50716079ce21c4ba206dff11\n"
    },
    {
      "commit": "9ea65d0f4a564478343b1a722fae4ce5883670c3",
      "tree": "7e23f994d376d45183eac141e914ddbfd126cdf5",
      "parents": [
        "1392eb3d1802e9f894f87d7a7387207d1b6faca1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 10:21:24 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 25 16:13:00 2014 -0700"
      },
      "message": "Fix uses of KeyedVector\n\nConstructor for AudioFlinger::mAudioHwDevs was missing, and so\nAudioFlinger::findSuitableHwDev_l() could return an undefined pointer\nif a non-0 module wasn\u0027t found.\n\nA KeyedVector of Plain Old Data (POD) element type must specify the\ndefault value in the constructor, or else the default will be undefined.\n\nMinor:\n - Parameter had wrong type in constructor for AudioSystem::gOutputs.\n - Remove obsolete AudioSystem::gStreamOutputMap.\n\nChange-Id: I9841493e018440e559d8b8b0e4e748ba2b2d365b\n"
    },
    {
      "commit": "bcefec31bd1346133052356ffc8d7ac8a5b13fab",
      "tree": "4125808fe2bbae00a8bf93ba260688e2f7c11181",
      "parents": [
        "1392eb3d1802e9f894f87d7a7387207d1b6faca1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 12:09:05 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 25 15:42:35 2014 -0700"
      },
      "message": "Document AudioFlinger::nextUniqueId()\n\nChange-Id: Iafe96f1c10bd85cb23a2553945ca68aa601dc2eb\n"
    },
    {
      "commit": "46d1b4ab7e83c677532587c7c8bd46eb8b30fc67",
      "tree": "0238e0ff00c67b6dfbcf38b4b50c400bd67b0b39",
      "parents": [
        "d74110cdef2becd4f7fd2334c34c3ca73f56b355",
        "f40c4c561151ae93595e8fab5dcaaa1c69df74ef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 19 13:21:51 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 19 13:23:17 2014 -0700"
      },
      "message": "resolved conflicts for merge of f40c4c56 to master\n\nChange-Id: Ifd5385ad42a81e02e6a6afc6281f09fbff361671\n"
    },
    {
      "commit": "f40c4c561151ae93595e8fab5dcaaa1c69df74ef",
      "tree": "5e0105a852e0587a366b49d6a84ec0db1d265c37",
      "parents": [
        "129c76538570cd42fce2154bfb0aec934cf84ff3",
        "36817364738d4c45adc3e448fbec02a9611bfeda"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 19 19:56:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 19:56:09 2014 +0000"
      },
      "message": "am 36817364: Merge \"Add libaudioresampler\"\n\n* commit \u002736817364738d4c45adc3e448fbec02a9611bfeda\u0027:\n  Add libaudioresampler\n"
    },
    {
      "commit": "ddf887c08b58382920effb7f0b2049e471960b4a",
      "tree": "a1f2797399f967b46ec2d823f6f520f5b8426684",
      "parents": [
        "b2ecad7f079f4f852d334e67fd7a72ff1696a78e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 19 09:05:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 19 10:53:13 2014 -0700"
      },
      "message": "Add libaudioresampler\n\nlibaudioresampler is available in both 32-bit and 64-bit,\nunlike libaudioflinger which is currently 32-bit only.\n\nBug: 8141282\nChange-Id: I839f7b4e6aaed6984012ca6d514323f927669df6\n"
    },
    {
      "commit": "cf515ab0030cf5e0bef843638af7c989a8f6843a",
      "tree": "9bc764714f1daf1a8c4bb9222eddf3dedb3b0aa4",
      "parents": [
        "b5ea3014b8be9eaa16da0144bd81af6fa514d8e2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 16:01:58 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 18 16:01:50 2014 -0700"
      },
      "message": "Mark the logging heap read-only to media.log service\n\nChange-Id: Ie26a9e7e37c951774c71d2c53886db52dd5479aa\n"
    },
    {
      "commit": "0c282de73240b1efce64558ab2fa0a8be1f4292b",
      "tree": "1dc389ec1992e8d5afaab470a0c6aeb7fbfd5298",
      "parents": [
        "098b28fc88b3d96eada2f9db318d9c38c70cf674",
        "77658a069c81a0d5b4a1b81443b470a3ea64cab0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Tue Mar 18 17:40:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 18 17:40:58 2014 +0000"
      },
      "message": "am 77658a06: Merge \"AudioPolicyService: malloc/delete pair\"\n\n* commit \u002777658a069c81a0d5b4a1b81443b470a3ea64cab0\u0027:\n  AudioPolicyService: malloc/delete pair\n"
    },
    {
      "commit": "77658a069c81a0d5b4a1b81443b470a3ea64cab0",
      "tree": "3e08958e7ac8f848823003064713cb731a05b5e9",
      "parents": [
        "64727dd7c8513b6c9ddcce2f4b305618bb76121c",
        "db358afc965d9bfb703953ac004275428a7cda64"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Tue Mar 18 17:31:25 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Mar 18 17:31:26 2014 +0000"
      },
      "message": "Merge \"AudioPolicyService: malloc/delete pair\""
    },
    {
      "commit": "2d3ca68363f723fbe269d3ce52dab4985dfc7154",
      "tree": "c1f8c7bbae0e128158ce90a9985d0219dd719182",
      "parents": [
        "164985121796cf214c7a83d32005d9b01125b558"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Mar 07 13:43:49 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 17 18:32:07 2014 -0700"
      },
      "message": "audioflinger: OffloadThread fix for resume underrun\n\nAudioFlinger can miss resuming h/w on a pause-\u003eresume transition\nif sufficient data isn\u0027t available\n\nBug: 11358524.\nChange-Id: Ic3c75256290d3515fd4a96dfcc900909fbe5bc15\n"
    },
    {
      "commit": "164985121796cf214c7a83d32005d9b01125b558",
      "tree": "5e84c9a2511f94338b116962ef4eb7ba5903b708",
      "parents": [
        "8d6c292a0bed3d63b5b7297d09a604af6327c663"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 17 17:22:08 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 17 18:31:43 2014 -0700"
      },
      "message": "AudioFlinger: Change track ready condition in STOPPING_1 state\n\nSet FS_FILLED only if framesReady() \u003e 0\n\nChange-Id: Ibb1d2e988ff17fcf3a7ab61031a3f85df82f18d5\n"
    },
    {
      "commit": "8d6c292a0bed3d63b5b7297d09a604af6327c663",
      "tree": "344c2297ed00e1e10998490bc4e2f00358536133",
      "parents": [
        "9ff25ced1404c896df9e6ed3a6ad289305559361"
      ],
      "author": {
        "name": "Krishnankutty Kolathappilly",
        "email": "kkolat@codeaurora.org",
        "time": "Tue Feb 04 16:23:42 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 17 18:30:13 2014 -0700"
      },
      "message": "audioflinger: Handle pause /resume in stopping state\n\n-Pre-requisite:\n Perform seek on the clip. After seek the data remaining till EOS\n is little more than the driver and common block buffering.\n-Framework state:\n Offload thread is waiting for signal from the HAL for a free\n buffer. Audio Player calls sink stop on reaching EOS. Audio\n track is waiting on obtain buffer for a free space in common\n block to send the last buffer. The track is moved to stopping\n state as input EOS is reached.\n-Issue:\n Perform pause/ resume in this state(STOPPING), Audio playback\n does not resume.\n-Fix\n Ensure resume is called in stopping state if frames ready is\n greater than zero.\n\nBug: 12870871\n\nChange-Id: Ib1378c4ee5ce4bea655691e93de0775f7b1d2804\nSigned-off-by: Glenn Kasten \u003cgkasten@google.com\u003e\n"
    },
    {
      "commit": "314869117d5e3365fc3e43fee01209d18515ca42",
      "tree": "a1975d895276c929a5e5a20166124368f2e21eb9",
      "parents": [
        "37e05edf1cfe297f9c7d382787ecab53d5a2b5c8",
        "c7e5040aa8b8e4da86814bf560346c7571e48087"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 18 00:14:12 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 18 00:14:12 2014 +0000"
      },
      "message": "Merge \"move audio policy service to a separate library\""
    },
    {
      "commit": "3ef14ef30359376006a233f6a21a165d4b65a7df",
      "tree": "78947d5e8dee6f3942fdc7891dd40777b21dd7de",
      "parents": [
        "15e5798908ccac14e10c84834eaf08c42931bd06"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 15:08:51 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:37 2014 -0700"
      },
      "message": "Make error handling more similar for output and capture\n\nAnd simplify error case\n\nChange-Id: I0bb1ec252945d672cc4cef137977b912f1b23d51\n"
    },
    {
      "commit": "15e5798908ccac14e10c84834eaf08c42931bd06",
      "tree": "a5f72fd4a8d0a73477d88cef7161a97d3754665c",
      "parents": [
        "570f633e0b02d1bc25f3312b92e72cc29a40ca38"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 24 11:52:37 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:37 2014 -0700"
      },
      "message": "Make error handling for audio driver initCheck more similar\n\nChange-Id: I8222f00f7ac89d52235af0f64f3fee7a8c471e1e\n"
    },
    {
      "commit": "570f633e0b02d1bc25f3312b92e72cc29a40ca38",
      "tree": "3f75613bffba57b64f3bb7abc2f467c13d3f2019",
      "parents": [
        "e848bd9abb3bbbd4c66f9fb9d1442f7663d7ba40"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 15:01:06 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:37 2014 -0700"
      },
      "message": "Make session ID code similar between output and capture\n\nChange-Id: I873a97d0e36e1a452421df4f749d51e1916797a5\n"
    },
    {
      "commit": "e848bd9abb3bbbd4c66f9fb9d1442f7663d7ba40",
      "tree": "0d1142dca373dbc7d53b5c922ef7ad5f1fa41f05",
      "parents": [
        "c5a17425986b4ce3384e6956762c86018b49c4a0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 15:00:32 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:37 2014 -0700"
      },
      "message": "Move declarations to where needed\n\nAlso remove unnecessary ALOGV and dead variable inFrameCount\n\nChange-Id: I34547fb0fd2ff142fc60277bedfa4064e7356611\n"
    },
    {
      "commit": "c5a17425986b4ce3384e6956762c86018b49c4a0",
      "tree": "313484677c719c944bc7923b0c3766cba3bef5c6",
      "parents": [
        "c3df838434b37d8400eea2438083cc01a4c1cc71"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 14:59:59 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:36 2014 -0700"
      },
      "message": "Remove name output parameter from createTrack\n\nIt was only used for one log.\nA better solution will be a per-track unique ID.\n\nChange-Id: Ia440e02ae4a5a4019a9a2d08970e1ee93ac4c3a3\n"
    },
    {
      "commit": "c3df838434b37d8400eea2438083cc01a4c1cc71",
      "tree": "ecd066c03170c4dd2afae2d7247b6aafd4957fe2",
      "parents": [
        "05997e21af6c4517f375def6563af4b9ebe95f39"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 15:05:25 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:36 2014 -0700"
      },
      "message": "Replace if/else by switch\n\nChange-Id: Ibe96c8fb1f0ba7f850c0561f60769ce63aceba5d\n"
    },
    {
      "commit": "05997e21af6c4517f375def6563af4b9ebe95f39",
      "tree": "6a0892e14e34751cd10e11f6f73e92401f540505",
      "parents": [
        "0e0e846f3d86906ff990025981e514d6bcf44d8e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 15:08:33 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:36 2014 -0700"
      },
      "message": "Whitespace and comments\n\nChange-Id: I99752cca74a459c4746ea4718acb0115439e50bd\n"
    },
    {
      "commit": "0e0e846f3d86906ff990025981e514d6bcf44d8e",
      "tree": "f3293f7c07b80af8cb952b6aa9187e61943d7d4d",
      "parents": [
        "758799cef41fc5495f59eeb6249d02ce9154cde8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 13 15:02:40 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:49:17 2014 -0700"
      },
      "message": "Prepare for additional capture formats\n\nChange-Id: Ib10b004f0029191b33a97671e41b0d86ebfbe0b9\n"
    },
    {
      "commit": "758799cef41fc5495f59eeb6249d02ce9154cde8",
      "tree": "5cbfa825fd668d81c6fe6a8ec485dd8ebb2fd151",
      "parents": [
        "beb57a5a08207af80180b93dd80d611a85997c43",
        "3c7801882bbb6d5f3cc641525a54cb8a6c4aca34"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "message": "resolved conflicts for merge of 3c780188 to master\n\nChange-Id: Ic579d346c27ff05ea6444faaa60fa6caaec86fbf\n"
    },
    {
      "commit": "3c7801882bbb6d5f3cc641525a54cb8a6c4aca34",
      "tree": "f6f5e9f9d4ffecd658b76a3ef176564253768e3b",
      "parents": [
        "f1ac623fcc6bbda2faff9752cd611182a897afe1",
        "089affb6c2d9ed1e2d49df4be02d30dc490506f9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Mar 14 20:53:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 14 20:53:02 2014 +0000"
      },
      "message": "am 089affb6: Merge \"mediaserver and associated services are 32-bit only\"\n\n* commit \u0027089affb6c2d9ed1e2d49df4be02d30dc490506f9\u0027:\n  mediaserver and associated services are 32-bit only\n"
    },
    {
      "commit": "5b10a2037a835e790994b9ebec3c2e55052f1f3b",
      "tree": "f886a67e0d6ae5f9d6d192b76fab7e4bfaa2209a",
      "parents": [
        "010a1a1a552cdaad362cea8a0333b8906402dbcb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 13 13:59:29 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 13 15:39:43 2014 -0700"
      },
      "message": "Fix Offload playback in AudioFlinger\n\nThis fixes Offload playback regression introduced by adding\nflexible format to mSinkBuffer.  Test case is AAC file playback.\n\nBug: 13450717\nChange-Id: I0fa11978295ed4793be90c565e5b8abedf156914\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "010a1a1a552cdaad362cea8a0333b8906402dbcb",
      "tree": "d2f450bd5cecda7ce63e89d9f36b5877933115ad",
      "parents": [
        "e2a9c29f35e0c09782558542fc4cf9823779590e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 13 13:57:33 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 13 13:57:33 2014 -0700"
      },
      "message": "Revert \"Revert \"Convert AudioFlinger mSinkBuffer to flexible format\"\"\n\nThis reverts commit e2a9c29f35e0c09782558542fc4cf9823779590e.\n"
    },
    {
      "commit": "e2a9c29f35e0c09782558542fc4cf9823779590e",
      "tree": "31a860f1236fa1060cd66e375bbab8e9718ed365",
      "parents": [
        "fca092d953e04c7169242200f0ddb914a9f54ea4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 13 10:44:14 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 13 10:46:49 2014 -0700"
      },
      "message": "Revert \"Convert AudioFlinger mSinkBuffer to flexible format\"\n\nThis reverts commit e7e676fd2866fa4898712c4effa9e624e969c182.\n\nBug: 13450717.\nChange-Id: Ib80b0d14428fecce33c62003a1fcf83f71cee03b\n"
    },
    {
      "commit": "af783aa91f7a279153fb8bab8d0d6b9f737996e9",
      "tree": "25c5b54bf884f220cce4ee21a9cbaf6583820f91",
      "parents": [
        "19afb3869eb6a3e3733dc1f7420e1d4c3c03d376"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Sun Mar 02 19:48:19 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 12 11:24:53 2014 -0700"
      },
      "message": "mediaserver and associated services are 32-bit only\n\nalso 32-bit only command-line apps\n\nChange-Id: I9ac557a8d02bbf6986a9b5c3cdce23d400b306a3\n"
    },
    {
      "commit": "c7e5040aa8b8e4da86814bf560346c7571e48087",
      "tree": "8cd35c3ea6a2f9849d27a8299705dd7aea494894",
      "parents": [
        "1ac1638077277de52d1dd4c54db71e67753f1960"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 06 14:35:55 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 13:52:14 2014 -0700"
      },
      "message": "move audio policy service to a separate library\n\nChange-Id: Ibc3ef07aa9860b7fd4f9aaff27b0dbe0dcbf1cbf\n"
    },
    {
      "commit": "e7e676fd2866fa4898712c4effa9e624e969c182",
      "tree": "e34f072392608660e29684f42d43bad6a179ea37",
      "parents": [
        "98ef978df4e928f486d244c4d7f7ad9f13111e98"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 04 16:01:44 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 10 14:20:55 2014 -0700"
      },
      "message": "Convert AudioFlinger mSinkBuffer to flexible format\n\nChange-Id: I618d9c99a5f6f8c8d6a9f4b2d19e82c9ddc3b06e\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "98ef978df4e928f486d244c4d7f7ad9f13111e98",
      "tree": "3ea9f5800c87d0b52ae07fdb6be2b231d827558a",
      "parents": [
        "07c34a59fee02ab0732e84a2e2ff3b928de50ebc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Mar 04 14:46:50 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 10 11:48:49 2014 -0700"
      },
      "message": "Add mEffectBuffer to AudioFlinger\n\nChange-Id: Icf97c50040bc127723d56eb4d2fb6e790a7253d9\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "f69f9869514730aebe5724c461768507084dfff7",
      "tree": "0f14d23d8b7a26669317bb29055301a473821f2e",
      "parents": [
        "8eec77066635c30b8ddce79cf9433357cf3afa1a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 07 08:37:57 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 07 08:39:09 2014 -0800"
      },
      "message": "NBAIO::Format_from_SR_C requires audio_format_t parameter\n\nChange-Id: I4b65f6ed2f6ca3608b3a5f88f52a93af0b9b1f4a\n"
    },
    {
      "commit": "55fbfbbbf00722dac3f789be69138445b771a1e1",
      "tree": "8b93cb3b1acbfdf93e6b17290248a47c72a5932b",
      "parents": [
        "950de3100455b389fc53cc2030571162b9872424",
        "e842614837e5401adf77e90485300c288b9a7876"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 06 19:17:01 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 06 19:17:02 2014 +0000"
      },
      "message": "Merge \"Use larger capture pipe since we support resampling by 6:1\""
    },
    {
      "commit": "6cbccee701e74fa43a5ea49c15af7dd3267b6699",
      "tree": "90fa3e762bead3f0dca419b14ee992100ba4c454",
      "parents": [
        "525b099ada155d6654300cb2e5d8c1a09f4eb8ba"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Dec 13 15:40:13 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Mar 06 10:44:13 2014 -0800"
      },
      "message": "audioflinger: Fix for a deadlock in track creation\n\nAudioFlinger enters a deadlock (with itself) on trying to free a\nRecordTrack or Track object that failed initialization. Clear this\nbad object from the caller instead.\n\nBug: 12423233\nChange-Id: I926f2beb922a70f6924e593e2bbf1a5b5df85b16\n"
    },
    {
      "commit": "0c937b4946fae178447d9f8d29200fa2798c05f9",
      "tree": "b5c507e70c853037602d4e898b75c2d307ae2c4d",
      "parents": [
        "57f87026a30f3e461f6a804e94b6dab7b385f3ca",
        "eb16bb5dcecf430bfec1c2a4bd15851c83b9c3cc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 22:48:11 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 05 22:48:11 2014 +0000"
      },
      "message": "am eb16bb5d: am 7028a2c8: am 7e92abea: audioflinger: fix offload write buffer offset\n\n* commit \u0027eb16bb5dcecf430bfec1c2a4bd15851c83b9c3cc\u0027:\n  audioflinger: fix offload write buffer offset\n"
    },
    {
      "commit": "7028a2c8106ee5a22db88da5dad581820ee07254",
      "tree": "afcb2b29c856c84809893e5dda8a68f68054ed75",
      "parents": [
        "6b2604259c12ee28b49f26ab2adac96eefe30934",
        "7e92abeafb184e8a34213d7149592e95a72601b0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 22:41:53 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 05 22:41:53 2014 +0000"
      },
      "message": "am 7e92abea: audioflinger: fix offload write buffer offset\n\n* commit \u00277e92abeafb184e8a34213d7149592e95a72601b0\u0027:\n  audioflinger: fix offload write buffer offset\n"
    },
    {
      "commit": "7e92abeafb184e8a34213d7149592e95a72601b0",
      "tree": "09ec6f7fdfdc0b9564660f134bd6a460a4480d85",
      "parents": [
        "85b3013e06e8fe7802fe6259ecac80261e834332"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 22 09:29:56 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 05 12:12:01 2014 -0800"
      },
      "message": "audioflinger: fix offload write buffer offset\n\nFix current audio HAL write buffer offset calculation\nwhich assumes that the frame size is a multiple of 2.\n\u0027\nBug: 12823725.\n\nChange-Id: I0195ed5cfef225a6f114e7dd405a02680bb7254e\n"
    },
    {
      "commit": "0504a198d6595e29e58d1d66ae59fac1d662384a",
      "tree": "3fad07457b2212da593c80bd278cb7660ce53d6a",
      "parents": [
        "d384a2c44810ce1b51277cc4ab4c5415ff7de6ee",
        "632c3790523896260dc43fd6cd40a158765cdb15"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Mar 05 20:01:14 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 05 20:01:14 2014 +0000"
      },
      "message": "am 632c3790: am 7c206e5b: am e0cd1051: audioflinger: update track ready condition\n\n* commit \u0027632c3790523896260dc43fd6cd40a158765cdb15\u0027:\n  audioflinger: update track ready condition\n"
    },
    {
      "commit": "d384a2c44810ce1b51277cc4ab4c5415ff7de6ee",
      "tree": "c020402fdf9734df5c77b93058b841d9c501a4ef",
      "parents": [
        "3cd7a13a7926e210bd8dff65d6f43a257f5235e5",
        "4f9e38c60cc79407a8b2966b3b9780a3e395b017"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Mar 05 20:01:11 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 05 20:01:11 2014 +0000"
      },
      "message": "am 4f9e38c6: am 21e81bca: am e010f65e: audioflinger: Fix for a deadlock in track creation\n\n* commit \u00274f9e38c60cc79407a8b2966b3b9780a3e395b017\u0027:\n  audioflinger: Fix for a deadlock in track creation\n"
    },
    {
      "commit": "7c206e5bd24b5ae4565d0e60b637458a1054dfcf",
      "tree": "316b886b5c436f5cfa9d14cecab3d42013ca0b88",
      "parents": [
        "21e81bca4d1e6f7d1ccac61b65da7c7a4a121064",
        "e0cd1051ed9fea0629745c29020516ae62298461"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Mar 05 01:24:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 05 01:24:09 2014 +0000"
      },
      "message": "am e0cd1051: audioflinger: update track ready condition\n\n* commit \u0027e0cd1051ed9fea0629745c29020516ae62298461\u0027:\n  audioflinger: update track ready condition\n"
    },
    {
      "commit": "21e81bca4d1e6f7d1ccac61b65da7c7a4a121064",
      "tree": "25ed8460e9719f09063932ecd1297bc7f99c3b0c",
      "parents": [
        "571596564f4b818b8e89c4bbe824e557e8e00075",
        "e010f65e6337267cb15f8894c950a3f64370dd36"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Mar 05 01:24:09 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 05 01:24:09 2014 +0000"
      },
      "message": "am e010f65e: audioflinger: Fix for a deadlock in track creation\n\n* commit \u0027e010f65e6337267cb15f8894c950a3f64370dd36\u0027:\n  audioflinger: Fix for a deadlock in track creation\n"
    },
    {
      "commit": "50c3157c5a3e0617be77716beff1ae8801d8a72f",
      "tree": "7b550f2609351c85fc70658220f14e3a5737288e",
      "parents": [
        "e0cd1051ed9fea0629745c29020516ae62298461"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Tue Dec 03 21:26:02 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 04 16:03:12 2014 -0800"
      },
      "message": "audioflinger: check for condition before waiting\n\nAsyncCallbackThread must check for any condition that\nwas already been satisfied before waiting.\n\nBug: 11824817\nChange-Id: I04683a1f355de4f440106cab47fd916aa39d5e35\n"
    },
    {
      "commit": "e0cd1051ed9fea0629745c29020516ae62298461",
      "tree": "03273a98e8fc21f916bd0de1163913c51171b953",
      "parents": [
        "e010f65e6337267cb15f8894c950a3f64370dd36"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Dec 27 16:09:28 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 04 15:58:25 2014 -0800"
      },
      "message": "audioflinger: update track ready condition\n\nSignal track ready if the track isStopping().\n\nBug: 12423190\nChange-Id: I95e14905df10ebf301e398263478c8ca25d7e2ce\n"
    },
    {
      "commit": "e010f65e6337267cb15f8894c950a3f64370dd36",
      "tree": "e631dc8a6690f18c6b977272404abe1df70cc30c",
      "parents": [
        "a4f24ff9b239300b4bb2098c1413c0a60edc2d7e"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Fri Dec 13 15:40:13 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 04 15:36:20 2014 -0800"
      },
      "message": "audioflinger: Fix for a deadlock in track creation\n\nAudioFlinger enters a deadlock (with itself) on trying to free a\nRecordTrack or Track object that failed initialization. Clear this\nbad object from the caller instead.\n\nBug: 12423233\nChange-Id: I926f2beb922a70f6924e593e2bbf1a5b5df85b16\n"
    },
    {
      "commit": "788207057ed4b8df4719ed8089f376ef52de9ca1",
      "tree": "63659b6151de243ea608add08c3f5d2963c1bd3e",
      "parents": [
        "7ed1873acbf43280c5afe51833c3d628fe34e258"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 28 16:23:02 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Mar 01 04:20:18 2014 +0000"
      },
      "message": "Rename mSinkFormat to mMixerFormat for AudioMixer::track_t\n\nAudioMixer::SINK_FORMAT also changes to AudioMixer::MIXER_FORMAT\n\nChange-Id: Ic3f8be77d2c75c082c4fd140bc907e30c304d285\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "7ed1873acbf43280c5afe51833c3d628fe34e258",
      "tree": "6b52a5bf289ac63ae3c50fc472afba2756a5cc6e",
      "parents": [
        "52d623d44989a8f6b463d7d03c180df7011bc662",
        "3375bde6c6c1821fca3eeb4840774112e26c9a68"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Mar 01 01:54:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 01 01:54:57 2014 +0000"
      },
      "message": "Merge \"Use float_from_q19_12 conversion in AudioMixer\""
    },
    {
      "commit": "3375bde6c6c1821fca3eeb4840774112e26c9a68",
      "tree": "aba09d6bbf9ca0afbc360be7d608ac8d83d2983a",
      "parents": [
        "69aed5f0f4a3be3996d1e78a0473e1a72c1547da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 28 15:51:47 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 28 17:31:44 2014 -0800"
      },
      "message": "Use float_from_q19_12 conversion in AudioMixer\n\nChange-Id: Idbe84fb9610c7e636a84468f2e2402a913435ca9\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "e842614837e5401adf77e90485300c288b9a7876",
      "tree": "55f16374f804e52c4b2c07b248118f7fbf00fee5",
      "parents": [
        "b442921146664fba77b91f221e9b1997ffb8170e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 28 16:45:03 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 28 16:45:45 2014 -0800"
      },
      "message": "Use larger capture pipe since we support resampling by 6:1\n\nThis avoids overruns on the client AudioRecord side,\nwithout requiring client to use a large buffer.\nIt should not increase input latency, since a newly started AudioRecord\nalways joins the stream starting at the latest data.\n\nChange-Id: Ib2b8de75cc40a6a3d493a1f8b46b41220f69264f\n"
    },
    {
      "commit": "b442921146664fba77b91f221e9b1997ffb8170e",
      "tree": "c157b4aa4875084b326c5cc7249532164f0d5cbf",
      "parents": [
        "1b312a6f32d3144f21c8dd6449729c8c2bec05c5",
        "69aed5f0f4a3be3996d1e78a0473e1a72c1547da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 28 23:15:11 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 23:15:11 2014 +0000"
      },
      "message": "Merge \"Add MixerBuffer for accumulation of float audio\""
    },
    {
      "commit": "3c35c48a47e9cfbc25778652ff8423f905271a19",
      "tree": "7f4c946eb5bce922d622051862e1fb32bfe30799",
      "parents": [
        "eafbe37da9a08f7599281bc19e000cdf70ae08b6",
        "25c2dac12114699e90deb1c579cadebce7b91a97"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 28 22:34:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 22:34:44 2014 +0000"
      },
      "message": "Merge \"Rename mixBufferSize to mSinkBufferSize in AudioFlinger\""
    },
    {
      "commit": "eafbe37da9a08f7599281bc19e000cdf70ae08b6",
      "tree": "597dadfb75a959a5d4ee9a523c19bb8b41bcdade",
      "parents": [
        "625b57c5ab5fefde1547d89a061420be733fb7dd",
        "09a5007b17acb49d25cfa386a2e2534d942e8854"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 28 22:28:44 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 22:28:45 2014 +0000"
      },
      "message": "Merge \"Rename constants for MixBufferSize to SinkBufferSize\""
    },
    {
      "commit": "625b57c5ab5fefde1547d89a061420be733fb7dd",
      "tree": "95cc7a9d035cdfc5fb8d1c41c17c25db93b43b65",
      "parents": [
        "f0aaabfeab95f67889fd417947900d6ec7dbdd3c",
        "2098f2744cedf2dc3fa36f608aa965a34602e7c0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 28 22:28:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 28 22:28:01 2014 +0000"
      },
      "message": "Merge \"Rename mMixBuffer to mSinkBuffer in AudioFlinger\""
    },
    {
      "commit": "d2304db2fcb5112292105a0949a55986a4c9875f",
      "tree": "fe2723acf4c0eebcc39443769ab8b48840ddb48e",
      "parents": [
        "33ca5cf8826f5fcd9c011e8d336138b62d982f2a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 03 07:40:31 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 28 12:06:05 2014 -0800"
      },
      "message": "Rename setStreamOutput to invalidateStream\n\nAnd simplify by removing the unused I/O handle parameter \u0027output\u0027.\n\nChange-Id: Ie9c4df17a7378066312d4ed8790fda7a9125c95e\n"
    },
    {
      "commit": "69aed5f0f4a3be3996d1e78a0473e1a72c1547da",
      "tree": "fd8fcfcc236538dd9ef08f515e628b263933ee66",
      "parents": [
        "25c2dac12114699e90deb1c579cadebce7b91a97"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 25 17:24:40 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 18:45:57 2014 -0800"
      },
      "message": "Add MixerBuffer for accumulation of float audio\n\nPath into and out of MixerBuffer is set up, but not\ncurrently enabled.\n\nChange-Id: I9d50752607d22dd2a3d9cc7e053babf8dfb22958\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "25c2dac12114699e90deb1c579cadebce7b91a97",
      "tree": "bf71e59bf7a5286a0d28fb6ca111decafcf6fc57",
      "parents": [
        "09a5007b17acb49d25cfa386a2e2534d942e8854"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 14:56:00 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 14:57:59 2014 -0800"
      },
      "message": "Rename mixBufferSize to mSinkBufferSize in AudioFlinger\n\nChange-Id: I4d1d18d716fa3ad8c0e7cc87f5a2823422f504eb\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "09a5007b17acb49d25cfa386a2e2534d942e8854",
      "tree": "f2b15d896dc0f0a55aac0ee20c5c635391d4f567",
      "parents": [
        "2098f2744cedf2dc3fa36f608aa965a34602e7c0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 14:30:47 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 14:30:47 2014 -0800"
      },
      "message": "Rename constants for MixBufferSize to SinkBufferSize\n\nUpdated variable names are\nkMinNormalSinkBufferSizeMs\nkMaxNormalSinkBufferSizeMs\n\nChange-Id: I91969eae3f8c10275db8778634cbf05fdec0712b\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "2098f2744cedf2dc3fa36f608aa965a34602e7c0",
      "tree": "901ba9039b8baa3b33c82871e32430decceaac38",
      "parents": [
        "4d3c5bde85c5404d7927a770da90a5c9d09fb6a7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 14:00:06 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 14:22:08 2014 -0800"
      },
      "message": "Rename mMixBuffer to mSinkBuffer in AudioFlinger\n\nChange-Id: I1f55630425b8ce36e9df2aaf64e06a8960b69a47\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "8897759002677a7072a51a7f0b7cc63761c5f2d4",
      "tree": "0262364113e0ce2e521e28e29e117ee09fa26633",
      "parents": [
        "54c90d60e6d0d4cdaeab829a48c445bef53ba0d7",
        "53b5d098b7d5d4412b9b9fe08daaf84c56b716e9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 27 21:29:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 27 21:29:46 2014 +0000"
      },
      "message": "Merge \"Move up AudioFlinger::createTrack and openRecord parameter checks\""
    },
    {
      "commit": "53b5d098b7d5d4412b9b9fe08daaf84c56b716e9",
      "tree": "ca7d7dd39481b7d2651495587fbdbf1c1f0e087a",
      "parents": [
        "3d2e09f0221693de08129edd02adf340a44e7a38"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 05 10:00:23 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 27 13:25:35 2014 -0800"
      },
      "message": "Move up AudioFlinger::createTrack and openRecord parameter checks\n\nPerform the basic sample rate, format, and channel masks tests as\nearly as possible.  Now the thread methods only need to do the thread\ntype-specific checks.\n\nChange-Id: I57d8319a228dda0446ca9b3ddcb7c9f67f28238c\n"
    },
    {
      "commit": "4d3c5bde85c5404d7927a770da90a5c9d09fb6a7",
      "tree": "909399b3f44c2be0d967cf3d07fa3592e0431c8d",
      "parents": [
        "3d2e09f0221693de08129edd02adf340a44e7a38",
        "a1ab7cc8611c83427b57f6d4d4ce7aad9d1c0330"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 27 17:55:52 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 27 17:55:53 2014 +0000"
      },
      "message": "Merge \"Add Track Sink Format to AudioMixer\""
    },
    {
      "commit": "a1ab7cc8611c83427b57f6d4d4ce7aad9d1c0330",
      "tree": "8a519f604c7d5f0369ffaa6f9fb268c1906bfb68",
      "parents": [
        "56df9ff31d583ad3eae4f279a3df550273c58e1e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Feb 24 19:26:52 2014 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 26 16:01:08 2014 -0800"
      },
      "message": "Add Track Sink Format to AudioMixer\n\nTrack Sink Format now allows both AUDIO_FORMAT_PCM_FLOAT and\nAUDIO_FORMAT_PCM_16_BIT (default).  The float case is not\nenabled now.\n\nChange-Id: Ibee70cab4725c8bc9905e49f1f9a9c2448f76e00\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "b78d804b1090a430a126a6c356037ded96ffd91a",
      "tree": "e140d26911ba76f3c331a727d71bc07983921340",
      "parents": [
        "99ef241a8d310b3319c02eac18de9bb7422c5ab0",
        "1af34085e18c4d5ab297232f167a71e89ff7f65d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 25 19:36:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 25 19:36:49 2014 +0000"
      },
      "message": "Merge \"Fix 1:1 dynamic resampler rate setting\""
    },
    {
      "commit": "9d518f1aa50da9c3dfadb97090fb79aac886da12",
      "tree": "78338e30e55c5202bc219ab34a5e404dbc923abc",
      "parents": [
        "abe70ef5771b9dee1d8cbbef957ba48fdc9cad8f",
        "c52b033f0be38ca915d389b672bcf9c46b4c78ef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 24 23:11:50 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 24 23:11:51 2014 +0000"
      },
      "message": "Merge \"The -O option now takes a CSV instead of a single value\""
    }
  ],
  "next": "323da1015a758243c2c43017b026a01c6cf0c6f2"
}
