)]}'
{
  "log": [
    {
      "commit": "54b48c31fba71534ea56e32609f7ea770519fb2e",
      "tree": "29c30306457dc946dfe75663b2577f20d688dc52",
      "parents": [
        "034c20eab5e5d13591278bd415ea78fe0bb779b7",
        "a13cde98a880341f0a56d91da6364b093fb5d24e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 22:02:44 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 29 22:02:44 2016 +0000"
      },
      "message": "Merge \"Use audio_module_handle_t and audio_patch_handle_t consistently\" into nyc-dev"
    },
    {
      "commit": "a13cde98a880341f0a56d91da6364b093fb5d24e",
      "tree": "3974215c7cc52f2136c04e3e38568e0483c03129",
      "parents": [
        "45993ad8833063a50af83f76ec1ddeba673b5277"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 28 15:26:02 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:43:18 2016 -0700"
      },
      "message": "Use audio_module_handle_t and audio_patch_handle_t consistently\n\nBug: 27814144\nChange-Id: I54b7a73ec318779fd3addb060998f4d94141152d\n"
    },
    {
      "commit": "0be3be0cf5530d6faf655c325ec9d94a2bd53564",
      "tree": "3863687a9e7e04f67d4a1aa2c6a249ef8e07999f",
      "parents": [
        "45993ad8833063a50af83f76ec1ddeba673b5277",
        "e0a269a5f75956efdf78a9cacaefc428b352730c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Mar 28 23:50:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 28 23:50:02 2016 +0000"
      },
      "message": "Merge \"Fix FastTrack creation buffer count irregularity\" into nyc-dev"
    },
    {
      "commit": "9ce67b524236db52eadf558e7765775acad89f1f",
      "tree": "003ec6dcd057d91ccc84cfaa714d5b6a6b0ce650",
      "parents": [
        "15ac558b0f1873dbe0d9c1e6fed042a349f8b5a4"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Sep 30 11:40:47 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 25 08:06:28 2016 -0700"
      },
      "message": "Park FastCapture in HOT_IDLE while processing new parameters\n\nWithout this, FastCapture can starve RecordThread delaying\nhandling of new parameters.\n\nBug: 24667895\nChange-Id: Idb7113b7b0f96f2c35c655b6fdb3279f119ad1a3\n"
    },
    {
      "commit": "c05b8d7df46619d3474356241d47655478b8bc82",
      "tree": "27f4ef067be509b845673b603d52e723b0146fec",
      "parents": [
        "f4044e892d3939fb99ee545a5e8e8e2999f476b2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 24 09:48:17 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 24 13:34:44 2016 -0700"
      },
      "message": "Add AutoPark template class and use to control FastMixer\n\nBug: 24667895\nChange-Id: Id739a109aca13664b9390d2f9d9616fa2f88d188\n"
    },
    {
      "commit": "e0a269a5f75956efdf78a9cacaefc428b352730c",
      "tree": "df39c63afd12c3009c56a903779e2533aacf970f",
      "parents": [
        "5a898236109c3cb705241e66583d80df413198d2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 23 15:13:42 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 23 15:30:21 2016 -0700"
      },
      "message": "Fix FastTrack creation buffer count irregularity\n\nFor small values of buffer framecount, AudioFlinger may create a\nnormal track.\n\nBug: 27817933\nChange-Id: I7c69491fc1f2b204e14286fb4c2210c5983afb8b\n"
    },
    {
      "commit": "6b3305184ca24ac7561e245638250e04399a4401",
      "tree": "b12e604f064b7d12b851ce360c6fae316b1cc2fc",
      "parents": [
        "03e015d2e6d38de6e7041766b37fe03746e9c940",
        "e875c8016198b4d84225fcf45d905fc424e53553"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 23:32:44 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 21 23:32:44 2016 +0000"
      },
      "message": "Merge \"Make build warnings be errors\" into nyc-dev"
    },
    {
      "commit": "c42e9b462661673dff480ee71757a58b0f806370",
      "tree": "c9d53e761500f2466b7b8c4cfeb78b072d424e29",
      "parents": [
        "02c4f1c02b832868bbae2bf2c62039e54dc0b6d4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 11:35:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 12:05:28 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Idfdaff3a7a8f60cd8817bd306bfba28020a391c8\n"
    },
    {
      "commit": "7be6866af78a86a89113e9b680f1a6416ae1f711",
      "tree": "e89bc6fbcaecddfe83a01af125880b284f7ed496",
      "parents": [
        "76f27134fb546340154216212d84243d56a8928a",
        "57c4e6f7464d458eb52d209c2a63524913d6406d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:40:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:40:45 2016 +0000"
      },
      "message": "Merge \"Fix build warnings\" into nyc-dev"
    },
    {
      "commit": "57c4e6f7464d458eb52d209c2a63524913d6406d",
      "tree": "b7fae46bbc981c62460d572b51d6f68b9f9b847d",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:07 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:36:37 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: I33178dbe0bfc087d6599579ca0529ad853c669ed\n"
    },
    {
      "commit": "76f27134fb546340154216212d84243d56a8928a",
      "tree": "86365d4f0c5611a78c73fdb723b159dfa919274f",
      "parents": [
        "1c65a1d6e4a4a7c7a534aa6b178f4bb6e0967fb9",
        "8379b72b3c7febc5268bc8f9c152fd433a1e6c70"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:27:21 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:27:21 2016 +0000"
      },
      "message": "Merge \"Fix copy and paste error\" into nyc-dev"
    },
    {
      "commit": "1c65a1d6e4a4a7c7a534aa6b178f4bb6e0967fb9",
      "tree": "342906f6685f5b8f8614c10d2976df31e58f988b",
      "parents": [
        "c3418d0c742ecf6ee9719512325db974f4b743f3",
        "ec6a70345fc99cd9f8461749a7656b8240874a62"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:27:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:27:10 2016 +0000"
      },
      "message": "Merge \"Add systrace for normal read()\" into nyc-dev"
    },
    {
      "commit": "c3418d0c742ecf6ee9719512325db974f4b743f3",
      "tree": "cce198fa91ee4aa6d255561cf8d7ffdd7363dd23",
      "parents": [
        "1606b3f943aef3803f0ff53a6bba736a653a2896",
        "947ffa37beced7cca943477b4d748b0f6b279b0b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:26:23 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:26:24 2016 +0000"
      },
      "message": "Merge \"audioflinger: clear mMixerBuffer if frame is not ready\" into nyc-dev"
    },
    {
      "commit": "947ffa37beced7cca943477b4d748b0f6b279b0b",
      "tree": "e14e199cd3eb0e77491de7d317acfd65011c31b7",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Mohan Kumar",
        "email": "mkumard@nvidia.com",
        "time": "Fri Dec 12 15:16:46 2014 +0530"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:24:32 2016 -0700"
      },
      "message": "audioflinger: clear mMixerBuffer if frame is not ready\n\nClear the mMixerBuffer if frame is not ready before the FastMixer\nstarts processing. Otherwise it might result in large glitches on\noutput device due to junk data present in the mixbuffer.\n\nChange-Id: I9f025234d4ac100f85d2ec67c06a8df4195bea98\n"
    },
    {
      "commit": "1606b3f943aef3803f0ff53a6bba736a653a2896",
      "tree": "a84cde4f178cfa7b09e965c8a9a5e4dadab01368",
      "parents": [
        "32dc5a990b6180dcb919220dcbefcec92afd8cc2",
        "9cd7ad101315e0bff4c5f171706c6f80c7e22644"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 18 23:48:24 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 18 23:48:24 2016 +0000"
      },
      "message": "Merge \"audio: allow standby for direct track\" into nyc-dev"
    },
    {
      "commit": "9cd7ad101315e0bff4c5f171706c6f80c7e22644",
      "tree": "56ceda68334ad7b45e20ae40a8b4300239b86836",
      "parents": [
        "7f7052f5e45f8eb1df80a6978e0095d9e9c9eded"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Thu Mar 17 00:18:29 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 18 15:46:14 2016 -0700"
      },
      "message": "audio: allow standby for direct track\n\nDelay standby for offload track use case is not suitable for direct\ntrack in PCM format, because player torn down doesn\u0027t necessarily happen.\n\nTo avoid AP looping infinitely, allow standby right after direct track\nin PCM format is paused.\n\nBug: 27746493\n\nChange-Id: Id0026ac9891a12acc4affa446b2bc841559fcc28\n"
    },
    {
      "commit": "e875c8016198b4d84225fcf45d905fc424e53553",
      "tree": "dacbd6c32ea580d1e1dd6181066aeece4cda9442",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:52:27 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 15:14:48 2016 -0700"
      },
      "message": "Make build warnings be errors\n\nChange-Id: Ia9e32a36f5c0268c8e85ebf25168821d8ad0162d\n"
    },
    {
      "commit": "8379b72b3c7febc5268bc8f9c152fd433a1e6c70",
      "tree": "2055991561ab91205b6e2327cece99eb2a375c37",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:17 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 15:06:02 2016 -0700"
      },
      "message": "Fix copy and paste error\n\nChange-Id: I0976f5651e0004948108ef43eed3f89e21ecb38b\n"
    },
    {
      "commit": "ec6a70345fc99cd9f8461749a7656b8240874a62",
      "tree": "a1a7893d237f7d74128c0389ea4400c43fafdc19",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 14 07:40:23 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 15:00:23 2016 -0700"
      },
      "message": "Add systrace for normal read()\n\nChange-Id: Icba9c9fa648909604556305da7e2d9548f5b4b0c\n"
    },
    {
      "commit": "560a198f1f95a085e24944b20df536e75e21cedb",
      "tree": "bdecbf10f8294847938d4b0baa5dcf1a8ca3f9a8",
      "parents": [
        "c40fcb01669240e9c1a6af74bcb0fcd85147fa87",
        "8fa2697e21c61998f78c346251d2c08f77d720ea"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 18 20:23:25 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 18 20:23:26 2016 +0000"
      },
      "message": "Merge \"Update audio services for 64 bit compilation\" into nyc-dev"
    },
    {
      "commit": "fc1337d079ba7e6ffd7ce07706cfeeeb355c0200",
      "tree": "1a70a9e62e19bc4c0dbc2160c13a051039d10106",
      "parents": [
        "7c9ea89cbe3e42e0d94b1790ae1d424a9c16ce08",
        "e8972b0a27fac327c997fceb20d9abae1dc1d899"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 18 03:37:20 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 18 03:37:21 2016 +0000"
      },
      "message": "Merge \"AudioTrack: fix stall if setBufferSizeInFrames() called before play()\" into nyc-dev"
    },
    {
      "commit": "8fa2697e21c61998f78c346251d2c08f77d720ea",
      "tree": "17e06c62a4e47b816e63cf5fbae0907fbb2efb5f",
      "parents": [
        "7e258e85368ccc8e714235a22206527090685a9b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 03 13:19:27 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 17 18:06:46 2016 -0700"
      },
      "message": "Update audio services for 64 bit compilation\n\naudioserver still runs in 32 bits\n\nBug: 27479136\nChange-Id: I99ac607e4ce006a87abc2a3f838023e00ef78647\n"
    },
    {
      "commit": "e8972b0a27fac327c997fceb20d9abae1dc1d899",
      "tree": "ff3812507f2eb266870eac29c56921f4a548dacf",
      "parents": [
        "f56a02a5e7d1bfaeabf8b918e56bf49ea509bd42"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 04 11:29:57 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 17 16:09:38 2016 -0700"
      },
      "message": "AudioTrack: fix stall if setBufferSizeInFrames() called before play()\n\nThe server was waiting for a full buffer.\nBut the buffer was only getting partly filled.\nSo the stream was not starting.\n\nThe fix involves having the server look at the adjustable threshold.\n\nBug: 27505889\nChange-Id: I5dbf686413e670dacbbecc9e0f838744e465f44f\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "d848eb48c121c119e8ba7583efc75415fe102570",
      "tree": "06733e396ad546bf39be0a6699193d041883edad",
      "parents": [
        "38246e482ea3bd1e0f88f7133934ec4537b48bbd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 08 13:42:11 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 16 14:04:22 2016 -0700"
      },
      "message": "Use audio_session_t consistently\n\nBug: 27562099\nChange-Id: I328d8226191386b163f2ace41233607294c50dcd\n"
    },
    {
      "commit": "4e42d3ea2c33a2f6556299d9c54824ba32236bd0",
      "tree": "41b9ea4aecd4d4f838bf52570c8ed0720edf4d6a",
      "parents": [
        "6ae0468269dfd30fb22a1eb99417261c6c06d665",
        "f27ce4051c81a90f8f937a1b381e9e6ffa2bfa6b"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Tue Mar 15 13:03:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 15 13:03:36 2016 +0000"
      },
      "message": "Merge \"PatchPanel: Avoid null pointer dereferences.\" into nyc-dev"
    },
    {
      "commit": "4d231dc0ee34380956c71cbe18a750e487a69601",
      "tree": "cee9e9b9ff4d3aa17bca9269622e9f40d470ff09",
      "parents": [
        "f56a02a5e7d1bfaeabf8b918e56bf49ea509bd42"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 11 18:38:23 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 14 15:50:19 2016 -0700"
      },
      "message": "audio: Fix race condition in AudioTrack underrun.\n\nWhen audio flinger mixer removes an AudioTrack from the\nactive list in case of underrun, it is possible that the\nclient has written a full buffer just after the underrun detection and\nis blocked waiting for more space to write. In this case, the client\nwill never detect the DISABLED flag and the track never be restarted.\n\nAlso implement missing DISABLE flag detection in server side audio tracks\n(OutputTrack and PatchTrack).\n\nbug: 27567768\nChange-Id: I8d0753429d4113498258b1f61bd8ac5939a612f0\n"
    },
    {
      "commit": "f27ce4051c81a90f8f937a1b381e9e6ffa2bfa6b",
      "tree": "f6d8bfa6ae08c78ac4df513338627550b59bf67d",
      "parents": [
        "d5ef65ea897a7c0e3704000e33975f357bfc1c56"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Mon Mar 14 13:43:14 2016 -0700"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Mon Mar 14 13:43:14 2016 -0700"
      },
      "message": "PatchPanel: Avoid null pointer dereferences.\n\nWe wait until after checking \u0027handle\u0027 and \u0027patch\u0027 for NULL before\ndereferencing those pointers for logging.\n\nChange-Id: I5b90b87536f83c8f809b390951471d40cd8c27a4\n"
    },
    {
      "commit": "517161856d74f5fe39cce131f29b977bc1745991",
      "tree": "c12acaeb7597dd99c1a5f0c96d5af7f8a4b7b52a",
      "parents": [
        "db52e5e3dc15f7233ccd9c128fe43f2b2f58b29b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 29 18:00:56 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 02 17:40:18 2016 -0800"
      },
      "message": "audio flinger: fix offload track underrun\n\nFix offload track underrun detection causing early disabling\nof offloaded audio tracks.\n\nOptimize sleep time in case of underrun to avoid spinning while\nwaiting for new data.\n\nRe-enable offload when streaming\n\nBug: 26668110\n\nChange-Id: I874728c69647ac05e1effb84c48700a6d0ac7435\n"
    },
    {
      "commit": "7fd0422fbd17af3b24eb04421d37fce50f3826e2",
      "tree": "b06fbc7c5d058d4f1cb5491b1befa238642e71b8",
      "parents": [
        "2c073da0f02c3cf7cd4795af2d861222cbcab72a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 02 12:38:16 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 01 08:33:03 2016 -0800"
      },
      "message": "Sample rate 0 means a route-dependent rate\n\nRemove check for primary _output_ [sic] sampling rate for fast capture.\nClean up AudioRecord handling of frame count and sample rate.\nClean up AudioTrack handling of notification period updates.\nMake AudioRecord and AudioTrack more similar in order of operation, comments, and whitespace.\n\nBug: 25641253\nBug: 21019153\nChange-Id: I24a6677945987fc39a9bf93f70357e4bc7410f98\n"
    },
    {
      "commit": "2c073da0f02c3cf7cd4795af2d861222cbcab72a",
      "tree": "080be6a2e66a503d0d8653f5fc1261811bd1b83a",
      "parents": [
        "eeecb980ff4c202d0a3c4b0bfe040dce2f73336d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 09:14:08 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 01 08:33:02 2016 -0800"
      },
      "message": "AudioSystem::getSamplingRate and getFrameCount now work for input\n\nAlso fix whitespace and comment in AudioIoDescriptor.\n\nBug: 25641253\nBug: 21019153\nChange-Id: I6a1e2262f44f87ec3ebce6e5274f45ed0f47eb13\n"
    },
    {
      "commit": "eeecb980ff4c202d0a3c4b0bfe040dce2f73336d",
      "tree": "decce0d925acd9efd68f2d540bbabb60c0661c6b",
      "parents": [
        "91afc2297dd1c39302dba6ff68e9839aae27d39a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 10:44:04 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 01 08:32:58 2016 -0800"
      },
      "message": "Add use for audio_unique_id_t\n\nBug: 25641253\nBug: 21019153\nChange-Id: I65dc128e760c245f3d90559635a8981b186c87d7\n"
    },
    {
      "commit": "e736431c69e2a00468d140d2af97b63e0e5aa83a",
      "tree": "e9ac84c22b3e0b473deafb3df0afad84f391b9b0",
      "parents": [
        "5031b2f3ac5223587e48fc8463bec24cb62495ba",
        "58545be2ce4e701c8c37401edcc126a8b683890d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 25 20:19:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 20:19:38 2016 +0000"
      },
      "message": "Merge \"audio policy: add device for audio bus\" into nyc-dev"
    },
    {
      "commit": "ae0cff1d48b2cd10aeff9627398faf684894eece",
      "tree": "4aef282efa85820a4bba79027e26ea6fb394b904",
      "parents": [
        "f70077e43576f876bac08f3cf1f702b3c19b8184"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 13:57:49 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 15:44:12 2016 -0800"
      },
      "message": "Restore media.log service\n\nBug: 26306954\nChange-Id: I00319f4869f46941e4c814a29b2f69a62e572743\n"
    },
    {
      "commit": "1bf4df7d69a639e38fecf962e533244f98878e3f",
      "tree": "9a4785d3a424289af0c2a6f95da8c4524c8cf0c6",
      "parents": [
        "0b43502e026a31976fa2d316b72eea0508a9ae40",
        "9a00399340c7c129714dff96f1ab59045fe43056"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 16:40:33 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 16:40:33 2016 +0000"
      },
      "message": "Merge \"Restore audio tee sink\" into nyc-dev"
    },
    {
      "commit": "c54b1ffc92b8ad27608a8af21033d7cab33cb3a0",
      "tree": "f0669f28e645f742f06193afb8c6eb30b84a9478",
      "parents": [
        "af9c466b91eb43ffa4590b559fa8bb1003191ab5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 23 14:07:07 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 23 17:26:37 2016 -0800"
      },
      "message": "Fix AudioTrack presentationComplete regression\n\nBug: 27310929\nChange-Id: Id52299660d90b07220a4fd9996da53fe755a41f1\n"
    },
    {
      "commit": "9a00399340c7c129714dff96f1ab59045fe43056",
      "tree": "b70295d0bb4def6b690c3754d289ecc79a5497f9",
      "parents": [
        "1deb248c059cb79d4e4f3d0e4a1ca59533a8046e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 23 15:24:34 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 23 16:38:09 2016 -0800"
      },
      "message": "Restore audio tee sink\n\nAnd fix a bug in error logging\n\nBug: 27323882\nChange-Id: Ifc2cf18c651337ae305a38f25b6955f9b9128199\n"
    },
    {
      "commit": "58545be2ce4e701c8c37401edcc126a8b683890d",
      "tree": "a7a404115488202a1cb438845aaefe6531aae963",
      "parents": [
        "f214d6936f66052bfabc51e3355f800e41b511f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 18:54:20 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 18:54:20 2016 -0800"
      },
      "message": "audio policy: add device for audio bus\n\nAdd audio device category representing a bus in the\naudio subsystem. E.g a set of channels in MOST automotive bus.\n\nBug: 25448664\nChange-Id: Id00da57dc45037d4d8062e9a747c423940611539\n"
    },
    {
      "commit": "c085a757a28f36bdefeee1775fdbdce869c4c1f5",
      "tree": "8518006a23d134e38e511c0031d6ddd9aef476bf",
      "parents": [
        "798cfff899ebf53d769cc2de1e650c5ba49821ae",
        "818e7a32ce3633980138aff2c2bfcc5158b3cfcc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 23 00:37:44 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 23 00:37:44 2016 +0000"
      },
      "message": "Merge \"Implement server side playback timestamps with 64 bit accuracy\" into nyc-dev"
    },
    {
      "commit": "48816c0829d752dde7362ef86c857dbaa8e5c6c8",
      "tree": "0576afde4d170e7e5f85235b3a0866b711c4423f",
      "parents": [
        "1deb248c059cb79d4e4f3d0e4a1ca59533a8046e",
        "0b3b4093f99d10b4770fe28cc7d242a8e8eaa5be"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 22 22:18:36 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 22:18:37 2016 +0000"
      },
      "message": "Merge \"Add instructions and script for resampler test and performance\" into nyc-dev"
    },
    {
      "commit": "f214d6936f66052bfabc51e3355f800e41b511f2",
      "tree": "ac0a9449eac95d1ad4cf08dc86a71ec51abc9e4b",
      "parents": [
        "fcf5720ddba1bb9468fc9e3af6ef31a34ed4bfa5",
        "4699a6a4c1fa62cd72dfda7b08573678eabbcfa3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 22 16:12:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 16:12:45 2016 +0000"
      },
      "message": "Merge \"Clean up USE_NEON to make it easier to disable NEON for benchmarking\" into nyc-dev"
    },
    {
      "commit": "818e7a32ce3633980138aff2c2bfcc5158b3cfcc",
      "tree": "61104149c08955e55a10b9353f80ed140ad3df26",
      "parents": [
        "6ae5843c281301a9ffd1059d185620a9337e15a2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 16 18:08:07 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 19 13:15:16 2016 -0800"
      },
      "message": "Implement server side playback timestamps with 64 bit accuracy\n\nProvide server timestamps if the HAL doesn\u0027t provide it.\nProvide monotonic - boottime translation.\nIntegrate record timestamps and playback timestamps together.\n\nBug: 17472992\nBug: 22871200\nBug: 26400089\nBug: 26682703\nChange-Id: If1974f94232fcce7ba0bbcdf63d9e54ed51918ff\n"
    },
    {
      "commit": "cf1bbf3a12be653b825e230fd2785c14cd9b0192",
      "tree": "515a28e2e144054fa98b5ca537de8055b049cf7c",
      "parents": [
        "56d65dc0b4574b1d29132b25c90c83a8fb203c9e",
        "6ae5843c281301a9ffd1059d185620a9337e15a2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 19 19:58:00 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 19 19:58:02 2016 +0000"
      },
      "message": "Merge \"Enable FastTrack timestamps\" into nyc-dev"
    },
    {
      "commit": "6ae5843c281301a9ffd1059d185620a9337e15a2",
      "tree": "5c97c15b705c079bf8b2dc9ebb0a1ba17df8ca07",
      "parents": [
        "d25c45526d9598218433b0fa59e1f5accbd5b639"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 16 18:32:24 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 18 16:04:55 2016 -0800"
      },
      "message": "Enable FastTrack timestamps\n\nBug: 26413951\nChange-Id: Id54c32cb0f0be83d443f6cf1007181ebc461c586\n"
    },
    {
      "commit": "0b3b4093f99d10b4770fe28cc7d242a8e8eaa5be",
      "tree": "d162f8f33fe6c2f085884f31e2c38e0581b9fd5e",
      "parents": [
        "4699a6a4c1fa62cd72dfda7b08573678eabbcfa3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 16 10:50:51 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 18 09:26:02 2016 -0800"
      },
      "message": "Add instructions and script for resampler test and performance\n\nBug: 27242871\nChange-Id: I2238ddbe4861a85b28590a66d1c182afbb54b629\n"
    },
    {
      "commit": "4699a6a4c1fa62cd72dfda7b08573678eabbcfa3",
      "tree": "5ce6083c4b4b29fa6961ff59ab6f46b61a08f4af",
      "parents": [
        "262c39e35bf88e09dab3e0ae9f7df84db64273bb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 16 10:49:09 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 18 09:25:32 2016 -0800"
      },
      "message": "Clean up USE_NEON to make it easier to disable NEON for benchmarking\n\nBug: 27242871\nChange-Id: I30ba8bfe55885cde531706c760ec27e593d7f8b3\n"
    },
    {
      "commit": "505fd3025855f424353ae084495e1855522cf65b",
      "tree": "f7d8854d713da497926326003917982d334f55d4",
      "parents": [
        "262c39e35bf88e09dab3e0ae9f7df84db64273bb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 16 15:52:22 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 18 09:07:15 2016 -0800"
      },
      "message": "Disable ARM assembly optimization of legacy linear resampler\n\nIt has magic numbers in the asm() that no longer work,\nisn\u0027t used any more and not really much faster than the C version.\n\nBug: 13102576\nChange-Id: I56398a749ee0a45f31de9317e0a57e38d7b68a69\n"
    },
    {
      "commit": "8ce8e264d0bf09ec131e4a7701fe1ebc3a678f8b",
      "tree": "0938951613cb0d2725a01f84840571c4c50a0998",
      "parents": [
        "bc57b12030cbd4885d9231e721bbfed1b6522212"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 16 11:59:23 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 16 11:59:23 2016 -0800"
      },
      "message": "Revert \"Enable FastTrack timestamps\"\n\nThis reverts commit b3a486fecddc9e9264fe63d356eca0812493db27.\n\nReverting while investigating the root cause.\n\nBug: 27186414\n"
    },
    {
      "commit": "b0a144d705a021994628d136a170a6d2bd4282e7",
      "tree": "f6144a26c0e19fa9a7ba75e136c80afeb9ecf14a",
      "parents": [
        "7f308c3e0556a5e704bcb3b341842ed50ba80b0a",
        "fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 12 22:24:53 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 22:24:55 2016 +0000"
      },
      "message": "Merge \"AudioTrack: support ENCODING_IEC61937\" into nyc-dev"
    },
    {
      "commit": "fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb",
      "tree": "b8c3d97da524e8aefcb37e736619da6b8e087a82",
      "parents": [
        "3ea4f828a6906e9931f96ebdcae9c63e14b86cbd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 09 10:47:02 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 12 06:30:43 2016 +0000"
      },
      "message": "AudioTrack: support ENCODING_IEC61937\n\nSet DIRECT flag.\nUse audio_has_proportional_frames() instead of audio_is_linear_pcm()\nwhere appropriate.\n\nBug: 24541671\nBug: 20891646\nBug: 26373761\nChange-Id: Ia32036b18683b084d6c9887593df87397ea0afd9\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "e99556b85081778027653bd3e716a529ab518b35",
      "tree": "b7895d2eead6577be1f77ed8c28d205ebd6e5b3d",
      "parents": [
        "dea9cbc6badae6a03a16fa49a02215f18e3ed93a",
        "e10393e72454bfd8298017dc193faf424f4e9a8f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 12 04:06:53 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 04:06:54 2016 +0000"
      },
      "message": "Merge \"Fix audio timestamp computation for pause, stop, and dynamic speed changes\" into nyc-dev"
    },
    {
      "commit": "b3a486fecddc9e9264fe63d356eca0812493db27",
      "tree": "cd2ff28eac5233cdb2037b437cb68abe9b9dff3c",
      "parents": [
        "e8c8ed47ca15aa6be83c6feef89e27a832e763e9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Aug 04 15:17:58 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 12 00:34:47 2016 +0000"
      },
      "message": "Enable FastTrack timestamps\n\nBug: 26413951\nChange-Id: I99a69241a0bcd69f6bfebf785cac6d9ee1e2cd5f\n"
    },
    {
      "commit": "e10393e72454bfd8298017dc193faf424f4e9a8f",
      "tree": "e7d3946c0e12b8f50e351a401eaa35986e2d0f2d",
      "parents": [
        "e8c8ed47ca15aa6be83c6feef89e27a832e763e9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 12 13:59:33 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 12 00:17:13 2016 +0000"
      },
      "message": "Fix audio timestamp computation for pause, stop, and dynamic speed changes\n\nTimestamp on pause and underrun (stop) do not reflect actual position.\nTimestamps do not account for dynamic changes to track speed / sample rate.\n\nBug: 11085154\nBug: 17552775\nChange-Id: I0e5e40ab3eaee82f0c91b9f399089698a0b1947e\n"
    },
    {
      "commit": "3f0c902beb53a245c9db35e871607dba05b8d391",
      "tree": "93b456b76dd9504e53de955f75c5c6a4f3d2be7c",
      "parents": [
        "00803f7e94052144ecf476268bc717191ee29865"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 15 17:49:46 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 10 15:57:51 2016 +0000"
      },
      "message": "Add AudioRecord timestamps\n\nBug: 13569372\nBug: 22886739\nChange-Id: Ibc81afefb733d23676a632a0f2da31163fdbe05f\n"
    },
    {
      "commit": "6e63ee89d0acd39d20c4aa48ef9eb717d0a89a0b",
      "tree": "60f3b00406f36fdabc726812f92d1539f2559123",
      "parents": [
        "8f94fb419597677df23bd3cd5d0767ae1d36dd92",
        "cdf924a32579e92ea456e8e7d5c14ed5920b620f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 05 16:48:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 05 16:48:37 2016 +0000"
      },
      "message": "Merge \"audio flinger: add check in getInputBufferSize()\""
    },
    {
      "commit": "cdf924a32579e92ea456e8e7d5c14ed5920b620f",
      "tree": "5bf84116acb58e98506f95bd93bccbf39d678309",
      "parents": [
        "da53ce37c5283fad74d213f855ed8f4a078b860c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 04 15:57:56 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 05 16:46:29 2016 +0000"
      },
      "message": "audio flinger: add check in getInputBufferSize()\n\nMake sure that the sample rate passed to getInputBufferSize()\nis not 0 to avoid divide by 0 in destinationFramesPossible()\n\nAlso check the channel mask parameter for validity.\n\nbug: 26866012\nChange-Id: Ifabbf56cadb0db104f99230cacdba30e0c6a0a3a\n"
    },
    {
      "commit": "03c48d5afcb3dfc1e43df93e1f3b3b3e9292e148",
      "tree": "14e38bde5515cc54b0295faf92c13c37097f53e7",
      "parents": [
        "16558ea318c3cf25a945fc1771572f489763527e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 27 17:25:17 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 01 11:11:51 2016 -0800"
      },
      "message": "Add limiter for mono blend\n\nBug: 26904791\nChange-Id: I76b16e70871cd9fc0a9b8badc66f27069fabe1cb\n"
    },
    {
      "commit": "d79072e9dff59f767cce2cda1caab80ce5a0815b",
      "tree": "cab9cab36ddf4bb61675c4508d923b283fd3edd6",
      "parents": [
        "a7b723715bab4ddf6db364c825135a9bc003c7c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 06 08:41:20 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 25 15:34:04 2016 -0800"
      },
      "message": "Remove TimedAudioTrack and associated code\n\nBug: 8278435\nChange-Id: I095c1a4888e645e14d93b0b15fbef4524a831ca1\n"
    },
    {
      "commit": "2812d9ea3a3a33142dd8e23c9d949c498d6f7a12",
      "tree": "5079c758817d0c42b3f7ade661366fdae25fe5d1",
      "parents": [
        "e0db30868d9734f95a02df516dd0dc6a7226474b"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jan 04 10:34:30 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Sat Jan 16 11:21:38 2016 -0800"
      },
      "message": "AudioTrack: Add getUnderrunCount()\n\nThis allows an app to detect application-level output glitches.\nUnderrun counts survive track recreation.\n\nChange-Id: I8eb14e92f6fc1007718a29b0666ab51ace30cdb8\nBug: 25641253\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "197f766a0e3c37efe4fe941553511c6022cf10b1",
      "tree": "342baa9626fcb0c977ea72a37f00932be613a04c",
      "parents": [
        "59950b403076a94828668902d30215ac5a733902",
        "42537be61479e59c4718e1304364551c1454f63c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 12 00:53:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 12 00:53:45 2016 +0000"
      },
      "message": "Merge \"audioflinger: fix standby delay on A2DP output\""
    },
    {
      "commit": "42537be61479e59c4718e1304364551c1454f63c",
      "tree": "6afec3010213d47681980d4c9ac0cda9aaa81cab",
      "parents": [
        "a3e696da3872250bca66a62d93a3b6114e20c27d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 08 17:16:42 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 11 16:20:17 2016 -0800"
      },
      "message": "audioflinger: fix standby delay on A2DP output\n\nMake sure that standby delay is never less than the audio flinger\ndefault on A2DP output.\nDue to variable latency and amount of buffering in A2DP sinks,\nan agressive standby delay could lead to truncated audio.\n\nBug: 25830539.\nChange-Id: I38be37ad346f5f4bf8303d3db4e3e911bf637968\n"
    },
    {
      "commit": "64f1901bdddf464c8f29bed34e3449762873b3e9",
      "tree": "78b461038b8ee9ab49825d180c9d21347831c9a0",
      "parents": [
        "38b85c29b5be56e660b162da8a13129ac20f8daf",
        "2ddee19245641e86bca436dda23a0f5089bf2ab5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 08 23:17:57 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 23:17:57 2016 +0000"
      },
      "message": "Merge \"Add setMasterMono and getMasterMono\""
    },
    {
      "commit": "2ddee19245641e86bca436dda23a0f5089bf2ab5",
      "tree": "ee665bb2097db2710211eb1d834510201b02ab59",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 18 17:34:44 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 08 14:09:31 2016 -0800"
      },
      "message": "Add setMasterMono and getMasterMono\n\nBug: 15283594\nBug: 22700363\nChange-Id: I32dc1fcecf285967a61bd508af3bb299595db57d\n"
    },
    {
      "commit": "fe9f9ca670844219b6819de1a7cd51fe245bdbbc",
      "tree": "392264262ca5b5a33cc0be130f2706c4c0da6998",
      "parents": [
        "53e142a0ee3cf18bcc4a88761bd771c5d4eff65f",
        "8a397d583a4f4cf24ad88facaf2fd33990cfb811"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri Jan 08 12:51:27 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 12:51:27 2016 +0000"
      },
      "message": "Merge \"Adding UNPROCESSED to the available audio_sources\""
    },
    {
      "commit": "c9132a8606b136b7af47923dea951515c4484605",
      "tree": "30c973dedf98358a18f27c3d9b3898aadce58f48",
      "parents": [
        "2ce504f922bfc43e02b96b63cf5474845b53bdb6",
        "cb4432af8dc3abc8dc4cc8e5d6080cc68a862ea1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 07 15:54:46 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 07 15:54:46 2016 +0000"
      },
      "message": "Merge \"Use FCC_2 and FCC_8 to highlight channel count assumptions\""
    },
    {
      "commit": "879db19219c120d424f7d7ad7164c3cfe56124e4",
      "tree": "8a5ac3f034e03ad61e4c5f402f4a4fd53a53a716",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 05 16:00:34 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 05 16:01:13 2016 -0800"
      },
      "message": "Fix compile warning\n\nChange-Id: I7d88292cbb07b9894ec4c7d60e71f547d93b3c89\n"
    },
    {
      "commit": "cb4432af8dc3abc8dc4cc8e5d6080cc68a862ea1",
      "tree": "3193b181150fb60e2462244c9b3a356024e0e4f0",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 16 07:26:30 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 05 10:43:18 2016 -0800"
      },
      "message": "Use FCC_2 and FCC_8 to highlight channel count assumptions\n\nBug: 21656069\nChange-Id: I7678adaac2c4cb429465e2eef03c1c711e550e99\n"
    },
    {
      "commit": "8a397d583a4f4cf24ad88facaf2fd33990cfb811",
      "tree": "3d35ebfc3bfbc18e0983e35d1f59892c2c3ee42c",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Wed Dec 02 11:27:57 2015 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jan 05 07:04:37 2016 -0800"
      },
      "message": "Adding UNPROCESSED to the available audio_sources\n\nbug: 25564291\nChange-Id: I86d8feda4d687352f98b640819211207a06d6b50\n"
    },
    {
      "commit": "ce7176868977b0d44b245735bd8d3d8e54e61035",
      "tree": "e9acdbbddb0fd6ada0bfab96d5e80c21e08cccf4",
      "parents": [
        "44333e51c62643e7581022495a2a1f410dd62e27"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 22 13:40:32 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 22 14:27:51 2015 -0800"
      },
      "message": "Disable media.log until service is ready\n\nBug: 26235256\nChange-Id: I99dd980d2b6d789347023a19737b7d65b0608267\n"
    },
    {
      "commit": "438e7572c83674f4b9e6184f32f3dc94cd50524e",
      "tree": "b17af7ebabe29805ff116988b9fd5663bde75417",
      "parents": [
        "7b279bbc24139ee1e01b58055ca94926ec18e2e9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 14 15:51:17 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Dec 14 15:51:54 2015 -0800"
      },
      "message": "AudioFlinger: change logcat error to warning\n\nChange wakelock token error to warning if AudioServer.java\nhasn\u0027t issued systemReady() yet (from boot or audioserver died).\n\nBug: 26069693\nChange-Id: I8ab1ec06a30a476e058bf0dde50bfbbc60243570\n"
    },
    {
      "commit": "dcb346b7dc5b88c3e85db8a70bbd6a2fee8192b9",
      "tree": "e0038e85e097843f469a6befe9fae1014435f4f5",
      "parents": [
        "ebdddf82b07fa2c4134c3c00dbbbaa1ad3286726"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 09 10:47:29 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 11:29:11 2015 -0800"
      },
      "message": "Run audio services in audioserver instead of mediaserver\n\naudioflinger, audiopolicy, (fm) radio, soundtrigger moved to audioserver.\nmedialog is removed from mediaserver.\naudioserver has same permissions and rights as mediaserver.\n\nmediaserver is allowed to specify client uid to audioserver.\n\nSubsequent CL will add medialog to audioserver.\n\nTBD: Pare down permissions.\n\nBug: 24511453\nChange-Id: Iccaa08b874a502710d142e72f8abbb3d97c44cfa\n"
    },
    {
      "commit": "2a4e18da8ee0521a48285643586159946298caef",
      "tree": "dfc925389d78d5d6fe872665d9fb5221a1ece9d2",
      "parents": [
        "74721e5cf4b007cfcb644224df1f50a64891a412",
        "f7d65ee34f64e8fad9c5af3f11da783193caf5f9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 03 00:18:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 03 00:18:21 2015 +0000"
      },
      "message": "Merge \"Add logging to help diagnose a rare bug\""
    },
    {
      "commit": "818da521b6a487518f54614b9eba68957a8d8aeb",
      "tree": "2bebe90e0200afccc7833698cc2eb89507204e1b",
      "parents": [
        "2f90c51d42efa881a9e54e4f4efadf99398304f9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 02 13:53:26 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 02 13:53:45 2015 -0800"
      },
      "message": "Fix build warnings\n\nChange-Id: Ic329a9852589247ed797b6a6cfed735ff3af184a\n"
    },
    {
      "commit": "f7d65ee34f64e8fad9c5af3f11da783193caf5f9",
      "tree": "a4480f4fedd254ad9aba751bcc1c3620beb9cd3e",
      "parents": [
        "4d81d15fdaf302d20740bcaaa3100b62dd49e243"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 02 13:45:01 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 02 13:46:43 2015 -0800"
      },
      "message": "Add logging to help diagnose a rare bug\n\nBug: 25911696\nChange-Id: Idca44ed873f0a9fa911e9cb1c3a09b4e7e4f23eb\n"
    },
    {
      "commit": "2f90c51d42efa881a9e54e4f4efadf99398304f9",
      "tree": "1c5096fb8a6eb67640f836fedf2289d8dcb5b0bc",
      "parents": [
        "3f273d10817ddb2f792ae043de692efcdf1988ae"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 02 11:40:09 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 02 20:55:56 2015 +0000"
      },
      "message": "Don\u0027t place large objects on the stack\n\nBug: 25020816\nChange-Id: Ife4da9fc3000e645f654f2eb28b37ad3a89d61f9\n(cherry picked from commit fc39dd9f653754315df3ff7f76b8a193829a76e8)\n"
    },
    {
      "commit": "3f273d10817ddb2f792ae043de692efcdf1988ae",
      "tree": "85d7e25da5a8a1d7c86487821004246ccab36e03",
      "parents": [
        "c5fcd06e9c332a60ba5fcba2118270dbdf22ae42"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Nov 24 09:06:49 2015 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Dec 02 18:18:03 2015 +0000"
      },
      "message": "Uses AudioFlinger to signal battery stats for audio.\n\nBug: 18177221\nChange-Id: I704010c037cb99bb74b98798ee8e494fa8bdc875\n"
    },
    {
      "commit": "d60560af7cb559762593161c8202459cc01fb0f5",
      "tree": "d2913f6eb8ded236fba95d7920cca8f7906288e6",
      "parents": [
        "0443ba44a1ebda31bc3642cd91a0570694f29ec1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 11:31:20 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 29 16:55:40 2015 -0700"
      },
      "message": "audio policy: add support for external audio sources\n\nAdd support for activity on external audio sources.\nAn external source reflects activity on an input audio device\nthat must be controlled (both routing and volume) by the\naudio policy manager.\nFirst, the input device must be connected with setDeviceConnectionState().\nThen, the source activity is indicated with startAudioSource() and\nstopAudioSource() APIs.\nstartAudioSource() indicates the source device with an audio port configuration\nand the use case by the audio attributes.\n\nOnce a source is active, its routing and volume are controlled by the policy manager\nas it would for a software source (AudioTrack).\n\nChange-Id: If5805d58a4356b2f681f1aabf54375f62b55b98a\n"
    },
    {
      "commit": "10cfc14fadae08cd5806c4834e28aa9f743f550e",
      "tree": "61ff6805c1197513bb6a7e802b99c9229bce1875",
      "parents": [
        "386d2fe3c282899f5395a120121e082f8eca1dc6",
        "937c34741e476f26ddd0ff28a2af5e1bcd96895c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 28 19:47:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 28 19:47:35 2015 +0000"
      },
      "message": "Merge \"Add missing entries for input and output flags\""
    },
    {
      "commit": "937c34741e476f26ddd0ff28a2af5e1bcd96895c",
      "tree": "637e3baea5f3ae7c16480232c6f6a8b1dd99f8bc",
      "parents": [
        "cdd1dfd23e9976536e2dad103b6c357927fca27d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 28 10:21:06 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 28 10:21:06 2015 -0700"
      },
      "message": "Add missing entries for input and output flags\n\nBug: 24141510\nChange-Id: Ia151bc7d25d72864992888c33547a34adf460a9b\n"
    },
    {
      "commit": "060b582b37f55b758a41b0cc26dc1ff6d112814f",
      "tree": "8c4ff6e6c03cef46f38f6fd6f7a4c837420fa45e",
      "parents": [
        "2d93abfb06455176b7f2fcde0d9fd4dfe7a0973c",
        "b171ba8ce83ebb5abc2de9a171a15dc974756d3d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sun Sep 27 15:12:31 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 27 15:12:31 2015 +0000"
      },
      "message": "am b171ba8c: am ffce26c0: am f99498ee: CameraService: Use SCHED_FIFO for request queue thread in HFR\n\n* commit \u0027b171ba8ce83ebb5abc2de9a171a15dc974756d3d\u0027:\n  CameraService: Use SCHED_FIFO for request queue thread in HFR\n"
    },
    {
      "commit": "f99498ee4de7123e2fd71778c6877be44fbd1506",
      "tree": "76fc5f13ab660c053101f09a701187259952e90a",
      "parents": [
        "8595eaab5884bb74d884d366ad6e371a296bf576"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 25 16:52:55 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sat Sep 26 11:22:20 2015 -0700"
      },
      "message": "CameraService: Use SCHED_FIFO for request queue thread in HFR\n\n- Move SchedulingPolicyService from audioservice to mediautils\n\n- When starting up a high speed stream config, set request queue thread\n  to SCHED_FIFO using SchedulingPolicyService\n\nBug: 24227252\nChange-Id: I224b59142bd111caf563779f55cddd62385b9bac\n"
    },
    {
      "commit": "0a01c2fb68e6f35905de8dfaf938d099cd48587d",
      "tree": "43fe76eeaa8bc22a229875722ed62f51cf972ee0",
      "parents": [
        "71d7a944b5a26787c94e32f652245b61c606c485"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 21 12:44:54 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 22 15:30:43 2015 -0700"
      },
      "message": "AudioFlinger: Clear record buffers when starting RecordThread\n\nBug: 24267152\nChange-Id: I58c55e56b85067b71e4e300f947b4dfc159637ba\n"
    },
    {
      "commit": "e6fb82a207f5256933e2d83e77262331af50a27f",
      "tree": "c1dda7d2e1d4c3439f804e0c4039eeb8d89f27cd",
      "parents": [
        "6dc5a7bce1fdb89aae91967fc984da521e6ca2b2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 09 14:39:02 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 16 21:18:09 2015 +0000"
      },
      "message": "For static obtainBuffer(), do not set mUnreleased if acknowledging flush.\n\nstatic audio tracks use obtainBuffer() to update position in start().\n\nBug: 22938515\nChange-Id: I8ae32f6cce4d122386d2cf8982e158049b04ba9a\n"
    },
    {
      "commit": "f99d57eec148eb0c9f9cf43fbf5f6bf382d7ec4b",
      "tree": "029d429a84a37e1c7f33facb755a038e408478d6",
      "parents": [
        "83aaa0fb5e8859cfb26de71298dcc42e9622dc03",
        "a23408f74a4dd9502ca23a824acb280bdcf07738"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Sep 12 05:08:06 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Sep 12 05:08:06 2015 +0000"
      },
      "message": "am a23408f7: am 24a9cb4e: am 5c0adc3e: Merge \"Workaround static fast track start-after-stop issue\" into mnc-dr-dev\n\n* commit \u0027a23408f74a4dd9502ca23a824acb280bdcf07738\u0027:\n  Workaround static fast track start-after-stop issue\n"
    },
    {
      "commit": "5c0adc3e632fbb2929cb20e32a8a9f2864c01490",
      "tree": "9c11b5a85c2e73e23ca0e57633ba4b4288a28523",
      "parents": [
        "014e91e471edba3f9b2c71ff6025274716b0f587",
        "a542782d0045588e55e075a763cedcd2d504ad22"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Sep 12 01:26:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Sep 12 01:26:56 2015 +0000"
      },
      "message": "Merge \"Workaround static fast track start-after-stop issue\" into mnc-dr-dev"
    },
    {
      "commit": "a542782d0045588e55e075a763cedcd2d504ad22",
      "tree": "972b585a13ec997abea11db48f4c438c6a93bf05",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 16:15:35 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 11 16:18:12 2015 -0700"
      },
      "message": "Workaround static fast track start-after-stop issue\n\nBug: 23291988\nBug: 23614327\nBug: 23924081\nChange-Id: Id1a519ed4bb2a6f4cb197da8450f7069b55c0d48\n"
    },
    {
      "commit": "c06f0ef67f02f88e01e2b2679e83c87628dbfc1a",
      "tree": "ab5e58f6145f75e9a823057f4001fd9209901831",
      "parents": [
        "74adefb32f6694d45416d11b5c3000b404e94506",
        "b7b97b9d897581b30f4bba78ec360474646c230a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 11 03:49:54 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Sep 11 03:49:54 2015 +0000"
      },
      "message": "am b7b97b9d: am 48e879db: am a2ab4505: audio flinger: force audio path start from normal mixer\n\n* commit \u0027b7b97b9d897581b30f4bba78ec360474646c230a\u0027:\n  audio flinger: force audio path start from normal mixer\n"
    },
    {
      "commit": "a2ab4505c807f42afe34809409c4e85d91618a8c",
      "tree": "cffdeb827eb93870aa692b8a9d3a0842ff8405de",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 12:25:51 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 10 10:31:27 2015 -0700"
      },
      "message": "audio flinger: force audio path start from normal mixer\n\nThe audio HAL wakes up and configures the audio path when receiving\nthe first write() in standby state. This causes a certain amount of\nprocess to take place in the mixer threads which is problematic for\nfast mixer running at FIFO priority.\n\nWe now force a fake write() of 0 bytes from normal mixer to trigger\nthe audio path configuration before starting the fast mixer.\n\nBug: 23791972.\n\nChange-Id: I54311b337fda956444846f5d2f53a3263d54e04b\n"
    },
    {
      "commit": "38a1bf53f244617fdf7cc9c0c378966248651405",
      "tree": "33ab9299cd14e852d5d6212367d4cdccbe721359",
      "parents": [
        "1f7886d495246431d0d520adeefc903c694a2c18",
        "891cf088572de78ff8696d0aee5eb13d502ae665"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 21:59:34 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 09 21:59:34 2015 +0000"
      },
      "message": "am 891cf088: am f30fd800: Merge \"Revert \"Do not acknowledge flush() on start() for static tracks\"\" into mnc-dr-dev\n\n* commit \u0027891cf088572de78ff8696d0aee5eb13d502ae665\u0027:\n  Revert \"Do not acknowledge flush() on start() for static tracks\"\n"
    },
    {
      "commit": "564d144fc28917d42e3a67718ac51d61bfc36315",
      "tree": "6db8c93d002f5594bf80ee709706609a4df92fb4",
      "parents": [
        "27e0350ae57184d5e300f96c8338379f5d3d0fbc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 12:26:52 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 09 12:41:10 2015 -0700"
      },
      "message": "Revert \"Do not acknowledge flush() on start() for static tracks\"\n\nThis reverts commit cafe86a9cb6625bb1ec6383e16e28e4c9e455f87.\n\nBug: 23924093.\nChange-Id: I186d1013b06a286eca93c30bb9b3545dc36695ff\n"
    },
    {
      "commit": "f87c2f5eb4e37f0950962e31b9ca49e32f5b0864",
      "tree": "ccfb48c882e1be213fb7db96d9016be40adadebf",
      "parents": [
        "1f04884c0f4d0eafe7ce8f09b0e5302ff3a86ea6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 21 08:03:57 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 08 13:47:23 2015 -0700"
      },
      "message": "dumpsys was missing \"processing\" for format and frame size\n\nChange-Id: I6931b18a6a85bf0638d659e31bca5aa6c8cf62bf\n"
    },
    {
      "commit": "cafe86a9cb6625bb1ec6383e16e28e4c9e455f87",
      "tree": "14b334794322ae63ad0e1478bf9ccdc38335a55d",
      "parents": [
        "b3b34074477b9f8713924e18f7a0120965112720"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 14 09:34:50 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 24 19:07:39 2015 +0000"
      },
      "message": "Do not acknowledge flush() on start() for static tracks\n\nBug: 22938515\nChange-Id: I1de653de169a3fbbaa693da6057897ea57772447\n"
    },
    {
      "commit": "7989c6e1d4c132ad1863a20338c29fea5b1579cc",
      "tree": "bcba15c19a7a0fdb700a2ae618e1308d3ba1d754",
      "parents": [
        "9bb2ae4a924cfd67803c75b7e360afb0ddf88e03"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 14 09:34:50 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 24 18:28:57 2015 +0000"
      },
      "message": "Do not acknowledge flush() on start() for static tracks\n\nBug: 22938515\nChange-Id: I1de653de169a3fbbaa693da6057897ea57772447\n"
    },
    {
      "commit": "ed926597544b0bb945fe6965d49b7612c09abc1e",
      "tree": "ab060bebb6f49c51e51ffd0e84fb64ce6f8aaa9c",
      "parents": [
        "d0d4fa0f0f62a8f860d99e906e5294f487d8cbf1",
        "da73b6c7474aaa5616f0214e238776f12717f32b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 24 16:46:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 24 16:46:52 2015 +0000"
      },
      "message": "Merge \"audioflinger: increase shared memory heap size\""
    },
    {
      "commit": "da73b6c7474aaa5616f0214e238776f12717f32b",
      "tree": "23d1293f0bea6dfc85344639ed4fff3585753f0b",
      "parents": [
        "9a57d1cb51ef14a666eefb32b245dd47cf79844e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 16:18:53 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 21 17:40:02 2015 -0700"
      },
      "message": "audioflinger: increase shared memory heap size\n\nBug: 21093153.\nChange-Id: I389af11451b01ce49fdb8957e2f322ba1925a62e\n"
    },
    {
      "commit": "6d62669e2796df93135e58388f75e6780f6a207e",
      "tree": "aef82aa15844e145a28e5e27798bc83a7224a2db",
      "parents": [
        "4327df2af078894c38a8eb69f4873bef92cc0f83"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 21 12:53:46 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 21 13:00:48 2015 -0700"
      },
      "message": "TimestretchBufferProvider: getNextBuffer should follow API\n\nIf no data, should return 0 frame count and NULL ptr.\n\nBug: 23293002\nChange-Id: Ib5364e5bceb15c2dddc4a16e85299b409cf4e137\n"
    },
    {
      "commit": "41ae1d663d896a9ec22299d95c01940313a9b276",
      "tree": "0d6246404b453fd7ebb7d134d3b02ce6e01c5869",
      "parents": [
        "6134ad6fdeab91e54a1abc8f00eafc956e42fb3d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 04 11:11:28 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Aug 04 11:11:28 2015 -0700"
      },
      "message": "AudioFlinger: tell HAL the PCM is non-audio\n\nAdd a bit to tell the HAL that the PCM data is really encoded audio\nwrapped in a data burst.\nOtherwise the device may try to play the encoded data directly\nwhich will sound like modulated white noise.\n\nBug: 22576112\nChange-Id: Ib140da96876e849023858fe2510612310501d1ee\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "5ce059661dcbab8924edab400681fc408ee76123",
      "tree": "82709f0f74d4c8e89e8acdd751784a5f9103d620",
      "parents": [
        "9f00e69c5f2702b66e9bdf8f4f75f99a338738d7",
        "eb9487e10294a4e73977f460f30eeaff503acd21"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 24 20:28:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 24 20:28:43 2015 +0000"
      },
      "message": "Merge \"Fix capture overruns at non-primary sample rate\" into mnc-dev"
    },
    {
      "commit": "a97630bda8815958587ca31adb2d37090022af25",
      "tree": "edff2365d23d227a22248f30dd8acf217801fa8d",
      "parents": [
        "17d0efd17fbb2573adcde8dcbe77726f622817da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 22 23:27:24 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 22 23:31:54 2015 -0700"
      },
      "message": "Fix record memory buffer allocation for legacy upmix/downmix\n\nBug: 22173057\nChange-Id: I8f5056ff5a1252c71a3d3b354440551bcd9fd466\n"
    },
    {
      "commit": "eb9487e10294a4e73977f460f30eeaff503acd21",
      "tree": "fdd7dfd6fd2074f9d0684ed9b11dd851dc469d50",
      "parents": [
        "8f0547a954b39d5750488be7e060ebe1ebfdf666"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 22 09:15:17 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 22 12:20:43 2015 -0700"
      },
      "message": "Fix capture overruns at non-primary sample rate\n\nand small buffer size.  Also:\nPull out the magic number \"12 ms\" to a named constant.\nRemove obsolete AudioFlinger::mPrimaryOutputSampleRate.\n\nBug: 22662814\nChange-Id: I261f75a222c4505a84aad2493d251bd2dea59f68\n"
    },
    {
      "commit": "ca5e6143740299c877d69e97f7968cd04476d32c",
      "tree": "50101b57406c5abce066ec90120d91d3dfd0152b",
      "parents": [
        "bc24bb8a552097e7975d0c16fad80158b542ba62"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jul 14 09:42:29 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Jul 17 20:56:04 2015 +0000"
      },
      "message": "AudioFlinger: fix repeated underruns for compressed audio\n\nThe AudioFlinger kept pausing the audio when playing compressed AC3 or DTS.\nThis caused pause/resume loops that were hard to break out of.\n\nThe AudioFlinger was thinking that the compressed audio was PCM\nbecause the HAL was in PCM mode playing SPDIF data bursts.\nIt also thought that EAC3 was at 192000 Hz instead of 48000\nHz because the data bursts are played at a higher rate.\n\nThis CL adds more calls to the shim that separates the AudioFlinger.\nNow the AudioFlinger gets information about the HAL sample rate,\nchannel masks and format from the shim instead of calling the HAL directly.\n\nThe AudioFlinger now uses a different threshold for detecting\nunderruns when the audio is compressed.\n\nBug: 19938315\nBug: 20891646\nChange-Id: Ib16f539346d1c7a273ea4feb3d3afcc3dc60237d\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    }
  ],
  "next": "4b33e0838fdb1b5e545449add02005916b512c99"
}
