)]}'
{
  "log": [
    {
      "commit": "72249d5b2f9f42a96c0e0825431e8f3f49b82644",
      "tree": "3eb37e6d1d550e7829d9a4957114c219102babde",
      "parents": [
        "d16a8ef26fd1f7a86061c396c5865564af2f1abb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 08 11:12:15 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 08 11:12:15 2015 -0700"
      },
      "message": "audio policy: fix very verbose log build.\n\nChange-Id: I94a69207059d8010ded14bce5d6e39c3f3074649\n"
    },
    {
      "commit": "08945c44a97d3749cc48f860eb4e01e57183ad90",
      "tree": "d3603562eadffb7b44220575bd1267072dd52237",
      "parents": [
        "db431db53fbbb9024b6e72c528e2d195d63ad544"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun May 31 21:36:46 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 01 18:34:14 2015 -0700"
      },
      "message": "Add property to control audio offload with video content\n\nProperty audio.offload.video normally disabled (set to 1 to enable)\n\nBug: 21198655\nChange-Id: Ib1c457b1e3950f18d91b855424aa80bd23c723b0\n"
    },
    {
      "commit": "6374077319a2d060eefe5f4bf425aed37f90c5d0",
      "tree": "50ae6f691720ce4773b6a6757507ee286ba95205",
      "parents": [
        "3a9a6ea4e9f67c6a43f00ae3d980eb475e49deaf",
        "87ffa39d29d1803b48237888a9fbf3d5f2c60c21"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 22 19:23:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 19:24:07 2015 +0000"
      },
      "message": "Merge \"audio policy: add checks on primary output\" into mnc-dev"
    },
    {
      "commit": "87ffa39d29d1803b48237888a9fbf3d5f2c60c21",
      "tree": "cf0a01c080d17853881d3f9f1d0b72391667c530",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 22 10:32:38 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 22 10:32:38 2015 -0700"
      },
      "message": "audio policy: add checks on primary output\n\nCheck if primary output has been initialized before using it.\nThe primary output may not be initialized either due to HAL failure or\non devices without telephony.\n\nBug: 19573336.\nChange-Id: Id1fc3ed588268e1232b43d1e6235254d2f1a71d0\n"
    },
    {
      "commit": "861a628adbcbe7c3baa6eab1b765b87b480ff4a2",
      "tree": "8d1e10f24987535156df45df180c366b97f19b31",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 18 15:40:16 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 19 16:42:42 2015 -0700"
      },
      "message": "audio policy: fix direct output profile selection\n\nFix logic in AudioPolicyManager::getProfileForDirectOutput()\nto select the direct output with most matching flags and not just\nthe first compatible one.\n\nAlso fixes issue 17783395 which was fixed by commit f7bc29b02\nin lmp-tv-dev branch only but in a way that caused a regression\nfor HW A/V sync (issue 19384172).\n\nAlso removed duplicated code lines in getOutputForDevice()\n\nBug: 20819715.\nBug: 17783395.\nBug: 19384172.\n\nChange-Id: I7fc793b37f9b53fabd92cab6b884ef85cfdafee4\n"
    },
    {
      "commit": "d9f493ebcd1830c76d7b1782e64c7ba9ad8ab4bd",
      "tree": "1d075b113943a8e3a032b9162100f05490213250",
      "parents": [
        "69dce3343ffe33d2ba60ab4c6755953a7ec96899",
        "db4c031f518ae5806af73756273ff32cd8d0e4f8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 18:42:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 18:43:00 2015 +0000"
      },
      "message": "Merge \"Update sampling rate to 192kHz for devices\" into mnc-dev"
    },
    {
      "commit": "db4c031f518ae5806af73756273ff32cd8d0e4f8",
      "tree": "62f9e0541acccc3acacf808d2a3cdad130eb819b",
      "parents": [
        "18aa27016a94d0fee243637a80fd0741f89e08f2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 08:46:52 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 09:30:51 2015 -0700"
      },
      "message": "Update sampling rate to 192kHz for devices\n\nChange-Id: I0a83206be51d7ae18ccf85b94b2127356307be69\n"
    },
    {
      "commit": "fedef1384d5ff758285fb19161a0348e1e32ab3f",
      "tree": "659818942c7df772681839a0fbdc0aefe6b69c0e",
      "parents": [
        "af49160aa75d4e1750f3ed56b812ec9cc448fa46",
        "18aa27016a94d0fee243637a80fd0741f89e08f2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 12 00:36:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 12 00:36:07 2015 +0000"
      },
      "message": "Merge \"Support channel index masks for output hal\" into mnc-dev"
    },
    {
      "commit": "c36a8897ff877f4c5b2e0580830faef8b87dd74a",
      "tree": "3bc502e47b787ba704de74d5cd08c77ac64e3e04",
      "parents": [
        "804a77d1045c6c4023f73a0975a09025b2e8eef2"
      ],
      "author": {
        "name": "Ravi Kumar Alamanda",
        "email": "ralama@codeaurora.org",
        "time": "Fri Apr 24 16:35:49 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon May 11 15:06:35 2015 -0700"
      },
      "message": "audiopolicy: Use AUDIO_OUTPUT_FLAG_TTS for TTS stream\n\nUse AUDIO_OUTPUT_FLAG_TTS by default for TTS stream to see\nif the HW supports a dedicated output for the same. If not,\nfallback to primary output as it is done currently.\n\nChange-Id: Ifb2ef7066e75c61fe4c1b9783c12627386a00ea5\n"
    },
    {
      "commit": "a9b84966942fc4e7ab100376a4c5c41271fede8e",
      "tree": "598c0914fe1bdb8bbdd96ca75e3fdff8b7497cac",
      "parents": [
        "f52b2284405ec1d8941334718f580157417f9d60"
      ],
      "author": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 12:29:05 2015 -0700"
      },
      "committer": {
        "name": "Dan Albert",
        "email": "danalbert@google.com",
        "time": "Thu May 07 21:52:46 2015 +0000"
      },
      "message": "Kill a new user of stlport.\n\nBug: http://b/15193147\nChange-Id: I20d21a040f0c2c6c291053fe02fdf82e33ed56a0\n(cherry picked from commit 1b5a73358b72b8ff1bee05cc44d94b47b73ede44)\n"
    },
    {
      "commit": "49822fe2aa38cab4a8cdf2221480181ae7a5f9d0",
      "tree": "2db493f9d8a10aece6aded5af55afb782f2bb389",
      "parents": [
        "831352e926c2896996df285b343cc06f39053499",
        "7288ab87a7aa730ffe97d7dc7e118123107bfcea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 07 15:51:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 07 15:51:46 2015 +0000"
      },
      "message": "Merge \"audio policy: clarify use of mName field for audio devices\" into mnc-dev"
    },
    {
      "commit": "7288ab87a7aa730ffe97d7dc7e118123107bfcea",
      "tree": "c12aa50cbf887e27579bdf4bb79d170f51dcebf1",
      "parents": [
        "464c7e085b68dd63ce8cdbb2c389d3827f8d586a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 18:44:02 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 06 18:44:02 2015 -0700"
      },
      "message": "audio policy: clarify use of mName field for audio devices\n\nThe audio port field mName was used for two different purposes\nwhich caused a problem when exposing this information at the SDK API.\n\nCreate a new \"mTag\" field storing the audio_policy.conf device tag\nif needed.\nField \"mName\" is now used to store any additional name associated to\na given device when available (e.g Manufacturer and model name for a USB device).\n\nChange-Id: I17fa872e4a3a2e1b7cbb807c6f72e095a8a2c9c5\n"
    },
    {
      "commit": "5603d28707ef0f19b2b915756809424698e93d9c",
      "tree": "311bb61b9d80ba3ec231a8c22bc7d44d1518b6ab",
      "parents": [
        "7b4df6a3c4016d3f4f481af46d4e0d19fa48ad06"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 04 17:14:15 2015 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed May 06 21:09:45 2015 +0000"
      },
      "message": "Make header functions \"inline\" to avoid warning when unused.\n\nChange-Id: Iefac44f3c0e1c3fd4b19833d9692744100f92e00\n(cherry picked from commit 5e9febef197a9852c833a0aedc6bfee179c4ae9e)\n"
    },
    {
      "commit": "18aa27016a94d0fee243637a80fd0741f89e08f2",
      "tree": "35a0e32b3d526daba44572ff9516076ad43d4974",
      "parents": [
        "d1abb8f94d7ed749ee959655db1e07d26dad074d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 23:48:38 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 10:28:06 2015 -0700"
      },
      "message": "Support channel index masks for output hal\n\nChange-Id: Ib3e61ff6faf91c71b85102b5d77f90f124c08220\n"
    },
    {
      "commit": "5f9bf49397b36ad4ebd838aef66b83e9e9fa42bc",
      "tree": "f69b635690cbc2cff9e5cfb8843e4473cc327208",
      "parents": [
        "1471e7a112aed5ff120c2b97bced9523ed39fe6c",
        "8c7e6dac6f5eb38cef627dab92eac8b38513450c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 19:50:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 19:50:55 2015 +0000"
      },
      "message": "Merge \"audio policy: session routes continued.\" into mnc-dev"
    },
    {
      "commit": "8c7e6dac6f5eb38cef627dab92eac8b38513450c",
      "tree": "6aede3a6ac013462a117ffb181d93439525eebeb",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 21 17:37:00 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 12:43:06 2015 -0700"
      },
      "message": "audio policy: session routes continued.\n\n- Clear session routes when client process dies.\n- Enforce the route only when the requesting session is active.\n- Fix requested route not working if an output mix change is required\n(e.g forcing to SPEAKER when the default route is USB or A2DP).\n- Make sure all sessions sharing the strategy with a rerouted session\nhave the same route (needed for volume control consistency)\n\nChange-Id: I0ab347a8fb97e73e2c5965374544c5f4fe509ef1\n"
    },
    {
      "commit": "d641af3e9faf6c053ccbeea1bc20790021e57a11",
      "tree": "f2c1fa01f2321024396ac4bda949d74965a547f9",
      "parents": [
        "d707ac5a0494398cb1306ead0ba587034f610f30",
        "f613d42b12389335b2ecf06df18d0d095d6bfd44"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 30 16:43:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 16:43:21 2015 +0000"
      },
      "message": "Merge \"AudioSystem callback for dynamic policy mix activity\" into mnc-dev"
    },
    {
      "commit": "f613d42b12389335b2ecf06df18d0d095d6bfd44",
      "tree": "b36177007932b781d9db2bb973cb2feaab3cde13",
      "parents": [
        "dae24729d0b3ced8c4a7d7f9b631e852f564db4f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 23 18:41:29 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 29 17:54:12 2015 -0700"
      },
      "message": "AudioSystem callback for dynamic policy mix activity\n\nAdd method to AudioPolicyServiceClient for dynamic policy mix\n activity notification.\nPropagate notification to a dedicated callback.\n\nBug 20226914\n\nChange-Id: I37928ed38e15ea2b8fed022cccadeca8c4d6c876\n"
    },
    {
      "commit": "be71aa29a3c86d2e01cd17839d2a72ab09a1bce5",
      "tree": "ca29cd10f78ff053761eb809c391019180836742",
      "parents": [
        "f62a067a5b21c840c915d36392679346ac0abfd7"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Apr 28 12:06:02 2015 -0700"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Apr 29 19:06:41 2015 +0000"
      },
      "message": "Respect the record audio app op - media\n\nChange-Id: I3a97977b6e9a09355e2008f780d22d480fb7308b\n"
    },
    {
      "commit": "466dc8ed6ca6b7f585104806c48613dd34e608c9",
      "tree": "086bbd91d48e366377c02df8a65a5e2bad8675a6",
      "parents": [
        "dae24729d0b3ced8c4a7d7f9b631e852f564db4f"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Apr 17 13:15:36 2015 -0600"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Tue Apr 28 10:46:14 2015 -0600"
      },
      "message": "Explicit routing in AudioRecord\n\nChange-Id: I9cc5d54883a3e5c75d553fabb619fc8e49f4f9e5\n"
    },
    {
      "commit": "6fc6a64fa3b0a9e4577eb763590f531c0a50a27b",
      "tree": "2c51b5f8ffe7015ffdc3fdaf19bd36982546bf89",
      "parents": [
        "65c3781db3443531deacecfbda5c7e7e82868a34"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Apr 25 05:18:59 2015 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Apr 25 05:18:59 2015 +0000"
      },
      "message": "Revert \"Add a configurable version of the policy engine based on PFW\"\n\nThis reverts commit 65c3781db3443531deacecfbda5c7e7e82868a34.\n\nChange-Id: Ib61cd70f97c4c4f4b503fb845643627d6896f4f9\n"
    },
    {
      "commit": "65c3781db3443531deacecfbda5c7e7e82868a34",
      "tree": "5560072d1f61a9d76e437ef311ef282976fc253d",
      "parents": [
        "21db57282da8b3daba1549f3a8e41c4fbaf80059"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Mar 24 09:01:14 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 24 14:57:55 2015 -0700"
      },
      "message": "Add a configurable version of the policy engine based on PFW\n\nThis patch adds a configurable version of the policy engine\nbased on the parameter framework.\nThis configurable engine shall be activated with a flag\nUSE_CONFIGURABLE_AUDIO_POLICY within BoardConfig.mk\n\nThis patch provides the generic configuration as an example.\nThis configuration provides the same user experience as the default\npolicy engine.\n\nChange-Id: Ic8217333ae370b89bfdd2ad11320c5f14ea4da34\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "7d7ea036436320b03bef826d78c4c035b67edbd0",
      "tree": "35c3322983d83f97abcde43da37329ac98f6b122",
      "parents": [
        "11f88677e9a9405d2b5d7f7bf9b6eec035b6331d",
        "2b0c1fc0d0ad3744a32d48234f255d82a5c80ded"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 24 21:09:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 21:09:05 2015 +0000"
      },
      "message": "Merge \"AudioPolicyManager: notification of dynamic policy mix activity (input)\""
    },
    {
      "commit": "138f77425a0956d867f078881f91628518ae8258",
      "tree": "a8e3afaf98d7d32d04d5aab3a72354e04334614b",
      "parents": [
        "1ac91ed2c67245ea5052182212463d3f0afe8b5a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 10:17:59 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 23 13:52:46 2015 -0700"
      },
      "message": "Fix format sorting order in AudioPort\n\nOtherwise AUDIO_FORMAT_DEFAULT (used for dynamic formats)\nis no longer the first entry.\n\nChange-Id: I23869a9ca2ed138759d722e7c9838497f640921a\n"
    },
    {
      "commit": "f27e2fbfc3284c00a60fa68edc51d436f75b1e32",
      "tree": "46d089a6f5e37a3ee692679216b351299cc94bc4",
      "parents": [
        "04f07fd61022dac46ddda9c815d65bc3d3278b84"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sun Apr 19 22:35:08 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 12:41:57 2015 -0700"
      },
      "message": "Add channel index record to AudioPolicyManager\n\nChange-Id: Ic534bee084108a68c7818600df6e1c9dc9258a0d\n"
    },
    {
      "commit": "493404d8c396e15ed73455acd39aa0f1940996e2",
      "tree": "a07080e7733732fd7273963cca1c93436b86b997",
      "parents": [
        "c9c3804a2caf3c0f96e7a8985f82db7ceef490df"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 21 15:07:36 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 22 08:12:53 2015 -0700"
      },
      "message": "audio policy: fix AudioTrack output device selection\n\nHave AudioTrack::setOutputDevice() set CBLK_INVALID flag instead\nof calling restoreTrack_l(). This allows restoreTrack_l() to be called in\na safe context.\n\nAllow device change while the AudioTrack is active by forcing a new\ndevice selection in startOutput() if the output route for this\nsession was changed.\n\nRemove some warnings.\n\nChange-Id: I2d921a63c9bfa0e122233645e2d6d39f95f5f17d\n"
    },
    {
      "commit": "2b0c1fc0d0ad3744a32d48234f255d82a5c80ded",
      "tree": "cc3528a394494724bba3443b92faa8a1bd7c6846",
      "parents": [
        "3249558196082087fb8bd0a847ef5c6000c8b925"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 15 17:29:28 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 21 14:15:54 2015 -0700"
      },
      "message": "AudioPolicyManager: notification of dynamic policy mix activity (input)\n\nUse ref counting on start/stop inputs to notify audio policy client\n of mix activity changes.\n\nBug 20226914\n\nChange-Id: Ic4f9c91301d0bcbc0ff749acebdc3b2300309c38\n"
    },
    {
      "commit": "a7401cc5e781da150b46e7ae37905ab9ca2aa758",
      "tree": "4bbbdd8effa6c7a88707a7bd0b34c074bdcfe490",
      "parents": [
        "a7346034d597c18b63bc63fdfea8360f8b6c1283"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 17:22:01 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 17:23:22 2015 -0700"
      },
      "message": "audio policy: remove permission check for ports and patches getters\n\nRemove check for MODIFY_AUDIO_ROUTING permission in\naudio policy methods just getting devices or patches state.\n\nChange-Id: Id3bafc5ad0d0bd96210822243139898e314327d8\n"
    },
    {
      "commit": "554a277d4e42a3d3df3d90ba0e7dfa2d31690e32",
      "tree": "3647500470a7eca8095102a0e2818acb848cdf6a",
      "parents": [
        "3249558196082087fb8bd0a847ef5c6000c8b925"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 11:29:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 15 23:15:38 2015 +0000"
      },
      "message": "audio policy: add binder calls for audio source control\n\nAdd binder methods to IAudioPolicyService to control activity\nof external audio sources (e.g FM tuner).\n\nChange-Id: I2008308a6a996baeae502b68a790d87281efe2ff\n"
    },
    {
      "commit": "cfdd52423cee9efea73023feeaa74279ebd45b7c",
      "tree": "154c4ea34b3fc95dbde268fb24be2f2915438c78",
      "parents": [
        "5e1c007038df74b389018e762d5059cacecff59e",
        "de80105c3f2db0eabd47640c49387ea3b44d4782"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 15 21:11:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 21:12:01 2015 +0000"
      },
      "message": "Merge \"AudioPolicyManager: notification of dynamic policy mix activity\""
    },
    {
      "commit": "de80105c3f2db0eabd47640c49387ea3b44d4782",
      "tree": "9775c7bbe30ef1ab13a888def8531cb0f87b1756",
      "parents": [
        "079e121934106860af5ff5491bd3884453d1fdb3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:10:14 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:20:20 2015 -0700"
      },
      "message": "AudioPolicyManager: notification of dynamic policy mix activity\n\nImplement non-stream type specific ref counting in output\n  descriptors to keep track of mix activity.\nNotify audio policy client of mix activity changes.\n\nBug 20226914\n\nChange-Id: Iec939cb640c58056f88947b611d23b4bb6d8a11b\n"
    },
    {
      "commit": "221a33890fa8b3c3c43c94327305b8e7717c412f",
      "tree": "6953a583833355b48db57da5d3a326e505f96aaa",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92",
        "ab300c8cbf5df98fddca39e8d1698b0307432152"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 22:43:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 13 22:43:07 2015 +0000"
      },
      "message": "Merge \"audio polciy: remove FM audio capture permission.\""
    },
    {
      "commit": "ab300c8cbf5df98fddca39e8d1698b0307432152",
      "tree": "083c508fb62b4456a2c903045a165d9ef001b8fb",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:47:33 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:47:33 2015 -0700"
      },
      "message": "audio polciy: remove FM audio capture permission.\n\nChange-Id: I2607d89b0bd87cdd2f4084dfdb55135509a824d5\n"
    },
    {
      "commit": "f129b03fa583d4cc26fd9c9171b8fb3b0ed8d4f4",
      "tree": "cc6ebb41d964a77f5fe5b29e8a360d1a1e4cf7b9",
      "parents": [
        "b6347ac62b36b4d9578d181ba83bf8e6446298e8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 13:45:50 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 18:47:28 2015 -0700"
      },
      "message": "Enable 8 bit and float pcm record formats for AudioPolicyManager\n\nAdd capability for handling different record channel masks.\n\nChange-Id: I63f6b029aca5cefff7adf26198a3b594a7ea2d71\n"
    },
    {
      "commit": "b6347ac62b36b4d9578d181ba83bf8e6446298e8",
      "tree": "fa04d4c41a7f661448668c01a056b9e71297cd16",
      "parents": [
        "17769490d499bc665ddfef83143ac1ed647fa0d4",
        "dacc06f5e8d00ace9d16a149fc41ff65323ffbb3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Apr 09 01:33:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 01:33:20 2015 +0000"
      },
      "message": "Merge \"Fix AudioPolicyManager dynamic policy initialization\""
    },
    {
      "commit": "dacc06f5e8d00ace9d16a149fc41ff65323ffbb3",
      "tree": "66fc2772a1a663554e871dabc96f9e1cd5a740fc",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 08 18:16:39 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 08 18:19:16 2015 -0700"
      },
      "message": "Fix AudioPolicyManager dynamic policy initialization\n\nAudioPolicyManager::getInputForAttr() is initializing the AudioMix\n for the new AudioInputDescriptor.\nThe audio policy manager refactoring introduced a regression where\n the association of an existing AudioMix (registered when the\n associated AudioPolicy was registered) with the input descriptor\n copied a value of local scope, instead of referencing the\n AudioMix in the list of mixes.\n\nBug 20081375\n\nChange-Id: Iddd57fed8525880afd1d4a5493f97130aabe4816\n"
    },
    {
      "commit": "ffbc80f5908eaf67a033c6e93a343c39dd6894eb",
      "tree": "c97aa681b8c70d7429f7be93f851f04e9dee5900",
      "parents": [
        "c75307b73d324d590d0dbc05b44bce9aa89b7145"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 18 18:30:19 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 18:08:24 2015 -0700"
      },
      "message": "audio policy: volume in dBs\n\nVolumes are now stored and exchanged in dBs to be\nconsistent with the volume tables.\n\nThey are converted if needed when applied to the target\ngain controller.\n\nChange-Id: I916cbb0bbe65c916444b8c65a2bdca9645c58399\n"
    },
    {
      "commit": "c75307b73d324d590d0dbc05b44bce9aa89b7145",
      "tree": "824a23a9ffbebb3ace63146c171e938df6630fdd",
      "parents": [
        "303db9de6506db0c2b300863c39ece81721dd4e9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 17 15:29:32 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 18:08:11 2015 -0700"
      },
      "message": "audio policy: volume control reorganization\n\nOutput volume and routing control by AudioOutputDescriptor\nis reorganized to prepare hardware source volume and routing\ncontrol.\nAudioOutputDescriptor contains all volume, device and activity\nstate common to software (audio flinger mixers) and\nhardware sources (tuners, A2DP, HDMI).\nA new class SwAudioOutputDescriptor is derived from\nAudioOutputDescriptor and is specific to software sources.\n\nLow level routing and volume control methods receive an\nAudioOutputDescriptor parameter instead of an IO handle.\n\nmPrimaryOutput is now an AudioOutputDescriptor.\n\nChange-Id: Ie90943ee3102cdb8adf89fdd2addd2c279b1e5bf\n"
    },
    {
      "commit": "3bcf8597189c592713675ec58326ecbef0ac4ae9",
      "tree": "5656987c2e9d6fe9c99bb632865318489432fe36",
      "parents": [
        "322b4d25387a04c9afebe998326d005bbdf17ede"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 03 12:13:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 12:38:08 2015 -0700"
      },
      "message": "audio flinger: improve device to device audio patches\n\nAllow creation of audio patches between input and output\ndevices managed by the same audio HW module.\n\nChange-Id: I4b83268a4d5c41f3d5905d7581202cf5193efd32\n"
    },
    {
      "commit": "322b4d25387a04c9afebe998326d005bbdf17ede",
      "tree": "3cf0c2912dc7cb75acb60526bef382dd90e9a51d",
      "parents": [
        "6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 03 15:57:54 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 12:37:35 2015 -0700"
      },
      "message": "audio policy: fix unique audio port ID.\n\nRemove mId member from AudioPort as it was shadowed\nby mId in DeviceDescriptor.\n\nAdd getters for Id, and HW module name and version to device,\noutput and input descriptors.\n\nFix DeviceDescriptor name initialization.\n\nChange-Id: I4a69f385e40330954d9dad5f2926c521f60b2ec1\n"
    },
    {
      "commit": "6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15",
      "tree": "2ebe8fb3630e8e33baa66be39305df86eab83c7d",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2",
        "aa9811945f575614b3482d09e4d969792701cebb"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "message": "Merge \"Adding explicit routing API to AudioTrack\""
    },
    {
      "commit": "aa9811945f575614b3482d09e4d969792701cebb",
      "tree": "1744aa567efe78c3062ec80da19277d96def0725",
      "parents": [
        "41efeb2b477066d96ad34a048f34fb6fb34213ec"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Sat Mar 21 09:55:15 2015 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 09:51:07 2015 -0700"
      },
      "message": "Adding explicit routing API to AudioTrack\n\nChange-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc\n"
    },
    {
      "commit": "7d669b3551c20109f5544455ca1555499693e1e1",
      "tree": "12868d89982fe013e17c7f2544882704f486589d",
      "parents": [
        "41efeb2b477066d96ad34a048f34fb6fb34213ec"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Mar 31 14:50:42 2015 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 06 16:58:36 2015 +0000"
      },
      "message": "audiopolicy: add support for parsing AUDIO_FORMAT_DTS\n\nBug: 18292317\nChange-Id: Ic9a15fc09ce32021d12072fb71252d207deac30a\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "5c233f8b772719371475624edf1002ed80e1d0e8",
      "tree": "be755bf0280875c5f6087bc63fe921a7d46da53c",
      "parents": [
        "d4d55cdf31a3faa619bfa043f5b0f170f6ffd139"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 03 09:21:24 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Apr 03 09:21:24 2015 -0700"
      },
      "message": "AudioPolicy: remove extraneous parentheses\n\nChange-Id: Ibcea37b90cc0aaacb3b6194745bf569edad8992a\n"
    },
    {
      "commit": "887a9ed4446cb451181c392a0e51a69914e58fbf",
      "tree": "148916028dcdf5c2db173f62f1b063412d070124",
      "parents": [
        "2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Mar 31 18:02:24 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 11:29:43 2015 -0700"
      },
      "message": "Updates to AudioPolicyManager refactor\n\nUse protected access in AudioPolicyManager class for\n - engine field\n - querying phone state\n - isStrategyActive\n\nFix inclusion of AudioPolicyManagerInterface header.\n\nUse \"APM_\" prefix in audio policy conf parsing code to avoid\n naming conflicts with some HALs.\n\nDeviceDescriptor and its collection class are good friends now.\n\nChange-Id: I236d62a2b8a4b6bf68dd515932650b912577c145\n"
    },
    {
      "commit": "2110e04cdfbf9ad85ce154ce5f778ee5ccfc95eb",
      "tree": "5051da296e1fbc067db7ac190334d7d98a4410eb",
      "parents": [
        "dfd7409c1b708f6c429aa43722ca8493a91d8df0"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Mar 24 08:41:51 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Split ManagerDefault into manager and engine\n\nThis patch defines an interface for a new component: policy engine.\nThe APIs found under this interface are the one we may want to customize\nand to configure easily.\nThis patch also split the current manager code into manager and engine to\nprovide a default version of the policy engine.\n\nChange-Id: I97cf59760b53d248fe9efe466ae5e73bd7e5cc06\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "dfd7409c1b708f6c429aa43722ca8493a91d8df0",
      "tree": "527972dbd2a5ad014137b57128ca5100d7ca07a2",
      "parents": [
        "df37269852ea92bafd939fe793209d0581c4a574"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 12:10:59 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Create StreamDescriptor and associated collection within common\n\nCreate StreamDescriptor and associated collection within common\ncommon policy pillar elements.\nIt moves the code from managerdefault and creates helpers function within\nthe collection.\nIt also split the AudioGain in a common volume header and AudioGain class.\n\nChange-Id: I1bb80e4219506f8c9042367085db328d317cb668\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "df37269852ea92bafd939fe793209d0581c4a574",
      "tree": "673a3e9838f06a33c6304942d8138b1eb224d348",
      "parents": [
        "45ed3b053d9af2250f5ece9ee4e826905c3763a7"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 10:43:27 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Create SoundTriggerSession and associated collection within common\n\nThis patch creates a SoundTriggerSession and associated collection within\ncommon policy pillar elements.\nIt moves the code from managerdefault and creates helpers function within\nthe collection.\n\nChange-Id: I83ea230573c05e8ab99f4489c20059ed27678221\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "45ed3b053d9af2250f5ece9ee4e826905c3763a7",
      "tree": "97926c3be950a64e504347c103fe41628b4939da",
      "parents": [
        "036e1e9126dcd496203434aa69e52115d8e730cc"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 10:35:14 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Add EffectDescriptor and associated collection to common elements\n\nThis patch adds EffectDescriptor and associated collection to common\npolicy pillar elements. It moves the code from the policy manager\nand creates helpers function in the collection.\n\nIt also factorize the RoutingStrategy structure within a separated header\nfile.\n\nChange-Id: I29964ff77564fadedf3237c8754240b21ae77297\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "036e1e9126dcd496203434aa69e52115d8e730cc",
      "tree": "028893f5dffed7b590638a52e32bd864eeb13954",
      "parents": [
        "53615e29c99c5e9d2ca77aaefd7bf5c770513120"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 10:16:24 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Add AudioMix and AudioMixCollection to common policy element\n\nThis patch adds AudioMix and associated collection to the common\npolicy pillar elements library.\nIt removes the code from the manager and creates also helpers function\nassociated to the mix collection.\n\nChange-Id: Ia3536fdef09da13734d2895030d736c701040237\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "53615e29c99c5e9d2ca77aaefd7bf5c770513120",
      "tree": "18a576affc2dcecdc1431027f6d348ef0678cae0",
      "parents": [
        "98cc191247388132b6fd8a4ecd07abd6e4c5a0ed"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Mar 19 09:24:12 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:22:42 2015 -0700"
      },
      "message": "Migrate helper functions from managerdefault to common\n\nThis patch moves from manager to common:\n\n-parse helper functions of the policy configuration file\n-collection helper function on\n\t-output / input descriptors\n\t-DeviceDescriptor\n\t-AudioPatch / Audio Port\n\t-IO Profile\n\t-HwModule\n\nChange-Id: If45e53418db75af1af198f43c4ef27884499055f\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "98cc191247388132b6fd8a4ecd07abd6e4c5a0ed",
      "tree": "b447149a320aabc6fb28f2522e6a55db835ce537",
      "parents": [
        "ad3183e2d4cecd02f6261270a7ea1c68be0efa0f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Mar 18 17:52:40 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:19:16 2015 -0700"
      },
      "message": "Split ManagerDefault into Manager and ManagerDefinitions\n\nThis patch splits the managerdefault into a manager and a manager\ndefintion library that contains all pillar elements of a policy manager.\n\nIt renames the file with the name of the main class they contains.\n\nIt splits the AudioPort into AudioPort and AudioPatch.\n\nChange-Id: I992cf0b8aed895805cc003ba0980d2c9e92c985b\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "ad3183e2d4cecd02f6261270a7ea1c68be0efa0f",
      "tree": "5c08be8ee10c2525c0df9dc42529d5fae0240b74",
      "parents": [
        "4de725a32a825bd26d9fc0ec6901ffffa92778e1"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Mar 18 16:55:35 2015 +0100"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 01 10:19:16 2015 -0700"
      },
      "message": "Audio Policy Refactor: reorganise headers inclusion\n\nThis patch reoganises the headers inclusion in order to prepare\nthe split of managerdefault into a manager and a separated lib\nof pillar policy elements.\n\nIt also moves back the isStrategyActive to the manager to avoid\nany dependancies from this pillars to the manager.\n\nChange-Id: I1a35c45d86db7a3878a40dc7d6858dfea37c5ac9\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "ac41a6f253a69671f6e018fcc84daf0030615ca9",
      "tree": "17fe629ef01986411dd6cfcae1552a3b0a02c8b7",
      "parents": [
        "765f27c2376e83766d9e1d8f8136025c5437ce49",
        "f5d144f7ca773750ea7be371f14f9fc975a15862"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 19:39:10 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 19:39:11 2015 +0000"
      },
      "message": "Merge \"audio policy: fix IOProfile::isCompatibleProfile()\""
    },
    {
      "commit": "f5d144f7ca773750ea7be371f14f9fc975a15862",
      "tree": "e43a14e4c74293289770e712fc8a81a47da9206b",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 26 19:00:00 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 10:58:50 2015 -0700"
      },
      "message": "audio policy: fix IOProfile::isCompatibleProfile()\n\nHandle composite devices in IOProfile::isCompatibleProfile()\nby just checking the type in this case, not the address which is relevant\nonly if a single device type is passed as input.\n\nAlso remove warning.\n\nBug: 19762960.\nChange-Id: Iaecb7fcfbf7ad39b1e33cb460922f7c069a34a00\n"
    },
    {
      "commit": "46bd6b5bb8f1dfd26977a04ee6fcf9641321ca29",
      "tree": "e694ef16af909dcfd1fb9a1e0efbd01ef9b26ef8",
      "parents": [
        "9bb23ff63e17b91a8480b142975067e8b6ab69ec",
        "4c91f90c72e74474fad7f6a99ae7926c8d1f2504"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 30 16:38:05 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 30 16:38:05 2015 +0000"
      },
      "message": "Merge \"audio policy: fix DeviceVector::getDevicesFromType()\""
    },
    {
      "commit": "4c91f90c72e74474fad7f6a99ae7926c8d1f2504",
      "tree": "8686614058927003da3349a93a87af3883df732b",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 25 18:15:31 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 26 18:33:19 2015 -0700"
      },
      "message": "audio policy: fix DeviceVector::getDevicesFromType()\n\nFix device type comparison in DeviceVector::getDevicesFromType():\nAUDIO_DEVICE_BIT_IN bit must be excluded from type comparison\nand used as an orthogonal match criterium.\n\nChange-Id: Ie7378723f5a3d613b1b045ccdda69650a9d655fc\n"
    },
    {
      "commit": "884de21ca32e4a47f77e541a7284d02054ff3349",
      "tree": "d7371afc5d731f607281909dc090cb36950911b2",
      "parents": [
        "ec648447b7dcab701c436a54bd38a1abd8037be1"
      ],
      "author": {
        "name": "Wally Yau",
        "email": "wyau@google.com",
        "time": "Tue Mar 24 09:10:58 2015 -0700"
      },
      "committer": {
        "name": "Wally Yau",
        "email": "wyau@google.com",
        "time": "Tue Mar 24 09:10:58 2015 -0700"
      },
      "message": "Make sure waitRelative is called when waitTime !\u003d INT64_MAX\n\nb/19870971\n\n(cherry picked from commit c600af1459c455583e071e653f0d998032aa423e)\n\nChange-Id: Ic6bb54067d76c96ff6fc45431dc2d72db9f0a3a8\n"
    },
    {
      "commit": "ac48c28215798e4135396f09d583b22302636735",
      "tree": "c3e09c279117bddfa35f3e2b2a9d103c6330a9c8",
      "parents": [
        "eb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89",
        "6fa7083f26895ede2331eeb3897f9ae659aae9bf"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "rni@google.com",
        "time": "Mon Mar 16 17:21:22 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 17:21:23 2015 +0000"
      },
      "message": "Merge \"Remove mId from DeviceDescriptor.\""
    },
    {
      "commit": "6fa7083f26895ede2331eeb3897f9ae659aae9bf",
      "tree": "1e14c9ddd3392e935a631525b032b11dad1b31a2",
      "parents": [
        "88b456640085fa0e92d66e42ddaf24449c8c4fdb"
      ],
      "author": {
        "name": "Rakesh Iyer",
        "email": "rni@google.com",
        "time": "Fri Mar 13 15:40:29 2015 -0700"
      },
      "committer": {
        "name": "Rakesh Iyer",
        "email": "rni@google.com",
        "time": "Fri Mar 13 15:44:32 2015 -0700"
      },
      "message": "Remove mId from DeviceDescriptor.\n\nDeviceDescriptor inherits from AudioPort which has the correct\nhandle mId. The mId in DeviceDescriptor shadows this so calls\nlike DeviceVector::getDeviceFromId() findDeviceById fail because\nthey are looking at the wrong mId. The failure itself manifested\nas createAudioPatch failing.\n\nChange-Id: I8dd012d0678facaac84844b92226cc4b788abece\n"
    },
    {
      "commit": "ec8930f218fa0c1acde631543b40b5a0b28bfe1f",
      "tree": "0e81f9b456530eb8a745681726e4720e131bef77",
      "parents": [
        "f9d19514b3e620b6339c98a442da833a702915ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 15:56:22 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 15:56:22 2015 -0700"
      },
      "message": "Fix warning while building mediaserver\n\nIn file included from frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.h:31:0,\n                 from frameworks/av/services/audiopolicy/service/AudioPolicyService.h:38,\n                 from frameworks/av/media/mediaserver/main_mediaserver.cpp:36:\nframeworks/av/services/audiopolicy/managerdefault/ConfigParsingUtils.h:29:0: warning: \"ARRAY_SIZE\" redefined\n #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))\n ^\nIn file included from frameworks/av/media/libmediaplayerservice/MediaPlayerService.h:31:0,\n                 from frameworks/av/media/mediaserver/main_mediaserver.cpp:35:\nframeworks/av/include/media/stagefright/foundation/ABase.h:21:0: note: this is the location of the previous definition\n #define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a)))\n ^\n\nChange-Id: I4b80f783c592a78aa88b3dad297278353740466e\n"
    },
    {
      "commit": "acc930d104534dff89d5e336d22d2310069ca7c2",
      "tree": "1bd6f8f33db1549d0fe3663dbe72a7570957af35",
      "parents": [
        "96faa25f4aea2c792523ae920da91f919f5ea392"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 04 10:08:29 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 04 10:08:41 2015 -0800"
      },
      "message": "audiopolicy: Do not route VoIP call to HDMI\n\ngetDeviceForStrategy is returning AUDIO_DEVICE_OUT_AUX_DIGITAL\neven  when setForceUse is called with FORCE_NONE(earpiece)\nduring VOIP call.\nActual Intention is to route audio for phone strategy to AUX\ndevice even after setForceUse is called with FORCE_NONE when not\nin voice call. It is supposed to exclude VOIP call too.\n\nBug: 19522164.\n\nChange-Id: I88d515c351f066305f9eed240b1fe5f60ef34f85\n"
    },
    {
      "commit": "56ec4ffcbae8aeac6c5245fc7b825d02e2e6cefd",
      "tree": "914941adb956f3af389b9a7b955f3534eec4fe7a",
      "parents": [
        "8f7b7fa417566e9a6a29ea9f0e220b3cd6d1a9e3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jan 23 16:45:18 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 18 17:29:20 2015 -0800"
      },
      "message": "Refactor AudioPolicyManager\n\nAudioPolicyManager implementation is now split into the\nfollowing files:\n\nfiles managerdefault/Gains.*\n  class AudioGain\n  class VolumeCurvePoint\n  class StreamDescriptor\n\nfiles managerdefault/Devices.*\n  class DeviceDescriptor\n  class DeviceVector\n\nfiles managerdefault/Ports.*\n  class AudioPort\n  class AudioPortConfig\n  class AudioPatch\n\nfiles managerdefault/IOProfile.*\n  class IOProfile\n\nfiles managerdefault/HwModule.*\n  class HwModule\n\nfiles managerdefault/AudioInputDescriptor.*\n  class AudioInputDescriptor\n\nfiles managerdefault/AudioOutputDescriptor.*\n  class AudioOutputDescriptor\n\nAll files for libaudiopolicyservice are moved under service/\n\nAll files for libaudiopolicymanager are moved under manager/\n\nChange-Id: I43758be1894e37d34db194b51a19ae24461e066e\n"
    },
    {
      "commit": "e8610ba233ecdb3f6d3259412b41738a3861ee7e",
      "tree": "733694eb052a9bd41b53f7dffc77738abf11d057",
      "parents": [
        "9fdb3bd42af0876a9b76bae42d7aba2287b53af4"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 06 13:53:36 2015 -0800"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 06 14:44:32 2015 -0800"
      },
      "message": "Passing device name up through getDeviceDescriptor() method (when creating)\n\nChange-Id: Ibd85e37914333478fd038c3d2f52e214016c16b1\n"
    },
    {
      "commit": "e743a47f445f02a0612018fa5640301304844fbf",
      "tree": "b8db2098c4e585e2e4d918db4c01a19fb5cf6be4",
      "parents": [
        "b96efd3cd7ff49e85049a1515b8bb3b7514dce0b"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Jan 28 11:07:31 2015 -0800"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Feb 05 09:54:20 2015 -0800"
      },
      "message": "Add additional info to AudioPort for enum/selection API.\n\nAdd \"device name\" member to AudioPort.\nMoved unique device ID from DevicePort to AudioPort.\nStraighten out confusion between \"name\" and \"address\"\nCreated string constants for Intent \"extra\" data keys.\nCombine card/address data into \"address\" at sender.Add additional info to AudioPort for enum/selection API.\n\nChange-Id: I1be308e12b09cd0ead9a3e9fbc9c385462299fb5\n"
    },
    {
      "commit": "7bc903581f879c86f3881a2f7563bd28c1ac29b7",
      "tree": "b63e33c63c7fc7c8febf5b6912cf6dc010e66a9c",
      "parents": [
        "07840f7544de883fe5c00cbd18bc6458a20e2691",
        "5d46bd54a279f24d0476b83947ce29e786b5c72c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 17:25:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 04 17:25:40 2015 +0000"
      },
      "message": "am 5d46bd54: am 3ae5f313: audiopolicy: send device connect notification to HALs\n\n* commit \u00275d46bd54a279f24d0476b83947ce29e786b5c72c\u0027:\n  audiopolicy: send device connect notification to HALs\n"
    },
    {
      "commit": "3ae5f31393609b7fa92f24132c66e9a8c9244a45",
      "tree": "059dbae05f8fdaaa3cf3dd68b246deb2cebeea76",
      "parents": [
        "efbb61950db36a5eb789be83f077246172507c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 03 17:12:08 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 08:56:31 2015 -0800"
      },
      "message": "audiopolicy: send device connect notification to HALs\n\nDevice disconnect notifications are sent from audiopolicy to\nthe HALs. Send connect notifications as well.\n\nBug: 19249796.\nBug: 17785277.\n\nChange-Id: Ia823ed154d6a0c7ceb84b0a94f0c3b78392faaf6\n"
    },
    {
      "commit": "e33dee9e041c6ad8d822f717ef141d657da96c32",
      "tree": "89889c9730c4736d464c449b7cded762cd6769a1",
      "parents": [
        "cba7fe5f1cb13108367d6de288428801b2d89a8e",
        "14a849c267bdcf564c30f9f2ebf0d619b36f500a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 21:22:44 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 30 21:22:44 2015 +0000"
      },
      "message": "am 14a849c2: am 1bf8a210: Merge \"audio policy: add fallback for output selection\" into lmp-mr1-dev\n\n* commit \u002714a849c267bdcf564c30f9f2ebf0d619b36f500a\u0027:\n  audio policy: add fallback for output selection\n"
    },
    {
      "commit": "cba7fe5f1cb13108367d6de288428801b2d89a8e",
      "tree": "62c5fc6f17c5a21f9ce952f7c1a93f617c1475be",
      "parents": [
        "172f257811886a216bf528006fc8445cec9d5480",
        "6f4428de2b4ab10393bbac2441586ac514c8cf53"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 21:18:06 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 30 21:18:06 2015 +0000"
      },
      "message": "am 6f4428de: am d99c6855: Merge \"audio policy: match attached device to declared devices\" into lmp-mr1-dev\n\n* commit \u00276f4428de2b4ab10393bbac2441586ac514c8cf53\u0027:\n  audio policy: match attached device to declared devices\n"
    },
    {
      "commit": "1bf8a21018cc1d95dc3c28b5044aeda327c7b54e",
      "tree": "8a4be46e5650fa435176aaa2e5ce95b8e146de8c",
      "parents": [
        "d99c6855901e4b2625aaad3fc24cff5ecf675fa3",
        "a82797faddb37adb2d441737884576684c8515cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 20:27:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 30 20:27:44 2015 +0000"
      },
      "message": "Merge \"audio policy: add fallback for output selection\" into lmp-mr1-dev"
    },
    {
      "commit": "a82797faddb37adb2d441737884576684c8515cb",
      "tree": "68f6794347c78e26ec90a25373f6efb7894ba4fe",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 11:49:43 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 11:49:43 2015 -0800"
      },
      "message": "audio policy: add fallback for output selection\n\nWhen getOutputForDevice() finds a matching direct output profile\nbut fails to open it, try to fallback to downmix on mixer output\nwhen format is PCM and sampling rate allows it.\n\nBug: 19197137.\nChange-Id: I197b9b202504265b6928e69740875cb7aba5c2c5\n"
    },
    {
      "commit": "d99c6855901e4b2625aaad3fc24cff5ecf675fa3",
      "tree": "9f48f6a001a4fd4b0a097d6c64ed128b91f4abfe",
      "parents": [
        "0d84ba3fd82038cb721ffae234a99e6751ed7fbe",
        "a1d525fbf2c1e0b2c61e5d29f338b0a0d8823436"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 16:33:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 30 16:33:21 2015 +0000"
      },
      "message": "Merge \"audio policy: match attached device to declared devices\" into lmp-mr1-dev"
    },
    {
      "commit": "a1d525fbf2c1e0b2c61e5d29f338b0a0d8823436",
      "tree": "58ca0bd223daf403b1e18f29dc3dc2966f2c5478",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 13:36:45 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 13:36:45 2015 -0800"
      },
      "message": "audio policy: match attached device to declared devices\n\nMake sure that when a new audio device is connected,\nand a specific profile for this device is listed in\naudio_policy.conf, this particular profile is used instead\nof a default generic profile.\n\nBug: 19188567.\nChange-Id: I5f576fcd697adc041b2cfbd2bac7a51bcc2143b9\n"
    },
    {
      "commit": "88873ae1b01208a9e70b80860274f429d08a6c64",
      "tree": "e65a0e3199208d53cf149757174f1e523bc9e0a3",
      "parents": [
        "183a0e52ac3130501c417005f6363eeec62c0afd",
        "f1121d963b51c798ab28c85eeff1eedc9bb2c186"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 20:34:33 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 29 20:34:33 2015 +0000"
      },
      "message": "am f1121d96: am 0d84ba3f: Merge \"Fix FLAG_BEACON regression\" into lmp-mr1-dev\n\n* commit \u0027f1121d963b51c798ab28c85eeff1eedc9bb2c186\u0027:\n  Fix FLAG_BEACON regression\n"
    },
    {
      "commit": "0d84ba3fd82038cb721ffae234a99e6751ed7fbe",
      "tree": "6242a784e02b2001232ef67593cd9aabb5606c3b",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562",
        "79ad438ed25c59a37244a48899263bbc4bc92f5d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 20:22:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 29 20:22:58 2015 +0000"
      },
      "message": "Merge \"Fix FLAG_BEACON regression\" into lmp-mr1-dev"
    },
    {
      "commit": "79ad438ed25c59a37244a48899263bbc4bc92f5d",
      "tree": "d54e5f2d9b1fef107e37bf2fe2b87aa44a16d8bb",
      "parents": [
        "64c496c8d51c71605cd34a510da2ecd8180656ec"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 10:49:39 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 10:49:39 2015 -0800"
      },
      "message": "Fix FLAG_BEACON regression\n\nFix regression where FLAG_BEACON is not honored anymore in terms\n of routing and muting behavior\nWhen converting from AudioAttributes to stream types, also look\n at FLAG_BEACON for mapping to STREAM_TTS\n\nBug 19185342\n\nChange-Id: I5871c1b94480ae3da544aef99ea9ab4dff97443d\n"
    },
    {
      "commit": "6dafb81dc699672f218915fa2895f8ee012203a9",
      "tree": "ebf4401bd53fd91460b29eda1919179b75191767",
      "parents": [
        "6a0fbc68e203058e3b7d62e95d46f2415bc3ed95",
        "8c403b2265fdef64ac4ba903e6261edd22d81909"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 02:52:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 29 02:52:17 2015 +0000"
      },
      "message": "am 8c403b22: am c84bc78d: Merge \"Audio policy: fix device gain initialization\" into lmp-mr1-dev\n\n* commit \u00278c403b2265fdef64ac4ba903e6261edd22d81909\u0027:\n  Audio policy: fix device gain initialization\n"
    },
    {
      "commit": "1db89b9c2692fd70eb1cc98b7db2f9beed81e66e",
      "tree": "beb7c19359bcc63ef6bbf918bf3b4a6ffe2a3003",
      "parents": [
        "64c496c8d51c71605cd34a510da2ecd8180656ec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 27 18:21:09 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 27 18:21:09 2015 -0800"
      },
      "message": "Audio policy: fix device gain initialization\n\nFix initilization of default gain configuration for\naudio devices loaded from audio_policy.conf.\n\nInitialization cannot be done in constructor as the possible\ngain configurations are not loaded yet.\n\nBug: 19120566.\nChange-Id: I78f057ecfa1a121365ac3d8f317912a6f1647627\n"
    },
    {
      "commit": "1d6aedb3581f1ef2ce9862b1b1d03c9fd3cfff83",
      "tree": "21cf75806101a627b4dcaa522c18525f9974d5fe",
      "parents": [
        "c10a0a35bfd3c776089403cd2d9a82662189e4a2",
        "bf2751a5ea6a306c2ba51a0658ec10aa889a81fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 20 23:28:46 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 20 23:28:46 2015 +0000"
      },
      "message": "am bf2751a5: am 7ccc6b9b: Merge \"fix audio patch leak.\" into lmp-mr1-dev\n\n* commit \u0027bf2751a5ea6a306c2ba51a0658ec10aa889a81fa\u0027:\n  fix audio patch leak.\n"
    },
    {
      "commit": "7ccc6b9baf2f568a0a8c6e27dcd4195645a6361d",
      "tree": "b4d2dfaf0b4fb59655c34d21ca61a890f594f83d",
      "parents": [
        "4d4ea7f7ca04cfe70ecf6f35658389f52ae6d3c1",
        "aa79befb301bc3451a19021b3fc9e9e6a1f231e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 20 21:09:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 20 21:09:54 2015 +0000"
      },
      "message": "Merge \"fix audio patch leak.\" into lmp-mr1-dev"
    },
    {
      "commit": "aa79befb301bc3451a19021b3fc9e9e6a1f231e8",
      "tree": "d55a9b5ccde8671e9126ced03a963a70891ae1e8",
      "parents": [
        "5f3194c9efeadc200c89d9e2b00a19f1afeac55d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:33:51 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 18:56:26 2015 -0800"
      },
      "message": "fix audio patch leak.\n\nAlways wait for status when executing a create audio patch\ncommand in audio policy service command thread.\nThe returned patch handle must be passed back to audio policy manager\nso that the patch can be modified later.\nFailing to do so causes a leak of patch descriptors in audio flinger.\n\nBug: 19032387.\nChange-Id: I5462d1437fac244d9c5e38f2c7b8e1a4c01d2b75\n"
    },
    {
      "commit": "c09eb2dfef090864e3ab827c12e724424fc8ca01",
      "tree": "5e133dbdce48e3fd13c9dba5c88b0bd27d50134b",
      "parents": [
        "1509765f2262e4582cdcfdb064417884a3efa04c",
        "65cb339de0f628c82bdd5c68d868b6f3dc83cf04"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 23:11:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 15 23:11:40 2015 +0000"
      },
      "message": "am 65cb339d: am 21291a42: Merge \"fix leak in audio policy effect config parser\" into lmp-mr1-dev\n\n* commit \u002765cb339de0f628c82bdd5c68d868b6f3dc83cf04\u0027:\n  fix leak in audio policy effect config parser\n"
    },
    {
      "commit": "21291a420e11ccdf23e955c3dc390304230ddce3",
      "tree": "5d3495362261003fb53836cf541467e65b1a0b39",
      "parents": [
        "5b578beca7c835c0c49f8f93219cf4d2f82057e3",
        "182c2f5e48f46c11dbcb5eecb46268dff4ad4797"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 23:00:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 15 23:00:46 2015 +0000"
      },
      "message": "Merge \"fix leak in audio policy effect config parser\" into lmp-mr1-dev"
    },
    {
      "commit": "182c2f5e48f46c11dbcb5eecb46268dff4ad4797",
      "tree": "b1a7e63012b5e2ee6b6975baae5c0726e4376397",
      "parents": [
        "5f3194c9efeadc200c89d9e2b00a19f1afeac55d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:29:19 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:29:19 2015 -0800"
      },
      "message": "fix leak in audio policy effect config parser\n\nFree temporary effect descriptors created in\nloadAudioEffectConfig().\n\nBug 19021726.\n\nChange-Id: Icd44216e25df3fe683a01763d7e8a7b84f367a1a\n"
    },
    {
      "commit": "c9123e9aec7d84b51e5e3863953bcbd05e754513",
      "tree": "7ecc13d22ccf83e91721ac0c79306f13677c7cb9",
      "parents": [
        "eb2a7346c2270a7fb3cc3e127f7b52ba20df1fb7",
        "eed5e4bd2b25da3e1965f4ab360f3cea1ccbcc2c"
      ],
      "author": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Thu Jan 15 06:17:27 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 15 06:17:27 2015 +0000"
      },
      "message": "am eed5e4bd: am 5b578bec: Merge \"    [FM]There is no sound output from BT earphone while BT earphone is connected\" into lmp-mr1-dev\n\n* commit \u0027eed5e4bd2b25da3e1965f4ab360f3cea1ccbcc2c\u0027:\n  [FM]There is no sound output from BT earphone while BT earphone is connected\n"
    },
    {
      "commit": "e6b8b27088f461957b4cbc51adbc8b01c41e9de2",
      "tree": "efe600104c76312a94c06c58a0e16f2b8e42a2d5",
      "parents": [
        "0b460ad7557f6be56aad3fa027d93b38d5995ac4"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Tue Jan 13 20:27:13 2015 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Tue Jan 13 11:12:50 2015 -0800"
      },
      "message": "    [FM]There is no sound output from BT earphone while BT earphone is connected\n\n    Bug: 18847131\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/193318\n\n    Signed-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n\nChange-Id: I79703ba4ceb67ca3b95fbc71444dd3b116ba4131\n"
    },
    {
      "commit": "27a78b56e1cf9814971192883cb7d15c186465f7",
      "tree": "78d22ab6884bade675def21c48c251c9a9a15bc0",
      "parents": [
        "69158e3e7b565a5ca131a2efaa9b76615ca80cbb",
        "78c02ddb6bf0d676160244a62c11dceb68301b73"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "message": "am 78c02ddb: am cfa5bf04: Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev\n\n* commit \u002778c02ddb6bf0d676160244a62c11dceb68301b73\u0027:\n  make libserviceutility a shared lib\n  audio policy: fix remote mic capture\n  audio policy: suppport for dynamic source\n  Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions\n  Fix race condition in signaling completion for decode.\n  AnotherPacketSource: need reset some members before returning from queueDiscontinuity().\n  Fix looping sound playback\n  AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted from seek.\n"
    },
    {
      "commit": "cfa5bf04ff250a14b11a75bcfa35ee2d6dbab4e9",
      "tree": "b985df2fc3985bfe5589cb6955ed3369d7d9feef",
      "parents": [
        "610255e8f2d02cb3513695eacf1c37d66b3553d6",
        "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:19:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 19:19:33 2015 +0000"
      },
      "message": "Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev"
    },
    {
      "commit": "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a",
      "tree": "e586c65974e885af85d209c811acb3d3cd592736",
      "parents": [
        "71d13d4c94cea2113d074cf0d0c6e07ad68ff3ec"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:42:33 2015 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:50:09 2015 -0800"
      },
      "message": "make libserviceutility a shared lib\n\nso that we have only one getpid_cached in mediaserver process\n\nbug: 18919657\n\nChange-Id: Iff3cd932c9110e874b3885f79705f49bf3e3f1fc\n"
    },
    {
      "commit": "bb2e3e9d05e3760cfcf3cc63c10e7e8336e63a06",
      "tree": "afa82b79d308a48411dcb7ad0605139d545b5ff6",
      "parents": [
        "f89e974cac7916c11b1bd480e40c8a4770544848",
        "fb5d35c00d1c4d672d245b6820551808617eba46"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 00:17:12 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 00:17:12 2015 +0000"
      },
      "message": "am fb5d35c0: am 7ae3dfab: Merge \"fix record from default input source\" into lmp-mr1-dev\n\n* commit \u0027fb5d35c00d1c4d672d245b6820551808617eba46\u0027:\n  fix record from default input source\n"
    },
    {
      "commit": "c447ded04f11169e9b96b31cd196b2c4ffa9f31c",
      "tree": "77fedcbb54431d1d432d9bdcc58791ec5418c413",
      "parents": [
        "3190e67d5c80c1e39e3be91784110af1180cd182"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 08:47:05 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 08:55:25 2015 -0800"
      },
      "message": "fix record from default input source\n\nCommit caf7f48a0e broke capture from default\ninput source on some devices: the input source is now specified as part of\nthe audio attributes and the default source was not remapped to mic source.\n\nBug: 18736417.\nChange-Id: I3f5da33cdb56f959aaef68ed1952342babc63aa0\n"
    },
    {
      "commit": "4250b955f40ec459b5aeff3129a570fb182e8819",
      "tree": "9f16b8c36f2beb8c6feb1eea212c37f2b887ea09",
      "parents": [
        "645b0192ad5d9b46b06aa06ac5670a8390d35f6f",
        "01310cd7adad778f8a6d0e4bc73dae068638abf2"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Mon Jan 05 21:53:06 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 05 21:53:06 2015 +0000"
      },
      "message": "am 01310cd7: am 3190e67d: close remote submix\\\u0027s output when device is not available.\n\n* commit \u002701310cd7adad778f8a6d0e4bc73dae068638abf2\u0027:\n  close remote submix\u0027s output when device is not available.\n"
    },
    {
      "commit": "3190e67d5c80c1e39e3be91784110af1180cd182",
      "tree": "df0ffbb41220270e726bc95e1148bae7a370473a",
      "parents": [
        "0d19abb440c7e62e944efbeadf02299990f9a589"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Tue Dec 30 13:00:52 2014 -0800"
      },
      "committer": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Mon Jan 05 13:27:42 2015 -0800"
      },
      "message": "close remote submix\u0027s output when device is not available.\n\n- change output close logic to find the device from IOProfile rather than\n  AudioPatch as AudioPatch handle can be cleared before disconnect.\n- Otherwise, remote submix can be stuck as output is never closed and does not\n  work any more as subsequent open fails as output is already taken.\n\nbug: 18733215\n\nChange-Id: Iddb481c91e81070e6be18996a4c8837dabd7ebdb\n"
    },
    {
      "commit": "b915a420a6a205d30c0181d3fc13078fc6d37a3c",
      "tree": "743d38720da9d490f821f2897af978768b9c7cf2",
      "parents": [
        "af318e2882e0b8b1a594f079eb3d10b2daa3ff7e",
        "572216352498c702651567b3b299a1f7ed725429"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 24 18:57:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 24 18:57:46 2014 +0000"
      },
      "message": "am 57221635: am 5886252a: Merge \"audio policy: fix isSourceActive() for hotword\" into lmp-mr1-dev\n\n* commit \u0027572216352498c702651567b3b299a1f7ed725429\u0027:\n  audio policy: fix isSourceActive() for hotword\n"
    },
    {
      "commit": "d8be13b8d964b7edb02cb2ad64dee86ff247c911",
      "tree": "a0fd518a691d4baebbfc69c783109cca28529e46",
      "parents": [
        "bae511e3b982355fbc75ae2ba13bb88feab9fe8c",
        "caf17e316c7b7c22e877397f6bb3f882e4f68279"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 20 00:38:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 20 00:38:23 2014 +0000"
      },
      "message": "am caf17e31: am 0a0662ea: Merge \"audio policy: improve accessibility routing\" into lmp-mr1-dev\n\n* commit \u0027caf17e316c7b7c22e877397f6bb3f882e4f68279\u0027:\n  audio policy: improve accessibility routing\n"
    },
    {
      "commit": "a34c9ce292ea984e92d8f70d2c056e5372c4f452",
      "tree": "cea445f4cdb835a54814ea93da1d2452869800fd",
      "parents": [
        "2cbe89a82d4167c5d5bcf3024edc22ab6874143a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 11:16:32 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 12:01:31 2014 -0800"
      },
      "message": "audio policy: fix isSourceActive() for hotword\n\nOnly condider AUDIO_SOURCE_HOTWORD equivalent to\nAUDIO_SOURCE_VOICE_RECOGNITION if the active capture\nwas triggered by a hardware hotword recognition.\n\nAlso fix activeInputsCount().\n\nBug: 18802896.\nChange-Id: I471aafcae29a76e9c323c6c0c314ef083991476b\n"
    },
    {
      "commit": "2cbe89a82d4167c5d5bcf3024edc22ab6874143a",
      "tree": "a11134b8f4bda628079a21ed2d0e31923950cecb",
      "parents": [
        "d4b056da7cbf1adb2a5f668e4425def3754a9c09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 11:49:08 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 12:01:31 2014 -0800"
      },
      "message": "audio policy: improve accessibility routing\n\nForce re-evaluating accessibility use case routing\nwhen a condition affecting it (ringtone, alarm, call state)\nis changing.\n\nBug: 18761698.\nChange-Id: I42ac3a9fdc80bce11cf0a7fc76f680af4271abc9\n"
    },
    {
      "commit": "22dfb93254de370d401706728aba1f032ef1b172",
      "tree": "7adc8458ed0b666dd0e9e623067583ccb3b677a1",
      "parents": [
        "93118cd96233b682be95a3eb114d88d69c8cc416",
        "8aadc515b57c78cbb07ae7d0cb2553148ef05947"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:43:22 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:43:22 2014 +0000"
      },
      "message": "am 8aadc515: am 71b52b5b: Merge \"Fix routing not happening after change in output device list\" into lmp-mr1-dev\n\n* commit \u00278aadc515b57c78cbb07ae7d0cb2553148ef05947\u0027:\n  Fix routing not happening after change in output device list\n"
    },
    {
      "commit": "93118cd96233b682be95a3eb114d88d69c8cc416",
      "tree": "64f81b51b6071954122e612e860d2ed106e48a93",
      "parents": [
        "3af7b7291bcd9b1b30dd11a8bedbdc63cc74b5a9",
        "99429b40411790b85e19c57392bbd292a237c470"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "message": "am 99429b40: am 277c7b8c: Merge \"Fix permission check for audio recording\" into lmp-mr1-dev\n\n* commit \u002799429b40411790b85e19c57392bbd292a237c470\u0027:\n  Fix permission check for audio recording\n"
    },
    {
      "commit": "71b52b5bb3be81bffa320241ca486fbf964d743e",
      "tree": "39c9146e8b3a4721bcafbc4b2f19158176ff00cc",
      "parents": [
        "277c7b8c41436125742339d8c80bccf0f2b086d9",
        "fe472e292ab50c121ff93dffa3b54c96feedcfef"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:31:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 17:31:33 2014 +0000"
      },
      "message": "Merge \"Fix routing not happening after change in output device list\" into lmp-mr1-dev"
    }
  ],
  "next": "277c7b8c41436125742339d8c80bccf0f2b086d9"
}
