)]}'
{
  "log": [
    {
      "commit": "cda259fbfd8e64cde11251d6a8dea89c907789db",
      "tree": "2f5f2c13eac4655152265a5bdcff6fc92f6d91ab",
      "parents": [
        "c83a248be36a565aa9a8d65cf27a464428bb6851",
        "703e4995c6c034626b9262fd16a82ae58f686b90"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Mar 07 13:03:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 07 13:03:37 2018 +0000"
      },
      "message": "Merge \"Camera: Don\u0027t hold locks during shared output dequeue\" into pi-dev"
    },
    {
      "commit": "703e4995c6c034626b9262fd16a82ae58f686b90",
      "tree": "9beb3497544c2a09c5a3b4d929d5ffdc7a1fbeed",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Feb 27 11:42:09 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Mar 06 11:21:01 2018 +0000"
      },
      "message": "Camera: Don\u0027t hold locks during shared output dequeue\n\nBlocking dequeue calls for async output surfaces seem to be\npossible. Refactor the code so that stream splitter doesn\u0027t\nhold any locks during output surface dequeue calls triggered\nby buffer released callbacks.\n\nBug: 73953239\nTest: Camera CTS\nChange-Id: Ia2166de73d2b8de7ef4157e81c87f53c8a264c0c\n"
    },
    {
      "commit": "ad9c7e47d26bbeb2f3be96b3ad6988a6023a1021",
      "tree": "0d7cce2a82c78d215ae7c7cd8aac1148ad8c81a2",
      "parents": [
        "b95a5989190a427a7ea092dc18741af524009bdb"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 05 12:25:58 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 05 20:39:11 2018 +0000"
      },
      "message": "Revert \"audioflinger: Remove \"exiting\u003d1\" parameter\"\n\nThis reverts commit e2bc208f05ed430a18a9078799b6b6d56e3d6dda.\n\nBug: 74142786\nTest: with Android Auto head unit simulator\n\nChange-Id: I9f96da7ba67b3ed774c9b9bdab7cee390d3f0ca2\n"
    },
    {
      "commit": "bcc63b1434f2d8d2dee9e921151bf27485669ab6",
      "tree": "6891834b69b4211c4d1b387b561feba43e6ea3d7",
      "parents": [
        "936aced80442062afe07ac58ac14bc6141ad00c0",
        "c067179b6a402fc0c284cfae886058a6738e9b20"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 03 03:55:37 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 03 03:55:37 2018 +0000"
      },
      "message": "Merge \"Camera: fix supported FPS string\""
    },
    {
      "commit": "b7c8c8875fb5fcb6d4d395ccd15fc22266ffd4cc",
      "tree": "5ebfe28726dd916affb5cce754d8b4542d33e983",
      "parents": [
        "b4af9b8ff5bd4efd054e879305a95353bf59bd67",
        "0fd28115e485cfe9202c1eec777a6cc17663651a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Mar 03 02:03:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 03 02:03:05 2018 +0000"
      },
      "message": "Merge changes Ic7fd2787,If97579fd\n\n* changes:\n  Camera: notify AE trigger ID change\n  Camera: fix camera ID in flashlight control\n"
    },
    {
      "commit": "c067179b6a402fc0c284cfae886058a6738e9b20",
      "tree": "8f661848279b9ee8bb7f6a833f493c7a4123f530",
      "parents": [
        "0fd28115e485cfe9202c1eec777a6cc17663651a"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Mar 02 15:50:48 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Mar 02 15:50:48 2018 -0800"
      },
      "message": "Camera: fix supported FPS string\n\nTest: CameraTest.java\nBug: 72261912\nChange-Id: I0737b7411ad52159477ba5d931607067d567128e\n"
    },
    {
      "commit": "2d059936882d8d6b8f73dedd4f9a043bdd36405a",
      "tree": "fe78b96ace7cb7d76048ce76457ef478bef42461",
      "parents": [
        "cdf22ce8143ac4cc84c890eec49b213fc1db7231"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Feb 15 15:55:11 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Mar 02 22:48:45 2018 +0000"
      },
      "message": "audiopolicymanager: prevent MMAP stream collisions\n\nAn allocation of a second MMAP stream with a different\nrate or channel count could collide with an existing MMAP\nstream and cause it to fail.\n\nBug: 73369112\nTest: test_interference.cpp\nChange-Id: I8318ba897dd4999dd747d40a77b6850525616998\n"
    },
    {
      "commit": "b62c79b1d35ef69f7392464f104b53ef6f9967b0",
      "tree": "4e4835fc680200a896f04fbfe525061021693346",
      "parents": [
        "3859e62d88d3abd8ed5679e56c6e73804ff3c9a4",
        "41f19d8e9471945b358c9ae1dffda60f195d9f5b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 02 19:23:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 19:23:14 2018 +0000"
      },
      "message": "Merge \"aaudio: convert mono output to stereo\""
    },
    {
      "commit": "41f19d8e9471945b358c9ae1dffda60f195d9f5b",
      "tree": "76116b8a7d57b4f696fa1bda0cbeda63fa208d45",
      "parents": [
        "54486dc5d502e563747ec5744f61af97ea9c9035"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 13 14:59:10 2018 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Mar 01 19:13:02 2018 -0800"
      },
      "message": "aaudio: convert mono output to stereo\n\nMMAP hardware streams are often stereo.\nBut apps often want to output a mono stream.\nSince converting from mono to stereo is easy,\nwe can go ahead and open a stereo hardware stream\nand then just convert the apps mono data to stereo for the HW.\n\nAdd getDeviceChannelCount().\n\nTest:  adb shell write_sine_callback -pl -s10 -c1 -m3\nTest:  adb shell write_sine_callback -pl -s10 -c1 -m3 -x\nChange-Id: I444a38c6f5cd32d1d6113f16aacec68285a1bc82\n"
    },
    {
      "commit": "599ec462d94136949e0c90419ea99b0d9ba83eac",
      "tree": "0774e6abd59eec5530f78d6788a8da27217bac63",
      "parents": [
        "9b887324b8c3f86f012915a6f637081b158a221b"
      ],
      "author": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 01 22:19:55 2018 +0000"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Thu Mar 01 16:10:34 2018 -0800"
      },
      "message": "Revert \"Use start/finish app op API for mic use\"\n\nThis reverts commit 55bb217cd1fea3e791d0d7cf73e09e27fed8c36e.\n\nReason for revert: Causes a regression\n\nbug:74061812\n\nChange-Id: I119937cfce79ba824185634f2b81dad1606a875d\n"
    },
    {
      "commit": "f11edb6f6a103a23a50d0ec4b214fdd36aa5f139",
      "tree": "0b7d05c9c6b0bacbd2ec808a13117a807e908450",
      "parents": [
        "9f0cbec1d758ba70627b6b4fa1bb12250b92677e",
        "db1396cee49289dc0395ff9a35d2ae06419c7768"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 14:24:10 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 14:24:10 2018 +0000"
      },
      "message": "Merge \"Camera: Relax RGBA format override\""
    },
    {
      "commit": "b184c494bef0dd67d715732c27e059a46e723161",
      "tree": "b2ab9e45f2c63ab429d0dd1f1f1f54a25a3cb225",
      "parents": [
        "10164d0a52e59794bd5e63b63b6fbc160fdcb646",
        "55bb217cd1fea3e791d0d7cf73e09e27fed8c36e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 01:11:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 01:11:35 2018 +0000"
      },
      "message": "Merge \"Use start/finish app op API for mic use\""
    },
    {
      "commit": "10164d0a52e59794bd5e63b63b6fbc160fdcb646",
      "tree": "9c9c8e83fc50ad73c13b40d70d570815526e0b8c",
      "parents": [
        "a529a0480ab6647cdc6f61b3633f4ba25f64405e",
        "1d519106f7a3d31cc89e3c4a1146106b0478a410"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Mar 01 01:11:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 01:11:25 2018 +0000"
      },
      "message": "Merge \"Update app op calls due to internal API change\""
    },
    {
      "commit": "a529a0480ab6647cdc6f61b3633f4ba25f64405e",
      "tree": "01c54cf86566f574a556ada38ac3672b7b927a97",
      "parents": [
        "33971ac15c70507d8ce390c015399283e96f921d",
        "e2bc208f05ed430a18a9078799b6b6d56e3d6dda"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 28 23:59:39 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 28 23:59:39 2018 +0000"
      },
      "message": "Merge \"audioflinger: Remove \"exiting\u003d1\" parameter\""
    },
    {
      "commit": "0fd28115e485cfe9202c1eec777a6cc17663651a",
      "tree": "64b65433538b83204ab9355067dcea5d9c737fcf",
      "parents": [
        "6b1f6115a8bdc825344bfdd5becd1bfb3f16d0f1"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 28 13:08:49 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 28 13:22:16 2018 -0800"
      },
      "message": "Camera: notify AE trigger ID change\n\nSo transient state change are not ignored.\n\nBug: 72261912\nChange-Id: Ic7fd278725586275595276682c445c2aa0727de6\n"
    },
    {
      "commit": "6b1f6115a8bdc825344bfdd5becd1bfb3f16d0f1",
      "tree": "d9820d450b0920f23ed6e88cf0c59c84b09e64f7",
      "parents": [
        "b4bec47dfc3623935aca176af24e690b3aa88145"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 28 13:05:59 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 28 13:21:50 2018 -0800"
      },
      "message": "Camera: fix camera ID in flashlight control\n\nBug: 72261912\nChange-Id: If97579fd27737c7f3ffd0bf637d28f213343ffb1\n"
    },
    {
      "commit": "55bb217cd1fea3e791d0d7cf73e09e27fed8c36e",
      "tree": "08b19af105e7aa492f732e815928e4420aa7f1c6",
      "parents": [
        "1d519106f7a3d31cc89e3c4a1146106b0478a410"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Tue Feb 27 20:25:51 2018 -0800"
      },
      "committer": {
        "name": "Svetoslav Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Wed Feb 28 04:48:29 2018 +0000"
      },
      "message": "Use start/finish app op API for mic use\n\nSince recording is a long running operation we need to use\nthe start/finish app op APIs since now system UI would watch\nfor active mic/camera/overlay ops and badge app notifications\nwith icons denoting that these capabilities are being used.\n\nTest: atest android.media.cts.AudioRecordAppOpTest\n\nbug: 64085448\n\nChange-Id: I47d9b507ef5d757d34d65484c112cea6cdc246e1\n"
    },
    {
      "commit": "4f8f900d3cb8ee117980705ac5df250f9df63bfc",
      "tree": "9cb144737b86c91e2053293b611589ec79946af0",
      "parents": [
        "547921396126d2e5e6387a04bc971e616250574b",
        "7d2c6e8be2c9a4f3c1364d243856a345f17f851e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 27 22:02:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 27 22:02:33 2018 +0000"
      },
      "message": "Merge \"Move mediadrm-related headers\""
    },
    {
      "commit": "f5bc9a97512897eab1cebc0bd460b5a434cb3f9e",
      "tree": "1456b5c5c76f677b855d5e26a3c6bd095a48c0d9",
      "parents": [
        "91b22e5cb1413fbbd80374f0220d2877c83476ef",
        "573291c251d9e85f51f7c0fa1cb35baa2969ca17"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Feb 27 18:25:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 27 18:25:14 2018 +0000"
      },
      "message": "Merge \"Camera: Add API level to service proxy notification\""
    },
    {
      "commit": "e2bc208f05ed430a18a9078799b6b6d56e3d6dda",
      "tree": "e34e319874c152fe10fe722cb26fc0edc9e1cedc",
      "parents": [
        "218f8e3bec0070731bff41513b19f64d481dad24"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 27 10:09:59 2018 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 27 10:11:17 2018 -0800"
      },
      "message": "audioflinger: Remove \"exiting\u003d1\" parameter\n\nThis was used by the remote submix module to unstuck when\ninput is not consumed. The remote submix module was updated\nto not require it.\n\nBug: 73175392\nTest: make\nChange-Id: Ic7f6ecbe83251e39052be0693b89db52ab18947c\n"
    },
    {
      "commit": "1d519106f7a3d31cc89e3c4a1146106b0478a410",
      "tree": "1e71e97c2fa52ec0df50a86cb88fa9fe2f5e1fbf",
      "parents": [
        "ac7c7dbd519edb31eff023c651a53ae788dc0d82"
      ],
      "author": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 26 10:48:14 2018 -0800"
      },
      "committer": {
        "name": "Svet Ganov",
        "email": "svetoslavganov@google.com",
        "time": "Mon Feb 26 13:28:47 2018 -0800"
      },
      "message": "Update app op calls due to internal API change\n\nTest: manual\n\nbug: 64085448\n\nChange-Id: Iba0dba96fb02d4f3e57f6cbd0ffde19500475c9b\n"
    },
    {
      "commit": "54c28999afa7834a8dbc6079a2707598a37db56f",
      "tree": "2677c29642cc1c92056ac37a802f4c53d51787f7",
      "parents": [
        "218f8e3bec0070731bff41513b19f64d481dad24",
        "db959740904eba27582feee48234463f3553b199"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 26 18:34:17 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 26 18:34:17 2018 +0000"
      },
      "message": "Merge \"Don\u0027t use cutils/Atomic.h\" am: 853996e7b2 am: 072aaa2e39\nam: db95974090\n\nChange-Id: I7f930bda6e51c0d4368747f8e4a0eac92e68b2fd\n"
    },
    {
      "commit": "db959740904eba27582feee48234463f3553b199",
      "tree": "06112b3f039a1c3e9d36eaef0a5ac0eda87a6827",
      "parents": [
        "485366ec5533cc3120a2c8dce35e38571c16f1cd",
        "072aaa2e39765fd5cfdfa4237b9099c313e0d126"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Feb 26 18:26:05 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Feb 26 18:26:05 2018 +0000"
      },
      "message": "Merge \"Don\u0027t use cutils/Atomic.h\" am: 853996e7b2\nam: 072aaa2e39\n\nChange-Id: I3502ec89eed45da2d052fb274d08fcb7c1c62f1b\n"
    },
    {
      "commit": "643825e4943995bbefd13d55c58bffd5e6904e90",
      "tree": "065eac1e1623e5340edd77f25b98dcd1ad4377ec",
      "parents": [
        "8231ac5a67006a8c0e9755fd143f788059930c45",
        "7840c30d04a749da9817682339f97b4ab128dffd"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 24 14:15:05 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 24 14:15:05 2018 +0000"
      },
      "message": "Merge \"Revert \"Ignore config error if non-offloadable effect is on offload thread\"\""
    },
    {
      "commit": "7840c30d04a749da9817682339f97b4ab128dffd",
      "tree": "f9dd3c1b47b99a5bb720fb51ca061625aa2a6306",
      "parents": [
        "cfb681346730d9d0cf849f44e234f79c1622f209"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Feb 24 01:33:26 2018 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Feb 24 01:39:39 2018 +0000"
      },
      "message": "Revert \"Ignore config error if non-offloadable effect is on offload thread\"\n\nThis reverts commit cfb681346730d9d0cf849f44e234f79c1622f209.\n\nReason for revert: Crashes in Play Music b/73624638\nTest: Play Music with cleared app data, check equalizer settings\nBug: 73624638\nBug: 70912361\nChange-Id: I6d4eec2fda57a60c2c6949937752d8f1e50bb8ab\n"
    },
    {
      "commit": "f0c02ce99ccac584f4f4790390702aabc4d92c90",
      "tree": "f5aa741235215cd73df2025b8e42394486a52ae8",
      "parents": [
        "fa87fc3b31e273efe3a2f5090dcd9c283e414aa5"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 14:53:55 2018 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 23 15:02:39 2018 -0800"
      },
      "message": "Don\u0027t use cutils/Atomic.h\n\nTest: builds\nChange-Id: I56aea1dff5a2bd98d119eb374e7a28a12a20861c\n"
    },
    {
      "commit": "467af1dd89332bf711bfba43a7a09474ff30157b",
      "tree": "7e62fdca225d58a700c2278c103e03cc18b3abce",
      "parents": [
        "680de4c7e30ee1b5880e2809d754df631e160c48",
        "e113d80e03745a22a79290212eefadb406632ee6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 23 04:13:29 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 23 04:13:29 2018 +0000"
      },
      "message": "Merge \"libavservices_minijail: convert to Android.bp\""
    },
    {
      "commit": "7dc2089881f3c1ab396aba2b321934f6c73c0379",
      "tree": "dfdcdb7a4b36989958478a32057f7b08b63f08a4",
      "parents": [
        "13cb23855c3b5242818725262d8822dd4f9be24e",
        "bd8c503398d6b483b7abba594c7838a4c93b6e23"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 22 16:20:02 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 22 16:20:02 2018 +0000"
      },
      "message": "Merge \"Camera: Cache monitored tag options in service\""
    },
    {
      "commit": "dff6a64ce600a4f4550a97cf49778de14b1fde70",
      "tree": "8983cac84f22f6bdf1a15659210c6197f4e86e66",
      "parents": [
        "41c868219a5cf5b5862afc8515373a89a9353541",
        "98e38191c37d3e324b34a6aafeef8e43366003ef"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 22 02:46:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 22 02:46:57 2018 +0000"
      },
      "message": "Merge \"audioflinger: remove obsolete stream volume management\""
    },
    {
      "commit": "98e38191c37d3e324b34a6aafeef8e43366003ef",
      "tree": "349602f9c4d9dd7f4720328cc72f891f9515a0ce",
      "parents": [
        "7c9dbd5440e8119ca439e4b9315843bd348b991f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 15 18:31:53 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 21 12:54:41 2018 -0800"
      },
      "message": "audioflinger: remove obsolete stream volume management\n\nRemove the ability to change stream volume globally (on all outputs)\nin audio flinger as this doesn\u0027t make sense when stream volume is\nmanaged per device.\n\nAlso, do not store stream volumes globally in audio flinger and apply\nthem when a new output is opened. The ground truth for stream volume is\nin audio policy so make sure stream volumes are systematically applied\nby audio policy when an output is opened according to the selected device.\n\nBug: 70332110\nTest: audio smoke tests\nChange-Id: I7180a428af53aafdee82aadbcaf284c028ac5554\n"
    },
    {
      "commit": "73ad28c7a9a27f00cb154d77f0388f2a7d13076b",
      "tree": "be4a287920a5409a199c7358ade6ece4af071316",
      "parents": [
        "5b0c25fc17415b09f4838de65a003b83b61292e9",
        "dbfcb38f6636931b2e3e6da8e6aa5a7bfce84a82"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 21 03:50:56 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 21 03:50:56 2018 +0000"
      },
      "message": "Merge \"Camera: fix corner case in eviction logic\""
    },
    {
      "commit": "1cacca4057398cc8352e36e6c76832b2945f9857",
      "tree": "fbbf5deaf01534144f42d3c67a3cd1b35a6286e6",
      "parents": [
        "7c9dbd5440e8119ca439e4b9315843bd348b991f",
        "1bc088a918d7038603230637d640941953b314d4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 20 19:51:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 20 19:51:24 2018 +0000"
      },
      "message": "Merge \"Call AudioMixer only from MixerThread threadLoop.\""
    },
    {
      "commit": "7d2c6e8be2c9a4f3c1364d243856a345f17f851e",
      "tree": "3aab41fe8acce7056a1e7b01ebc2e8882e416b9a",
      "parents": [
        "987ac7056040ed1594dc975c8a9d7cee463fa834"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 16:14:59 2018 -0800"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Feb 16 17:04:00 2018 -0800"
      },
      "message": "Move mediadrm-related headers\n\nRelocate drm and crypto headers from media\nto mediadrm to have finer grained ownership\n\nbug:73556221\nChange-Id: I7d1b5944f261f9b1fdeed7605e4c0b4b4ca43e1a\n"
    },
    {
      "commit": "e113d80e03745a22a79290212eefadb406632ee6",
      "tree": "066915c369e79918910fef4937f422f3b87ca1d2",
      "parents": [
        "81be7d85ab3e1a5897be623d040a26d4d9ede207"
      ],
      "author": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Thu Feb 15 17:05:08 2018 -0800"
      },
      "committer": {
        "name": "Pawin Vongmasa",
        "email": "pawin@google.com",
        "time": "Fri Feb 16 16:05:03 2018 -0800"
      },
      "message": "libavservices_minijail: convert to Android.bp\n\nTest: make cts -j123 \u0026\u0026 cts-tradefed run cts-dev -m \\\nCtsMediaTestCases --compatibility:module-arg \\\nCtsMediaTestCases:include-annotation:\\\nandroid.platform.test.annotations.RequiresDevice\n\nBug: 73507422\nChange-Id: I2a8d9eaae764094e18eb045aa0c28425cd9bb19c\n"
    },
    {
      "commit": "1bc088a918d7038603230637d640941953b314d4",
      "tree": "e231c2b22d944eaed29445fe4a35861fddb50e54",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 09 15:57:31 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 16 15:50:32 2018 -0800"
      },
      "message": "Call AudioMixer only from MixerThread threadLoop.\n\nAs part of change:\nRemove track name offset by TRACK0.\nMove track name management to the Tracks class.\nSync mixer track name to FastMixer track index.\n\nFixes regression introduced by commit 8ed196a.\n\nTest: SoundPool, AudioTrack CTS, Usability\nBug: 72937362\nBug: 73004420\nChange-Id: I2f1a33f6f0da66bcd7aa91e2a4b663ff822df645\n"
    },
    {
      "commit": "5df26c9b85a9345b84cb9a0d4f937b7df8855a5a",
      "tree": "55eb52c9d7b95fff91d8877fa19c2cbcdeaccd89",
      "parents": [
        "81b4dff2763c795792f524e1e4cb068b64e659ad",
        "cfb681346730d9d0cf849f44e234f79c1622f209"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 16 22:51:51 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 22:51:51 2018 +0000"
      },
      "message": "Merge \"Ignore config error if non-offloadable effect is on offload thread\""
    },
    {
      "commit": "cfb681346730d9d0cf849f44e234f79c1622f209",
      "tree": "b1643895484134c0acc43e2db3ee88e787028643",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Fri May 26 19:06:33 2017 +0900"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 16 11:40:10 2018 -0800"
      },
      "message": "Ignore config error if non-offloadable effect is on offload thread\n\nReturn NO_ERROR if a non-offloadable effect is created on an offload thread\n(since the sampling rate of offload output can be different from\nthe one supported by a software effect). Enabling the non-offloadable\neffect will cause the track to move to a non-offload thread.\n\nBug: 70912361\nTest: Create AudioEffect during 24kHz mp3 playback\nChange-Id: Ie5bf264a9790d936c24476ea127bc6da9eefde73\n"
    },
    {
      "commit": "dbfcb38f6636931b2e3e6da8e6aa5a7bfce84a82",
      "tree": "a7c5316d9dab12ee97579a80348938b66e5a4d2a",
      "parents": [
        "c3e9d6f704f7bf9e94c8447aa2f0f21e750c08be"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Feb 16 11:17:36 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Feb 16 11:39:05 2018 -0800"
      },
      "message": "Camera: fix corner case in eviction logic\n\nIPCThreadState::self()-\u003egetCallingPid() is not reliable\nin asynchronous callback (in this case binderDied)\n\nBug: 70946731\nChange-Id: Id90d26ddad8ddf51564baa7bd642e3e4eb535182\n"
    },
    {
      "commit": "573291c251d9e85f51f7c0fa1cb35baa2969ca17",
      "tree": "32fa3d61c99b12e1a5c85713c68e1b8f21cecfdc",
      "parents": [
        "332adf69b9cee8c261b321337b0b8efd57a69018"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Sat Feb 10 02:10:56 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri Feb 16 18:09:11 2018 +0000"
      },
      "message": "Camera: Add API level to service proxy notification\n\nThe client API level should be part of the service proxy\nnotifications.\n\nBug: 68653614\nTest: Manual using application\nChange-Id: Id8a9fb51a8ba91795283c846b55a9343cf8505df\n"
    },
    {
      "commit": "a949f46743a29b337ba15cedf9ffb6d813d1b4bd",
      "tree": "ac55a23cbbf5330f529f1c06c4d05d677c54e3e4",
      "parents": [
        "542906964badda8312c03464035dcb12698b0e95",
        "a7b4379046aca7ff9e08dc5f62ef0888423d6cc5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 16 17:31:13 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 17:31:13 2018 +0000"
      },
      "message": "Merge \"Update generation when there is device connection state changed.\""
    },
    {
      "commit": "332adf69b9cee8c261b321337b0b8efd57a69018",
      "tree": "53ff1343f02b92a6936040013b22d0a9a92d696a",
      "parents": [
        "da891a1e4a8e2bed310c2a42f4df795a1151f02f",
        "5babc4f104885c16a3dcfdfb5d99903c27ff2bd9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 16 04:16:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 04:16:32 2018 +0000"
      },
      "message": "Merge \"audio policy: fix regression with duplicated output handle\""
    },
    {
      "commit": "da891a1e4a8e2bed310c2a42f4df795a1151f02f",
      "tree": "3d03b938ad31fc40454e87747cf6bf58e774f8c9",
      "parents": [
        "2bf84ab09dae685a310a6b84c52e03724325afd7",
        "31225688b7b09ad15f5b1fb8ab2868cecc551f15"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 16 03:37:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 03:37:12 2018 +0000"
      },
      "message": "Merge \"Fix a memory leak\""
    },
    {
      "commit": "2bf84ab09dae685a310a6b84c52e03724325afd7",
      "tree": "78048fcf28af78aa2f8d0015d10bde957ab830bf",
      "parents": [
        "80c9cb9b324a531e4653db342914c4424c5abf1a",
        "c3e9d6f704f7bf9e94c8447aa2f0f21e750c08be"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 16 03:21:53 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 03:21:53 2018 +0000"
      },
      "message": "Merge \"Camera: expose external camera to API1\""
    },
    {
      "commit": "5babc4f104885c16a3dcfdfb5d99903c27ff2bd9",
      "tree": "2f260fb33ee4424dcea806c3ba3d96faedb9b644",
      "parents": [
        "31832c60d57558c2d5ddb2e45e4c6111ce9e55bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 15 12:33:44 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 15 17:36:04 2018 -0800"
      },
      "message": "audio policy: fix regression with duplicated output handle\n\nCommit fe2311274 made that IO Handle for duplicated outputs\nwere not allocated properly causing volume commands to be sent\nwith an invalid IO handle to audio flinger.\nWe then hit another problem with a legacy behavior which broadcasts volume\ncommands to all output threads if received with IOHandle 0.\n\nBug: 70332110\nTest: manual test.\nChange-Id: Ib133abab1575e3c90ba235f0a52d5ab845514719\n"
    },
    {
      "commit": "bdca170676e42d0d00c4a808375702c5cb42f2cd",
      "tree": "e2cb94b0774f6ff166d0cf7c0098006608aa8895",
      "parents": [
        "81be7d85ab3e1a5897be623d040a26d4d9ede207",
        "55497fca194063d18904fdba9f8d88cc5e11abc5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 16 01:30:42 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 16 01:30:42 2018 +0000"
      },
      "message": "Merge \"Camera: Enable surface sharing for all formats\""
    },
    {
      "commit": "c3e9d6f704f7bf9e94c8447aa2f0f21e750c08be",
      "tree": "c09ddbd0cb612c1afac69be56d59686ee22b252d",
      "parents": [
        "98c15702ca0c814fee9110efa14d70fc9937514e"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Feb 06 10:56:32 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Feb 15 17:14:58 2018 -0800"
      },
      "message": "Camera: expose external camera to API1\n\n- Cleanup legacy camera_module_t callbacks\n- Order API1 compatible cameras by their ID: numeric strings first\n- Dynamically updating number of cameras when device is\n  added/removed\n- Make sure the following methods are always called without holding\n  mServiceLock\n    - onDeviceStatusChange\n    - updateStatus\n    - addStates/removeStates\n- Centralized all addState/removeState calls in onDeviceStatusChange\n- Passing api1CameraId (number) and cameraDeviceId (string) to various\n  client classes.\n- Allow FOV information to not present for external camera\n- Update API1 preview/video size logic to exclude \u003c ~30fps sizes\n\nBug: 64874137\nChange-Id: Ied6b7141fdad30e3d1c3fcacc5b69ca350fdeb24\n"
    },
    {
      "commit": "a7b4379046aca7ff9e08dc5f62ef0888423d6cc5",
      "tree": "e3f124d94d2619be8ae6418c8782a4e7e8c5768e",
      "parents": [
        "d8d4ef440fe25095d34e535e591edd8fa1457307"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Feb 15 16:04:46 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Feb 15 16:04:46 2018 -0800"
      },
      "message": "Update generation when there is device connection state changed.\n\nWhen there is device connection state changed, the available\ninput/output devices will change. If we don\u0027t update the generation, it\nmay cause the number of ports different with same generation, which may\ncause crash in jni layer.\n\nBug: 73077399\nTest: run com.android.bluetooth.hfp.HeadsetServiceTest\nChange-Id: Ic2e477552a71582bcd38227b9a449eef5b82b18c\n"
    },
    {
      "commit": "2c6a243319474e518824b872894e9c5f274b81b6",
      "tree": "27cd47ae36810416e2a74aaddc983e4e4c09c217",
      "parents": [
        "f51cb69506670403cf1da2c66a3290c2f47344b6",
        "b3733cf0932256c57c74fc6670bd0e5bdd0edb4d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 15 22:27:31 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 15 22:27:31 2018 +0000"
      },
      "message": "Merge \"Revert \"Revert \"APM: Avoid route change mute of isolated sounds\"\"\""
    },
    {
      "commit": "b3733cf0932256c57c74fc6670bd0e5bdd0edb4d",
      "tree": "6f6e1187fa69cd0eefed4a91a4deede6434ae699",
      "parents": [
        "4a5b48197acdeaa397bf63a753af550bdea1b361"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 15 19:17:50 2018 +0000"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 15 19:17:50 2018 +0000"
      },
      "message": "Revert \"Revert \"APM: Avoid route change mute of isolated sounds\"\"\n\nThis reverts commit 4a5b48197acdeaa397bf63a753af550bdea1b361.\n\nReason for revert: original CL not at fault for b/70332110\n\nChange-Id: I3eef8a249305a66111e2f606155511a03b4d588a\n"
    },
    {
      "commit": "bd8c503398d6b483b7abba594c7838a4c93b6e23",
      "tree": "64e2d0bad143b5d745b51dabb584c86aa0aea2fc",
      "parents": [
        "f51cb69506670403cf1da2c66a3290c2f47344b6"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Feb 14 23:05:40 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Feb 15 00:03:49 2018 +0000"
      },
      "message": "Camera: Cache monitored tag options in service\n\nMonitored camera tag dump options should be stored\nby camera service and parsed during initialization of\neach new camera client.\n\nBug: 71640311\nTest: Camera CTS,\nManual using application\nChange-Id: Id464fbaec40395e93969b90abbd07f0a5cd0dc30\n"
    },
    {
      "commit": "a94cb66cbfa3699b39a6a90b67212f606565f7eb",
      "tree": "d9f7ca26538e901847384055a5ad6b855c60f265",
      "parents": [
        "eb9d054a490afad6abf0b2e1dfa969196600338f",
        "00420d2aa4a01cddc45969fcc315ab470c65e938"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 14 20:25:38 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 14 20:25:38 2018 +0000"
      },
      "message": "Merge \"Camera: Allow streaming requests with individual physical settings\""
    },
    {
      "commit": "db1396cee49289dc0395ff9a35d2ae06419c7768",
      "tree": "35d1d0db33562e45e836e0b29ebc00c694d7650f",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Feb 12 23:54:48 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Feb 13 02:16:02 2018 +0000"
      },
      "message": "Camera: Relax RGBA format override\n\nRGBA camera outputs must be overriden to\nIMPLEMENTATION_DEFINED format only in case their usage\nsuggests that the consumer is HW and the SW read flags\nare clear.\n\nBug: 35317944\nTest: Camera CTS\nChange-Id: I99c6903301b2364ee5b686800950f3898ec973a4\n"
    },
    {
      "commit": "55497fca194063d18904fdba9f8d88cc5e11abc5",
      "tree": "7d6ae6a4491aa657b74941a22bc8d8239b953159",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Feb 12 22:26:52 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Feb 12 22:36:05 2018 +0000"
      },
      "message": "Camera: Enable surface sharing for all formats\n\nSurface sharing must be enabled for all pixel formats\nsupported by the camera.\n\nBug:73135123\nTest: Camera CTS\nChange-Id: I804a881461a2dc19ad4901b319919df1488be422\n"
    },
    {
      "commit": "964414602e7559b486d499dd46e7c15871deb31e",
      "tree": "395de95a186b1451c7f7089164efce5e7310ee3d",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Feb 06 11:41:55 2018 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Feb 12 11:29:18 2018 -0800"
      },
      "message": "Camera: Revise MOTION_TRACKING capability\n\nSimplify the API for the P release.\n\nTest: Revised Camera CTS passes\nBug: 63629224\n\nChange-Id: Icf19d25f841a9e3bede77c39ea5f98c933d72871\n"
    },
    {
      "commit": "31225688b7b09ad15f5b1fb8ab2868cecc551f15",
      "tree": "3a9cb9b1644044132ddde4c48a30d47c4e6da0f4",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Mon Feb 12 11:08:38 2018 -0800"
      },
      "committer": {
        "name": "George Burgess",
        "email": "gbiv@google.com",
        "time": "Mon Feb 12 19:15:08 2018 +0000"
      },
      "message": "Fix a memory leak\n\nStatic analyzer complaint:\nframeworks/av/services/audiopolicy/service/AudioPolicyEffects.cpp:551:5:\nwarning: Potential leak of memory pointed to by \u0027fx_param\u0027\n[clang-analyzer-unix.Malloc]\n\nThis is because we unconditionally assign the result of realloc to\nparam: if realloc fails, it will not free the given pointer value, but\nwill return NULL. Hence, code like:\n\nbool safeGrowParamSize(char **param, size_t size,\n                       size_t *curSize, size_t *totSize) {\n  if (growParamSize(param, size, curSize, totSize) \u003d\u003d 0) {\n    free(*param);\n    return false;\n  }\n  return true;\n}\n\n...Will fail to free param on failure.\n\nBug: None\nTest: None\nChange-Id: I7a430e7965ab29e183c82ebcb298a2ffb42339b1\n"
    },
    {
      "commit": "913f986aec4dc5c2eee4879746e9ffdc7af7637b",
      "tree": "d5d6b2f5180cb520350e554083501ba03fa1eeda",
      "parents": [
        "51fbf99c725544b8511ec9613f9607ff68561055",
        "77881cd0213e2fb5619862cfd5b0aa2b9d4e3081"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 10 02:18:55 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 10 02:18:55 2018 +0000"
      },
      "message": "Merge changes I55e18e2e,Id3687d2a,I9fb550a9\n\n* changes:\n  fix audio port ID generation for new AudioTrack and AudioRecord\n  Revert \"Revert \"audio flinger: move record permission checks to audio policy service\"\"\n  Revert \"Revert \"audio policy: refactor audio record APIs\"\"\n"
    },
    {
      "commit": "77881cd0213e2fb5619862cfd5b0aa2b9d4e3081",
      "tree": "0920071fb96e57d396b16eaf4166cbb460deb176",
      "parents": [
        "7dca8a83b7c6922a69e266aa9f2b5693a4d773a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:01:31 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:09:20 2018 -0800"
      },
      "message": "fix audio port ID generation for new AudioTrack and AudioRecord\n\ncommit 0f4b3c544 introduced a problem in audio port ID generation\nby audio policy manager when a new playback or record track\nis created: audio flinger was passing a random port ID to\ngetOutputForAttr and getInputforAttr.\nThis caused audio policy to confuse several record tracks\nand fail to process capture stop properly.\n\nBug: 72628781\nTest: manual camcorder tests\n\nChange-Id: I55e18e2e6ccb9f69c36372d9bf9becf85e7c2614\n"
    },
    {
      "commit": "7dca8a83b7c6922a69e266aa9f2b5693a4d773a9",
      "tree": "cd09df52888de8f7af339c9decc3f21367272c1b",
      "parents": [
        "fee1976a2849c37a53d8a01ac10327d522a1ba93"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 18:44:26 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:09:06 2018 -0800"
      },
      "message": "Revert \"Revert \"audio flinger: move record permission checks to audio policy service\"\"\n\nThis reverts commit 67651f97c9c3880a4440c86618337f8a64c3e1a9.\n\nBug: 72628781\nTest: manual camcorder tests\nChange-Id: Id3687d2a4ab90f01d66ff30b2d77e6ec4ae72b3f\n"
    },
    {
      "commit": "fee1976a2849c37a53d8a01ac10327d522a1ba93",
      "tree": "5b8a259a93f6f84a964badf5417c113a308e67c9",
      "parents": [
        "98c15702ca0c814fee9110efa14d70fc9937514e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 18:44:13 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 09 16:08:31 2018 -0800"
      },
      "message": "Revert \"Revert \"audio policy: refactor audio record APIs\"\"\n\nThis reverts commit e9ebcdbb0580bd4a75f4530b957b1859e535c028.\n\nBug: 72628781\nTest: manual camcorder tests\nChange-Id: I9fb550a9f62d2d15cafbd7534e5e7eaa155a7213\n"
    },
    {
      "commit": "97df29e2b9c6df88fae9c14daa8e21c9ce5d45bf",
      "tree": "6149fe53d0c51040dc82ee33990e3fe81ee357ee",
      "parents": [
        "04696f702ad0a4bdc59a4bbe47663a497b6128c8"
      ],
      "author": {
        "name": "Greg Hartman",
        "email": "ghartman@google.com",
        "time": "Thu Feb 08 20:16:32 2018 -0800"
      },
      "committer": {
        "name": "Greg Hartman",
        "email": "ghartman@google.com",
        "time": "Thu Feb 08 20:16:32 2018 -0800"
      },
      "message": "Fix bad assumptions around architectures\n\nBUG: 73137180\nTest: Local build and boot\nChange-Id: Ic4eb25592ad87102bad566c391c37dc089dd6a16\n"
    },
    {
      "commit": "04696f702ad0a4bdc59a4bbe47663a497b6128c8",
      "tree": "0e05c790f33385af35a3abdd676b8baa70c5e958",
      "parents": [
        "98c15702ca0c814fee9110efa14d70fc9937514e",
        "ebb2179afc0d6812fd2806c77b19bf5182718510"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 09 01:21:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 09 01:21:27 2018 +0000"
      },
      "message": "Merge \"Use @include for crash_dump seccomp policies.\""
    },
    {
      "commit": "98c15702ca0c814fee9110efa14d70fc9937514e",
      "tree": "52b650fe7c6c07821b2543c62abde91de916747a",
      "parents": [
        "ec8d39d73a2a0167ae1c21edb005a62f87d2bd38",
        "4a5b48197acdeaa397bf63a753af550bdea1b361"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 08 21:56:12 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 08 21:56:12 2018 +0000"
      },
      "message": "Merge \"Revert \"APM: Avoid route change mute of isolated sounds\"\""
    },
    {
      "commit": "4a5b48197acdeaa397bf63a753af550bdea1b361",
      "tree": "c224cba0fe55a8dca9deff2519a2fc9fedd7e7ef",
      "parents": [
        "7c7124e693b20eafb4e0e86f996419c5597e0fbf"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 08 17:22:32 2018 +0000"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 08 17:22:32 2018 +0000"
      },
      "message": "Revert \"APM: Avoid route change mute of isolated sounds\"\n\nThis reverts commit 7c7124e693b20eafb4e0e86f996419c5597e0fbf.\n\nReason for revert: suspect for b/70332110\n\nChange-Id: Ia19a59018c705faa9ac521353da3d417dbbfe2ef\n"
    },
    {
      "commit": "a04be48552572967dc9be27331c31a34acd37b7b",
      "tree": "a8f62cae0d116bea5d7307a7eb9836b77cc1b9a2",
      "parents": [
        "18d21b8c6da4515f8371f00486bb639d5efc1802",
        "6d0b7083dd7ea16edebd91ce8b053434c5b9ea13"
      ],
      "author": {
        "name": "Gigon Bae",
        "email": "gbae@nvidia.com",
        "time": "Wed Feb 07 08:45:55 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 07 08:45:55 2018 +0000"
      },
      "message": "Merge \"Camera: parse preview fps and fps range correctly\" am: 4d9abd9392 am: 35be00e8e6\nam: 6d0b7083dd\n\nChange-Id: I7cc740ba471aa1706e978bf04158c2fe1d7a2f9e\n"
    },
    {
      "commit": "6d0b7083dd7ea16edebd91ce8b053434c5b9ea13",
      "tree": "f3ce3a66ac66af710247c6961d0ed73be9f06208",
      "parents": [
        "2fd1f62aa8a600293b10f91a1ceebcbe38c74acc",
        "35be00e8e6ce939993e5531d669b67dd0e3232c0"
      ],
      "author": {
        "name": "Gigon Bae",
        "email": "gbae@nvidia.com",
        "time": "Wed Feb 07 07:10:31 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 07 07:10:31 2018 +0000"
      },
      "message": "Merge \"Camera: parse preview fps and fps range correctly\" am: 4d9abd9392\nam: 35be00e8e6\n\nChange-Id: I840520af5fb08bea112ce0927ddfdde6df322bf3\n"
    },
    {
      "commit": "b915da10831802013d670d6a316727e7b2e1a74e",
      "tree": "5a00a92a1e7d0014321f4c411eccc09ab1ebe72d",
      "parents": [
        "e0b256a5a24ba1e2f3a324f86ce2a2bbadca301b"
      ],
      "author": {
        "name": "Gigon Bae",
        "email": "gbae@nvidia.com",
        "time": "Tue Feb 06 18:32:46 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Feb 07 05:03:09 2018 +0000"
      },
      "message": "Camera: parse preview fps and fps range correctly\n\n* Swap definition of fpsRange and fpsSingle to present correct value.\n\nWithout this patch, setPreviewFpsRange() and setPreviewFrameRate()\nmethods may not work correctly.\n\nTest: partner testing\nBug 73020119\nChange-Id: I7a504bb698985489e0bee595db62c99bc2c4db64\n"
    },
    {
      "commit": "00420d2aa4a01cddc45969fcc315ab470c65e938",
      "tree": "11235760b9fb1bc6727a1ebb59626d3ffaa4764c",
      "parents": [
        "bd60b9556c5adaee437dff164b5a1dfc9e35f057"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Feb 05 21:33:13 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Feb 07 01:14:33 2018 +0000"
      },
      "message": "Camera: Allow streaming requests with individual physical settings\n\nStreaming capture requests which include individual physical\ndevice settings should not be blocked.\n\nBug: 72524845\nTest: Camera CTS\n\nChange-Id: Idb3ad9d022d4e2b2ced2558d1746866dbd3842b4\n"
    },
    {
      "commit": "bd60b9556c5adaee437dff164b5a1dfc9e35f057",
      "tree": "f1871c2b4dddc4874d6d844214c81ab3ea02baa1",
      "parents": [
        "221445890315fef63a8ceb1f24e549fb33ecd446",
        "f873aa597f3babaa6d5116b426fb45cab52086f5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 05 21:13:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 05 21:13:23 2018 +0000"
      },
      "message": "Merge \"camera: Allow physical capture requests only for requested outputs\""
    },
    {
      "commit": "df9e45cc7dc78113aa790f1b6574ffbcc39a1da2",
      "tree": "ac59fcf7a3da25a89f6af907a2887977f6cd16d3",
      "parents": [
        "0f096ea219327c01f4c37595cc88825854e391e5",
        "1de79cfe1031a1ea6b3ba9fd77ed8686c0b6f694"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Fri Feb 02 18:40:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 02 18:40:14 2018 +0000"
      },
      "message": "Merge \"Fixes related to typo in audio.h\""
    },
    {
      "commit": "192ee8310b106e4370dbc84727c961002a3ec816",
      "tree": "b6719d1d75821cf0ad33eb8ee3bb62c3b4637c9c",
      "parents": [
        "7cd0df204b6ab69d56510b53556388527c212ea7"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jan 31 14:46:47 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri Feb 02 14:05:37 2018 +0000"
      },
      "message": "Camera: Avoid \u0027outputBufferSizes\u0027 out-of-bounds access\n\nHal interface stream configuration will iterate over all\navailable streams both input and output. However the\n\u0027outputBufferSizes\u0027 vector includes only buffer sizes for\noutput streams. If we have an input stream, then an invalid\nmemory access is possible. Resolve this by allocating enough\n\u0027outputBufferSizes\u0027 entries.\n\nBug: 72736744\nTest: Camera CTS\nChange-Id: I6973f1fbf499628437b7523aab6bf13c88015448\n"
    },
    {
      "commit": "1de79cfe1031a1ea6b3ba9fd77ed8686c0b6f694",
      "tree": "75289e92ed05721a30dcf9761aaaa9e4a56f1204",
      "parents": [
        "c717e5e41ed866d3f156e15835150f898acba27d"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Feb 01 15:21:02 2018 -0800"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Thu Feb 01 15:21:02 2018 -0800"
      },
      "message": "Fixes related to typo in audio.h\n\nBug: 64038649\nTest: Manual Testing and CTS tests.\nChange-Id: Id2650638f789d85116d780d87b19debd2a13a737\n"
    },
    {
      "commit": "9479b4fcb654b5272b254f6412b7efd2c30bc0bd",
      "tree": "bb9671aed64a37ca49790ae80839cdbd95d67c85",
      "parents": [
        "dc039c8d50b1643d6cf1f81062a1767e1512c28d",
        "9e740b0fd4181bb87e6a278bb9d88be93adabc90"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 01 12:47:43 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 12:47:43 2018 +0000"
      },
      "message": "Merge \"Camera: Clear cached HIDL references\""
    },
    {
      "commit": "5dd03a5825d06033c1e66353dbbfcfc7f60990c5",
      "tree": "9deed77dba8b49bf83bf5f039c4ebaee3aa5b34c",
      "parents": [
        "5dca017406b057bf71f8934ef57aab6098ecec6c",
        "653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 01 01:35:26 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 01 01:35:26 2018 +0000"
      },
      "message": "Merge \"Support query active microphones information in AudioRecord.\""
    },
    {
      "commit": "31067d4b87475dd0a90145d4849cf66f7bf93f86",
      "tree": "61656e49f84e02ae6382e94169916356f65c8e1f",
      "parents": [
        "e9ba24a984610b09d33a739034caf8949bb53f7e",
        "92d23b433bd770c22c2d4a30b573602f5565de1b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 31 22:37:49 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 31 22:37:49 2018 +0000"
      },
      "message": "Merge \"Remove finalized concept from media.metrics\""
    },
    {
      "commit": "f873aa597f3babaa6d5116b426fb45cab52086f5",
      "tree": "7b22429bd00aeaeb476b7d8e7d2a46ecd959315f",
      "parents": [
        "1e0a07b66583dbddca3ea28bfb79b6a5663476df"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri Jan 26 14:58:28 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jan 31 17:57:19 2018 +0000"
      },
      "message": "camera: Allow physical capture requests only for requested outputs\n\nAn individual physical capture request should only be allowed in\ncase a respective attached capture output target with the specific\nphysical device is also present.\n\nBug: 72524603\nTest: Camera CTS\nChange-Id: I09502e7a15d3ea0a00e935bf222cc9b61cdaca6f\n"
    },
    {
      "commit": "9e740b0fd4181bb87e6a278bb9d88be93adabc90",
      "tree": "d9d8bc7afe47280ee02a960b0a3be15e8221172f",
      "parents": [
        "1e0a07b66583dbddca3ea28bfb79b6a5663476df"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Jan 30 18:28:03 2018 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jan 31 09:49:00 2018 +0000"
      },
      "message": "Camera: Clear cached HIDL references\n\nCached 3.3 and 3.4 HIDL session references must be cleared\notherwise the session implementation will not get released\nand this could result in resource leaks.\n\nBug: 72692738\nTest: Manual using camera application\nChange-Id: I1d4eef43295db837f2fb4380bd84e2e7dfb5b5ef\n"
    },
    {
      "commit": "34c238eaf4af84787648c714289de9dcfa1668d3",
      "tree": "a48681eb6b1e2dcc17d829e2e049112277b22ad0",
      "parents": [
        "d54bacf09c2384987ad9186de67c4225db1eed1d",
        "4980df29f61d5fad95e17ca1d1969f6ca4c1f296"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 31 03:20:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 31 03:20:08 2018 +0000"
      },
      "message": "Merge \"audio: filter reserved binder calls\""
    },
    {
      "commit": "d24be7ca2491048892905734cb8a1e77440df948",
      "tree": "370f8ad0498bcb27aa9995cc74ec4356ca12629e",
      "parents": [
        "7fbc087b2187bc67f921d843a59a367c6431eb14",
        "c0c831a8811b438093ca7f1d01b0ccf8c2a345d3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 20:31:27 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 20:31:27 2018 +0000"
      },
      "message": "Merge \"Fix explicit routing failed.\""
    },
    {
      "commit": "db0bdbf69b0c3330c35c5076b4a71a413845707d",
      "tree": "92da433f7144fab54e2954bb4ffd3c052a9b4faa",
      "parents": [
        "8394045f98d148d3e47dd282a58cdf3da5b1dde3",
        "fb6e55bf827d81d9c042aea68be4b2383a5e32e3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 06:05:25 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 06:05:25 2018 +0000"
      },
      "message": "Merge \"Camera: add buffer size to Stream@3.4\""
    },
    {
      "commit": "c0c831a8811b438093ca7f1d01b0ccf8c2a345d3",
      "tree": "5cf5f9aa3c6d0e6c55a1dfec40a7e322e42414f4",
      "parents": [
        "3923b1b71628e668f9b11ed4891ed2840dd331cd"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Jan 29 17:55:15 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Jan 29 21:13:59 2018 -0800"
      },
      "message": "Fix explicit routing failed.\n\nIn AudioPolicyManager.getInputForAttr, we should get device descriptor\nfrom available input devices, but not output devices. When using output\ndevices, the explicit routing will never work.\n\nBug: 72670086\nTest: run cts\nChange-Id: Ib37ffb70334afc6c7c8ddd7baf6439b146205d45\n"
    },
    {
      "commit": "4980df29f61d5fad95e17ca1d1969f6ca4c1f296",
      "tree": "c7e38eb5c4c223ac0a9b08e7636adf71de7a9c62",
      "parents": [
        "5f07c65af5356a4a95410804ce19fc017d6478f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 26 18:04:09 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 17:28:43 2018 -0800"
      },
      "message": "audio: filter reserved binder calls\n\nBlock incoming binder calls to audio flinger and audio policy service\nfor sensitive functions if they are not coming from a system UID.\n\nBug: 72278478\nTest: audio smoke tests. CTS tests for AudioTrack and AudioRecord\nChange-Id: I78e02efffe135d5450ced125e51e2084719ca03d\n"
    },
    {
      "commit": "8ec3d5d415776cf37398b6cf788a3d4be2335a73",
      "tree": "a09aa5cf817e0f81987df05d71c3f0965c011a05",
      "parents": [
        "ab0486cbc9d0cc730be7e294af83865b1ad47b10",
        "e9ebcdbb0580bd4a75f4530b957b1859e535c028"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 30 00:30:06 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 30 00:30:06 2018 +0000"
      },
      "message": "Merge changes I6bcc87c6,If633e677\n\n* changes:\n  Revert \"audio policy: refactor audio record APIs\"\n  Revert \"audio flinger: move record permission checks to audio policy service\"\n"
    },
    {
      "commit": "92d23b433bd770c22c2d4a30b573602f5565de1b",
      "tree": "e2ff902f2be5d131e8a1cd4af09868d3a5af2794",
      "parents": [
        "3923b1b71628e668f9b11ed4891ed2840dd331cd"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 29 12:10:30 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon Jan 29 14:38:27 2018 -0800"
      },
      "message": "Remove finalized concept from media.metrics\n\nthe \u0027finalized\u0027 concept didn\u0027t pan out -- remove references to it.\nSimplifies the code flow.\nAlso purged some uses of generateSessionID().\n\nBug: 71874686\nTest: logcat/dumpsys\nChange-Id: I39e48526a5696158d8195f47154881ca6ecda266\n"
    },
    {
      "commit": "e9ebcdbb0580bd4a75f4530b957b1859e535c028",
      "tree": "a603313572aeef80fb8a26d2ff38f7a6541e835c",
      "parents": [
        "67651f97c9c3880a4440c86618337f8a64c3e1a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:27:18 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:37:24 2018 -0800"
      },
      "message": "Revert \"audio policy: refactor audio record APIs\"\n\nThis reverts commit 0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe.\n\nBug: 72628781\nTest: Capture several videos from camera app\nChange-Id: I6bcc87c618ac9bfe5c911915cbb37de616bc727a\n"
    },
    {
      "commit": "67651f97c9c3880a4440c86618337f8a64c3e1a9",
      "tree": "843940703c4fca05bf8cf6df7091fbcc42eb0154",
      "parents": [
        "5f07c65af5356a4a95410804ce19fc017d6478f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:27:03 2018 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 29 14:35:06 2018 -0800"
      },
      "message": "Revert \"audio flinger: move record permission checks to audio policy service\"\n\nThis reverts commit c7b71a1b3a16231d7741f9ef52c5f84ec8de0c31.\n\nBug: 72628781\nTest: Capture several videos from camera app\nChange-Id: If633e677d87320335e368a8340599c9e4a398201\n"
    },
    {
      "commit": "222535c3e88728378b760a93583681fcb2a19c10",
      "tree": "a236c16e9f97a04a6e5d4adfdd127d8e8920f054",
      "parents": [
        "343cd9e0427e78dadcb0af27a766e04ead2daafa",
        "46a76fa5ffb88dbde2c67335dbc5cf20b75b10b6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jan 27 05:18:35 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 27 05:18:35 2018 +0000"
      },
      "message": "Merge \"Add support for getting all available microphones characteristics.\""
    },
    {
      "commit": "653cc0ab6d5b714d1f26adcd08f9bc3269b62fa0",
      "tree": "6ce8eb9ed7297d8b2524c6e25376319175758f50",
      "parents": [
        "46a76fa5ffb88dbde2c67335dbc5cf20b75b10b6"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Jan 17 17:54:10 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 26 17:23:07 2018 -0800"
      },
      "message": "Support query active microphones information in AudioRecord.\n\nThis is part of device enumeration. With the new add API, developer\ncould get the active microphones information for each channel.\n\nBug: 64038649\nTest: Run cts and check the print log.\nChange-Id: Ic63d86e533a30e40697da7522a5a81f7cfcea988\n"
    },
    {
      "commit": "46a76fa5ffb88dbde2c67335dbc5cf20b75b10b6",
      "tree": "7215e85bae943107de3bf07537c28c98216f5690",
      "parents": [
        "6e075b43b0ba324a97fc0f89ef65196ed25be671"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 05 10:18:21 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Jan 26 17:16:16 2018 -0800"
      },
      "message": "Add support for getting all available microphones characteristics.\n\nAdd MicrophoneInfo class in native side and native logic for supporting\nquery all available microphones.\n\nBug: 64038649\nTest: Run test and check the print log.\nChange-Id: Ic0a9cce55a1265a66ba08fe81b56b56cb88ba42f\n"
    },
    {
      "commit": "fb6e55bf827d81d9c042aea68be4b2383a5e32e3",
      "tree": "6fe580614fe9b403ccd0cc1e6ebc8136c1645f77",
      "parents": [
        "ab7429b4cec5e619f0ed77d13363da4167212874"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jan 25 10:50:26 2018 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jan 25 15:00:48 2018 -0800"
      },
      "message": "Camera: add buffer size to Stream@3.4\n\nBug: 72261675\nChange-Id: Ia8492d29cb6e64af4adecd0b7c212adae4b5ae9a\n"
    },
    {
      "commit": "59a8ef0135bab204ed027625011a1f55d99a694d",
      "tree": "b4dbd7bd3200693c028bcaa0ad96808a80c3cd2b",
      "parents": [
        "b2eb24b64f4a7bd367caaee345ca73271ce9af51"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Mon Jan 15 14:49:05 2018 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Jan 26 06:29:23 2018 +0900"
      },
      "message": "Read media files from /product/media/audio\n\nBug: 64195575\nTest: tested reading media files from /product/media/audio after moving\nfiles from /system/media/audio to /product/media/audio\n\nChange-Id: Ib5cf79181962ba2b0a70980b44dd7608410c3855\n"
    },
    {
      "commit": "ebb2179afc0d6812fd2806c77b19bf5182718510",
      "tree": "df15375852893a4fbee64ddae8a024bd2603dae3",
      "parents": [
        "bbcbbe4fa36faaca4b066287bd0998c71752d96e"
      ],
      "author": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Wed Jan 24 16:37:16 2018 -0800"
      },
      "committer": {
        "name": "Josh Gao",
        "email": "jmgao@google.com",
        "time": "Thu Jan 25 12:40:51 2018 -0800"
      },
      "message": "Use @include for crash_dump seccomp policies.\n\nInstead of manually inlining and updating seccomp policies for crash\ndumping in 5 different places, add a central one that\u0027s @included by\neach user.\n\nBug: http://b/38508369\nTest: debuggerd [-b] `pidof media.{codec,extractor}` on walleye\nChange-Id: I1691cb2ab041fc326765e7304917bd2b2460c6a9\n"
    },
    {
      "commit": "1ca046167db003a5750a594a8e4d9641506392e4",
      "tree": "c8eecdb7abdfdbef745fa0538c7eb7be2ccbfca5",
      "parents": [
        "df243b7316868d7ae66f2cf9e5dec7aee793a1bd",
        "c7b71a1b3a16231d7741f9ef52c5f84ec8de0c31"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 25 18:14:03 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 18:14:03 2018 +0000"
      },
      "message": "Merge \"audio flinger: move record permission checks to audio policy service\""
    },
    {
      "commit": "0defd00c221a5e96cdd699a6f0f682b421c69897",
      "tree": "bcf79287cc5fea29527edbfe4aeebbe6b28e4709",
      "parents": [
        "624838290f595909182346bda2e5dab38bc52727",
        "0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 25 16:39:44 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 25 16:39:44 2018 +0000"
      },
      "message": "Merge \"audio policy: refactor audio record APIs\""
    },
    {
      "commit": "5c22c15ed8c593189ed9bb8fcbccace2ca63b82a",
      "tree": "d3f608b779d55a54851ab49aacb697510725725f",
      "parents": [
        "91b1f83220c6fc643e2618f92b28482fa880c7fd"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Sun Dec 31 17:12:25 2017 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Jan 24 18:18:18 2018 -0800"
      },
      "message": "Camera: Support physical camera metadata in capture result\n\n- Add physical camera metadata in capture result.\n- Adjust capture_result book-keeping for physical capture result.\n- Adapt to new version of ICameraDeviceCallback.\n- Batch physical metadata with logical metadata within one\nprocess_capture_result call.\n\nTest: testLogicalCameraTest CTS test\nBug: 64691172\nChange-Id: I63fd343770cbb6183b7c6e4566c698f69801a8e8\n"
    },
    {
      "commit": "c7b71a1b3a16231d7741f9ef52c5f84ec8de0c31",
      "tree": "803306733146625da98f061ceec491569fd184ba",
      "parents": [
        "0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 08 17:21:56 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 24 17:07:22 2018 -0800"
      },
      "message": "audio flinger: move record permission checks to audio policy service\n\nMove audio permission checks to getInputForAttr and startInput.\n\nTest: AudioRecord CTS tests. Manual test of capture use cases.\nChange-Id: Ifaefc1198248b46fc59aecd6c9ec3aa892656e05\n"
    },
    {
      "commit": "0f4b3c5449f85c1cd78e1b9ac4850de962b8edbe",
      "tree": "63641f2dea738a745946c63f80803557a74ec12b",
      "parents": [
        "c6116926de37cabb1d35ddd57eaff0e19fcec8bc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 05 11:46:13 2018 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 24 16:56:52 2018 -0800"
      },
      "message": "audio policy: refactor audio record APIs\n\nRefactor audio policy service APIs controlling audio record (startInput, stopInput, releaseInput)\nTo allow finer grain control per AudioRecord client and prepare for new concurrent capture\npolicy\n\nTest: AudioRecord CTS test. manual test of capture use cases:\ncamcorder, OK Google VoIP\n\nChange-Id: I4992fd5a115853c47be5dac5465989eb53f1287c\n"
    },
    {
      "commit": "c6116926de37cabb1d35ddd57eaff0e19fcec8bc",
      "tree": "fdc9a07eec6b4e7dc446a76149bd0c843d298edd",
      "parents": [
        "7027e8019ad974d2e474a7fcaf43adedbdf08f23",
        "8ed196ac0f4aa8ae811c012dfa6f596fddebf1bf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 24 22:48:08 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 22:48:08 2018 +0000"
      },
      "message": "Merge \"AudioMixer: Enable 256 tracks, up from 32 tracks\""
    },
    {
      "commit": "bbcbbe4fa36faaca4b066287bd0998c71752d96e",
      "tree": "7e423ad48bd1af7a64536716380d9869678e7820",
      "parents": [
        "03570a65a46bd0d577aa4c860c4f32f4abf79c7c",
        "8c22cb1cc76c37a3bba789fb78454173f6bf8429"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 21:17:30 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 21:17:30 2018 +0000"
      },
      "message": "Merge \"Open some more metrics from app-space\""
    },
    {
      "commit": "03570a65a46bd0d577aa4c860c4f32f4abf79c7c",
      "tree": "80f3fe537f1edeb95bd37a5a66090ce3b4f1cd1e",
      "parents": [
        "70068e8e49f3467488550d88d6130f9e00bb0624",
        "6f248bb57a6a0febe8fc0f253acc86289237ace8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jan 24 20:28:46 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 20:28:46 2018 +0000"
      },
      "message": "Merge \"AudioFlinger: Allocate client memory based on total device memory\""
    },
    {
      "commit": "8c22cb1cc76c37a3bba789fb78454173f6bf8429",
      "tree": "17d49448ae9ac8925bb4f56c4681f4353374974c",
      "parents": [
        "c01a25e1759549d90c8e9f2446bc3c0023a8cd83"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 24 11:00:36 2018 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed Jan 24 11:00:36 2018 -0800"
      },
      "message": "Open some more metrics from app-space\n\nallow some more metrics through that are now being generated from\napp-side contexts instead of within media services.\n\nBug: 71874383\nTest: logcat/dumpsys\n"
    }
  ],
  "next": "1844568dcb147a3d6ec9e99a02c997e5aac8f540"
}
