)]}'
{
  "log": [
    {
      "commit": "1c87855ff4c3c55e191a2e6da66bb82011c91c1b",
      "tree": "e4cbf214056b965017c1f727ad0881b85ef1e54d",
      "parents": [
        "e690a6da57c95da65b4a179e35fa4dc72510024f"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Thu Nov 22 16:53:21 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 19 15:58:32 2019 -0800"
      },
      "message": "audiopolicy: rework stream activity for volume management on output\n\n-Manage duplicated output ref count in client itself\n-Use VolumeSource to track volume activity in output\n(today mapped on legacy stream type)\n-Use accessor APIs to control activity/mute from apm.\n\nTest: audio smoke tests\nBug: 124767636\n\nChange-Id: I452e3973f6869d41231d984896a5886ebb86afb1\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "8b0e6fa090b6013899d48112761f45e12705f838",
      "tree": "7c9a0c96c1f4eba2619974522b22482e7a213b9d",
      "parents": [
        "43af2f970b8a0fe4b1a93e4487eaf7d1eaaff684",
        "9a183af20f950c33af5e4e60b2370b92b747f976"
      ],
      "author": {
        "name": "Sapir Caduri",
        "email": "sapir@google.com",
        "time": "Tue Feb 19 13:40:13 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 19 13:40:13 2019 +0000"
      },
      "message": "Merge \"audio policy fix: allow cocurrent capture for VOICE_DOWNLINK, VOICE_CALL, VOICE_UPLINK.\""
    },
    {
      "commit": "d0488712e53070e3cdef4ed03ac9232a61f6dcbb",
      "tree": "bfbdf9e5071541df085cc93c89122c80eace33cc",
      "parents": [
        "4507d82ee003d730f010b1b4f9b76d1cb402017e",
        "e7f4b46a572a0131de6d9d2a2ca81247dec056ff"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 18 23:04:12 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 18 23:04:12 2019 +0000"
      },
      "message": "Merge \"Camera: Use capture result metadata to override EXIF\""
    },
    {
      "commit": "9a183af20f950c33af5e4e60b2370b92b747f976",
      "tree": "2cb17474772f9f8ca9393b5d965f4108acce0e73",
      "parents": [
        "4a0be4d3f8e1489657053613208c3214f8f7654b"
      ],
      "author": {
        "name": "Sapir Caduri",
        "email": "sapir@google.com",
        "time": "Thu Feb 14 22:23:47 2019 +0200"
      },
      "committer": {
        "name": "Sapir Caduri",
        "email": "sapir@google.com",
        "time": "Sun Feb 17 15:41:02 2019 +0200"
      },
      "message": "audio policy fix: allow cocurrent capture for VOICE_DOWNLINK,\nVOICE_CALL, VOICE_UPLINK.\n\nThis update will allow features like Call Screen (go/callscreen), Tap to Caption (go/whatist2c) and\nTulip (go/tulip) to work simultaneously.\n\nBug: b/124457248\nTest: Manual testing. See videos in folder: http://go/audio-fix-videos\nand README.txt\n\nChange-Id: Ic279dde6c99eca51b880bb340dfc3235d8680121\n"
    },
    {
      "commit": "b9b9b069322d5f4a0df778b385ecf50f0fcada94",
      "tree": "b82d4a9642d4fe2cf76c16372a8016dde0f5c9da",
      "parents": [
        "ac6f2c28059fecd051fe5b617d412aa1d3b9ed3b",
        "6057fa270854d700cc85804fdd4517a8f8831f1f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 16 02:40:42 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 16 02:40:42 2019 +0000"
      },
      "message": "Merge \"Log if intercepting tracks takes too long\""
    },
    {
      "commit": "e7f4b46a572a0131de6d9d2a2ca81247dec056ff",
      "tree": "1241518b766e632674222fa28e707a8c87ce1625",
      "parents": [
        "c6aa503951f6d65ead9b0066568bdb47b9896ca3"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Feb 12 08:43:07 2019 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Feb 15 12:05:44 2019 -0800"
      },
      "message": "Camera: Use capture result metadata to override EXIF\n\nUse static and dynamic metadata to override Exif tags.\n\nAlso added back a missing ATRACE_ASYNC_ENDs statement.\n\nTest: Camera CTS\nTest: ERROR_BUFFER of internal streams is propagated to app\nTest: ERROR_RESULT only results in EXIF not being overridden\nBug: 124066183\nChange-Id: Id2c69c6bee04ae724ff5f190b2dd96d0159700c9\n"
    },
    {
      "commit": "97f7ed443c8f39c019a882f5e4628d17a63bb4b8",
      "tree": "5cced76b2f1b8e4545cbee06d0641ecb9d4ce333",
      "parents": [
        "fe38a9d6f4a8df64babd66d30c044033d88873dc",
        "bf6b0ecd91172d6cd6cdd7c44f9ceecab4c29f27"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 15 19:21:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 19:21:00 2019 +0000"
      },
      "message": "Merge \"Refactor haptic constant.\""
    },
    {
      "commit": "fe38a9d6f4a8df64babd66d30c044033d88873dc",
      "tree": "5dc6ea0f062b45cdf86bda7db103f2c0aba16797",
      "parents": [
        "0ceaa7cdb69224ba18f8bd6a0e07406b75354770",
        "87e5fa6cb4bed3d9a66102fba4417d9d9d1217cb"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Feb 15 19:15:11 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 19:15:11 2019 +0000"
      },
      "message": "Merge \"Revert \"Add syscalls required by UBSan.\"\""
    },
    {
      "commit": "0ceaa7cdb69224ba18f8bd6a0e07406b75354770",
      "tree": "3678dbd1aaf9833f3c85ca112a620411d49b744d",
      "parents": [
        "b1a84be62bbaef6d4d06860ab89d9a69ee43e409",
        "2224c5a0f7ff52d8b40cc3e8b67f3f71560f842e"
      ],
      "author": {
        "name": "Stanley Tng",
        "email": "stng@google.com",
        "time": "Fri Feb 15 18:08:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 18:08:05 2019 +0000"
      },
      "message": "Merge \"audio: use SinkMetaData to route voice call with hearing aid.\""
    },
    {
      "commit": "bf6b0ecd91172d6cd6cdd7c44f9ceecab4c29f27",
      "tree": "5af2b932484555dc58c2eb0ec338a4062ba99b81",
      "parents": [
        "f39a648edbb1502f278ab10310e42500692dc3df"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Feb 12 12:30:12 2019 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Feb 15 09:47:23 2019 -0800"
      },
      "message": "Refactor haptic constant.\n\nUse the constant from IExternalVibratorService.\n\nBug: 124318236\nTest: play audio-haptic coupled file\nChange-Id: Ice2ac13d0f6a6a749bb6243230524336144fa5f4\n"
    },
    {
      "commit": "87e5fa6cb4bed3d9a66102fba4417d9d9d1217cb",
      "tree": "d676e1853544825ed950165f80c74153356312df",
      "parents": [
        "ddd87af881ef31976af3d051503fcb00040f4f9a"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Feb 15 17:07:29 2019 +0000"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Feb 15 17:13:05 2019 +0000"
      },
      "message": "Revert \"Add syscalls required by UBSan.\"\n\nThis reverts commit ddd87af881ef31976af3d051503fcb00040f4f9a.\n\nReason for revert: Turning down diagnostics mode in codecs.\n\nBug: 111498295\n\nChange-Id: Ida7302ec70f31b79931e2a5df424a5ab4e3d5d62\n"
    },
    {
      "commit": "0302b6d14cca873521fb65b184fe8964b496affc",
      "tree": "5c23cc9d1aa2d5cd2a199b51e7261295328938eb",
      "parents": [
        "d97b1b3994f3cb026348b136817d107934ba6677",
        "7e5a2042659b0659be82397202261732a797c216"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 14 18:41:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 18:41:53 2019 +0000"
      },
      "message": "Merge changes I7362942f,I946fb95d\n\n* changes:\n  Camera: rework API1 shim takePicture retry logic\n  Camera: bug fixes for HAL buffer manager\n"
    },
    {
      "commit": "cbfa4c1c9b2dd9976ccb16e39545a7ba6449761a",
      "tree": "bc2e2e2d019cf75794a19bbd03dbf97d99760f87",
      "parents": [
        "cf272c82a2bda2cb759b62a01ad38d89bd31d356",
        "4ec1788b4f826bedebedb8d4bb7e957a8c5d14f5"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Feb 13 21:54:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 13 21:54:22 2019 +0000"
      },
      "message": "Merge \"Camera: Enable Hal side stream reconfiguration queries\""
    },
    {
      "commit": "7e5a2042659b0659be82397202261732a797c216",
      "tree": "334ce161ad5de35aebfae4486d393fb77e6d59f7",
      "parents": [
        "cd333fe74677da852cc05dcb24c9e7e4614377ec"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 06 16:01:06 2019 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 13 11:54:55 2019 -0800"
      },
      "message": "Camera: rework API1 shim takePicture retry logic\n\nonBufferReleased is no longer reliable indicator of capture\nerror due to HAL buffer manager feature. Switch to listen\nto error callback from HAL directly.\n\nTest: API1 CTS + Pixel 3\nBug: 123952355\nChange-Id: I7362942f19356583ec66f259b01e963a1af3a205\n"
    },
    {
      "commit": "cd333fe74677da852cc05dcb24c9e7e4614377ec",
      "tree": "8f6b5f27a5d510da3bf2027601d6eb514c5c7bd8",
      "parents": [
        "ffb2516cc730b5ac621ad8a92e827faf4e86b8ca"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Feb 08 13:45:41 2019 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 13 11:06:18 2019 -0800"
      },
      "message": "Camera: bug fixes for HAL buffer manager\n\nTest: GCA smoke test + Camera CTS\nBug: 120986771\nChange-Id: I946fb95d8e685995ebb8cf3d36b0373958bfad09\n"
    },
    {
      "commit": "2224c5a0f7ff52d8b40cc3e8b67f3f71560f842e",
      "tree": "d87577ba156774092ce9395bb281f5bbbc115eed",
      "parents": [
        "e04ba51703c3fb797f6b7e22d5848d0ed3801bc6"
      ],
      "author": {
        "name": "juyuchen",
        "email": "juyuchen@google.com",
        "time": "Mon Jan 21 12:00:58 2019 +0800"
      },
      "committer": {
        "name": "juyuchen",
        "email": "juyuchen@google.com",
        "time": "Wed Feb 13 12:00:28 2019 +0800"
      },
      "message": "audio: use SinkMetaData to route voice call with hearing aid.\n\nBug: 121173695\nTest: manual audio test\n\nChange-Id: If51b7c5063d0578ec4b8b16ec8ccd1712ae2c85c\n"
    },
    {
      "commit": "717500c495d3e51189eed078ce23ae1dd3580ddd",
      "tree": "1d035a28a0eca56e322c93d623442512d3d12a7d",
      "parents": [
        "733062210b86c805d10eb7feae534386a4d8f04d",
        "f0de5ce5d1629cd18effe1b70ed6500c1d648955"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 12 00:03:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 00:03:03 2019 +0000"
      },
      "message": "Merge \"Restrict APC to usages and opt-in streams\""
    },
    {
      "commit": "56962853d49c115db491ec8b84b1ff65cb30687a",
      "tree": "af8f3de7854d41f428889f4ecc70427d907b0bd7",
      "parents": [
        "2334e00184aea8b124789a04b92dc2180dbc7df7",
        "a134b006bc5714b6c8dcfbe5900a3ee029aa1044"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 11 18:47:43 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 11 18:47:43 2019 +0000"
      },
      "message": "Merge \"Audioflinger intercept track retry on buffer end\""
    },
    {
      "commit": "5a9b492828f9bc0d04e1292add45a271e0189c4e",
      "tree": "9c3fe53b8a78f01bfc55f480e9e12e8e1a915489",
      "parents": [
        "1342d0740e9a7accd48a7c28725ca61ded231ee1",
        "63f3611018857754d60a176783133371bae5f009"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Feb 11 01:22:52 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 11 01:22:52 2019 +0000"
      },
      "message": "Merge \"Camera service: Support for device state change notifications\""
    },
    {
      "commit": "6057fa270854d700cc85804fdd4517a8f8831f1f",
      "tree": "a4d5ba8560df80a6221403bf87f0a84820b360bb",
      "parents": [
        "a134b006bc5714b6c8dcfbe5900a3ee029aa1044"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 14:08:07 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 17:31:07 2019 -0800"
      },
      "message": "Log if intercepting tracks takes too long\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: Ic56cd0d223e83938a2d5eeb98cbcb754629799d8\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "a134b006bc5714b6c8dcfbe5900a3ee029aa1044",
      "tree": "8961e932f8db72b1f24a7f7d83ca91ced0369975",
      "parents": [
        "2ec0674146dc0a9d885a18067a7a5c84786b59ad"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Feb 07 18:05:31 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 17:31:07 2019 -0800"
      },
      "message": "Audioflinger intercept track retry on buffer end\n\nTrack::interceptBuffer failed to write all the audio if the source BP\ncould not returned the requested buffer size.\nThis is actually normal when the source circular buffer wraps around.\n\nHandle it by retrying if the first buffer is too small.\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I42a7962449a0f075909a29f5f8f5ba82ca1d0085\n"
    },
    {
      "commit": "1342d0740e9a7accd48a7c28725ca61ded231ee1",
      "tree": "915577adbe4bd4c4255fb3a62d043f937ffb3a58",
      "parents": [
        "318690abd174996d0e77157086e5a145206ea9c4",
        "179a074f2706051bbe0e084598482a39e00368cd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 09 00:25:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 09 00:25:48 2019 +0000"
      },
      "message": "Merge \"audioflinger: fix redundant adding to tracksToRemove\""
    },
    {
      "commit": "f0de5ce5d1629cd18effe1b70ed6500c1d648955",
      "tree": "92f059c8bff4024c0ebb112a4d93e69121372340",
      "parents": [
        "06a3967bee29fcfd0dde8fbdfff795e7e705c0f4"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 09:28:44 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 22:39:10 2019 +0000"
      },
      "message": "Restrict APC to usages and opt-in streams\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I17d48bfa89f3187535d211ef1c9ba6cb435fd777\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "9aeb1770d49bab13ea5c6454c969a713641fe686",
      "tree": "cf31e60cf96f213535899a4dd14722868cf1a530",
      "parents": [
        "186f4ac0f006de84d940a460bb44ee0e325fd1eb"
      ],
      "author": {
        "name": "Weiyin Jiang",
        "email": "wjiang@codeaurora.org",
        "time": "Fri Apr 27 00:39:29 2018 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 08 13:31:05 2019 -0800"
      },
      "message": "audio: ensure effect chain with specific session id is unique\n\nIt\u0027s possible that tracks with the same session id running on various\nplayback outputs, which causes effect chain being created on the same\nsession twice. As a result, the same effect engine will be released\ntwice as the same context is reused.\n\nOutput that has effect chain with same session id is more preferable.\n\nTest: No regression with Play Music and Effects\nBug: 123082420\nChange-Id: I690ea3cb942d1fdc96b46048e271557d48000f43\n"
    },
    {
      "commit": "179a074f2706051bbe0e084598482a39e00368cd",
      "tree": "f846f50eacfeb6a1d0d92079c7f0c8dc34f1757c",
      "parents": [
        "186f4ac0f006de84d940a460bb44ee0e325fd1eb"
      ],
      "author": {
        "name": "Aniket Kumar Lata",
        "email": "alata@quicinc.com",
        "time": "Wed Jan 30 14:16:16 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 08 12:26:55 2019 -0800"
      },
      "message": "audioflinger: fix redundant adding to tracksToRemove\n\nIn order to avoid track to be added to tracksToRemove\nredundantly, merge the adding operation under exclusive\ncondition check.\nThis can make sure the add can happen only one time within\none prepareTracks iterator.\n\nauthored-by: Zhou Song \u003czhous@codeaurora.org\u003e\n\nTest: AF active track removal with audio playback pause\nBug: 123375253\nChange-Id: If35348af2144a28b84241e1cb93f497d5eec9a8a\n"
    },
    {
      "commit": "186f4ac0f006de84d940a460bb44ee0e325fd1eb",
      "tree": "3b0da685352a1392eeb3081ca02cbd52d93242f1",
      "parents": [
        "cc423d49c662a03627d7f855f8111c5938f0cf11",
        "453bcb548feb5661b0468a137950e8db521eb9d2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 08 19:47:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 19:47:03 2019 +0000"
      },
      "message": "Merge \"audio: don\u0027t apply ramp if track is paused before the first mix\""
    },
    {
      "commit": "cc423d49c662a03627d7f855f8111c5938f0cf11",
      "tree": "570bc367e3eb5caa28d44f6904bea6065afa8edb",
      "parents": [
        "0cefb10674a51e975cbe1c5d090198786614a31c",
        "3fff3f502d536f8a35744c859cc93823ad29a8cc"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 19:02:45 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 19:02:45 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: make mixes const correct\""
    },
    {
      "commit": "0cefb10674a51e975cbe1c5d090198786614a31c",
      "tree": "c00b9229485006c69e1c609e34fde5e0cc0470f7",
      "parents": [
        "9fcae9fdc6102ac7e92cb91777d79114f7996452",
        "f4f5c817ed4ba6f10287cb37b9f71f6c27723359"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 19:01:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 19:01:40 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: make input attributes parameter const\u0026\""
    },
    {
      "commit": "9fcae9fdc6102ac7e92cb91777d79114f7996452",
      "tree": "d6660f9d8e0439234fdf0e0fc8b59fbb607a7f6d",
      "parents": [
        "39dfc2294c8a14b2a75db57dc171bed44b166cf5",
        "20413a95e4a2def7df555c6bf31c9239e0b05d1d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 08 18:29:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 18:29:48 2019 +0000"
      },
      "message": "Merge \"audioflinger: fix for playback paused during track transition\""
    },
    {
      "commit": "39dfc2294c8a14b2a75db57dc171bed44b166cf5",
      "tree": "e3b28d40756690a59596fc621d76cc4d69ddee4d",
      "parents": [
        "54985e8542b8705292808b2f9f70d6c1bf6b3824",
        "2c54504df6b633d9840da6b5f781e69c41890d54"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 08 17:14:23 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 17:14:23 2019 +0000"
      },
      "message": "Merge \"Camera: Disconnect composite streams from output surface at shutdown\""
    },
    {
      "commit": "2c54504df6b633d9840da6b5f781e69c41890d54",
      "tree": "babc5581801fbb8211c18783cf3a3efa564d7847",
      "parents": [
        "ffb2516cc730b5ac621ad8a92e827faf4e86b8ca"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Feb 07 10:27:35 2019 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Feb 08 17:13:58 2019 +0000"
      },
      "message": "Camera: Disconnect composite streams from output surface at shutdown\n\nWhen a composite stream is deleted, the previously connected output\nsurface needs to be disconnected. Otherwise when the composite stream is\nre-created with the same output surface, connect() will fail.\n\nTest: TestingCamera2, and Camera CTS\nBug: 79465976\nBug: 109735087\nBug: 124072769\nChange-Id: I254238235d306f9be8152110b1c55a7ada46424a\n"
    },
    {
      "commit": "4c8d916a69fe9a65af5d606a1a129bfda1fc5fef",
      "tree": "378c36119753159647c707c037480e72185e2342",
      "parents": [
        "aea65a0f1ede2446f05ce186f04a419e36f4e311",
        "ba2cf0f2e39d8302babbda3a98127daaf2ea7376"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 08 03:00:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 03:00:26 2019 +0000"
      },
      "message": "Merge \"audiopolicy: fix dynamic device \u0026 explicit routing management\""
    },
    {
      "commit": "453bcb548feb5661b0468a137950e8db521eb9d2",
      "tree": "2bb3cc81dff6a0d29fda7058cf12cc88fa8f1419",
      "parents": [
        "ffb2516cc730b5ac621ad8a92e827faf4e86b8ca"
      ],
      "author": {
        "name": "Revathi Uddaraju",
        "email": "revathiu@codeaurora.org",
        "time": "Mon Aug 14 14:19:40 2017 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 07 18:12:34 2019 -0800"
      },
      "message": "audio: don\u0027t apply ramp if track is paused before the first mix\n\nIf a track is paused right after start before it gets a chance to mix\nthe first frame. Don\u0027t apply volume ramp if it resumes later.\n\nTest: Basic audio sanity.  Partner CL.\nBug: 123063164\nChange-Id: I969ff1b6edce8faf77f2cdc481db9c1e3ef6d3dd\n"
    },
    {
      "commit": "20413a95e4a2def7df555c6bf31c9239e0b05d1d",
      "tree": "0d2e75d9265f72344be3dca5a20a932ca90db962",
      "parents": [
        "ffb2516cc730b5ac621ad8a92e827faf4e86b8ca"
      ],
      "author": {
        "name": "Revathi Uddaraju",
        "email": "revathiu@codeaurora.org",
        "time": "Thu Oct 13 17:16:14 2016 +0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 07 18:00:46 2019 -0800"
      },
      "message": "audioflinger: fix for playback paused during track transition\n\nThe test case here involves two applications both of\nwhich play the same music clip. When the 2nd application\nends playback, the 1st application must resume playback\nwhere it left off. But it is possible that the new\nAudioTrack.start() command from the 1st application is processed\nafter the 2nd application has paused and terminated.\n\nThis will prevent a flush to clear any state before playback\nof the 1st application can resume. Direct thread thus\nstays in pause state indefintely.\n\nIssue unconditional flush for direct thread when a new\ntrack is added to a direct output.\n\nTest: partner CL submit, check compilation\nBug: 123082418\nChange-Id: I33d36db35358a1b3b89dd5b2b8cb4db1f9c6d4a0\n"
    },
    {
      "commit": "f4f5c817ed4ba6f10287cb37b9f71f6c27723359",
      "tree": "695ece5a81488ca3e98992707e01c9b4a0675a8b",
      "parents": [
        "d6454722c21495fb5effae4176cc689ec8900f9a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 09:28:02 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 01:11:13 2019 +0000"
      },
      "message": "AudioPolicy: make input attributes parameter const\u0026\n\nTest: compile\nBug: 111453086\nChange-Id: I3b08d11481471dc080ed2ab89ae59e6268542c25\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "3fff3f502d536f8a35744c859cc93823ad29a8cc",
      "tree": "1d7e0807ecd9d2701cf94c3208ebbcca595f3352",
      "parents": [
        "d6454722c21495fb5effae4176cc689ec8900f9a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 09:24:40 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 01:09:26 2019 +0000"
      },
      "message": "AudioPolicy: make mixes const correct\n\nTest: compile\nBug: 111453086\nChange-Id: Ic3b1e414bcf0e2de20bdecebdd71920030ecc1ec\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "d6454722c21495fb5effae4176cc689ec8900f9a",
      "tree": "81771f5041b17dcd2972e40e81f8669df711fbbc",
      "parents": [
        "6787e25ae1c63731e254d5afa5edacb02f4d3e02",
        "c2afbdf2a57dd2e84ae2fe20e72c45c67b1aa4da"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 08 01:08:14 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 08 01:08:14 2019 +0000"
      },
      "message": "Merge \"Dynamic audio policy should reject non pcm\""
    },
    {
      "commit": "4ec1788b4f826bedebedb8d4bb7e957a8c5d14f5",
      "tree": "5a8e77b46d6a24e94bfef41a33f11e5cac562ca6",
      "parents": [
        "627cb60a9fb54e8f6b2eab0c874392f20cd9d8e8"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jan 24 17:16:58 2019 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Feb 07 14:10:14 2019 -0800"
      },
      "message": "Camera: Enable Hal side stream reconfiguration queries\n\nSession parameter changes will by default trigger internal stream\nreconfiguration. If possible query Hal whether this sequence\nis required for specific parameter values.\n\nBug: 122609098\nTest: Manual using application\nChange-Id: I9eaa55b0a552d9753122c16f9470779e2ed8ffec\n"
    },
    {
      "commit": "ba2cf0f2e39d8302babbda3a98127daaf2ea7376",
      "tree": "4a86852dbc034802d93ab5528591dc941a68c01c",
      "parents": [
        "ffb2516cc730b5ac621ad8a92e827faf4e86b8ca"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Dec 12 16:40:25 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 07 11:20:57 2019 -0800"
      },
      "message": "audiopolicy: fix dynamic device \u0026 explicit routing management\n\nWhile a playback is ongoing using explicit routing\nand the device is disconnected, setOutputDevices() will bail out\nif the new device is incompatible with the io profile. So the device\nwill not be reset in the output.\nMoreover, if another device of the same type/address is connected,\nthis device will have a new unique ID.\nIf a track wants to use it as explicit, as the first playback/capture is still\non going, the function findPreferredDevice will return the previous device id.\n\nThis CL enforces:\n-setOutputDevices() to check if new device is not compatible AND previous devices\nare still available\n- When a device is disconnected, go over all clients to clear any preferred device\nreferring to the device being removed.\n- Sanitize preferred device received by get\u003cOutput|Input\u003eForAttr() according to\nconnected devices.\n\nTest: AudioPolicyTests --gtest_filter\u003dDynamicAddressOutputDevice/DeviceConnectionTest.DeviceConnectionState/*\nTest: audio smoke tests\nTest: CTS tests for AudioTrack, AudioRecord, AudioRouting\n\nChange-Id: Ib3a2d54d902def0fcfc2a623c25bb92d65b1ab98\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "ffb2516cc730b5ac621ad8a92e827faf4e86b8ca",
      "tree": "54adaf811762b5bdb564c5683397242edad5fd73",
      "parents": [
        "0d223d495050de8c50eaf669703b811f7bfda52e",
        "68ac7ada1f7329db65445d05c986899dbb13b745"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Feb 07 19:15:34 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 19:15:34 2019 +0000"
      },
      "message": "Merge \"Camera: Add HEIC support\""
    },
    {
      "commit": "b6ac00032375798810e2000efceac6f0645e3e85",
      "tree": "e7e91339d608221d66393f1659615eacb8342649",
      "parents": [
        "2ec0674146dc0a9d885a18067a7a5c84786b59ad",
        "4d4ca6ada3d9f1d535bc4bee2362ff93f88cd55f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Feb 07 18:03:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 18:03:53 2019 +0000"
      },
      "message": "Merge \"FastMixer: Enable volume ramp for active tracks\""
    },
    {
      "commit": "3f58b1194375d5c8008ec8fd4ce2ef068e8955b8",
      "tree": "d7260eb26fc40d284df23e7264b19ef53059bbed",
      "parents": [
        "5edb6fbe8febd18961895a4edd45a1c6e6a6db85",
        "c43ea147033817dc46b76d8993a84f0e5ee4e4e0"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Feb 07 03:10:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 07 03:10:10 2019 +0000"
      },
      "message": "Merge changes from topic \"APC\"\n\n* changes:\n  Propagate track status to interception patch track\n  Add secondary output to audio tracks\n  Audioflinger: add timeout to PatchTrack\n  Audiopolicy: Move AudioPolicyMixCollection in helper function\n  Add MIX_ROUTE_FLAG_LOOP_BACK_RENDER\n"
    },
    {
      "commit": "5edb6fbe8febd18961895a4edd45a1c6e6a6db85",
      "tree": "5d36a428baf06831716677af2949221576255902",
      "parents": [
        "62748c6d29225b1b3b3c5d8caa789a31a45feaeb",
        "5dd3130076526467611a374d32e2a4f81b49f38d"
      ],
      "author": {
        "name": "Cheney Ni",
        "email": "cheneyni@google.com",
        "time": "Wed Feb 06 18:10:14 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 06 18:10:14 2019 -0800"
      },
      "message": "Merge \"Introduce a new Audio HW module: bluetooth_audio\" am: 6b890b0b89 am: 1d2eedd9b9\nam: 5dd3130076\n\nChange-Id: I41874f1b1709041a50c4326baaf5376777b841e2\n"
    },
    {
      "commit": "5dd3130076526467611a374d32e2a4f81b49f38d",
      "tree": "14039c17acdd86d731dfa4c763ba2e5f64e9d5f4",
      "parents": [
        "f122c308ca419df82cf3e61538db306444c82386",
        "1d2eedd9b94cf990ae763882a55dd4ac34f00a62"
      ],
      "author": {
        "name": "Cheney Ni",
        "email": "cheneyni@google.com",
        "time": "Wed Feb 06 18:02:59 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 06 18:02:59 2019 -0800"
      },
      "message": "Merge \"Introduce a new Audio HW module: bluetooth_audio\" am: 6b890b0b89\nam: 1d2eedd9b9\n\nChange-Id: Ife89c3c8e2656459af58b2b8d9f06bc76cfec026\n"
    },
    {
      "commit": "6b890b0b8928241bfba213c5978fdb5c43f6e491",
      "tree": "8127754242af3bc290986563d7a900a697d9cbdc",
      "parents": [
        "c000ec0cd897634cfeb028c4552591b6685273c4",
        "6851adba7a6e8543638c69224bad73355d858c9f"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 07 01:37:30 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Feb 07 01:37:30 2019 +0000"
      },
      "message": "Merge \"Introduce a new Audio HW module: bluetooth_audio\""
    },
    {
      "commit": "4d4ca6ada3d9f1d535bc4bee2362ff93f88cd55f",
      "tree": "653a568578f70dc49a5828fab8ec553bfff16fac",
      "parents": [
        "8ec576b7abfc01ac99f3542d29a86ddc3533541b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 01 18:23:37 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Feb 06 16:33:31 2019 -0800"
      },
      "message": "FastMixer: Enable volume ramp for active tracks\n\nClean up logic for FastTrack AudioMixer track initialization.\n\nTest: SoundBar menu scrolling, AudioFlinger tee\nBug: 119284313\nChange-Id: I551d9d54d82e0029a49c6481ba8669093359d6d1\n"
    },
    {
      "commit": "c2afbdf2a57dd2e84ae2fe20e72c45c67b1aa4da",
      "tree": "bad704e7e1461de7372754856e84042428f2fd5b",
      "parents": [
        "c43ea147033817dc46b76d8993a84f0e5ee4e4e0"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Jan 31 18:18:06 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 16:13:13 2019 -0800"
      },
      "message": "Dynamic audio policy should reject non pcm\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I4691b19b1fa2f3b8e8e5045c9ea5be0a5c9effb6\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "c43ea147033817dc46b76d8993a84f0e5ee4e4e0",
      "tree": "4900174eb6395b5980753c40fbdab9064501b37a",
      "parents": [
        "153f92d57b6a1d2fdc7fa601bbc86db31646a8f9"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Jan 31 18:17:37 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 16:13:13 2019 -0800"
      },
      "message": "Propagate track status to interception patch track\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: Icbf627ce36b6d9390439f51237ef9515a2eba8cb\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "153f92d57b6a1d2fdc7fa601bbc86db31646a8f9",
      "tree": "0d380f13a58ff8fdf073dd974dcb55e4d18ef75c",
      "parents": [
        "45986c74cd5253bcc81b1b4954e3ff3300f7e6d8"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Dec 18 18:33:28 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 15:49:11 2019 -0800"
      },
      "message": "Add secondary output to audio tracks\n\nThe secondary are returned from mixes (from DAP loopback\u0026render),\nfrom getOutputForAttr.\nAll getOutputForAttr* of the stack are update.\nInternal getOutputForAttr use descriptor, external one use handles.\n\nThe secondary output are saved in each track and the track is\ninvalidated if the list of secondary output changes.\n\nIn audio flinger, create a pair of recordTrack \u0026 patchTrack to pipe\nthe intercepted audio audio to the secondary output.\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: Id6523d9e383c15a0e39313d5f355df809b7e72fe\n"
    },
    {
      "commit": "6851adba7a6e8543638c69224bad73355d858c9f",
      "tree": "81d20756ad54cc11318c3bddc01befa4a1a1c465",
      "parents": [
        "4ae8b0c37c4b9852c15098cc5ba4129745d1d07b"
      ],
      "author": {
        "name": "Cheney Ni",
        "email": "cheneyni@google.com",
        "time": "Thu Nov 01 06:30:37 2018 +0800"
      },
      "committer": {
        "name": "Hansong Zhang",
        "email": "hsz@google.com",
        "time": "Wed Feb 06 15:21:08 2019 -0800"
      },
      "message": "Introduce a new Audio HW module: bluetooth_audio\n\nWhen persist.bluetooth.bluetooth_audio_hal.enabled is true, the audio\nserver will load audio_policy_configuration_bluetooth_hal_enabled.xml\nto enable BluetoothAudio HAL 2.0\n\nBug: 111519504\nBug: 121411420\nBug: 122556667\nTest: manual\n\nChange-Id: I52df919be8525aa58384163e9505c02a52773506\n"
    },
    {
      "commit": "68ac7ada1f7329db65445d05c986899dbb13b745",
      "tree": "89ee2fc914f6b49e5cac2aae83c61f5c6ace83b2",
      "parents": [
        "627cb60a9fb54e8f6b2eab0c874392f20cd9d8e8"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Jan 30 14:03:28 2019 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Feb 06 10:32:08 2019 -0800"
      },
      "message": "Camera: Add HEIC support\n\n- Derive HEIC capabilities from camera HAL and media framework.\n- Add HeicCompositeStream to encode camera buffers to HEIC buffers.\n- Add ExifUtils to overwrite JPEG APP segments and send to media codec.\n- Add NDK enums and corresponding format support.\n\nTest: Camera CTS\nBug: 79465976\nChange-Id: I0a885e76335f3eba4be0fd42241edb0b7349f284\n"
    },
    {
      "commit": "45986c74cd5253bcc81b1b4954e3ff3300f7e6d8",
      "tree": "7c549d046cb5b342affb16ac8fdfeb13d3f53f3b",
      "parents": [
        "ba98acb34e60b2bf2dac5a55c4acbb80b5408568"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Dec 18 18:22:59 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 09:38:33 2019 -0800"
      },
      "message": "Audioflinger: add timeout to PatchTrack\n\nAdd support for timeout that was only supported by PatchRecord.\nThis is implemented by moving the timeout and common code in a base\nclass.\n\nAlso remove PatchRecord useless virtual inheritance of RecordTrack.\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I833148f31a311ca41092be1d7e2d170f086322c5\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "ba98acb34e60b2bf2dac5a55c4acbb80b5408568",
      "tree": "e55683923a4060bbfd59f87f1030b0218371ef18",
      "parents": [
        "1086b05f7d3cb296d55facd88621f16c2737cf33"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Dec 18 16:51:44 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 06 09:38:23 2019 -0800"
      },
      "message": "Audiopolicy: Move AudioPolicyMixCollection in helper function\n\nNo functional changes\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I300450742a3d6f0b22f69a25eeda7800e0a27943\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "cb5702252856cb7cc5a3319c6ae314ffcc2cbf7d",
      "tree": "88b476b94cc465f37c4b98c8b295abbd2842d2bc",
      "parents": [
        "627cb60a9fb54e8f6b2eab0c874392f20cd9d8e8"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Feb 06 09:12:03 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Feb 06 09:13:41 2019 -0800"
      },
      "message": "Use header file for namespace functions\n\nTest: build, boot\n\nChange-Id: I6e37a6a98de5f200672a78b3f2de1edb9b365a71\n"
    },
    {
      "commit": "559a766d602bbcf699dca60cad5af56abc6d43a1",
      "tree": "ec50e3416b31ca761fa1c26bc0dac64e97b452e2",
      "parents": [
        "eff70fa32462fa994e3ccdbeb44d05c2d18b0650",
        "fa97d9b1736ee5cdbfc9f454811343c7cd876d2e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 06 03:26:24 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 06 03:26:24 2019 +0000"
      },
      "message": "Merge \"audioflinger: Fix move semantics in PatchPanel\""
    },
    {
      "commit": "1086b05f7d3cb296d55facd88621f16c2737cf33",
      "tree": "58254c1bc6f07d5d9f8645ae32b131239e74ffa8",
      "parents": [
        "0435a4dcb66366da53cf4544c941a40ed2b9c2bd"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Dec 18 17:52:55 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Feb 05 17:19:46 2019 -0800"
      },
      "message": "Add MIX_ROUTE_FLAG_LOOP_BACK_RENDER\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I276a10921aac9f5e709c0a44c661cbbdc94e49db\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "fa97d9b1736ee5cdbfc9f454811343c7cd876d2e",
      "tree": "b85246e5b0aed76f4932261eb379d44eb46f2b56",
      "parents": [
        "464a1f3f00320bdd603e6f2d0b069280fe1b11f4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 05 14:08:21 2019 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 05 14:45:30 2019 -0800"
      },
      "message": "audioflinger: Fix move semantics in PatchPanel\n\nThe old code was not implemented correctly.\n\nTest: make and run TV with MSD device\nChange-Id: I64eec7c0c78705fd0497022ff86fa1aef05745b2\n"
    },
    {
      "commit": "b9b7a56a58c71bbc069bcb23e1a5c679480b8f7d",
      "tree": "d5145c838f72869b36f9824ee62d4d8c60268a50",
      "parents": [
        "8ec576b7abfc01ac99f3542d29a86ddc3533541b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 12:45:13 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 12:45:13 2019 -0800"
      },
      "message": "audio policy: fix build\n\nremove unused dependency from parameter lib in engine config.\n\nTest: make.\nChange-Id: I95ca407ab213fd7a9a976873c7e711b60d078156\n"
    },
    {
      "commit": "8ec576b7abfc01ac99f3542d29a86ddc3533541b",
      "tree": "0a5f9b632ca91d056c2bc4b06399361ccdf1703f",
      "parents": [
        "988393f76077ebe699cd9d13c7c2804a5da23eb1",
        "a1185162c486651b856f3cb5ced219b67be735bf"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 05 18:08:16 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 18:08:16 2019 +0000"
      },
      "message": "Merge \"Camera: Only report dynamic depth tag related errors\""
    },
    {
      "commit": "988393f76077ebe699cd9d13c7c2804a5da23eb1",
      "tree": "bdb118dfea77963960be629d118b53d47c50a767",
      "parents": [
        "0435a4dcb66366da53cf4544c941a40ed2b9c2bd",
        "f949ddde2b4d1c986b847676f8bd9ad8364ebd4b"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Feb 05 17:55:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 17:55:03 2019 +0000"
      },
      "message": "Merge \"cameraserver: Add support for hiding secure cameras.\""
    },
    {
      "commit": "0435a4dcb66366da53cf4544c941a40ed2b9c2bd",
      "tree": "d0963c6f1081a0f6008a56fbc03f6f5f33ae3505",
      "parents": [
        "f63dbf127223716fad9de179862eb4fde4fd64e7"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 01 18:17:25 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 02:31:49 2019 +0000"
      },
      "message": "Audiopolicy: Fix DeviceVector::getDevice logic\n\nIt was currently ignoring address even if the default format was passed.\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I44a17fa32c4dd32c426d20bf0902bd406682743c\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "157c467799a2d6300af76150ad73850ef5cb574a",
      "tree": "36596b8d84236ceafa3cf6683c497228211bee53",
      "parents": [
        "d64607b6a79c235b7daaa7e3fe3002270f1ede1c",
        "58d4be5a5a5d24f18b7a207148c7caa317fef366"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 01:02:43 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 05 01:02:43 2019 +0000"
      },
      "message": "Merge changes from topic \"remove_hard_coded_attributes\"\n\n* changes:\n  audio: get rid of hardcoded translation stream \u003c--\u003e attributes\n  audiopolicy: engine: remove deprecated APIs\n  audiopolicy: exclusive Preferred Device\n  audiopolicy: apm: switch to new Engine APIs\n  audio policy service: Add introspection API to retrieve AudioProductStrategies\n  audiopolicy: engineconfigurable: Merge Policy Engine and Wrapper configuration files\n  audiopolicy: engineconfigurable: add configuration of ProductStrategies\n  audiopolicy: engine: Add ProductStrategy common code\n"
    },
    {
      "commit": "58d4be5a5a5d24f18b7a207148c7caa317fef366",
      "tree": "37e0a5e790187815757bd906c7767cfcea0e1f74",
      "parents": [
        "6054a7765cfd65c34d49a5a435bee1d0cdfb2d32"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 15:30:12 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 05 00:18:00 2019 +0000"
      },
      "message": "audio: get rid of hardcoded translation stream \u003c--\u003e attributes\n\nIMPORTANT NOTE:\n    CL depends on another CL in frameworks/base\n    https://partner-android-review.googlesource.com/c/platform/frameworks/base/+/1206275\n\nAudioProductStrategies offers the possibility to dynamically\ntranslate attributes to stream types (and vice versa) within\naudio policy engine.\nLegacy engine has hard coded rules to maintain the translation\nservice.\n\nThis patch removes the hardcoded translation within the helper\nand replaces them by AudioProductStrategy APIs.\n\nTest: AudioPolicyTests: AudioProductStrategiesAllStreamsTest\nIt loops on all stream types supported by strategy and ensures\ndevice selection matches. Hard coded stuff would prevent right device\nselection.\nTest: CTS: AudioTrackTest AudioRecordTest\nTest: audio smoke test on sailfish, walleye blueline\n\n\nChange-Id: I76589df5555136ed49dbacc7aac9b0b5e828bef2\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "d64607b6a79c235b7daaa7e3fe3002270f1ede1c",
      "tree": "fac60e4f298a716530dd616342ead44b68f07aaf",
      "parents": [
        "81c75b410ebab27152f2c39fcb6d703ee8d6c0e7",
        "21cb47be5a6b0170c3a6cea57d13a9c6fcbf03da"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 04 22:02:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 22:02:21 2019 +0000"
      },
      "message": "Merge \"Camera: fix cleanupFailedRequests + HAL buffer manager path\""
    },
    {
      "commit": "81c75b410ebab27152f2c39fcb6d703ee8d6c0e7",
      "tree": "6f2948fec8a8206bafdedcf024792fe294763ffa",
      "parents": [
        "e3c7af5b478aefd9b33b1278c22a53c9f75e4413",
        "26af1a51efb42d3b6a5ed76bd307bba9cd636bfe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 04 21:34:46 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 21:34:46 2019 +0000"
      },
      "message": "Merge \"Camera: Remove thread that keeps HAL service alive for extra delay\""
    },
    {
      "commit": "e3c7af5b478aefd9b33b1278c22a53c9f75e4413",
      "tree": "90821c5a9123ba1eff85c38deecf0d4781731b3f",
      "parents": [
        "464a1f3f00320bdd603e6f2d0b069280fe1b11f4",
        "eb8c7bf64aa39ca688631802a18b45bd8a2631d4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 04 21:10:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 21:10:47 2019 +0000"
      },
      "message": "Merge \"Remove support for loading extractors from apk\""
    },
    {
      "commit": "21cb47be5a6b0170c3a6cea57d13a9c6fcbf03da",
      "tree": "7bdda77377bda38b562b76af5d23d1916f25f6bb",
      "parents": [
        "6512d900a8e1af55f9bf6be5f37bd7f3d7ddbe27"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Jan 18 15:08:17 2019 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Feb 04 12:19:04 2019 -0800"
      },
      "message": "Camera: fix cleanupFailedRequests + HAL buffer manager path\n\nTest: crash fixed\nBug: 120986771\nChange-Id: I3f7031b0a2db30dfbdcf0522dec1c0d6dc9ab26b\n"
    },
    {
      "commit": "26af1a51efb42d3b6a5ed76bd307bba9cd636bfe",
      "tree": "bcf9cf14ad35fdfc358ccab5f33029486804de5c",
      "parents": [
        "464a1f3f00320bdd603e6f2d0b069280fe1b11f4"
      ],
      "author": {
        "name": "Peter Kalauskas",
        "email": "peskal@google.com",
        "time": "Fri Jan 25 06:57:01 2019 -0800"
      },
      "committer": {
        "name": "Peter Kalauskas",
        "email": "peskal@google.com",
        "time": "Mon Feb 04 11:48:48 2019 -0800"
      },
      "message": "Camera: Remove thread that keeps HAL service alive for extra delay\n\nhwservicemanager now guarantees clients will be held for ~5s before the\ncallback onClients(false) is called and they are allowed to exit.\n\nTest: On walleye_svelte, manually observe camera behavior and the\n      lifetime of the lazy camera service process.\n\nChange-Id: Iafbdd73f439da3a4f0fecb069e356d30aa2732b5\n"
    },
    {
      "commit": "464a1f3f00320bdd603e6f2d0b069280fe1b11f4",
      "tree": "d3fde3c448bf2fd17958a8dc881206f4711c7589",
      "parents": [
        "6512d900a8e1af55f9bf6be5f37bd7f3d7ddbe27",
        "f122c308ca419df82cf3e61538db306444c82386"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Mon Feb 04 10:52:19 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 04 10:52:19 2019 -0800"
      },
      "message": "Merge \"Convert Android.mk file to Android.bp\" am: c000ec0cd8 am: 26fe49112d\nam: f122c308ca\n\nChange-Id: If8a8e8f4be010b03375b923db7a248058590ee5a\n"
    },
    {
      "commit": "f122c308ca419df82cf3e61538db306444c82386",
      "tree": "b54870943938e5350b4ba1f2814f91893e91d1c8",
      "parents": [
        "536426c32ff0ad5bc3fb78293af8cf0bf6918752",
        "26fe49112d57883bb0ab705b124c922dcb34c512"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Mon Feb 04 10:47:09 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 04 10:47:09 2019 -0800"
      },
      "message": "Merge \"Convert Android.mk file to Android.bp\" am: c000ec0cd8\nam: 26fe49112d\n\nChange-Id: I335628f7d658b0251c6df413ea3f1921365bc15d\n"
    },
    {
      "commit": "6512d900a8e1af55f9bf6be5f37bd7f3d7ddbe27",
      "tree": "6747c6bf871d84fd59aa2e7622cc9b84a6d5e488",
      "parents": [
        "4de30395dd18a267b30a461f2869f512750c5a53",
        "51f0e98712a7378073ec97ab59ea406a1fbaf169"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 04 18:30:44 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 18:30:44 2019 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix Tee track filename\""
    },
    {
      "commit": "4de30395dd18a267b30a461f2869f512750c5a53",
      "tree": "c0490ea99c48c6764499817450547d756c419f70",
      "parents": [
        "55be1a1b01de33b5b93abb1fa9b07c0c140ece27",
        "d239aa68d1896b9526b0e2571c1feff61c452702"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 04 17:02:12 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 17:02:12 2019 +0000"
      },
      "message": "Merge \"seccomp: allows more fstat calls for swcodec\""
    },
    {
      "commit": "55be1a1b01de33b5b93abb1fa9b07c0c140ece27",
      "tree": "1708157a797764f08d44bcc2d5e314b5de715316",
      "parents": [
        "9f0ba9c384c7b1e4c5e112867631d786da9a470a",
        "ab3c6a5b751258159e5b1e3f7dcb47b131dbfdc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Feb 04 16:37:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 04 16:37:07 2019 +0000"
      },
      "message": "Merge \"audioflinger: allow unsigned overflow in getRenderPosition\""
    },
    {
      "commit": "eb8c7bf64aa39ca688631802a18b45bd8a2631d4",
      "tree": "3c72e4625bade31999fdac71a32703e12c57d25a",
      "parents": [
        "850847df034369c54da382ef43693349cdfb3c97"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 01 13:06:00 2019 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 04 16:01:36 2019 +0000"
      },
      "message": "Remove support for loading extractors from apk\n\nBug: 123250010\nTest: boot, play video\nChange-Id: I19c66d76f98a593ac9082054a2faccedcd73a55d\n"
    },
    {
      "commit": "51f0e98712a7378073ec97ab59ea406a1fbaf169",
      "tree": "fc2a6b55a8c9957e52499d7763f24741b917272f",
      "parents": [
        "5a49f40a70302ac1ffc54e0d96db2bec17546fe1"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 01 19:19:11 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Feb 02 22:57:17 2019 +0000"
      },
      "message": "AudioFlinger: Fix Tee track filename\n\nTest: adb shell audiorecorder --target /data/file.raw\nBug: 111453086\nChange-Id: I5cd1ecd9f85bb2278e6d1f9434aa453833afa173\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "6054a7765cfd65c34d49a5a435bee1d0cdfb2d32",
      "tree": "37390182206a6401daead33e48e1d60d6336d521",
      "parents": [
        "f579db5aa9e1cbbe5a8b7689e319913e154cda3b"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 13:10:58 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 02 10:43:22 2019 -0800"
      },
      "message": "audiopolicy: engine: remove deprecated APIs\n\nTest: make\n\nChange-Id: Idfcb060095da92adb286706d4eaf9b9a78a8c61a\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "f579db5aa9e1cbbe5a8b7689e319913e154cda3b",
      "tree": "8cbb24a261decd14aad3fcbfa4e5e32abe607686",
      "parents": [
        "c005e569c7bae3f8c49660c9388c3076046069f5"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 13 11:25:16 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 02 10:43:22 2019 -0800"
      },
      "message": "audiopolicy: exclusive Preferred Device\n\nIt allows to force the routing of music during call without\naffecting clients that does not explicitely requested to use\nanother device than the one decided by the policy during call\n(which is TELEPHONY TX).\n\nIt fixes differently Bug 111467967.\n\nTest: make\n\nChange-Id: I6034f0d2568e1b2a1e600d9ae1453fd0c60ed02e\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "c005e569c7bae3f8c49660c9388c3076046069f5",
      "tree": "8612dc3a3d69c018b303bf8e56aa142db5465e8e",
      "parents": [
        "d0ba9ed06c61ab3e66627e027fbc34ba998140ee"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Tue Nov 06 15:04:49 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 02 10:31:32 2019 -0800"
      },
      "message": "audiopolicy: apm: switch to new Engine APIs\n\nTest: make\nChange-Id: Iedc2268852ee0bce32b67cfd324395c48cb33424\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "d239aa68d1896b9526b0e2571c1feff61c452702",
      "tree": "b1da587fa35dd713153aa19c9dfc0bfa6001a8df",
      "parents": [
        "5a49f40a70302ac1ffc54e0d96db2bec17546fe1"
      ],
      "author": {
        "name": "bohu",
        "email": "bohu@google.com",
        "time": "Sat Feb 02 07:47:42 2019 -0800"
      },
      "committer": {
        "name": "bohu",
        "email": "bohu@google.com",
        "time": "Sat Feb 02 07:47:42 2019 -0800"
      },
      "message": "seccomp: allows more fstat calls for swcodec\n\nTest:\nlunch sdk_gphone_x86_64-userdebug\nmake -j\nemulator\n\nmedia.swcodec should not be killed by minijail anymore\n\nChange-Id: I8bb9a4a36e207e2bb9c42226cac34bb46281b78f\n"
    },
    {
      "commit": "d0ba9ed06c61ab3e66627e027fbc34ba998140ee",
      "tree": "49948f80335bea4a358c7f455dfd6a5e59a94e30",
      "parents": [
        "7188f1ad365cd9d475723b639d521b491eaca389"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Nov 05 11:50:42 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:54 2019 -0800"
      },
      "message": "audio policy service: Add introspection API to retrieve AudioProductStrategies\n\nThis CL adds required introspection APIs to deal with product strategies:\n\n-getter of the collection of product strategies\n-helper function to return the strategy associated to a given attributes.\nThis API is mandatory to avoid duplicating the logic that compiles the strategy\nfor a given Audio Attributes structure.\n\nTest: make\n\nChange-Id: I0e107570a44227bb52a4f359954c93215d4f8bae\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "7188f1ad365cd9d475723b639d521b491eaca389",
      "tree": "029a0714c5c9e517d2eecc6ad4149f519c52b813",
      "parents": [
        "f1e9508a70f5eff6d9e9d2cfdf5b19ac6a6974b7"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 14:35:42 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:49 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: Merge Policy Engine and Wrapper configuration files\n\nTest: make\nChange-Id: I0a905752218438378d9ca87457cd55f6cd0f2586\n"
    },
    {
      "commit": "f1e9508a70f5eff6d9e9d2cfdf5b19ac6a6974b7",
      "tree": "10c058fa91f37171cd140e17a1eaa3680d605ca6",
      "parents": [
        "dc7553ff1bf7ec88e17a8577b94bb9dd9a1cbb43"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 13:53:31 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:38 2019 -0800"
      },
      "message": "audiopolicy: engineconfigurable: add configuration of ProductStrategies\n\n-Update Policy PFW plugin to support product strategies\n-Provides example structure/Settings to configure Product Strategies\n\nTest: make\nChange-Id: I2493e261f302b78f3b96e17d87fb7028d9cde23e\n"
    },
    {
      "commit": "dc7553ff1bf7ec88e17a8577b94bb9dd9a1cbb43",
      "tree": "e51119764c576e4e051cef763280f8d35c7a7b27",
      "parents": [
        "612be7ff334b6c2c1051bd6dbb4088922af0336e"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Fri Nov 02 10:39:57 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 01 18:05:21 2019 -0800"
      },
      "message": "audiopolicy: engine: Add ProductStrategy common code\n\n-Adds new Engine APIs for Product Strategy management\n-Adds a common engine code to handle product strategies\n-Adds a parsing configuration library to feed the strategies\n-Prepare both engine for the switch\n\nTest: make\nChange-Id: I00f57ece798893bc6f9aa9ed54a3e5237e8d5cf1\n"
    },
    {
      "commit": "63f3611018857754d60a176783133371bae5f009",
      "tree": "a867c7939bd6c855c013144401e5ccdebb20f9c6",
      "parents": [
        "7de66a0e2fc5d37e22710583e88be5aa53e6ed5b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Dec 06 14:57:03 2018 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Feb 01 16:15:13 2019 -0800"
      },
      "message": "Camera service: Support for device state change notifications\n\nAdd AIDL method for device-wide physical state updates (such as\nfolding/unfolding), and wire it up to the new camera provider HAL call.\n\nAlso clean up camera provider startup sequence - devices were being enumerated before\nthe new lazy HAL interface pointers were set up, resulting in many repeated calls\nto getService even for a non-lazy HAL.\n\nAlso add unit test for CameraProviderManager to verify its section of\nthe callpath, as well as tests to check that the provider HAL and\nhardware service manager aren\u0027t queried more than expected during\ninitialization.\n\nTest: atest cameraservice_test\n\nChange-Id: I5ec60fd9d93b7a2fe4d1a5854fad720a972fe8ea\n"
    },
    {
      "commit": "ab3c6a5b751258159e5b1e3f7dcb47b131dbfdc6",
      "tree": "4a90251580585dcab4d47a607f4bb559f803acfe",
      "parents": [
        "fd1ea436c6487e32781a84fe542e0899626d6830"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 01 09:52:15 2019 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 01 15:31:31 2019 -0800"
      },
      "message": "audioflinger: allow unsigned overflow in getRenderPosition\n\nOverflow is expected when 32-bit counter wraps after several hours.\nSo prevent sanitization from causing a crash.\n\nBug: 122986677\nTest: run a stream for more than 12 hours so the position overflows\nChange-Id: I0f397f193288c2493a2036f67849bb12a9c9f221\n"
    },
    {
      "commit": "3c49347c2ae3ae44d8a651c35e723e04b27d651d",
      "tree": "6cc8fdfaa44947a06b7ac2ea60d89bf8cfb6e706",
      "parents": [
        "caac4484db371ceee0ace2a944e0286af051c02b"
      ],
      "author": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Sat Dec 22 18:11:34 2018 -0800"
      },
      "committer": {
        "name": "Joel Fernandes",
        "email": "joelaf@google.com",
        "time": "Fri Feb 01 15:43:30 2019 -0500"
      },
      "message": "Add memfd related missing syscalls to allowed list\n\nBug: 113362644\nChange-Id: I7ae3305ad12600a38faebf0b66cb5b954862df5e\nSigned-off-by: Joel Fernandes \u003cjoelaf@google.com\u003e\n"
    },
    {
      "commit": "8b07840b074a41b7da9352352e39b61a3aa90f1a",
      "tree": "9e19094d1a689f7ac291b73287e21b5f7262dd35",
      "parents": [
        "479b735392d6e4b9d7dde9403e732847b670a9f1"
      ],
      "author": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Thu Jan 31 13:23:55 2019 -0800"
      },
      "committer": {
        "name": "Sasha Smundak",
        "email": "asmundak@google.com",
        "time": "Fri Feb 01 11:06:32 2019 -0800"
      },
      "message": "Convert Android.mk file to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122331945\nTest: treehugger\nChange-Id: I9e2402545823bedb3484b3ab962ddc9806f25dac\n"
    },
    {
      "commit": "caac4484db371ceee0ace2a944e0286af051c02b",
      "tree": "75e61dd6c282522ecdb734ff08078397b9b1a7f2",
      "parents": [
        "0a6f296509b6e439c545cbf9db836f8c7393d565",
        "536426c32ff0ad5bc3fb78293af8cf0bf6918752"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 07:18:26 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 01 07:18:26 2019 -0800"
      },
      "message": "Merge \"Convert three media binaries to Android.bp\" am: 479b735392 am: 812f306ff8\nam: 536426c32f\n\nChange-Id: Ib0b891a695d613a8593b9619b908880895f16ef4\n"
    },
    {
      "commit": "536426c32ff0ad5bc3fb78293af8cf0bf6918752",
      "tree": "9afb9f90c108b55b4bfd9c1bae63343da6940ae3",
      "parents": [
        "e79290d111a9c72aff5eecf2a5eed63d3168c112",
        "812f306ff8565c638d3b56c7e349a525c9cab2e8"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 07:13:14 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 01 07:13:14 2019 -0800"
      },
      "message": "Merge \"Convert three media binaries to Android.bp\" am: 479b735392\nam: 812f306ff8\n\nChange-Id: If0c66be2d42005744226f17c103536951b12132f\n"
    },
    {
      "commit": "33de46e8f32aaf803bc4e2c0efebc15660d7045e",
      "tree": "1d096aa210da1bdb42a23a46e77f2a8ea346b80c",
      "parents": [
        "1128b3fa1a8c3859e517d141c8f289ec4e35ef91"
      ],
      "author": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 11:17:57 2019 +0000"
      },
      "committer": {
        "name": "Anton Hansson",
        "email": "hansson@google.com",
        "time": "Fri Feb 01 11:40:58 2019 +0000"
      },
      "message": "Convert three media binaries to Android.bp\n\nThis converts mediaserver, mediametrics and screenrecord and the\nlibraries they depend on to Android.bp\n\nSee build/soong/README.md for more information.\n\nBug: 122331945\nBug: 80410283\nTest: boot blueline\nTest: youtube\nTest: screenrecord\nChange-Id: I132b8b4f7965449df68fb1544034a7241c594a63\n"
    },
    {
      "commit": "ae340bde6d16f0046887fa0e73fba00cdd5405d9",
      "tree": "8b84e19910fcba4e4ba54f0a7b1e6649bf7d8bb8",
      "parents": [
        "def408939dec9f3a4ff21d84c44b6fcad1797396",
        "3fae037db39ff89707c3a58ef1419229a00ad71d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 01 01:53:28 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 01 01:53:28 2019 +0000"
      },
      "message": "Merge \"Add master audio balance\""
    },
    {
      "commit": "dddc39e44c6bc1c8658e5f3fd6c087abad017fdd",
      "tree": "2149b7d6ef7555bd11912481982f76f8a11569d1",
      "parents": [
        "642f662a0dba2732cacf05774758723f09aa188e",
        "f86268a0aa3c98cc5acdd18f43de82e780772b5b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 31 23:53:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 23:53:10 2019 +0000"
      },
      "message": "Merge \"Prepend instead of append for criterias to remove\""
    },
    {
      "commit": "83dc265bde1be0f58161a4606b0a72d053288ff3",
      "tree": "c2ce03740c1639b974f21ce5941e931a2b924ba7",
      "parents": [
        "ffa6f9191ee3e50a5c140b0d3cae27d7f7c87a3f",
        "6a3052232c606bc2f74a849c6758fd44b6c01158"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 31 21:47:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 21:47:33 2019 +0000"
      },
      "message": "Merge \"use MediaAnalyticsItem::create() instead of new\""
    },
    {
      "commit": "6a3052232c606bc2f74a849c6758fd44b6c01158",
      "tree": "529ee3bb94a17c06e19c8642daf9993f23d531f2",
      "parents": [
        "2637984613a75eb2640a73e186a6dd1f08cebbc0"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 28 20:33:18 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jan 31 11:19:44 2019 -0800"
      },
      "message": "use MediaAnalyticsItem::create() instead of new\n\nBug: 123543489\nTest: boot/logcat, select CtsMediaTests\nChange-Id: I92f8b9987b78466fae74ce4c0b177f8bb1e7dea8\n"
    },
    {
      "commit": "aaaa003cb570f965908db1a08d53c4bddb588d61",
      "tree": "bbe7d9feefa2c32b8bd322330a78197b4a5bef9b",
      "parents": [
        "2637984613a75eb2640a73e186a6dd1f08cebbc0",
        "57303cc4312686e02e754ba99a81f0cf71144757"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 31 18:46:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 18:46:48 2019 +0000"
      },
      "message": "Merge changes from topic \"hapticInterface\"\n\n* changes:\n  Interface between audio server and vibrator service\n  Apply intensity control for haptic data.\n"
    },
    {
      "commit": "4df18892dca915d1b737043baab2dc74c9f7d96a",
      "tree": "820afce3906a04e5fc576a009b581ece84158856",
      "parents": [
        "760e6c2581b49a95abced90730319d3d248a1518",
        "f024a9eb29122a42179608372cb25129d1158e3b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jan 31 02:28:22 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 31 02:28:22 2019 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Fix nullptr device check\""
    },
    {
      "commit": "f86268a0aa3c98cc5acdd18f43de82e780772b5b",
      "tree": "198997a295d7b62c19fc58392350f3a0db08d9c5",
      "parents": [
        "1c0a9fb458cc97a2b3e7b93e58c02bf11512b950"
      ],
      "author": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Jan 30 16:52:10 2019 -0800"
      },
      "committer": {
        "name": "Hongwei Wang",
        "email": "hwwang@google.com",
        "time": "Wed Jan 30 17:22:47 2019 -0800"
      },
      "message": "Prepend instead of append for criterias to remove\n\nBug: 123661699\nTest: manually call removeUidDeviceAffinity\nChange-Id: I729b02bbc45125638baefdccdedfaf046e146dd2\n"
    },
    {
      "commit": "a1185162c486651b856f3cb5ced219b67be735bf",
      "tree": "0658410f267e10cb42178f9314269b9ebc5d22b0",
      "parents": [
        "af87b707107ccab0b7a29bd784c9025606960c56"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jan 30 16:41:43 2019 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jan 30 17:09:02 2019 -0800"
      },
      "message": "Camera: Only report dynamic depth tag related errors\n\nFailing to add dynamic depth camera characteristics\nmust not have any additional side effects for the\ndevice info constructor.\nIn case we encounter any issues report the failure and\ntry to continue with the intitialization.\nAdditionally fix a minor typo and remove a debug log.\n\nBug: 123660999\nTest: Manual using application,\nCamera CTS\nChange-Id: I7b4e723ce3bcaf0e5d4c313ba17bca965e8964d8\n"
    },
    {
      "commit": "57303cc4312686e02e754ba99a81f0cf71144757",
      "tree": "5118a0c03e035d13c203118e1336e33803b1de08",
      "parents": [
        "77270b880570e07a5d80b23371f53638ec30fb5c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Dec 18 15:45:57 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 30 17:07:10 2019 -0800"
      },
      "message": "Interface between audio server and vibrator service\n\nThe haptic playback should be controlled by vibrator service. Via the\ninterface, audio server could notify vibrator service about starting or\nstopping haptic playback and get vibrator intensity from vibrator\nservice. Vibrator service could call mute/unmute to control the haptic\nplayback.\n\nTest: Manually\nChange-Id: Iad24813977e4dea0d67a91f8f8b390a016ce4ca2\n"
    },
    {
      "commit": "f024a9eb29122a42179608372cb25129d1158e3b",
      "tree": "8b95f2175e985295dd9c266785a76e5409a26600",
      "parents": [
        "a3e4fe3fd4f24ebcf9e69de52e2f0d3e2be3a816"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 30 16:01:02 2019 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 30 16:41:07 2019 -0800"
      },
      "message": "AudioPolicyManager: Fix nullptr device check\n\nRegression from commit 11d301045991dd66bf3f64ba510e069b7c09fedb\n\nTest: CTS AudioRecordTest passes\nBug: 123597808\nChange-Id: I3b1de479ebd8a279309d33f58db3e40b851f98e4\n"
    }
  ],
  "next": "f949ddde2b4d1c986b847676f8bd9ad8364ebd4b"
}
