)]}'
{
  "log": [
    {
      "commit": "f6224dece52c569e27322580407c3f5898fa042b",
      "tree": "b7182ca18dcb96894fdad365403b17f12a3908c7",
      "parents": [
        "8c5b71ce473517ea1270f6467fa518274bd54b35",
        "681bc45d2592ed447f70d1dd14e92ad584499c9d"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:33:12 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:33:12 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\" into mnc-dev\nam: 681bc45d25\n\n* commit \u0027681bc45d2592ed447f70d1dd14e92ad584499c9d\u0027:\n  Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\n"
    },
    {
      "commit": "8c5b71ce473517ea1270f6467fa518274bd54b35",
      "tree": "1aa3f492b81e9b7834babf095188ce9eb4439621",
      "parents": [
        "1fcbd9b0e973d662ed566967af71c8f5b2383320",
        "6919fbe40d92af432d3b72ad36e0697654f8146c"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:33:01 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:33:01 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\" into mnc-dev\nam: 6919fbe40d\n\n* commit \u00276919fbe40d92af432d3b72ad36e0697654f8146c\u0027:\n  Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\n"
    },
    {
      "commit": "1fcbd9b0e973d662ed566967af71c8f5b2383320",
      "tree": "6191f640f705ee0f78a3034f1a06fe68718ede22",
      "parents": [
        "fd16414d341b1c104068c489103aeb2ddb8995e6",
        "cda487148602325701ffd7f595ca096a182f380c"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:33:58 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:33:58 2015 +0000"
      },
      "message": "Merge \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\" into mnc-dev\nam: cda4871486\n\n* commit \u0027cda487148602325701ffd7f595ca096a182f380c\u0027:\n  Revert \"AudioPolicyService: fix race in AudioCommandThread\"\n"
    },
    {
      "commit": "fd16414d341b1c104068c489103aeb2ddb8995e6",
      "tree": "1aa3f492b81e9b7834babf095188ce9eb4439621",
      "parents": [
        "28323c3d9a6dff48c480c50a358d9bd4fdeed407",
        "be6f10c049086453cc53b8e50c5d497bb5b3ae05"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:33:47 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:33:47 2015 +0000"
      },
      "message": "Merge \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\" into mnc-dev\nam: be6f10c049\n\n* commit \u0027be6f10c049086453cc53b8e50c5d497bb5b3ae05\u0027:\n  Revert \"audio policy: bind setMode() and setPhoneState() operations\"\n"
    },
    {
      "commit": "3994ffdd2c280aa5fad9f3c41255371cd545c7cf",
      "tree": "e815c94f3630142e34d22d8493cda4e8a95dc646",
      "parents": [
        "26ce11a1dd2a9b70865aec1b42c365dd19172511"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:45 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:45 2015 +0000"
      },
      "message": "Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\n\nThis reverts commit 26ce11a1dd2a9b70865aec1b42c365dd19172511.\n\nChange-Id: I0affb97e7f2eb541ebd6f26c33e8f32261e9e221\n"
    },
    {
      "commit": "a754b4fa874f97a51ed2bee9257f2a870effe619",
      "tree": "da2c975edfeada4f3d1e2d7ca37cad9ada599f4b",
      "parents": [
        "75c82b50951b21190f710a638c6a26ff7ee6d86d"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:34 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:34 2015 +0000"
      },
      "message": "Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\n\nThis reverts commit 75c82b50951b21190f710a638c6a26ff7ee6d86d.\n\nChange-Id: I1b1f147bedf205636ec20b84faf6ef597a781c0d\n"
    },
    {
      "commit": "26ce11a1dd2a9b70865aec1b42c365dd19172511",
      "tree": "da2c975edfeada4f3d1e2d7ca37cad9ada599f4b",
      "parents": [
        "9ddf1c76121caef55a05c537d6a9a1d76c1d17be"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:25:27 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:25:27 2015 +0000"
      },
      "message": "Revert \"audio policy: bind setMode() and setPhoneState() operations\"\n\nThis reverts commit 9ddf1c76121caef55a05c537d6a9a1d76c1d17be.\n\nChange-Id: I860ecc288a1798605dff46f39107f4450ca5cd56\n"
    },
    {
      "commit": "75c82b50951b21190f710a638c6a26ff7ee6d86d",
      "tree": "97d86a674d1cecec6da60dfb0ec0c2eae1e2b644",
      "parents": [
        "74ce88ff0f24a8c08fdab3a1140212183089c2b5"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:24:55 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:24:55 2015 +0000"
      },
      "message": "Revert \"AudioPolicyService: fix race in AudioCommandThread\"\n\nThis reverts commit 74ce88ff0f24a8c08fdab3a1140212183089c2b5.\n\nChange-Id: I39114c8cdd3021951ba93716aaa0c1c03e68538d\n"
    },
    {
      "commit": "9ddf1c76121caef55a05c537d6a9a1d76c1d17be",
      "tree": "e815c94f3630142e34d22d8493cda4e8a95dc646",
      "parents": [
        "74ce88ff0f24a8c08fdab3a1140212183089c2b5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 15:49:30 2015 -0700"
      },
      "committer": {
        "name": "Christian Bejram",
        "email": "cbejram@google.com",
        "time": "Fri Oct 16 16:49:31 2015 -0700"
      },
      "message": "audio policy: bind setMode() and setPhoneState() operations\n\nNo routing operation should be allowed between setMode() and setPhoneState()\nwhen starting a call as the audio HAL relies on a precise sequence of mode change\nand routing change to select the initial audio device for the call.\n\nBug: 24083591.\n\nChange-Id: I2d5ef62c11cf7aedc2ec7ca5e5fadd7ac875afbc\n"
    },
    {
      "commit": "74ce88ff0f24a8c08fdab3a1140212183089c2b5",
      "tree": "da2c975edfeada4f3d1e2d7ca37cad9ada599f4b",
      "parents": [
        "7b80648180feaad1e7edaecd078246f5002a8fb6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 10:25:31 2015 -0700"
      },
      "committer": {
        "name": "Christian Bejram",
        "email": "cbejram@google.com",
        "time": "Fri Oct 16 16:48:45 2015 -0700"
      },
      "message": "AudioPolicyService: fix race in AudioCommandThread\n\nFixe race condition in AudioCommandThread::threadLoop() where a\ncommand can be inserted in first position in the queue after the sleep\ntime has been calculated causing a longer delay than expected.\n\nAlso fix a failure to hold a wake lock while commands are still in the queue.\n\nBug: 22707905.\nChange-Id: I813626986677bf00106acb37ee20d3dd75d5cf33\n"
    },
    {
      "commit": "c0a889f766953b657a5e997bc1362661806d3a19",
      "tree": "fb0a2248a68bf20df0adfccf4cdcc7dce2c5d6b0",
      "parents": [
        "0926aab4b8d5d307c95788086090e8d2b2763f1f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 14:36:34 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 15 10:53:32 2015 -0700"
      },
      "message": "audio policy: fix transition from VoIP to voice call on USB\n\nMake sure no active capture takes place while in call and the\ncapture device is the same as the call TX device.\n\nBug: 23977713.\n\nChange-Id: Ia379d5e626c150ea49f0cdd581c881dbf0b8399d\n"
    },
    {
      "commit": "c171c7c47d099a52ade95c3c8d8907bf09bb88fa",
      "tree": "1d3aa7df5d0e1a5458efdcadb7748efd76a3e5ae",
      "parents": [
        "036b6593eec6ced2f34293e8407f1cb86ae1e75f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 25 12:21:06 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 15 09:48:06 2015 -0700"
      },
      "message": "audio policy: fix USB mic selection for VoIP\n\nWhen transitioning from speaker phone to normal mode and a USB\nheadset is connected, we must force a teardown of active input\nas the new input device cannot be reached via current input stream.\n\nBug: 24406915.\nChange-Id: I9f7c1d3f3cba285c25a6da1d54a3d15a5c1f378a\n"
    },
    {
      "commit": "45fd99a31d09f247c72f456a9d569d7326a95894",
      "tree": "b06f4ce59dc97d24a1ed5f40614653f5ab95926d",
      "parents": [
        "047d97b2d046374e2a25c81a984d9cde23f5d781",
        "64265b2fb8f5be63b6c2ad4fcbec9acf74705bc4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 24 00:22:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 24 00:22:57 2015 +0000"
      },
      "message": "Merge \"audio policy: fix preemtible capture race\" into mnc-dr-dev"
    },
    {
      "commit": "047d97b2d046374e2a25c81a984d9cde23f5d781",
      "tree": "9602fea6112f8b3084fc8575fecbb5ba1e4da201",
      "parents": [
        "3916845dda1289c3419fe21fbe335bcbddc2e354"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 10:25:31 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 11:13:14 2015 -0700"
      },
      "message": "AudioPolicyService: fix race in AudioCommandThread\n\nFixe race condition in AudioCommandThread::threadLoop() where a\ncommand can be inserted in first position in the queue after the sleep\ntime has been calculated causing a longer delay than expected.\n\nAlso fix a failure to hold a wake lock while commands are still in the queue.\n\nBug: 22707905.\nChange-Id: I813626986677bf00106acb37ee20d3dd75d5cf33\n"
    },
    {
      "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": "beb07febdc0cae2f43a2008d3bd06b7bb933b19a",
      "tree": "889fadf6fd8136b134f397010846c6b0334415b3",
      "parents": [
        "20baac2a934e9d968832a44809eecc8c46c17fe2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 15:49:30 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 15:49:30 2015 -0700"
      },
      "message": "audio policy: bind setMode() and setPhoneState() operations\n\nNo routing operation should be allowed between setMode() and setPhoneState()\nwhen starting a call as the audio HAL relies on a precise sequence of mode change\nand routing change to select the initial audio device for the call.\n\nBug: 24083591.\n\nChange-Id: I2d5ef62c11cf7aedc2ec7ca5e5fadd7ac875afbc\n"
    },
    {
      "commit": "af20bc26704458eac0ddc23f12b637939b0df7a4",
      "tree": "df3518ad8366456ead184e0af23b91a6fd477b4f",
      "parents": [
        "f00b70e082c14f789c948f623daca9be7a0e36e8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 14 16:37:07 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 14 16:37:07 2015 -0700"
      },
      "message": "AudioPolicy: don\u0027t always change ACCESSIBILITY volume\n\nOnly change the volume for AUDIO_STREAM_ACCESSIBILITY when\n  changing the media volume.\n\nBug 23366575\n\nChange-Id: Ic42c726ec4d47615c20500c20e4d43cef159b3c6\n"
    },
    {
      "commit": "b9017af21e097ef12867e0d4b72c432579f29674",
      "tree": "a9283a1f2a1846508e6eeb8579b166ddc85d21ed",
      "parents": [
        "0f05031545e43c8fe49a9dda0cfd9dce202d1ef3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 10 18:38:08 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 11 14:30:52 2015 -0700"
      },
      "message": "Force fixed volume for TTS stream\n\nAlways play Transmitted Through Speaker stream at max volume instead\nof tracking media stream volume.\n\nBug: 23729461.\nChange-Id: I61021f59617bb851a4cd7da80924e587029e96a3\n"
    },
    {
      "commit": "a09f8cf8c76fa946c4b91be059b420941abcdc3b",
      "tree": "a914917fae4819358c06c5e513438ef416808916",
      "parents": [
        "9697dd11e3586ba91bdec9f378fdaa8cab6ed082",
        "9459fb087c97c3cad66221821eb32755fdb9c9f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 13 22:08:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 13 22:08:42 2015 +0000"
      },
      "message": "Merge \"audio policy: refine TTS stream mute management\" into mnc-dr-dev"
    },
    {
      "commit": "9459fb087c97c3cad66221821eb32755fdb9c9f5",
      "tree": "3ffcdf33603dc84b5c46106e20912e2ef1989356",
      "parents": [
        "3704d6b33896323763f08f8955b918e75cd4a21e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 12 18:36:32 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 12 18:36:32 2015 -0700"
      },
      "message": "audio policy: refine TTS stream mute management\n\nDo not mute the TTS stream if a dedicated output for\nTTS is available.\n\nBug: 22100304.\nChange-Id: Ic126100ce1144f765bc0ae42c8ea87fa47cfb822\n"
    },
    {
      "commit": "82db269d4797cb9909988b723d91fa2094a74b38",
      "tree": "77f2ff4451760a09704ab7676f9e680e9af0729a",
      "parents": [
        "aa7a4eae1cc93ccf90e273b9634f3a125b0b3565"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 13:59:42 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 15:23:46 2015 -0700"
      },
      "message": "audio policy: protect capture from telephony RX path.\n\nAdd permission check if the capture device selected is telephony\nRX path.\n\nBug: 23017158.\nChange-Id: Iaa34d836e6cf46b7cbbf2483fcd4306dcd27ce90\n"
    },
    {
      "commit": "45aabc3578f2362b82f5a425d44e75d4266b1c8c",
      "tree": "da2bc7bbd63b628402972f65122c40fe1a186b07",
      "parents": [
        "7db7948908b21ca2d878d6882cdf1a23a121182f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 06 09:11:13 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 06 09:14:37 2015 -0700"
      },
      "message": "audio policy: populate attributes for attached capture devices\n\nPopulate supported sampling rates, channel masks and formats when enumerating\nattached build in capture devices.\n\nHaving this information for build-in mic is important for some applications.\n\nBug: 22729461.\nChange-Id: I93f03296447a87c10f2615fa1b1c45e9879b4aa7\n"
    },
    {
      "commit": "5de234b29141334c1bb5e40bc19c11836848841b",
      "tree": "00cc7d27395e4705fb5e297b896eccac90714ccb",
      "parents": [
        "f8f669d7a727e4ad5505cd85741f4d50dbaffbf9"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 21 11:42:02 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 21 11:45:43 2015 -0700"
      },
      "message": "Prevent notifications from muting accessibility prompts\n\nWhen evaluating on which device a sound is to be played, the policy\n  must consider which current routing strategy, if any, has priority\n  for overriding the choice. Here the playback of notifications,\n  when duplicated over speaker and headphones, was causing the\n  accessibility prompt to be muted because the it was of a higher\n  priority, and incompatible with the accessibility routing.\nThe fix consists in assigning a higher priority to the accessbility\n  routing strategy over the notification routing strategy.\n\nBug 18834451\n\nChange-Id: I8228b30a7d80bd61d1c223afb030d9421d4f33cf\n"
    },
    {
      "commit": "0489aa0a7a9930a155022cac97242eb7ec610cdc",
      "tree": "6ad1c1cdbd99bc13187660c06f00951d2f2d6970",
      "parents": [
        "1bc88814f530bf67e425cfb8cea0f2b8dce3c03f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Jun 24 17:29:40 2015 +0200"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jul 15 17:15:52 2015 -0700"
      },
      "message": "Update Policy PFW plugin makefile for PFW release 2.6.0\n\nThis patch updates the Policy PFW plugin with latest change within\nPFW. It makes use of the dynamic xmlserializer library and does not\nneed anymore to link against xmlserializer library dependencies.\n\nChange-Id: Ic7b912929a69d3906a34999c1ae25ddb9ac800e5\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n\nBug 246391\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": "e59c6a33e724579f4b8ac76586e6f667fa0b8572",
      "tree": "ca09f0bfe4856fa72b87085588719b9dd445fa88",
      "parents": [
        "75bd29fde03953952804215d1f24d8dffaeda763",
        "63dea1d5334acf3baa9448086dd504ead57d814b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 06 22:11:33 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 06 22:11:34 2015 +0000"
      },
      "message": "Merge \"audio policy: fix regression in incall notification management\" into mnc-dev"
    },
    {
      "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": "f60b6b6c776a762827874f6f635c0577359a7ee4",
      "tree": "3eb0c3ebd27e46c40c082669e1633da4eee092e2",
      "parents": [
        "16f0c6b8146b2a993d9fe9c9076c73d39aaee81c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 06 10:53:26 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 06 10:53:26 2015 -0700"
      },
      "message": "Fix build warning\n\nChange-Id: I876edc37fb2093ee13c876c2af5c46512763154d\n"
    },
    {
      "commit": "63dea1d5334acf3baa9448086dd504ead57d814b",
      "tree": "850a50ae6a88d5aa6d86e82b90f9ad71c12945dd",
      "parents": [
        "dfad5454e0caf46f8732f1415d3b9a76f2a1242e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 02 17:10:28 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 02 17:15:58 2015 -0700"
      },
      "message": "audio policy: fix regression in incall notification management\n\nCommit 2110e04c introduced a regression preventing ongoing alarms to\nbe restored when exiting a call and leaving the replacement tone\nplaying for ever.\n\nAlso add missing management of accessibility prompts when entering a\ncall.\n\nBug: 21857005.\nChange-Id: I4295c791c003db42c0fba9f618e51f60438158d1\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": "6705edd4e58c4fcff0cbbff30bacffa561759ba8",
      "tree": "639d1686cdbb869e6eb673e597a874f838292693",
      "parents": [
        "064b2bf712788d30928b9a8bafecd0f3308d7aa4",
        "e8726fea8a53bf3474aa3c6deaf2f6c1f565e694"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 27 00:16:34 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 27 00:16:35 2015 +0000"
      },
      "message": "Merge \"reduce number of binder calls from mediaserver\" into mnc-dev"
    },
    {
      "commit": "e8726fea8a53bf3474aa3c6deaf2f6c1f565e694",
      "tree": "d72b6ffcc7e33c178e3cac7c108b102041451cb6",
      "parents": [
        "ed8505836c0b2fba0ab4be0c1eff31d4f241bc1d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 26 09:39:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 26 12:38:13 2015 -0700"
      },
      "message": "reduce number of binder calls from mediaserver\n\nReduce the number of audio port, audio patch and\nIO config changed binder calls from mediaserver to\nclient processes:\n- Do not call IO config changed callback if selected\ndevice is the same as previously selected one on a given\naudio flinger playback or capture thread.\n- Do not call the audio port or audo patch list update\ncallback on a client if this client as no listener registered.\n\nBug: 22045560.\n\nChange-Id: If780e105404de79b7cb5c80c27b793ceb6b1c423\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": "c764de34b37abb05f7ff25fa5f8d540505bb8645",
      "tree": "5fb91727adf409e6b0042209f5801cbdb9509221",
      "parents": [
        "47b1ca9cf7c45564887832bfdec21ccc18eb448e",
        "9080a4cd8c4e22ddae0350c0c51a20cea1a41016"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Jun 19 17:36:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 19 17:36:55 2015 +0000"
      },
      "message": "Merge \"Fixing no rates, chans \u0026 encodings on input devices for device enum API. Filtering digital attributes for non-digital audio devices.\" into mnc-dev"
    },
    {
      "commit": "9080a4cd8c4e22ddae0350c0c51a20cea1a41016",
      "tree": "14b1ad41e864a8418d529faa9dbd832aa7426d23",
      "parents": [
        "3fc792fe36b0b9100f74185665221b37f650ff65"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Jun 18 08:24:02 2015 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Jun 19 09:02:49 2015 -0700"
      },
      "message": "Fixing no rates, chans \u0026 encodings on input devices for device enum API.\nFiltering digital attributes for non-digital audio devices.\n\nBug: 21876072\n  21903975\n\nChange-Id: Ia5c81a8160f4b4ebf5941dd0c5dfb68d01699ca6\n"
    },
    {
      "commit": "91b0018d658a509aacceddf9cde84afca591d014",
      "tree": "49fe3c6da48e1f110c308aed813ec235c0686e08",
      "parents": [
        "46d8eb1aa167c8811554cded6640cb6f153b5021",
        "0f17ab7f9fac4327a8772e9199f411af7df912a4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 18 22:10:17 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 22:10:23 2015 +0000"
      },
      "message": "Merge \"Bug fix on Engine Configurable\" into mnc-dev"
    },
    {
      "commit": "46d8eb1aa167c8811554cded6640cb6f153b5021",
      "tree": "a221e9da8efbc9bee2a372395bf4d824346784da",
      "parents": [
        "c675cf0fff3da75a92bc157e3bf698cc5a1f6eb3",
        "20f06f996337c9bf79d0b112083f6427a122ebab"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 18 22:10:07 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 22:10:07 2015 +0000"
      },
      "message": "Merge \"Add a configurable version of the policy engine based on PFW\" into mnc-dev"
    },
    {
      "commit": "fa907d4ee326c7bb9cbb4882ab7c0ec42bbceee3",
      "tree": "51f9abafbb46f41145e721449010232479dfa63a",
      "parents": [
        "3fc792fe36b0b9100f74185665221b37f650ff65",
        "e8d55a5d1f6b08cfdabea7628e956063a47fa160"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 18 18:47:55 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 18:47:56 2015 +0000"
      },
      "message": "Merge \"audiopolicy: Add AUDIO_OUTPUT_FLAG_TTS to flags enum table\" into mnc-dev"
    },
    {
      "commit": "0f17ab7f9fac4327a8772e9199f411af7df912a4",
      "tree": "05d9dcb97a6f76ce0c0a43520d81705eb3241c27",
      "parents": [
        "20f06f996337c9bf79d0b112083f6427a122ebab"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed May 13 18:13:00 2015 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 18 10:55:05 2015 -0700"
      },
      "message": "Bug fix on Engine Configurable\n\nThis patch fixes a couple of issue within audio policy engine configurable\n -valgrind error detected within the parsing of the configuration file\n -configuration file typos\n -start of the PFW delayed to the init in order to wait the full construction\nof the engine object\n -wrong specialization of template functions.\n -broadcast volume min / max init to stream collection of manager \u0026 PFW\n\nChange-Id: I08823ab4040c92b719747c60cc3fa5c8b5f172ac\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "20f06f996337c9bf79d0b112083f6427a122ebab",
      "tree": "ad50ded183a11ceef01566a2ff78c29e89f5c4e2",
      "parents": [
        "3fc792fe36b0b9100f74185665221b37f650ff65"
      ],
      "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": "Thu Jun 18 10:52:09 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\n- Fix M Issue on configurable policy engine version.\n\n- Remove the \"empty static lib include trick\" hack\n\nThe code was using a hack to import headers only through an empty lib.\nThis trick was used not only by the PFW and its plugin but also internally\nwith policy.\n\nThis patch removes this hack and either links againts the real libraries if exist\nor point on the path of the header.\nHowever, since header directories are not recursively detected on Andoid, we need to manually\nadd all necessary libraries. (for example libicuuc needed by libxml2)\n\n- let the build system decide which compiler and which stl is to be used\n\n- Disable by default Audio Policy Settings XML file generation at compilation time\n\nIn order not to depend on python tool for the configurable policy example,\nthis patch adds the generated Settings XML file and disables the generation\nfrom .pfw files at compile time.\nIf the user wishes to regenerate it, he may use the pfw_rebuild_settings\noption.\n\n- Fix Clang issues within Configurable Audio Policy\n\nFix compilation issues revealed when switching to CLANG compiler\nwithin the configurable version of policy engine.\n\nChange-Id: I3edc26db94c0bf8a76430ab8081bae52e9193705\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\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": "3fc792fe36b0b9100f74185665221b37f650ff65",
      "tree": "114160a4b99b0b203d94f4fbc463d9dc12acf4d7",
      "parents": [
        "3ecc9db40b1fb9c7f807a5892e5c9625aac1fb06",
        "093a20cbe70d0033c085ef7be90b9f1bbacb3335"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 18 00:24:45 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 18 00:24:46 2015 +0000"
      },
      "message": "Merge \"audio policy: fix explicit routing and accessibility\" into mnc-dev"
    },
    {
      "commit": "bd1c3e36767d08813b912028e69a8b7fed315ea2",
      "tree": "3f17b24476b5ddd1d82d2be38b7a0d1765a7e9a7",
      "parents": [
        "ad9ef61e770c0751a9983aa5c9844dfeb9ed665b",
        "439e4ed408c21bd65711d279bd5251cef7e83440"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 11 22:52:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 11 22:52:12 2015 +0000"
      },
      "message": "Merge \"audiopolicy: use deep buffer output by default for music streams\" into mnc-dev"
    },
    {
      "commit": "439e4ed408c21bd65711d279bd5251cef7e83440",
      "tree": "80c8eae9475b4e597f633251fdbac3f0c11eca17",
      "parents": [
        "ca097142ba4664858bc29bb538bcfcf5ea03ebe7"
      ],
      "author": {
        "name": "Ravi Kumar Alamanda",
        "email": "ralama@codeaurora.org",
        "time": "Fri Apr 03 12:13:21 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 11 15:46:26 2015 -0700"
      },
      "message": "audiopolicy: use deep buffer output by default for music streams\n\nDefault disabled. This is enabled by\n\nadb shell setprop audio.deep_buffer.media 1\n\nApplications that use AudioTrack java interface for audio rendering\ndefaults to primary output as flags indicated as FLAG_NONE. If the\nprimary output is low latency output, it results higher power\nconsumption than deep-buffer path if used.\nMake the deep buffer output as default option for music streams if\nflags are not specified.\n\nIt may also be used for testing audio glitches from heavy CPU\nor DRM which may cause issues with the FastMixer.\n\nBug: 21198655\nBug: 21785618\nChange-Id: I909c296ddcf4484b9a877ef1c0230ea58537e06a\n"
    },
    {
      "commit": "093a20cbe70d0033c085ef7be90b9f1bbacb3335",
      "tree": "1e4ecd5a5cfe13d30d3221070511d5f68c7d4a75",
      "parents": [
        "4599da7f4ca67a323aa64d84c1b79e3ce6ab9f41"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 11 12:33:29 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 11 12:33:29 2015 -0700"
      },
      "message": "audio policy: fix explicit routing and accessibility\n\nIf a session has an active explicit routing request, this routing\nmust also be applied to accessibility prompts if accessibility\nusage is currrently remapped to the strategy used by this session.\n\nBug: 20873151.\nChange-Id: I97c6ece98cf1af9c64c2d2eb1fe382c7c0d657b4\n"
    },
    {
      "commit": "e1c3cf01a58e45ec3784a1e877e16ce9ef7f6d1c",
      "tree": "2989aeba964adddbfa7295d84ede80817b2ac4b7",
      "parents": [
        "6021de00076de9e358b3d557b58f79d7bb067ecd",
        "a20d4fa431d1091abf66f9d426ef0cf441db6623"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 10 00:47:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 10 00:47:39 2015 +0000"
      },
      "message": "Merge \"audio policy: route media to BT SCO in call\" into mnc-dev"
    },
    {
      "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": "a20d4fa431d1091abf66f9d426ef0cf441db6623",
      "tree": "71404014cc365b5d4640254f3f6ff907a20ccfcc",
      "parents": [
        "d16a8ef26fd1f7a86061c396c5865564af2f1abb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 04 18:39:28 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 08 10:27:58 2015 -0700"
      },
      "message": "audio policy: route media to BT SCO in call\n\nAllow media (and Navigation instructions) to be routed\nto BT SCO in call.\n\nBug: 18986190.\n\nChange-Id: I1fa4decfbf035623fdcc8681b53cbd61e1d5f933\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"
    }
  ],
  "next": "53615e29c99c5e9d2ca77aaefd7bf5c770513120"
}
