)]}'
{
  "log": [
    {
      "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": "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": "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": "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"
    },
    {
      "commit": "1844568dcb147a3d6ec9e99a02c997e5aac8f540",
      "tree": "0c05427431733d7b1663f9fc9e0754e12d863503",
      "parents": [
        "e05a10f6d8783f7bc3cd2f78a9115bf3ab63efff",
        "5f9861029c370c252af9d687d006fe03716e31f1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 17:57:00 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 17:57:00 2018 +0000"
      },
      "message": "Merge \"Software codecs are required by mediacodec\""
    },
    {
      "commit": "c3c1fc630e21f36d2e3f56fac3503c471fbc3a15",
      "tree": "921aa645df7244475712d172ba9349046aad2106",
      "parents": [
        "254d783c0db9d7af6b863ad1819f5c4a543a939d",
        "f317240cde612c3509c7d0950484516ed33fd664"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 17:41:23 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 17:41:23 2018 +0000"
      },
      "message": "Merge \"Trivial comment fix\""
    },
    {
      "commit": "5cc83c3b8acc43b760be23a4e3b96fbbb06d8e93",
      "tree": "81c8578d69173d3e948a938e46d54e8385d254c4",
      "parents": [
        "bb8ad0e6ebf1a74245929720fd6336feda926ea9"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Nov 28 15:43:18 2017 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Jan 24 15:21:34 2018 +0000"
      },
      "message": "aaudio: fix some state transitions\n\nNow requestStop() and requestPause() do the appropriate thing\nbased on state.\nFlush is allowed when OPEN, PAUSED or STOPPED because there might\nbe pre-roll data.\n\nBug: 69810494\nTest: test_various.cpp\nChange-Id: Ie1b306b17734a58fa71b1742bb186482893656b7\n"
    },
    {
      "commit": "bb8ad0e6ebf1a74245929720fd6336feda926ea9",
      "tree": "73a9e0f72bf729bb087565ed0cf079c0931f43dc",
      "parents": [
        "4a0c0153cee669d32671d9ef8449a8d1a61e9ea7",
        "5a1dfb4441b0b2bbb8243bd4ca498930ad3b0ffe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 14:39:24 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 14:39:24 2018 +0000"
      },
      "message": "Merge \"Enable MediaUpdateService on userdebug and eng builds.\""
    },
    {
      "commit": "8ed196ac0f4aa8ae811c012dfa6f596fddebf1bf",
      "tree": "fda78f06eeb733b00fda71fbd401b6a787b76190",
      "parents": [
        "2917aa469abba347a1ab1e6fa766d62721182788"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 05 13:21:11 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 23 23:04:33 2018 -0800"
      },
      "message": "AudioMixer: Enable 256 tracks, up from 32 tracks\n\nClient apps can have 40 tracks, up from 14 tracks\n\nRelated code cleanup:\na) Removed State nested class\nb) Moved static functions to Track member functions\nc) Moved static function hooks to pointer-to-member-function hooks\nd) Some reorganization of touched code for recent C++ style\n\nTest: test-mixer native mixer test\nTest: SoloTester effect test\nTest: SoundPool with many tracks\nTest: CTS AudioTrackTest\nBug: 64161002\nChange-Id: I0d09620acd715d577e776bb6f76e94e87e554520\n"
    },
    {
      "commit": "34abab103a6eb3fc7417c9e9169ee172b2303952",
      "tree": "df4065ab25ab83d7380715b42ad7c79d0d436873",
      "parents": [
        "fe4e4db4615585fd70a55d52f21c55dd517d2bfa",
        "07be14fb96fc5c106ea2b874faf2b768f468eb8e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 06:26:16 2018 +0000"
      },
      "message": "Merge \"Revert \"Audio V4: Split system and vendor Audio.h\"\""
    },
    {
      "commit": "07be14fb96fc5c106ea2b874faf2b768f468eb8e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "message": "Revert \"Audio V4: Split system and vendor Audio.h\"\n\nThis reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.\n\nReason for revert: Breaks the build of multiple devices\n\nChange-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e\n"
    },
    {
      "commit": "6f248bb57a6a0febe8fc0f253acc86289237ace8",
      "tree": "5dcc5fe0729c85f7ef39ac298906acea444b2ae2",
      "parents": [
        "2917aa469abba347a1ab1e6fa766d62721182788"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 23 14:04:37 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 23 22:12:12 2018 -0800"
      },
      "message": "AudioFlinger: Allocate client memory based on total device memory\n\nTest: Debug logging\nBug: 64161002\nChange-Id: I7156748e5678c3232d1f1672439d11aecf3f458b\n"
    },
    {
      "commit": "8af6933ea8235d4f34219e7bcfeb161dc9feaf1f",
      "tree": "fec04edd629b7b8214fd3af20243f6254d420bd3",
      "parents": [
        "6a784e71ca122347789faa73367877d41831592f",
        "1a86df516794fae153a370651d4948189e77b700"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 04:36:33 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 04:36:33 2018 +0000"
      },
      "message": "Merge \"CameraService: Add support for @3.4 constructDefaultRequestSettings\""
    },
    {
      "commit": "6a784e71ca122347789faa73367877d41831592f",
      "tree": "de25d71706442e18346a5785f4174aba5604454d",
      "parents": [
        "f7a14c051ee9bd5f288963f3c190642e4915250b",
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 04:04:48 2018 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-v4-tmp\"\n\n* changes:\n  Audio V4: Split system and vendor Audio.h\n  Audio V4: Use the framework audio.h instead of the HAL\u0027s\n"
    },
    {
      "commit": "f7a14c051ee9bd5f288963f3c190642e4915250b",
      "tree": "ea6932c920a95a4fef8687556a27a8b1fcee2061",
      "parents": [
        "da023f7ceb5a040f631a9d6c1170cdd447054631",
        "61309523e6332addbd648c0d1bf25d35d6fd7b90"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 24 04:04:32 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 04:04:32 2018 +0000"
      },
      "message": "Merge \"Notifications are not duplicated over multiple devices\""
    },
    {
      "commit": "b1c4870236877286259fdaa50dcbffe802f1d14f",
      "tree": "d87fadd5b32d9253080a2ce60e3f91797784866d",
      "parents": [
        "061ee8fd486658446d27048939e557f899f31def",
        "002001be5f1b22616e3bb335b74e172818206eca"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jan 24 03:14:14 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 24 03:14:14 2018 +0000"
      },
      "message": "Merge \"Camera3Device: Fix spurious onIdle callback during internal reconfig\""
    },
    {
      "commit": "61309523e6332addbd648c0d1bf25d35d6fd7b90",
      "tree": "d7bd244a6e75f5d7b443606ade3d2809b0ef6fc3",
      "parents": [
        "bd1f998721a5c17623043c415fa2a0bb3e57601f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 23 09:58:17 2018 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 23 17:36:24 2018 -0800"
      },
      "message": "Notifications are not duplicated over multiple devices\n\nSonifications follow media routing, except for speaker playback\n  where they follow the \"safe\" path when available in the\n  absence of media playback.\n\nTest: 1/ plug headphones on phone, play notification, verify it\n         comes only from headset\n      2/ mirror device and play media, then notification, verify\n         it only comes from the speaker\n\nChange-Id: I762ad0688e879ad1e5565b4b77a7393fa7ce7ac5\n"
    },
    {
      "commit": "f317240cde612c3509c7d0950484516ed33fd664",
      "tree": "a56d57db0c7e43b1e4d04cf0613bde8dde594995",
      "parents": [
        "4ca350708ba8152d2832e7177eb028c8fb1c591d"
      ],
      "author": {
        "name": "Scott Randolph",
        "email": "randolphs@google.com",
        "time": "Tue Jan 23 17:06:53 2018 -0800"
      },
      "committer": {
        "name": "Scott Randolph",
        "email": "randolphs@google.com",
        "time": "Tue Jan 23 17:08:15 2018 -0800"
      },
      "message": "Trivial comment fix\n\nAdded missing letter in a word in a comment\n\nTest: NA\nChange-Id: Ica94700c0d42b0f0703d3d6c4867679b313eaf18\n"
    },
    {
      "commit": "002001be5f1b22616e3bb335b74e172818206eca",
      "tree": "64a7bdfb9d17813f5caddf564135b83d9a35e9bb",
      "parents": [
        "1c838c481692c45b96786dcdd520296b73a71809"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 23 16:53:50 2018 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 23 16:56:26 2018 -0800"
      },
      "message": "Camera3Device: Fix spurious onIdle callback during internal reconfig\n\nBecause the request thread went idle before it notified the parent to\nreconfigure, the flag to avoid spurious notifications was set too\nlate; an idle notification would already be sent by then.\n\nMove the flag setting to the beginning of the sequence to correctly\nsuppress all needed notifications.\n\nTest: No crash in previously affected app; camera CTS continues to pass\nBug: 72392658\nChange-Id: Id7d1f66bab455035bbec7b04f7dd4157ad94b773\n"
    },
    {
      "commit": "c01a25e1759549d90c8e9f2446bc3c0023a8cd83",
      "tree": "5dac9aa4101da9e02c837c948dae65822b119fa7",
      "parents": [
        "ab7429b4cec5e619f0ed77d13363da4167212874",
        "813b1b8e1e1fa3f00317f0218d78510bf9abf3ae"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 20:11:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 20:11:41 2018 +0000"
      },
      "message": "Merge \"Remove media metrics\u0027 unused \u0027summarizer\u0027 concept\""
    },
    {
      "commit": "1a86df516794fae153a370651d4948189e77b700",
      "tree": "f0be6555b3676bd86c01dbcd0ba93958eafb196b",
      "parents": [
        "1c838c481692c45b96786dcdd520296b73a71809"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jan 17 16:00:35 2018 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 23 09:57:37 2018 -0800"
      },
      "message": "CameraService: Add support for @3.4 constructDefaultRequestSettings\n\nNeeded for two new template enum values for MOTION_TRACKING\n\nAlso move query and initialization of minor HIDL version interfaces to\ndevice startup.\n\nTest: Camera CTS continues to pass as before\nBug: 63629224\n\nChange-Id: I2feb3a6875b6216dc8299a997bda7b51640038bb\n"
    },
    {
      "commit": "c42670b837dc6e0d63dad891f66735fd7cb3d969",
      "tree": "0ea6e2a4a47671977c8099c1f8c248971622b588",
      "parents": [
        "164071326bcc752214ed800cba3d07206398f53d",
        "6d998b67be330843f633a563c23c606593060165"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 17:07:40 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 17:07:40 2018 +0000"
      },
      "message": "Merge \"Implement new MediaDrm methods\""
    },
    {
      "commit": "5f9861029c370c252af9d687d006fe03716e31f1",
      "tree": "1eff88824dc8052037b76936159e989b934718ae",
      "parents": [
        "bf6a5836d347aa191b61d0389e52c7a69122da17"
      ],
      "author": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Mon Dec 18 20:43:16 2017 +0900"
      },
      "committer": {
        "name": "Jiyong Park",
        "email": "jiyong@google.com",
        "time": "Tue Jan 23 11:51:10 2018 +0900"
      },
      "message": "Software codecs are required by mediacodec\n\nvndk_package is a phony module that includes ALL VNDK libs found in the\nsource code. As a result, VNDK libs that were actually not needed for\nthe device have been installed consuming storage. For example,\n/system/lib/vndk/android.hardware.automotive*.so files were installed\neven though walleye/taimen do not have automotive HALs.\n\nVNDK libs are now installed by their link time dependencies (i.e. if a\nvendor module uses libcutils, then /system/lib[64]/vndk-sp/libcutils.so\nis automatically installed.).\n\nBy the way, there is a few number of VNDK libs that do not have any\nlink time dependency from vendor modules. They are always opened via\ndlopen. In such cases, the vndk modules are added to `required`\nor `LOCAL_REQUIRED_MODULES` of the module that dlopens them.\n\nBug: 67002788\nTest: walleye builds and boots to the UI\nTest: basic functionalities work (sound, camera, camcorder, slow-mo,\nyoutube, wifi, bluetooth)\n\nChange-Id: I52f9d58a3fdc2ad8fb7d9798f2c9f9162d002b5c\n"
    },
    {
      "commit": "763226f9bc18e94ea1c2f59f5d422ca2b456d2de",
      "tree": "f3cab5c00128f5000287d7e17ed9af4fbac08315",
      "parents": [
        "4e3815d14dceaf31d60ea325e650be4db17ce6c3",
        "714d292393272e1d4857ab9efd5783986508e3ef"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "guennadi.liakhovetski@intel.com",
        "time": "Tue Jan 23 02:47:06 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 23 02:47:06 2018 +0000"
      },
      "message": "Merge \"CameraService: fix camera removal paths\" am: 930c980043 am: 1f1584afba\nam: 714d292393\n\nChange-Id: I2f4b53bbcc9d8f3a6865405a6ac764f2f50a9395\n"
    },
    {
      "commit": "714d292393272e1d4857ab9efd5783986508e3ef",
      "tree": "f1598e986e44d19f4d989f7cde202ba1e0cd760a",
      "parents": [
        "57abaabdaf7545c3cbf9b6b5a6c7d533a3311583",
        "1f1584afba0aa10bf801b9f4bd8a886275bf704b"
      ],
      "author": {
        "name": "Guennadi Liakhovetski",
        "email": "guennadi.liakhovetski@intel.com",
        "time": "Tue Jan 23 02:31:35 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jan 23 02:31:35 2018 +0000"
      },
      "message": "Merge \"CameraService: fix camera removal paths\" am: 930c980043\nam: 1f1584afba\n\nChange-Id: I0581b0b0a4d44c941d5617de8d746a99da38761a\n"
    },
    {
      "commit": "930c98004392a56a76ce1217f1791db5965b6ea5",
      "tree": "6fdae909fe3cd857651a294da51c98b6c97f858d",
      "parents": [
        "06d588e89bb410907eb4048b3a1661db6c073ef4",
        "6034bf5f21c57f66f3307d7934bc5c7616d2acf3"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 23 00:52:00 2018 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 23 00:52:00 2018 +0000"
      },
      "message": "Merge \"CameraService: fix camera removal paths\""
    },
    {
      "commit": "f42760c9b7136344f8b24a42c8c5bba74ac61ba9",
      "tree": "789e34ea68e8e36fa5430b87502ca43cf02bdf40",
      "parents": [
        "487585733d3e075734cb9827f1a36302590b8089",
        "aebbe41461c597cdcb4be35edb5484410b9b2dff"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 23 00:36:17 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 23 00:36:17 2018 +0000"
      },
      "message": "Merge \"camera: Support multiple physical camera requests\""
    },
    {
      "commit": "487585733d3e075734cb9827f1a36302590b8089",
      "tree": "e3956af3b322b108a20616c2b252e77575978630",
      "parents": [
        "f83d6ce9d1aa4c96d2b8dbca8d8213b25938d1de",
        "7588ff418aca63b1dc43a85afc1e86c40dd889a3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jan 22 23:50:41 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 23:50:41 2018 +0000"
      },
      "message": "Merge changes from topic \"audio-hal-v4\"\n\n* changes:\n  Audio V4: Split HAL wrapper for versioning\n  Audio V4: Move audio HIDL wrapper in a 2.0 folder\n  Audio V4: Move Utils in a versioned namespace\n"
    },
    {
      "commit": "52fe83f701640479f606ac89ed6b04f786313bc3",
      "tree": "b13597625361786062945e5fcc020462318d921e",
      "parents": [
        "7a4b8ab1bae94697d6d4daadf638d1bd9ca8b81a",
        "766fb020a50b64bf9a808bd80df60c54c2ca8cc3"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Mon Jan 22 23:20:50 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 23:20:50 2018 +0000"
      },
      "message": "Merge \"Support routing audio playback to telephony uplink\""
    },
    {
      "commit": "766fb020a50b64bf9a808bd80df60c54c2ca8cc3",
      "tree": "acb92cb201889d2b56f41bc2a437da1aaae72c4e",
      "parents": [
        "652f9299bb8a7a50148d57a75de6ede831bfed85"
      ],
      "author": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Sun Jan 07 12:18:03 2018 +0200"
      },
      "committer": {
        "name": "Nadav Bar",
        "email": "nadavbar@google.com",
        "time": "Mon Jan 22 23:05:23 2018 +0200"
      },
      "message": "Support routing audio playback to telephony uplink\n\nThis change enables phone apps to play audio to the uplink stream\nduring a call.\nThis change maks the AUDIO_OUTPUT_FLAG_INCALL_MUSIC_UPLINK flag to be added to the flags that are sent to the HAL when an ongoing call is active, the chosen output device is the TX telephony device, the stream type is music, and the calling app has the MODIFY_PHONE_STATE permission.\nFor this change to take place, the following changes were made to the signature of getOutputForAttr in IAudioPolicyService:\n  1. Add pid (process id) parameter to getOutputForAttr.\n  2. Make the flags parameter a pointer so changed value can be\n  examined by calling function.\n\nBug: 69973354.\nTest: tested manually.\nChange-Id: I74cef3f8b66de6e0e8f87b6235130c2cdf423da7\n"
    },
    {
      "commit": "b83456d9e3302f0222f7a55820ba0d031a0e0903",
      "tree": "2cc91791241391b8595e1b730c50f30bc91a7c4d",
      "parents": [
        "4fd7bbca1ff017e09f0ace53c3efa138074f8a14",
        "d78041a9e7ae0da849328e898785e35cd1f66fbe"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jan 22 20:34:57 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 20:34:57 2018 +0000"
      },
      "message": "Merge \"Camera: listen to external camera provider\""
    },
    {
      "commit": "4fd7bbca1ff017e09f0ace53c3efa138074f8a14",
      "tree": "38b6302dc6d4c383459d251f9ed0975c1ab63b71",
      "parents": [
        "73808ad8339e6f1cab6ac6f68b51ee0460181230",
        "57abaabdaf7545c3cbf9b6b5a6c7d533a3311583"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jan 22 20:31:49 2018 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jan 22 20:31:49 2018 +0000"
      },
      "message": "Merge \"Camera: fix use after disconnect error\" am: 06d588e89b am: 677755f2e4\nam: 57abaabdaf\n\nChange-Id: I55d6931832e68549c2db3f7b4a992f605a2cb73d\n"
    },
    {
      "commit": "73808ad8339e6f1cab6ac6f68b51ee0460181230",
      "tree": "23cde86c6854e6443d4ae3784f98ea05872a4532",
      "parents": [
        "b83eb465cec04e2c1e7cc0e5d1f5076b4c61bace",
        "c28189a64a6ef65aecccb6e3bb980f1afc189a1c"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Jan 22 20:30:15 2018 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 22 20:30:15 2018 +0000"
      },
      "message": "Merge \"Camera: Add physicalCameraId to OutputConfiguration\""
    }
  ],
  "next": "57abaabdaf7545c3cbf9b6b5a6c7d533a3311583"
}
