)]}'
{
  "log": [
    {
      "commit": "e964d4e421e2d1ca937227a580c0c837091a11e3",
      "tree": "876478fb4d5b18ddf8ba3b761440e46651b45ecb",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 11:35:57 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "d91a420f234e2ec0ccc4d156a56297832e21d4a6",
      "tree": "b9ef2d51e03939fee2f880d2008dbbf005c5c1fb",
      "parents": [
        "f9eb4d2ca8eee725a33618da104f843acd3b6ff5",
        "edab4257fa821c91c6e5a64cda78c9c38ea905c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "message": "Merge commit \\\u0027885dd7136a999d21219a4cc9034f20ef688c0625\\\u0027 into manual_merge_885dd71\nam: edab4257fa\n\nChange-Id: I04abc72767b31fbdfd6ee82c239fbc4a94421a82\n"
    },
    {
      "commit": "edab4257fa821c91c6e5a64cda78c9c38ea905c0",
      "tree": "856ba650f36f697025823f6a0140ab41e420e942",
      "parents": [
        "5691e5400a9cf7aee4c76ded5db7eed53bfb9c8d",
        "885dd7136a999d21219a4cc9034f20ef688c0625"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "message": "Merge commit \u0027885dd7136a999d21219a4cc9034f20ef688c0625\u0027 into manual_merge_885dd71\n\nChange-Id: I871b103643cabab183bc24c1ce40930c7a083c79\n"
    },
    {
      "commit": "885dd7136a999d21219a4cc9034f20ef688c0625",
      "tree": "5d8ba3170bb914f8844f70b904bd481f11f47bfb",
      "parents": [
        "88bd73d9acf5011ef40122fa9a1b43195facbe07",
        "fcddb0b73931d207b21bd281a7df3ba2f230a607"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 20:44:51 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 13 20:44:51 2016 +0000"
      },
      "message": "Merge \"Enable strict warning checks and fix\" into nyc-mr1-dev"
    },
    {
      "commit": "aca4545ddc6e83d66dda67b1c4894fef6ce451cf",
      "tree": "209d689bb3a7905cfd252ddd735fb53c7eac7af8",
      "parents": [
        "1c8a038b2a8a0a14d9bc2ebaf31ff113d4778af5",
        "dc14a4d146ff4cf1a00b1d2b02646134a31412e6"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Jul 12 23:31:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 23:31:33 2016 +0000"
      },
      "message": "Merge \\\\\"Fix to usage of upper bound value in volume curve\\\\\" into nyc-mr1-dev am: e37b911fbf\nam: dc14a4d146\n\nChange-Id: Iab9da655cae8055278d76f3853dab903e0efe058\n"
    },
    {
      "commit": "dc14a4d146ff4cf1a00b1d2b02646134a31412e6",
      "tree": "087690d7bf484e31b60ea25106133a0f4b1d5014",
      "parents": [
        "404b6e6ee588af71d19fe8a4ffc8092d59c3396d",
        "e37b911fbf70c15c652db8585bca2a5f035d9def"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 23:28:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 23:28:04 2016 +0000"
      },
      "message": "Merge \\\"Fix to usage of upper bound value in volume curve\\\" into nyc-mr1-dev\nam: e37b911fbf\n\nChange-Id: Ibd302c8ef01a6f4ad81b4d9da226b9cdee8d6a9c\n"
    },
    {
      "commit": "d362a52b836ebc2a12620b6f1932ae042a81d2e7",
      "tree": "f5ca60ed5d7f3bab8a42e9c0228d44d6a17300a7",
      "parents": [
        "b28d6117a5a63fd673a38be12e7e48bc65b05ad3"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 14:56:41 2016 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 15:49:00 2016 -0700"
      },
      "message": "Fix to usage of upper bound value in volume curve\n\nBug: 29627411\nChange-Id: Iffe3bf69bf4b49cd76ffe00b16ebce1ab81c4631\n"
    },
    {
      "commit": "1229ae8317797917ebd14c9f46debcb9d5f44c6a",
      "tree": "301b61549b10568219be4360485382e1a944f817",
      "parents": [
        "fa6c8ebc60da3d704237606b7764a3be24393c21",
        "f517d276a8bfe4034106abf8009fcd6cc28a0838"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 12 01:46:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 01:46:37 2016 +0000"
      },
      "message": "Merge \\\\\"Add Dolby TrueHD audio format\\\\\" into nyc-mr1-dev am: 5cc2e814ac\nam: f517d276a8\n\nChange-Id: I9e210b1d143b01301c798dfe705a7493cc828be5\n"
    },
    {
      "commit": "fcddb0b73931d207b21bd281a7df3ba2f230a607",
      "tree": "f9b35ea1d18407f17cd1fd10d9365867abbed823",
      "parents": [
        "f81362f6cd1bb22f988c30e6b552e6a2d95c4de7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "message": "Enable strict warning checks and fix\n\nChange-Id: Id401a937911eb418e93314812f2f7c2b5ecff8d6\n"
    },
    {
      "commit": "f517d276a8bfe4034106abf8009fcd6cc28a0838",
      "tree": "2d77ea833d13daaa1712efd3bc9d950fbf205165",
      "parents": [
        "55943ae68e72b362ba701f9e39e3dd50167a9e9c",
        "5cc2e814acac142c77eed4e9b8d954623be8965c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "message": "Merge \\\"Add Dolby TrueHD audio format\\\" into nyc-mr1-dev\nam: 5cc2e814ac\n\nChange-Id: Ib3561d806b00c949789f463c4609844399bb7095\n"
    },
    {
      "commit": "e30f20963751c07860bfbc92b5ff8948fc55797f",
      "tree": "fbff4f6bdf23e1ca3a7fc8270559dfe4f3a62eac",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "message": "Add Dolby TrueHD audio format\n\nAlso add missing formats in AudioFlinger string conversion\nutility.\n\nBug: 30024357\nChange-Id: I75bdb54daeb786543f545ec3a772121055e01cdb\n"
    },
    {
      "commit": "7b5ee5765f5632c36932d4630891936efd255270",
      "tree": "00803c93f0f1e912a106dbb0d7ab8088643c27bf",
      "parents": [
        "f23148a358aeb8f8f76d9568134ff79cf4aa0890",
        "6b6f366cb1daacbce97b865515e839a0fcc9da53"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "message": "Merge \"Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev am: f3aaf48fe2 am: 19665dc930\" into nyc-mr1-dev-plus-aosp\nam: 6b6f366cb1\n\n* commit \u00276b6f366cb1daacbce97b865515e839a0fcc9da53\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8f0318371882609d0da69c64de2a4e053177a9b3\n"
    },
    {
      "commit": "19665dc9307e9b18f188dea4001fe24adbda4500",
      "tree": "f6230e84031e9cdb8fb505510301e343d258de32",
      "parents": [
        "2362982a1d5ec938a296d7ec2c247490f0db5dc3",
        "f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "message": "Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev\nam: f3aaf48fe2\n\n* commit \u0027f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8274672487d9f627277edd379b7f4b04d94749a5\n"
    },
    {
      "commit": "6163904559247601e9a0834a3c09341862bcff95",
      "tree": "1c572f9940d18e5f11ae908d564a16f66449aa33",
      "parents": [
        "eb03cbae99cc907b26fe95ec2c6562d7daef53cc"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 20 18:09:48 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 20 18:13:38 2016 -0700"
      },
      "message": "Symbolize flags of IOProfile in dumps\n\nSample symbolization:\n\n - flags: 0x0006 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n - flags: 0x0008 (AUDIO_OUTPUT_FLAG_DEEP_BUFFER)\n - flags: 0x0031 (AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING)\n - flags: 0x0104 (AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW)\n\nChange-Id: Id155cffea4e1defb1e0c2c1d24b869d4151b14e3\n"
    },
    {
      "commit": "634b71478742310960f3fdb4241e70a0735712c4",
      "tree": "7a44f5a447a8b37db668b6b88b8d3a29d0e85c95",
      "parents": [
        "eb7f3940044effc6a8b313a73134b5cc2156068c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 13:48:02 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 16:45:57 2016 -0700"
      },
      "message": "audio policy: fix regression in getDeviceConnectionState().\n\nFix problem in DeviceVector() device search logic causing\nfailure to report connection of devices when no address is provided\n(e.g when called from AudioManager.isBluetoothA2dpOn()).\n\nBug: 28286051\nChange-Id: I7ca732e195d2ddcdc1a93b78aed21523b3461aa9\n"
    },
    {
      "commit": "0d6a03301d77724c00c7a9ce7b8c123092d07a19",
      "tree": "e3c693830eeff3c15fe52efbfc860c657647df8d",
      "parents": [
        "ec39d648229ac2bdf14688077cf6433c911fc7e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 19 17:12:38 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 19 17:54:23 2016 -0700"
      },
      "message": "Small improvements in audio_policy dump\n\n 1. Introduce a formatting helper for audio_mode_t, use it.\n 2. Get rid of mSize in TypeConverter.\n 3. Convert to a string unknown enum values.\n\nChange-Id: I8fc222225c2dd48dea715bb3fe4ecb3f1eaecc46\n"
    },
    {
      "commit": "54840ea273edb58259cb592992d95eb718327b23",
      "tree": "63e06d5bb8e3ec203f6eb0fd3d902d12f5cbd01e",
      "parents": [
        "a70461cbf0c09aec396f7d24f8ab58339becc904",
        "7ffe507c702f2968075038a195f338ea4d2e646a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 18:11:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 18:11:01 2016 +0000"
      },
      "message": "fix the build am: 0631aee am: 9ce4e24\nam: 7ffe507\n\n* commit \u00277ffe507c702f2968075038a195f338ea4d2e646a\u0027:\n  fix the build\n\nChange-Id: I45b1ce57e6036d19b578619d1be450173720a344\n"
    },
    {
      "commit": "9ce4e2408a809fdfa63d56c92581ba3aed22e5cb",
      "tree": "de298081cbdfdd161c61b5945af71c9d1ec28051",
      "parents": [
        "8731a0a7b991470156db4dfa021be38f6b73eb8c",
        "0631aee95c5a98fb2dc0a45f093f9bd0cfbe463f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 18:03:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 18:03:27 2016 +0000"
      },
      "message": "fix the build\nam: 0631aee\n\n* commit \u00270631aee95c5a98fb2dc0a45f093f9bd0cfbe463f\u0027:\n  fix the build\n\nChange-Id: Iea66707492737a300f8905604bde4d1a629dd92c\n"
    },
    {
      "commit": "0631aee95c5a98fb2dc0a45f093f9bd0cfbe463f",
      "tree": "90e669c0722b1172a96008c857ce366f182f6de9",
      "parents": [
        "8111860ba116d84034b2aa21445feec71c65a9d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 10:48:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 10:48:57 2016 -0700"
      },
      "message": "fix the build\n\nFix the build for platforms using legacy audio_policy.conf file\nbroken by commit 5a2b6298.\n\nChange-Id: Icb9c8027b1a8163d19162f311ec1364da7383a2c\n"
    },
    {
      "commit": "cc607b16f0178fd1aeb0da680d21fd7eb1d91b1c",
      "tree": "351886a9aabf5fe94e8f39a3affac5299a7c96b6",
      "parents": [
        "29eba348907e6603dd4de4b997fb261af70c6118",
        "010b235b26dea3913374b688939120f2542c0225"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:25:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:25:08 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev am: 8111860 am: 21c4ffc\nam: 010b235\n\n* commit \u0027010b235b26dea3913374b688939120f2542c0225\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: I949c911c89f8171aabe6f550628cf6c3d1329400\n"
    },
    {
      "commit": "010b235b26dea3913374b688939120f2542c0225",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "fd9003de5d25f05405aa326f43514c4c75618d58",
        "21c4ffc9af1b6c8663a075bc5cf4d447288be7ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev am: 8111860\nam: 21c4ffc\n\n* commit \u002721c4ffc9af1b6c8663a075bc5cf4d447288be7ef\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: I2bef297f529f40e7b900f659c9b56b6898d6e027\n"
    },
    {
      "commit": "8731a0a7b991470156db4dfa021be38f6b73eb8c",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "eb059113754c54b178d6de6feec13daadd244672",
        "8111860ba116d84034b2aa21445feec71c65a9d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev\nam: 8111860\n\n* commit \u00278111860ba116d84034b2aa21445feec71c65a9d4\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: Iae933bddfccc3955c1cc93a1418accb0c0ca12e7\n"
    },
    {
      "commit": "5a2b62984c7cecd1761fe272c078dd814c167942",
      "tree": "e93fb96c43df88df2f05f23cb1160ecd91aead7b",
      "parents": [
        "bc0c73e05ec935bc478ee0e40aee79f80771a482"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 14 18:05:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 18 18:35:02 2016 -0700"
      },
      "message": "audio policy: support platforms with no audio devices\n\nRemove requirement to declare an AUDIO_DEVICE_OUT_SPEAKER device\nfor platforms without audio output.\n\nBy convention:\n- platforms without audio output should declare a single output\ndevice of type AUDIO_DEVICE_OUT_STUB also declared as default\noutput device\n- platforms without audio input should declare a single input\ndevice of type AUDIO_DEVICE_IN_STUB\n\nPlatforms with no audio at all can use stub audio policy configuration\nfile and audio HAL with the following instructions in device.mk file:\n\nUSE_XML_AUDIO_POLICY_CONF :\u003d 1\nPRODUCT_PACKAGES +\u003d \\\n    audio.stub.default\nPRODUCT_COPY_FILES +\u003d \\\n    frameworks/av/services/audiopolicy/config/audio_policy_configuration_stub.xml:system/etc/audio_policy_configuration.xml\n\nBug: 25075342\nChange-Id: Id700978559427edd3c7cc38d98f2fd52928367ed\n"
    },
    {
      "commit": "45207c0d0b57466b6c3f1205c68241bd7de0c4f0",
      "tree": "23831214a289f6a956220b9f6fa6e75fd7416e4c",
      "parents": [
        "57c038bce51f07cd07f62a9935ef406ab0e2034e",
        "6ce2b341c52cf9daa01a7fc44173cb5ddeff8845"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 19:42:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 19:42:15 2016 +0000"
      },
      "message": "Merge \"resolve merge conflicts of cecb297 to nyc-dev-plus-aosp\" into nyc-dev-plus-aosp\nam: 6ce2b34\n\n* commit \u00276ce2b341c52cf9daa01a7fc44173cb5ddeff8845\u0027:\n  Express libmedia dependencies in libaudiopolicycomponents\n\nChange-Id: Id6821f83e40d54c28b2f008b6e217a30a20cf41a\n"
    },
    {
      "commit": "b30195c378a5f299b62f3781a7ae94f7111ede6f",
      "tree": "84488b43aec950038e165f4381748ebce93a7be2",
      "parents": [
        "7fa9e2a24d4e17429d64eadb996e8780e5c5c399",
        "cecb2973c3267869d92f681776e5e453341740b1"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 11:56:35 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 11:56:35 2016 -0700"
      },
      "message": "resolve merge conflicts of cecb297 to nyc-dev-plus-aosp\n\nChange-Id: I2c5ab9e73733b4d259fe0f242087ee9ef97143f2\n"
    },
    {
      "commit": "53a27325e775a775b552596d2274e32ea4e89c0b",
      "tree": "bad7269e84418175fd574a5a34ba62b987431067",
      "parents": [
        "3a618bb66d242e2e7686c4b8f0903e055668191c",
        "dbe477af33cee467480f171d2765d958ac162d6e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 13 01:52:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 01:52:05 2016 +0000"
      },
      "message": "audio policy: fix call audio over 24 bit USB device am: 8ae7312\nam: dbe477a\n\n* commit \u0027dbe477af33cee467480f171d2765d958ac162d6e\u0027:\n  audio policy: fix call audio over 24 bit USB device\n\nChange-Id: I405aa268b7e751b55307afbb54e0ebd57cfef964\n"
    },
    {
      "commit": "8ae73129e7e79d826b293238c2f037f723d0e6e8",
      "tree": "a6a5acadaea37f33ccfc316ffd68483951106e29",
      "parents": [
        "aff4e460d4cf278909316412c17c042d7366178f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 12 10:13:29 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 12 17:47:57 2016 -0700"
      },
      "message": "audio policy: fix call audio over 24 bit USB device\n\nTake into account voice RX source device properties when\nconfiguring the audio patch bridging the voice RX device\nto the USB output device.\n\nBug: 25643110\n\nChange-Id: I06f282d3cc12493f21500bf9ab35a3ceb93f14af\n"
    },
    {
      "commit": "5b943ddceaea9bef36894608c654f648b0bf88d4",
      "tree": "bb24323d73b3b38c034c32508945ae46cf4c4148",
      "parents": [
        "03ffee7391505d8c6565a4ef691119dcf18ecc9e"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 16:51:14 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 16:51:14 2016 -0700"
      },
      "message": "Express libmedia dependencies in libaudiopolicycomponents\n\nAlthough this library does not itself need to be linked with libmedia,\nconsuming libraries need access to libmedia\u0027s headers when they consume\nthe public interface to this library.\n\nBug: 27804373\nTest: Compiles.\n\nChange-Id: I03b4404914c9930093a20e8293d9034b84d85ca9\n"
    },
    {
      "commit": "6820e1c04fb0a7734663b8f44f09c69fdcf36ab6",
      "tree": "179c8913bb8eb6a62eab03102d24f30bfddf14ed",
      "parents": [
        "ac4311b869febc090e2d0a99ceae0896a50973d1",
        "85f9913f4a9f89ad23970139141e4dd4d4a63d4f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 09 05:45:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Apr 09 05:45:22 2016 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Tally max effects memory usage\" into nyc-dev am: da65b5a\nam: 85f9913\n\n* commit \u002785f9913f4a9f89ad23970139141e4dd4d4a63d4f\u0027:\n  AudioPolicyManager: Tally max effects memory usage\n\nChange-Id: Iec7365fa0552edd82feeb41b4072140e838e178f\n"
    },
    {
      "commit": "bb7db7bf6c482e223e1f7eab79e22e18a1548e7a",
      "tree": "e47d534fd75722208421446adb46a53cd7336b63",
      "parents": [
        "3390c1b2380647c01f5ef8fb61f992bc833f3534",
        "4cc293f24f37f6fc60a208956cf9c48f5d3cc978"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Apr 09 05:45:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Apr 09 05:45:20 2016 +0000"
      },
      "message": "Merge \"audio policy: fix volume burst on user switch.\" into nyc-dev am: 0fd0d0c\nam: 4cc293f\n\n* commit \u00274cc293f24f37f6fc60a208956cf9c48f5d3cc978\u0027:\n  audio policy: fix volume burst on user switch.\n\nChange-Id: I3a4d410ce9e995070ddd5849be27bccbd4f35fb4\n"
    },
    {
      "commit": "da65b5a3502ae06a65f09d9983c89b7fd9369316",
      "tree": "09c5c56c9c89833b186b9e273ad8794982b8b4aa",
      "parents": [
        "c280a25f5a7d36bc2f395c2e6c294d62785ca276",
        "5f1fa3053c87dd8e9dc528fb8c101907ff747746"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 09 04:56:47 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 09 04:56:48 2016 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Tally max effects memory usage\" into nyc-dev"
    },
    {
      "commit": "0fd0d0c1e33303d2a2cbce23dabc13f7036d108e",
      "tree": "c949852e74d0518f31eb8ce529046cb6443c07dd",
      "parents": [
        "4e1e0c4713d2c6367c264b88cc37b78013d05fc6",
        "1fd372e40ef40643fa9d036a0c9db043475b1b02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 08 21:36:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 08 21:36:12 2016 +0000"
      },
      "message": "Merge \"audio policy: fix volume burst on user switch.\" into nyc-dev"
    },
    {
      "commit": "5f1fa3053c87dd8e9dc528fb8c101907ff747746",
      "tree": "ef2e386e2b54797bc98aeeea7a6763b0871217d0",
      "parents": [
        "4d363d4625588bf2007d31c244c83b0965d834b4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 05 17:02:11 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 08 12:47:53 2016 -0700"
      },
      "message": "AudioPolicyManager: Tally max effects memory usage\n\nBug: 27925014\nChange-Id: I6d2596ed1b10ff193babeba7e6cbec36ee4fe074\n"
    },
    {
      "commit": "dfc74e192e73ac455fbe40263feab6b2e2b22e6f",
      "tree": "cda094a1c2018b74e6b09a19fd49486f8b68dbcf",
      "parents": [
        "ee8b78e4775dee03fb35ce7a162d3f60b8d69308",
        "8a3bdef5ba9e2d2d584ec899b34e87485ba3f3d2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 08 00:32:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 08 00:32:16 2016 +0000"
      },
      "message": "Merge \"AudioProfile: reject profile if not exact match\" into nyc-dev am: 600793b\nam: 8a3bdef\n\n* commit \u00278a3bdef5ba9e2d2d584ec899b34e87485ba3f3d2\u0027:\n  AudioProfile: reject profile if not exact match\n\nChange-Id: Ia19d213215d59c48499dbd83c556e98a1048c38f\n"
    },
    {
      "commit": "1fd372e40ef40643fa9d036a0c9db043475b1b02",
      "tree": "d19358826e2cbc835b3a9a05ef8429e6b590fa14",
      "parents": [
        "7f688edcace6c7abc9ef566669c4511849ad2493"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 06 14:23:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 07 13:55:19 2016 -0700"
      },
      "message": "audio policy: fix volume burst on user switch.\n\nFix two main problems in setStreamVolumeIndex():\n\n1) the conventional initialization or user switch behavior consisting in first\napplying volume for AUDIO_DEVICE_OUT_DEFAULT device which resets all volumes\nand then apply device specific volumes is problematic: if this is done while\na stream is active, it will temporarily reset the volume to its default\n(usually loud) and then back causing an audible glitch.\n\n2) The logic consisting in applying the requested volume to all outputs with a\ndevice selected by the routing strategy corresponding to the requested stream\nis problematic: it will cause device specific volumes for other devices than\ncurrent one to be applied to active streams.\nRestrict the logic to cases of multiple device selections including the\nrequested device.\n\nBug: 27557733\n\nChange-Id: Ia14cd51766a7516c42221abff76843d47699105f\n"
    },
    {
      "commit": "2cc2a03319144bcebac5a9693319776afc471307",
      "tree": "4b9bc13ba29115614640ed9be20045c827217461",
      "parents": [
        "7f688edcace6c7abc9ef566669c4511849ad2493"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 06 16:41:39 2016 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 06 17:03:13 2016 -0700"
      },
      "message": "AudioProfile: reject profile if not exact match\n\nIn AudioProfile.cpp, the checkExact() function was treating dynamic_channels as a wildcard.\nSo 5.1 would match even if there were no channel masks listed as supported.\n\nBug: 25144047\nChange-Id: I3036dca7e0ed92579b1ac7a3cf8504b0e47b7ed5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "fc732a63bd8c8c62ce75f36f03088ca6727caece",
      "tree": "046c0d9a3a9111de265c98ec822dd38119f59a0f",
      "parents": [
        "d9114cbe50b4a7be06c738581879c9a19f1d39ee",
        "b9b9fa3d28a0436bb5e267d8fc3626ebd820fe78"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 22:15:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 29 22:15:42 2016 +0000"
      },
      "message": "Merge \"Use audio_module_handle_t and audio_patch_handle_t consistently\" into nyc-dev am: 54b48c3\nam: b9b9fa3\n\n* commit \u0027b9b9fa3d28a0436bb5e267d8fc3626ebd820fe78\u0027:\n  Use audio_module_handle_t and audio_patch_handle_t consistently\n\nChange-Id: I100c4795ec6d0d9e9c23d6e850303a23f3bfb603\n"
    },
    {
      "commit": "a13cde98a880341f0a56d91da6364b093fb5d24e",
      "tree": "3974215c7cc52f2136c04e3e38568e0483c03129",
      "parents": [
        "45993ad8833063a50af83f76ec1ddeba673b5277"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 28 15:26:02 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:43:18 2016 -0700"
      },
      "message": "Use audio_module_handle_t and audio_patch_handle_t consistently\n\nBug: 27814144\nChange-Id: I54b7a73ec318779fd3addb060998f4d94141152d\n"
    },
    {
      "commit": "f00f15315312da70c7cad64aeaaa25fe3de92cea",
      "tree": "d9fe989c84fe249ea287c528d82a1734925b51dc",
      "parents": [
        "ce00fe384b19824772a750d924424fc0ddf3ae0b",
        "389afff15358113511f6ab8b93729d4117e96ab3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 25 03:29:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 25 03:29:33 2016 +0000"
      },
      "message": "Merge \"RENDER dynamic policies: fix address check\" into nyc-dev am: fdb90f3\nam: 389afff\n\n* commit \u0027389afff15358113511f6ab8b93729d4117e96ab3\u0027:\n  RENDER dynamic policies: fix address check\n"
    },
    {
      "commit": "fdb90f355b269737fe48a2da0593b37d5c2b83c1",
      "tree": "8bb77d55bad3dac443b203a2d24b02e6d2183907",
      "parents": [
        "478b2521f5defb356b0dd44313288852b2c5e0ee",
        "5ac8cd425e1a0c4287c0bb84f922fef4fa106411"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 25 03:21:28 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 25 03:21:29 2016 +0000"
      },
      "message": "Merge \"RENDER dynamic policies: fix address check\" into nyc-dev"
    },
    {
      "commit": "5ac8cd425e1a0c4287c0bb84f922fef4fa106411",
      "tree": "55138cd920d8b6b4af546fc1e9893cc851d509b2",
      "parents": [
        "a8d309df2f603767c0f0ad9248aef47a5b6ed5b8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 24 16:35:36 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 24 16:55:59 2016 -0700"
      },
      "message": "RENDER dynamic policies: fix address check\n\nFix mix / output address comparison when registering dynamic\n  policy mixes with a MIX_ROUTE_FLAG_RENDER flag.\nFix mix registration code path where the matching output is\n  not found, but no error is reported.\nImprove logs.\n\nBug 25448664\n\nChange-Id: I3679aead00304b38f7cc42dd9083644450771a15\n"
    },
    {
      "commit": "8598e8fdb28c664905ec646b68e4af1452a0e438",
      "tree": "c6fd136d690664c648b808c65ca897bcb909dac9",
      "parents": [
        "2622c5e0b4abe3849ba4cb3b70e6032a04eb8c4a",
        "73ea4299306f18ae7e8ee1deff00933522abccbf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 18 20:31:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 18 20:31:06 2016 +0000"
      },
      "message": "Merge \"Update audio services for 64 bit compilation\" into nyc-dev am: 560a198\nam: 73ea429\n\n* commit \u002773ea4299306f18ae7e8ee1deff00933522abccbf\u0027:\n  Update audio services for 64 bit compilation\n"
    },
    {
      "commit": "560a198f1f95a085e24944b20df536e75e21cedb",
      "tree": "bdecbf10f8294847938d4b0baa5dcf1a8ca3f9a8",
      "parents": [
        "c40fcb01669240e9c1a6af74bcb0fcd85147fa87",
        "8fa2697e21c61998f78c346251d2c08f77d720ea"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 18 20:23:25 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 18 20:23:26 2016 +0000"
      },
      "message": "Merge \"Update audio services for 64 bit compilation\" into nyc-dev"
    },
    {
      "commit": "8fa2697e21c61998f78c346251d2c08f77d720ea",
      "tree": "17e06c62a4e47b816e63cf5fbae0907fbb2efb5f",
      "parents": [
        "7e258e85368ccc8e714235a22206527090685a9b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 03 13:19:27 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 17 18:06:46 2016 -0700"
      },
      "message": "Update audio services for 64 bit compilation\n\naudioserver still runs in 32 bits\n\nBug: 27479136\nChange-Id: I99ac607e4ce006a87abc2a3f838023e00ef78647\n"
    },
    {
      "commit": "dd9c82ae89985ca87a087e86c7f632a29f86601b",
      "tree": "04a6f77deb1addf2743f7cef3b7d44244b79c5a5",
      "parents": [
        "9eefe579117e17200645d662206210a3c722fee4",
        "9462ca1f5a54b9dc40ad0cddb56696dd7180020f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 17 11:43:49 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 17 11:43:49 2016 -0700"
      },
      "message": "resolve merge conflicts of 9462ca1 to master\n\nChange-Id: I7643b8dd1a4ec40b6e8fd8c824bf03afbbeac170\n"
    },
    {
      "commit": "7638ca29e8400a19524adb982e9d22c02786de82",
      "tree": "5d1ef493f79529cd5d5a1cce932c6dec3e5d8e69",
      "parents": [
        "9515aca0c07a32128a65a68749bda3ea6851c109"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 04 17:42:44 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 16 14:28:09 2016 -0700"
      },
      "message": "Dynamic policies: support for device selection\n\nDynamic policy mix: rename \"registration\" field to device address\n  as this reflects the true use of the field.\nAudioPolicyManager: dynamic policy registration differs depending\n  on policy routing flags.\nWhen register a mix with the RENDER flag, iterate over all outputs\u0027\n  patches to find a matching device and address.\n\nBug 25448664\n\nChange-Id: I71584081e7f1b2b5252fb6c4659fdeb464f7d282\n"
    },
    {
      "commit": "27e029a37f6de7bf6ae5eb5a78656d35b0a13f5b",
      "tree": "926f089fd62c1b1518a96f02bb69bf4b29d6047e",
      "parents": [
        "02f025c1906fb73f06ac99a11224d47f93b89ffb",
        "0cc8544c869e379a90e8107f44b0595b74aaec77"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 10 19:23:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 10 19:23:19 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: tighter match for device descriptor query\" into nyc-dev am: 905d50834d\nam: 0cc8544c86\n\n* commit \u00270cc8544c869e379a90e8107f44b0595b74aaec77\u0027:\n  AudioPolicy: tighter match for device descriptor query\n"
    },
    {
      "commit": "f7f85438503e6964aba3ddabd6228e7fefb36735",
      "tree": "7a835f904aeab82d88fc7efab0cd8ddba2329816",
      "parents": [
        "7e258e85368ccc8e714235a22206527090685a9b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 10 09:14:29 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 10 10:17:52 2016 -0800"
      },
      "message": "AudioPolicy: tighter match for device descriptor query\n\nWhen querying a module for a device descriptor, the matching was\n  too \"loose\": if a device type and address was not found, a\n  match was returned for just the device. While this works for device\n  types where only one is connected to the system (e.g. wired headphones),\n  this is an improper behavior for devices such as REMOTE_SUBMIX where\n  multiple are \"connected\" to the DUT, but with different addresses.\n\nBug 27337358\nBug 27336527\n\nChange-Id: I9b6464485da2bedde2d14b624133e02b5a3fa357\n"
    },
    {
      "commit": "551fa9102bb1e9190bcb5853121a94fbad417e21",
      "tree": "86facf32451db8629b777fbfcd2a5c9d741eabe9",
      "parents": [
        "e21a7fc98912cd984fc168bd2a469128dd4ddf42",
        "e4ddfc582a2a86ff0017dbcca6b5e766b4404ad5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 03 02:30:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 03 02:30:52 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: capture sample rate 0 is route-specific default\" into nyc-dev am: 1e3acb84fc\nam: e4ddfc582a\n\n* commit \u0027e4ddfc582a2a86ff0017dbcca6b5e766b4404ad5\u0027:\n  AudioPolicy: capture sample rate 0 is route-specific default\n"
    },
    {
      "commit": "05ddca504ce8e0e61b41e5c1aebea72086eea57b",
      "tree": "71137b6ef4df1f294d93d2cedc421b0f85190374",
      "parents": [
        "db52e5e3dc15f7233ccd9c128fe43f2b2f58b29b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 11 08:17:12 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 02 15:17:35 2016 -0800"
      },
      "message": "AudioPolicy: capture sample rate 0 is route-specific default\n\nBug: 25641253\nBug: 21019153\nChange-Id: I7d193640572c08ab5e5f1ecfc8ad6d31635967dd\n"
    },
    {
      "commit": "f0c6d7d940314dbec47c9b53cb99da79eb022787",
      "tree": "d57f65d0aa2cf8e620251ea22c66f7f8c76d1a5a",
      "parents": [
        "cd22ee6aa5a3ce57530f54b60347d655afc87045"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 10:44:04 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 02 00:03:16 2016 +0000"
      },
      "message": "Add use for audio_unique_id_t\n\nBug: 25641253\nBug: 21019153\nChange-Id: I65dc128e760c245f3d90559635a8981b186c87d7\n(cherry picked from commit eeecb980ff4c202d0a3c4b0bfe040dce2f73336d)\n"
    },
    {
      "commit": "eeecb980ff4c202d0a3c4b0bfe040dce2f73336d",
      "tree": "decce0d925acd9efd68f2d540bbabb60c0661c6b",
      "parents": [
        "91afc2297dd1c39302dba6ff68e9839aae27d39a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 10:44:04 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 01 08:32:58 2016 -0800"
      },
      "message": "Add use for audio_unique_id_t\n\nBug: 25641253\nBug: 21019153\nChange-Id: I65dc128e760c245f3d90559635a8981b186c87d7\n"
    },
    {
      "commit": "f4d98ed31f2150cc8ad707c6a2cfae8ecf26975e",
      "tree": "7bcf8d84b57fb608cd382e84c217250d18e034c0",
      "parents": [
        "d51b1b247b120c7e49851d923f3c5aa0aa19a787",
        "51f453aac3ebcb0de4036acc9b829f58d27c3ff5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 23:21:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 26 23:21:54 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: AudioOutputDescriptor set/get for patch handle\" into nyc-dev am: b3e06a7592\nam: 51f453aac3\n\n* commit \u002751f453aac3ebcb0de4036acc9b829f58d27c3ff5\u0027:\n  AudioPolicy: AudioOutputDescriptor set/get for patch handle\n"
    },
    {
      "commit": "d51b1b247b120c7e49851d923f3c5aa0aa19a787",
      "tree": "b228978bfcb786af075bedaf906908af2ee194b4",
      "parents": [
        "b2396a3991f726f96499ff479737ad7f51f21b86",
        "1e9a65df13859b44b91610ef4cc721155ab5eaa8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 15:13:30 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 15:13:30 2016 -0800"
      },
      "message": "resolve merge conflicts of 1e9a65df13 to master\n\nChange-Id: I7c255d7813805b5ffb0d8e5ecd6fc11ee0b80c8a\n"
    },
    {
      "commit": "b3e06a7592fc189315a90a88cbea66e31c2e6b41",
      "tree": "efdbd4add1809606bf790cb917e28a5110af11c6",
      "parents": [
        "0d035b6057cef680a3755c6a8fc914c483648903",
        "ff155c642fe7d342a3110444c6103f788230af53"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 22:38:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 22:38:03 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: AudioOutputDescriptor set/get for patch handle\" into nyc-dev"
    },
    {
      "commit": "0d035b6057cef680a3755c6a8fc914c483648903",
      "tree": "bb507bd896e5503e9791b3303b01c68beff43c21",
      "parents": [
        "ecc8bbbf8a58fe9ab6d6ac41bebe70631a458134",
        "8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 22:37:32 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 22:37:34 2016 +0000"
      },
      "message": "Merge \"Send audio patch in recording callback\" into nyc-dev"
    },
    {
      "commit": "ff155c642fe7d342a3110444c6103f788230af53",
      "tree": "5ab784ffde5df4eef154c60b1f8a63f9d5a9ae06",
      "parents": [
        "8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 12:07:16 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 12:07:16 2016 -0800"
      },
      "message": "AudioPolicy: AudioOutputDescriptor set/get for patch handle\n\nFor symmetry with AudioInputDescriptor: no direct access to the\n  field for the patch handle.\n\nChange-Id: I5bffecf7a157ec042d749064208bc6c279008542\n"
    },
    {
      "commit": "8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972",
      "tree": "2ce1446fe6fe647e3e0dcbcaf82ac45c5551f492",
      "parents": [
        "809aeb1f725beed877887fe1c5ca3430d811b328"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 25 17:08:24 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 25 17:08:24 2016 -0800"
      },
      "message": "Send audio patch in recording callback\n\nRemove direct access to patch handle in AudioInputDescriptor, replace with\n  set / get functions.\nAdd interface for AudioSession to query configuration from enclosing\n  input descriptor.\nWhen input descriptor\u0027s patch handle changes during a recording, propagate\n  the change through the recording notification callback.\n\nBug 26798796\n\nChange-Id: Ia1395d44da7ccfe69ca46877638d1eb49b3935ad\n"
    },
    {
      "commit": "89106d6faf32881a5f8f4fcda9acc4742e4df2cb",
      "tree": "91a1584b7df96b7fca49cc8cd62b9054fd874be8",
      "parents": [
        "b0c09a0d4e9a42edecdebd5a743590d079b867de",
        "462dd3b94adb359ea4e0d95f2d3d84bd5caa92b4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 25 20:53:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 25 20:53:37 2016 +0000"
      },
      "message": "Merge \"audio policy: add device for audio bus\" into nyc-dev am: e736431c69\nam: 462dd3b94a\n\n* commit \u0027462dd3b94adb359ea4e0d95f2d3d84bd5caa92b4\u0027:\n  audio policy: add device for audio bus\n"
    },
    {
      "commit": "e736431c69e2a00468d140d2af97b63e0e5aa83a",
      "tree": "e9ac84c22b3e0b473deafb3df0afad84f391b9b0",
      "parents": [
        "5031b2f3ac5223587e48fc8463bec24cb62495ba",
        "58545be2ce4e701c8c37401edcc126a8b683890d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 25 20:19:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 20:19:38 2016 +0000"
      },
      "message": "Merge \"audio policy: add device for audio bus\" into nyc-dev"
    },
    {
      "commit": "c8d25af1c3c32b7671dbeb967fb86f24fa5fa313",
      "tree": "4cc46f7e8226dcc1f71feb26a005ac9df2df51b7",
      "parents": [
        "fa4cd335a9bae18c852cff8198155a0e6fd3f26e",
        "bce5dfdac0e90701f53e4f8a2c0f5a3c44a0a4ac"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 24 17:18:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 24 17:18:19 2016 +0000"
      },
      "message": "Merge \"Send client / device format in recording callback\" into nyc-dev am: f70077e435\nam: bce5dfdac0\n\n* commit \u0027bce5dfdac0e90701f53e4f8a2c0f5a3c44a0a4ac\u0027:\n  Send client / device format in recording callback\n"
    },
    {
      "commit": "7281aa9810b33eff47b00104db26c97c77931611",
      "tree": "1fc5afe0784f22d1ab6507d07708b48b12b1c13d",
      "parents": [
        "eafe1f9734af31730790b0abaf8c6aae01bfee77"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 17 15:33:40 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Feb 23 16:23:45 2016 -0800"
      },
      "message": "Send client / device format in recording callback\n\nBug 26798796\n\nChange-Id: Ib4f64159c8371d87da49a8f0cad9317a87d843c4\n"
    },
    {
      "commit": "58545be2ce4e701c8c37401edcc126a8b683890d",
      "tree": "a7a404115488202a1cb438845aaefe6531aae963",
      "parents": [
        "f214d6936f66052bfabc51e3355f800e41b511f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 18:54:20 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 18:54:20 2016 -0800"
      },
      "message": "audio policy: add device for audio bus\n\nAdd audio device category representing a bus in the\naudio subsystem. E.g a set of channels in MOST automotive bus.\n\nBug: 25448664\nChange-Id: Id00da57dc45037d4d8062e9a747c423940611539\n"
    },
    {
      "commit": "232f26f8b673973ffa463f80b08b731ffacc8785",
      "tree": "0722b9bc20a7b049ba6b4120138ef8845293e37f",
      "parents": [
        "b74dc56b2fd3ec872383544d4b6d4950c206259b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 17 18:06:27 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 18 22:03:21 2016 +0000"
      },
      "message": "DO NOT MERGE - audio policy: disable concurrent capture\n\nThis reverts commit 4342335fb84bfa4ec5b99e3ef82f186820c2275f.\nThis reverts commit 56afc7a5cc0f0bfc8021f6413b2e2267050bdc8a.\nThis reverts commit 313d1e7dfb4bf8e0a2f09a9adb287062dd64410c.\nThis reverts commit fb66dd9f95a1168698f072c4e5c2a2cf8c49a80f.\n\nBug: 22702906\n\nChange-Id: I9085918f1f7b12e28430958cceb768bb29c12bdb\n"
    },
    {
      "commit": "e693002b0fb25099540588245892ed98103749ba",
      "tree": "5c6b80929a798987d5ae658d3041cdefd4ba162d",
      "parents": [
        "d25c45526d9598218433b0fa59e1f5accbd5b639"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 10:20:40 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 17 15:34:40 2016 -0800"
      },
      "message": "audio policy: select output with best sample format match\n\nAdd rules allowing selection of the output stream with the sample\nformat offering the best match to the client track sample format\nwhen more than one output is compatible with a request.\n\nBug: 27210844\n\nChange-Id: I31981940be5d1c06d713d52187cfb0a7bf355773\n"
    },
    {
      "commit": "b0a144d705a021994628d136a170a6d2bd4282e7",
      "tree": "f6144a26c0e19fa9a7ba75e136c80afeb9ecf14a",
      "parents": [
        "7f308c3e0556a5e704bcb3b341842ed50ba80b0a",
        "fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 12 22:24:53 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 22:24:55 2016 +0000"
      },
      "message": "Merge \"AudioTrack: support ENCODING_IEC61937\" into nyc-dev"
    },
    {
      "commit": "fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb",
      "tree": "b8c3d97da524e8aefcb37e736619da6b8e087a82",
      "parents": [
        "3ea4f828a6906e9931f96ebdcae9c63e14b86cbd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 09 10:47:02 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 12 06:30:43 2016 +0000"
      },
      "message": "AudioTrack: support ENCODING_IEC61937\n\nSet DIRECT flag.\nUse audio_has_proportional_frames() instead of audio_is_linear_pcm()\nwhere appropriate.\n\nBug: 24541671\nBug: 20891646\nBug: 26373761\nChange-Id: Ia32036b18683b084d6c9887593df87397ea0afd9\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "e8decedb429ed76dfa84cdb3e80ab3b969e77298",
      "tree": "3cdcd5f6ad76945ef052e0a68978a8c2930e4c3a",
      "parents": [
        "3aaa699a46edb4f47d0cd5a11d57eba93493bd90"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 11 12:50:39 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 11 12:50:39 2016 -0800"
      },
      "message": "Dynamic audio policies on UID\n\nWhen looking for an output, take attributes and UID into account.\nTo find the matching mix: for each mix\n- inspect which rules are used\n- find a candidate mix for usage\n- check UID compatibility\nRename AttributeMatchCriterion to AudioMixMatchCriterion to be consistent\n with the fact that now mixing rules are not always about audio attributes.\n\nBug 26798796\n\nChange-Id: I1520b0df190a98f197ea8e0144b770e1e6d97888\n"
    },
    {
      "commit": "56afc7a5cc0f0bfc8021f6413b2e2267050bdc8a",
      "tree": "4130dd51cc5d405ece260c66916a84024e6979ee",
      "parents": [
        "2e5408ac3e51cb459160b9cd392f1809b0758316"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 03 11:35:52 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 03 11:46:08 2016 -0800"
      },
      "message": "Fix connection of OUT_REMOTE_SUBMIX device on APM startInput\n\nFix a regression in AudioPolicyManager::startInput() where\n the OUT_REMOTE_SUBMIX audio device was never made available\n due to the test on the input descriptor, which was already\n active by the time it is tested, as the activity on the\n session has already been updated.\n\nAdd methods to AudioInputDescriptor and AudioSessionCollection\n to query the number of active sessions. Use the new method\n to optimize AudioSessionCollection::hasActiveSession()\n\nBug 26798796\n\nChange-Id: I2de4e47970505e64c4c78a148a80a9f0ec19e821\n"
    },
    {
      "commit": "52d49a8a1f48c2d59769b9257e2eed988014aa03",
      "tree": "c535638a45a7dbd7025c5d868a444c882b47d0f4",
      "parents": [
        "313d1e7dfb4bf8e0a2f09a9adb287062dd64410c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 28 14:18:00 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 29 20:29:33 2016 +0000"
      },
      "message": "audio policy: fix connected device address.\n\nAlso update the audio device address with the one passed by\nsetDeviceConnectionState() if the device is in the list of\ndeclared devices but does not have an address set.\n\nChange-Id: Ibe9008b0c96fc336a90646b98703ed238a6cf4a9\n"
    },
    {
      "commit": "fb66dd9f95a1168698f072c4e5c2a2cf8c49a80f",
      "tree": "e08f2ecc670ee5828d5ef4bece2e962b02295afc",
      "parents": [
        "37dfacdf3e66516bd4b0c7d08e1aad5869bf5825"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 28 18:32:03 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 29 18:06:50 2016 +0000"
      },
      "message": "Revert \"Revert \"audio policy for concurrent capture.\"\"\n\nThis reverts commit 84332aaa807037baca05340875f2d94fcc519ac4.\n\nBug:26841909\n"
    },
    {
      "commit": "35cb56342e80dbbba3a9cbf5c1398976f1f1befd",
      "tree": "dd25b6024aad666459718276cf8e068cfb289118",
      "parents": [
        "157bd8a8a69c15cba8276652a15dbb7e5fd5cffb",
        "84332aaa807037baca05340875f2d94fcc519ac4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 28 22:51:30 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 28 22:51:30 2016 +0000"
      },
      "message": "Merge \"Revert \"audio policy for concurrent capture.\"\""
    },
    {
      "commit": "84332aaa807037baca05340875f2d94fcc519ac4",
      "tree": "638152ca1462b98449c8985f53c4c7986dcdf15d",
      "parents": [
        "4b2fcd8abf90b1bd95539f9f4ef2ac39ce9e2df1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 28 22:19:18 2016 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 28 22:20:23 2016 +0000"
      },
      "message": "Revert \"audio policy for concurrent capture.\"\n\nThis reverts commit 4b2fcd8abf90b1bd95539f9f4ef2ac39ce9e2df1.\n\nBug:26841909\n\nChange-Id: Ifc74b195394b9fb3f73d33455ad061bd896d5331\n"
    },
    {
      "commit": "19219b44e05555b29e00ce56ce273d168fa83888",
      "tree": "11790a2d472ade7c736296c7f1ee4c446c0bffbb",
      "parents": [
        "c9d7c4e35afd48ac8a315f53666943b6210dafa1"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Mon Jan 25 11:28:17 2016 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 27 12:49:24 2016 -0800"
      },
      "message": "audio policy: use reference for all default volume table\n\nThis patch migrates all default volume tables as reference\nvolume tables.\nNo implicit volume tables is allowed any more, the reference\nmust be given for all stream type and device category.\nIt allows removing the WA that was introduce to use the stream CNT\nto host the default volume tables.\n\nChange-Id: I19f5e9d2a62d448f0f8447f93acbbd2e1a723958\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "c9d7c4e35afd48ac8a315f53666943b6210dafa1",
      "tree": "20d04a20ed8afc299a01e7a0a763860c674bba4f",
      "parents": [
        "5bae3d6b17d7eb90b52174f8149aaa7c7ff334d6"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Fri Jan 22 13:54:30 2016 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 27 10:57:49 2016 -0800"
      },
      "message": "audio policy: allows to use reference for volume table\n\nThis patch allows to definie reference attribute within XML\nVolume Element and define a reference volume curve.\nIt allows to factorize efficiently and avoid too much XML\nduplication.\n\nChange-Id: I462808ea38d7a39e1e20fe7090a6ebee0cb3c39b\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "4b2fcd8abf90b1bd95539f9f4ef2ac39ce9e2df1",
      "tree": "8d98964e142912b23352b5c67fd6a3b6568645ab",
      "parents": [
        "a03910b23a31058eea178e8d3f5e84fcf852d5c2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 15 18:00:39 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 27 03:09:22 2016 +0000"
      },
      "message": "audio policy for concurrent capture.\n\nFirst implementation of concurrent capture policy:\nInitially, only capture for HOTWORD or FM TUNER sources or\nre-route submix is allowed at the same time as any other capture.\nSeveral capture clients can share the same input stream. In this case\nactive clients are sorted by audio source priority level and the input\npath configuration and routing is driven by the highest priority\nactive source.\n\nBug: 22702906\n\nChange-Id: Icbedfe001c6243ecad7a7b57ab78d893b2b97402\n"
    },
    {
      "commit": "a03910b23a31058eea178e8d3f5e84fcf852d5c2",
      "tree": "638152ca1462b98449c8985f53c4c7986dcdf15d",
      "parents": [
        "93ec0d71800824481b41b883739c9ab1d0559c27",
        "20eb3a4340a1f1f6e978a23527daff080140db1a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 27 03:07:40 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 27 03:07:40 2016 +0000"
      },
      "message": "Merge \"audio policy: fix merging error for commit 112b0af8.\""
    },
    {
      "commit": "20eb3a4340a1f1f6e978a23527daff080140db1a",
      "tree": "73efd63103d906488cd369c3572545361b90dfa3",
      "parents": [
        "987f953298169027df001409fbd82991d82900bc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 26 18:39:17 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 26 18:43:21 2016 -0800"
      },
      "message": "audio policy: fix merging error for commit 112b0af8.\n\nWrong patch set was merged from partner gerrit.\n\nChange-Id: I850d61b1cc8682e0a82ee64bc8cb022b7512de1c\n"
    },
    {
      "commit": "d1ab2bd4f1ea166a7e9e81cfd7f3e5dd47135d4d",
      "tree": "14c1b9bb94c6b5bf6820be9cce3484995486696e",
      "parents": [
        "987f953298169027df001409fbd82991d82900bc"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Dec 02 18:20:06 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 21 14:40:54 2016 -0800"
      },
      "message": "audio policy: move volume table to XML file\n\nThis patch allows to store in XML file volume tables.\nThe compatibility is maintained for legacy conf file.\nConfigurable Engine is only compatible with new XML conf.\nThis patch removes from configurable engine Structure / Settings the volume\ntable but keep the configurabllity of switching volume profiles from\none another according to criteria like phone state...\n(ex: DTMF stream type is following Voice Profile in call)\n\nChange-Id: I78c91bc3378b6c47202abe7b5c1c1e011ff62eed\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "e0db30868d9734f95a02df516dd0dc6a7226474b",
      "tree": "3f04825a30e035add93f323e96680e38a3d69585",
      "parents": [
        "3583c435f773ceef3f340d14c06c62579866f2aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 15 17:41:39 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 15 17:41:39 2016 -0800"
      },
      "message": "audio policy: fix combo device parsing\n\nWhen parsing a device type entry in audio_policy.conf, do not\nload device combos (e.g AUDIO_DEVICE_OUT_ALL_A2DP) in a single\nDeviceDescriptor but create one descriptor for each device type\nin the combo.\n\nBug: 24113912.\nChange-Id: I3a7f43c7fc9cf516506bb3255dd2ed86564b7cd6\n"
    },
    {
      "commit": "f4ad6e5637b6deccdac4b60615383f290b3806cf",
      "tree": "c5f1796e20a7e7d34f71cb2c6ef0b0ab3a9cde4d",
      "parents": [
        "74a930b2bb7c61c25232c4f06b67abdbeaca8116"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Nov 19 16:59:57 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 15 09:53:00 2016 -0800"
      },
      "message": "Audio policy: implement configuration file in XML\n\nThis patch introduces configuration file of the policy in XML.\nLegacy configuration file is used by default and\ncompilation flag USE_XML_AUDIO_POLICY_CONF must be defined to\nuse XML file format.\n\nChange-Id: I352b788b5829d42ed82c851a4faef0e526be582e\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "c16bf1d9e8ccdd27327e988d50f5b9640e5406f8",
      "tree": "11def686f4fa83f744f266851b0a7a204a64220a",
      "parents": [
        "31fc66042d4241f443ebbd2c7b37946edf35b8e9",
        "2f4fe9f7df8f22c6bc8745407d19df73128810ec"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jan 13 00:20:55 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 13 00:20:55 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: callback for recording configuration change\""
    },
    {
      "commit": "2f4fe9f7df8f22c6bc8745407d19df73128810ec",
      "tree": "df7d3fe791c9256c7ca53fb36c8f563eec714a30",
      "parents": [
        "dd715cea770697ab6f424df74d69f37def701b30"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 04 16:20:59 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jan 11 12:06:12 2016 -0800"
      },
      "message": "AudioPolicy: callback for recording configuration change\n\nEach AudioSession tracks start / end of recording, and sends\n  a callback to AudioSystem.\nAudioSystem tracks a single recording callback tracking\n  input source and audio session number.\n\nChange-Id: Ic065751d9ba013e03f2a6ad8dde02542e5465ec0\n"
    },
    {
      "commit": "fdb17f649c7480ddd83de9fd99ff48a4166a6acf",
      "tree": "059172290dc429a03ef537a5ed158b34c4513b57",
      "parents": [
        "754cabcfef43f894a73bb3f7581b6cd4f48fcc95"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Wed Dec 16 16:09:35 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 08 09:56:03 2016 -0800"
      },
      "message": "audio policy: configurable engine: remove unecessary function\n\nThe policy plugin does not connect with any HW and does not need to\nperform a backward synchronisation at startup. This patch removes\nuncessary function linked with this functionality.\n\nChange-Id: Ie0d729f0eb4ea10d9a8450902dabba1fbbf199ef\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "cbb3044d6bfa9ab30c83b67874f40344e29805e1",
      "tree": "ee25ead665a5fe2d154fd9d2ed6656be0eac037e",
      "parents": [
        "53e142a0ee3cf18bcc4a88761bd771c5d4eff65f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Nov 19 16:54:20 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 07 17:12:55 2016 -0800"
      },
      "message": "audio policy: introduce audio route concept\n\nAs a preambule of introduction of topology concept within\naudio policy configuration file, this patch introduces the notion\nof audio route, i.e. a link between one sink and one or more sources.\nThis link may be shareable (mix) or mutual exclusive (mux).\n\nFrom this route concept, and in order to keep backward compatibility,\nthe supported device of ioprofile (what will become AudioMixPort) must\nbe updated.\n\nChange-Id: If078830dbe74b003be4a64c584521df481101294\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "112b0af826aeca45855690b9c105b2cdf9938bbe",
      "tree": "3069f5aa08c8a76ecaad33910a5901a8537ef0ac",
      "parents": [
        "599c758b258cc5da0dba9b530425381facc37d77"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Nov 19 16:13:25 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 16 11:19:19 2015 -0800"
      },
      "message": "audio policy: introduction of AudioProfile\n\nIn order to be able to declare the possible sample\nspecifications for an Audio Port (a given format, a list of\nsample rates, a list of channels), a new object AudioProfile is\nintroduced.\n\nChange-Id: Ie3ca3400f05984e7b4132fc7ba90020eb4d998c7\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "599c758b258cc5da0dba9b530425381facc37d77",
      "tree": "212a8b01eb2edcee68ffc5fc33c3ce9a9b762b32",
      "parents": [
        "44333e51c62643e7581022495a2a1f410dd62e27"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 07 18:05:55 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 15 18:55:16 2015 -0800"
      },
      "message": "audio policy: audio sessions on input descriptors\n\nIn preparation for concurrent capture, add support for multiple\naudio sessions per input stream.\n\nEach session keeps its own properties, open and active reference\ncounting.\n\nNo functional change for now: still one session per input and one active\ninput at a time.\n\nBug: 18815985.\nBug: 22702906.\n\nChange-Id: I915a65989a7fd0d3cbe2fcf5a0aee2ea0df5f4f5\n"
    },
    {
      "commit": "7b279bbc24139ee1e01b58055ca94926ec18e2e9",
      "tree": "5986c5445c80e4341b02bfcd861f24619e98eb56",
      "parents": [
        "83923a3060c471b13d5a103852b3a3979ee5b35e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 14 10:18:23 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 14 10:18:23 2015 -0800"
      },
      "message": "audio policy: remove compilation warnings\n\nChange-Id: I4d41ca903dfbe37066ef20a13ebabaff1e5b7326\n"
    },
    {
      "commit": "65bfe916ca972b95f41d7f6cc2566c2e12a3eada",
      "tree": "5bba6ff35798ae91602658b6754d2ba047844d71",
      "parents": [
        "0a62162accbce87db829869a15eab72eca2607b2"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 04 15:56:47 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 04 16:27:43 2015 -0800"
      },
      "message": "AudioPolicyManager: AudioInputDescriptor open ref count cleanup\n\nAlways initialize the mOpenRefCount field.\nAdd functions for management for open ref count.\n\nChange-Id: I0bbd021283047abfebbc108ced68c79e29297f25\n"
    },
    {
      "commit": "5fcd6f99944d8722c57d2b2963814a1964ecfedd",
      "tree": "1af1b265cc233592d70782c4ccb4378b36a9e045",
      "parents": [
        "d0609ad390ff8bb1cafebdf363bf1d15e63b949f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Fri Nov 27 13:46:12 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 02 12:04:12 2015 -0800"
      },
      "message": "audio policy: enhancing type conversion helper\n\nThis patch updates the conversion helper class (string to/from policy\ncommon types) by adding direction agnostic helper for channels and\nformats.\nIt also adds the support of device category and stream type parsing.\n\nChange-Id: I75d5a77d78bc3aeb2389b424bfb41febbf020f1a\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "d0609ad390ff8bb1cafebdf363bf1d15e63b949f",
      "tree": "4fb8bed9270800f907acac087806227114577689",
      "parents": [
        "3f273d10817ddb2f792ae043de692efcdf1988ae"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Tue Dec 01 17:56:08 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 02 10:33:18 2015 -0800"
      },
      "message": "audio policy: move device_category type outside volume class\n\nThis patch prepares the removal of hard coded volume tables by\nmoving outside volume class the device_category enumeration.\n\nChange-Id: Ic712377898276a39bb782ac0bc7f793cdd7fa8bd\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "1d4481fb9cb1ea149f79f2a5d22110af84fbc90b",
      "tree": "ff734523d81934dd7bb3306fed901738a46f15ed",
      "parents": [
        "a8ecc2c72ca26389bd6b0162181d60aaeaca8149"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Thu Nov 19 16:02:25 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 24 18:34:34 2015 -0800"
      },
      "message": "audio policy: clarify tag and name for device description\n\nIn preparation to introduction of topology within policy configuration\nfile, this patch clarifies the meaning of tag and name attributes of a\ndevice.\n\nChange-Id: I8db58be939823e87aa05b991e2afe0762eb741ca\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "a8ecc2c72ca26389bd6b0162181d60aaeaca8149",
      "tree": "d6ad677365066d9d0ecaf81c818f73a477c512e9",
      "parents": [
        "371ed17f26d789c485f9a082f65e2c80ca651489"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@intel.com",
        "time": "Mon Nov 09 16:10:40 2015 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 24 17:57:28 2015 -0800"
      },
      "message": "audio policy: remove deserialization from policy objects\n\nThis patch removes the responsability of the deserialization of all\nobjects managed by the policy by:\n-adding required accessors\n-moving deserialization function to Config parser helper\n-adds a TypeConverter to associate string to / from values of all\naudio enumeration shared between HALs and policy.\n\nChange-Id: I1ce798848f4657b37e47446c9fbdc63f7ed0390e\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@intel.com\u003e\n"
    },
    {
      "commit": "7a564a0e201d8ddc7cc7b7a7202adf017b4e4836",
      "tree": "05c5952f816431cf754487a31feff1cf72cc9369",
      "parents": [
        "7e7a62dc6c20b5ff761b87d99379797aa3fd7d9d",
        "d60560af7cb559762593161c8202459cc01fb0f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 05 20:14:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 05 20:14:20 2015 +0000"
      },
      "message": "Merge \"audio policy: add support for external audio sources\""
    },
    {
      "commit": "57f2cc1fa8165974df15bcdcaf215cc2c0c11216",
      "tree": "9730afa266b4ab9214a1bba721859a64908fdd7d",
      "parents": [
        "8aacfffa600d86e721142b04caa39c0b951530ea",
        "bbed3af44a9ac40a15f3c0759cef33d06d1f93b4"
      ],
      "author": {
        "name": "Gaurav Shah",
        "email": "gauravsh@google.com",
        "time": "Mon Nov 02 19:55:17 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 02 19:55:17 2015 +0000"
      },
      "message": "Merge \"audio: Change the default init value for StreamDescriptor\" am: 2e5591958b am: 1d1449297e\nam: bbed3af44a\n\n* commit \u0027bbed3af44a9ac40a15f3c0759cef33d06d1f93b4\u0027:\n  audio: Change the default init value for StreamDescriptor\n"
    },
    {
      "commit": "1d1449297e6ea4cd76119e284807f5e2b9187743",
      "tree": "07d935aeda4fad529f2be6cbcd078d8b6ca52bf0",
      "parents": [
        "28c7c2e598caab793291bc6bffde0efedf235d87",
        "2e5591958b5fe897f37715145e86bf8afbde0911"
      ],
      "author": {
        "name": "Gaurav Shah",
        "email": "gauravsh@google.com",
        "time": "Mon Nov 02 19:47:41 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 02 19:47:41 2015 +0000"
      },
      "message": "Merge \"audio: Change the default init value for StreamDescriptor\"\nam: 2e5591958b\n\n* commit \u00272e5591958b5fe897f37715145e86bf8afbde0911\u0027:\n  audio: Change the default init value for StreamDescriptor\n"
    },
    {
      "commit": "5664139e0ae16bb180a8eaae917f35f7c99d2a0a",
      "tree": "f28a321965220ad269837929e60fb6098cd48a37",
      "parents": [
        "8e3db8fc87e5028f02134fa791834f57faafb637"
      ],
      "author": {
        "name": "Ralph Nathan",
        "email": "ralphnathan@google.com",
        "time": "Fri Oct 09 14:39:00 2015 -0700"
      },
      "committer": {
        "name": "Gaurav Shah",
        "email": "gauravsh@google.com",
        "time": "Mon Nov 02 09:45:46 2015 -0800"
      },
      "message": "audio: Change the default init value for StreamDescriptor\n\nCurrently, audio doesn\u0027t play on Brillo because the policy manager\u0027s\ndefault value for all streams is set to 0. In Android, this value is\nchanged by calls from AudioService.java. If we set the default value to\n1 in Brillo, then even if there are no calls, we will have audio.\n\nBUG\u003dnone\nTEST\u003dmanual\n\nChange-Id: I1418c9ecfb4f1c81c9c0946eee11deed3c65b358\n"
    },
    {
      "commit": "60d156247a7189d59af0a3643e2a786dacef734d",
      "tree": "edb1b1a80ada48db7b72545106e0b82db5f32dc8",
      "parents": [
        "3806ff2f2021074e7c1fe3784ee8a12e0d042a82"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 29 19:01:04 2015 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Oct 30 10:09:12 2015 +0900"
      },
      "message": "APM: Don\u0027t copy invalid gain value\n\nBug: 24775316\nChange-Id: I0c439a78909c03ca2b0340c67bfb969de2283166\n"
    },
    {
      "commit": "d60560af7cb559762593161c8202459cc01fb0f5",
      "tree": "d2913f6eb8ded236fba95d7920cca8f7906288e6",
      "parents": [
        "0443ba44a1ebda31bc3642cd91a0570694f29ec1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 11:31:20 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 29 16:55:40 2015 -0700"
      },
      "message": "audio policy: add support for external audio sources\n\nAdd support for activity on external audio sources.\nAn external source reflects activity on an input audio device\nthat must be controlled (both routing and volume) by the\naudio policy manager.\nFirst, the input device must be connected with setDeviceConnectionState().\nThen, the source activity is indicated with startAudioSource() and\nstopAudioSource() APIs.\nstartAudioSource() indicates the source device with an audio port configuration\nand the use case by the audio attributes.\n\nOnce a source is active, its routing and volume are controlled by the policy manager\nas it would for a software source (AudioTrack).\n\nChange-Id: If5805d58a4356b2f681f1aabf54375f62b55b98a\n"
    },
    {
      "commit": "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"
    }
  ],
  "next": "7c1ec5f038e63a5eb8b04434577c25bc23f5f410"
}
