)]}'
{
  "log": [
    {
      "commit": "64265b2fb8f5be63b6c2ad4fcbec9acf74705bc4",
      "tree": "a92838f2510034b35b41e78a71bb6385d6f7b557",
      "parents": [
        "6fe78a875793188ff80512db247312109038f181"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 18 18:32:07 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 22 01:07:14 2015 +0000"
      },
      "message": "audio policy: fix preemtible capture race\n\nBecause a preemtible capture session can preempt another one,\nwe end up in an endless loop situation were each session is allowed to restart\nafter being preempted, thus preempting the other one which restarts and so on.\n\nTo avoid this situation, we store which audio session was preempted when\na particular input started and prevent preemption of this active input by this session.\nWe also inherit sessions from the preempted input to avoid a 3 way preemption loop etc...\n\nBug: 24007220.\nChange-Id: I0eab5299440ef3ab9e987635dc9a300cf42f2c79\n"
    },
    {
      "commit": "7c1ec5f038e63a5eb8b04434577c25bc23f5f410",
      "tree": "f6b8feda43ba0bb6666171b57318ad3cea48a45e",
      "parents": [
        "54c0659b9efa72d11997c590c4d377c44789c7fd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 09 14:52:47 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 10 10:58:41 2015 -0700"
      },
      "message": "audio: several fixes in audio routing callbacks\n\n- audio policy:\nForce device change to ensure new audio patch creation\nupon first track activity on a given output.\nFix function device_distinguishes_on_address() which could mistake\nsome output device with remote submix input device.\n\n- audio flinger:\nReduce number of binder calls upon new client registration by only\nsending ioConfigChanged() callbacks to newly registered client.\nFix first patch after output thread creation not triggering an\nioConfigChanged() callback.\n\n-audio system:\nForce client registration upon routing callback installation to force\nnew ioConfigChanged() callback from audio flinger.\n\nBug: 22381136.\n\nChange-Id: Ieb0d9f92f563a40552eb31bc0499c8ac65f78ce4\n"
    },
    {
      "commit": "54c0659b9efa72d11997c590c4d377c44789c7fd",
      "tree": "7ae8b7967c68e0a0c5c973f660e75de4d22aa8cc",
      "parents": [
        "672d9ca1f0a35f3bda02ddfe81e0e10cebba99c3"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Jul 08 09:46:05 2015 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 09 18:51:35 2015 +0000"
      },
      "message": "audio policy: session route: move SessionRoute to common\n\nMove the SessionRoute and SessionRouteMap inner class from policy\nmanager to common policy pillars as initiated by the refactor.\n\nThis code was added at teh wrong place by commit aa981194.\n\nBug: 22376521.\n\nChange-Id: I29aca21614e409c59aae4b7b14163552fb0bffb1\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "9a7d922796c61353e30cea5878f41b921adc79b0",
      "tree": "a52b00294822963dd4f6d2d85b9b9d90a757e6fa",
      "parents": [
        "065f6572752dca646b7d60df8e80b6d4ac159281"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 02 15:30:23 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 07 14:07:37 2015 -0700"
      },
      "message": "audio policy: add support for device combo with speaker safe\n\ncombo devices with AUDIO_DEVICE_OUT_SPEAKER_SAFE were not\nsupported by audio policy manager causing selection\nof speaker+headphone when spekaer_safe+headphone would be\nthe right selection.\n\nBug: 21537010.\nChange-Id: I9865352559c9d32c6754ad3d2b84bddfe2dc8aac\n"
    },
    {
      "commit": "75bd29fde03953952804215d1f24d8dffaeda763",
      "tree": "add5332453c6b6ab2896f7e323a8e077964494da",
      "parents": [
        "f60b6b6c776a762827874f6f635c0577359a7ee4",
        "b9d73333cce3f9da3a7a0b33589f6bbe0f992a92"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 06 21:48:31 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 21:48:32 2015 +0000"
      },
      "message": "Merge \"audio: add definitions for devices connected over IP\" into mnc-dev"
    },
    {
      "commit": "b9d73333cce3f9da3a7a0b33589f6bbe0f992a92",
      "tree": "960da701639ef27e3f2f41bbf6120b351380d99f",
      "parents": [
        "dfad5454e0caf46f8732f1415d3b9a76f2a1242e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 30 17:09:20 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 06 12:13:30 2015 -0700"
      },
      "message": "audio: add definitions for devices connected over IP\n\nBug: 22068684.\nChange-Id: Idde0eaf7121d2e43f32eee3e6b10e99d8cff4912\n"
    },
    {
      "commit": "6631424f66253c4bad94618fa078c97715a65fbc",
      "tree": "27fa96ce7558d33d73ef1a6829929d2ab523081a",
      "parents": [
        "b848dbb05b6a03dbe439298e6f9de7ce072c965f"
      ],
      "author": {
        "name": "Ravi Kumar Alamanda",
        "email": "ralama@codeaurora.org",
        "time": "Thu Jul 02 12:30:46 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 02 16:26:09 2015 -0700"
      },
      "message": "audiopolicy: Update flag enum tables for the new flags\n\nWithout an entry in sOutputFlagNameToEnumTable or sInputFlagNameToEnumTable,\na profile with specific output/input flag in the audio_policy.conf will\nnot be detected by AudioPolicyManager.\n\nBug: 19230391\n\nChange-Id: I94bb3594e2eb8b57747b474a253da3551263c59a\n"
    },
    {
      "commit": "cc750d3604b33a92374253b12dd739dc06440aad",
      "tree": "d2fb46dbd9994624d5da2dcd6141add90d79d562",
      "parents": [
        "ed8505836c0b2fba0ab4be0c1eff31d4f241bc1d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 25 11:48:20 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 25 11:48:20 2015 -0700"
      },
      "message": "audio policy: fix several device descriptor issues.\n\n- checkOutputsForDevice() should only clear device descriptor attributes\nif the device is digital.\n- checkInputsForDevice() did not clear device descriptor attributes at all.\n- AudioPort::clearCapabilities() and importAudioPort() should not\nmanage gains as these are device specific.\n- importAudioPort() should load a default port config.\n\nBug: 21990937.\nChange-Id: Ida762ed8f9baaabae392cb4291eff1a8d3009751\n"
    },
    {
      "commit": "e8d55a5d1f6b08cfdabea7628e956063a47fa160",
      "tree": "99492747e87c407d80fe373ce6c2f02463e94fde",
      "parents": [
        "3ecc9db40b1fb9c7f807a5892e5c9625aac1fb06"
      ],
      "author": {
        "name": "Ravi Kumar Alamanda",
        "email": "ralama@codeaurora.org",
        "time": "Wed Jun 17 19:05:43 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 18 10:36:29 2015 -0700"
      },
      "message": "audiopolicy: Add AUDIO_OUTPUT_FLAG_TTS to flags enum table\n\nWithout an entry in sOutputFlagNameToEnumTable, a profile with\nspecific output flag in the audio_policy.conf will not be\ndetected by AudioPolicyManager.\n\nChange-Id: Id242e6819aab1a67d72c564f3cc39af3de8e1ef7\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": "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": "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": "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": "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": "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": "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": "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"
    }
  ]
}
