)]}'
{
  "log": [
    {
      "commit": "0bdfa28ffa45b9bc45d78040ebbd96692ebdfdab",
      "tree": "946d517e494fae27fee45aa97bd91436cd4f50c8",
      "parents": [
        "7a0d96e9223a6a2b68f98b27e86d75a443080189"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 19 13:54:35 2020 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jun 19 15:26:15 2020 -0700"
      },
      "message": "Camera: Adjust documentation and comments for insensitive language.\n\nTest: Builds\nBug: 159480149\nChange-Id: I598b5638a7166d2b93bf90915e4d845773c4e215\n"
    },
    {
      "commit": "743f640339310f980cc6480514fb67bcd26cc717",
      "tree": "75f7c4cb4c3682850fddb8ff4080acd2307a4931",
      "parents": [
        "4e48c2477d084919f13ee191a6c36713d83063f3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 13:17:04 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jun 03 16:58:35 2020 -0700"
      },
      "message": "AudioFlinger: Fix read timestamp if HAL returns error\n\nTest: android.media.cts.AudioRecordTest#testTimestamp\nBug: 158112444\nChange-Id: Ibb35c6247ab94e63d586eddd1c95b7fc186e7822\n"
    },
    {
      "commit": "4e48c2477d084919f13ee191a6c36713d83063f3",
      "tree": "14f2b63319b45ba43108b1b318dceafa419543b8",
      "parents": [
        "1ae898a10c9f3c66dc7c58c7c9808bcc8411650a",
        "836f9df5638d4edc475a5a9a69f385ed83831da0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 03 00:50:10 2020 +0000"
      },
      "message": "Merge \"aaudio: disable exclusive mode after steal\" into rvc-dev"
    },
    {
      "commit": "a9d7640540c6a499c170072faa7d2d2b81d4ec34",
      "tree": "7ff70d2b96b1e944e7abd5961cfe33234b1a3f0e",
      "parents": [
        "044eaa62c79775870cbf08e323b152752edcfb9d",
        "8e544543add8e4e0e53f6b27a265254e6af2422b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 22:55:59 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 02 22:55:59 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: manager: fix patch list growing up\" into rvc-dev"
    },
    {
      "commit": "8e544543add8e4e0e53f6b27a265254e6af2422b",
      "tree": "00175e73755007accffd18f0b48d40a2360bc303",
      "parents": [
        "e0c3d791757109b0302cf74e7027bcada2221b1f"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon May 11 14:12:53 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 14:17:13 2020 -0700"
      },
      "message": "AudioPolicy: manager: fix patch list growing up\n\ncommit 3b17354a caused potential stale audio patches\nrecords in audio policy manager for patches associated\nwith audio flinger software patches sharing an output mixer.\n\nBug: 136121584\nTest: dumpsys media.audio_policy \u0026\u0026\nadb shell /data/nativetest64/AudioPolicyEmulatorTests/AudioPolicyEmulatorTests --gtest_filter\u003dAudioPatchTest/AudioModeBridgingTest.\n\u0026\u0026 dumpsys media.audio_policy:\nensure list of patches did not grow up\nTest: atest audiopolicy_tests\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ife8035dc2d2d9c0b568d6847ca5eb0d2cba77cea\n"
    },
    {
      "commit": "044eaa62c79775870cbf08e323b152752edcfb9d",
      "tree": "20c1160ca8d5e6f26cef06f80877453beb4701d6",
      "parents": [
        "f1a5f750ebc11f53846bd114f1caf0d43596a1d0",
        "33403f0ef8ec7e6217f4969879fa81101e6b84ee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 02 20:44:03 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 02 20:44:03 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: fix fast capture silence\" into rvc-dev"
    },
    {
      "commit": "836f9df5638d4edc475a5a9a69f385ed83831da0",
      "tree": "f23d43481b747647e20936462c435149aabba323",
      "parents": [
        "d40bc7615ff9bb6aac308083c51980437a9c6a21"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 29 13:20:28 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 01 15:24:44 2020 -0700"
      },
      "message": "aaudio: disable exclusive mode after steal\n\nPrevent a process that had its exclusive stream stolen\nfrom obtaining another exclusive stream.\nThis can prevent a collision between two processes after\nthey both try to open EXCLUSIVE streams after\na DISCONNECT event.\n\nBug: 157777324\nTest: adb shell test_steal_exclusive -r0 -d100\nChange-Id: I0fe12be95a8fbd05ed03f10796e1ca716025c885\n"
    },
    {
      "commit": "33403f0ef8ec7e6217f4969879fa81101e6b84ee",
      "tree": "6036db6c23094fc0aadb3703349aa97f0a86c5dd",
      "parents": [
        "ea63cf2b4479bcef697592e57025b63b60b2af4c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 29 18:35:06 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 29 18:44:33 2020 -0700"
      },
      "message": "AudioFlinger: fix fast capture silence\n\nSilencing fast catpure tracks was not properly implemented.\nFix by zeroing fast capture thread HAL read buffer if the silenced\ntrack is the only active, or by invalidating the silenced track\nif other non fast tracks are active.\n\nBug: 157708122\nTest: repro steps in the bug\nChange-Id: I88b19540815bc1491b9e76c1ae6b6f85e32afa8f\n"
    },
    {
      "commit": "09a88538622f7e97e3ec4ca7fe43e09bb60290e8",
      "tree": "3bbd430cd0fd5e3c9a4c04a0a91880e79c6c476a",
      "parents": [
        "701a08e2d4d991d076ec66a1b5929e1342c9bba5",
        "a21a3d3540689439043ce1559e82a8224d2f7088"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 30 01:04:38 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 30 01:04:38 2020 +0000"
      },
      "message": "Merge \"Additional mediametrics for MediaCodec\" into rvc-dev"
    },
    {
      "commit": "a21a3d3540689439043ce1559e82a8224d2f7088",
      "tree": "24bd0e01f1885c3371ad5f71f9a7c8c0bdbd863f",
      "parents": [
        "bf74c089dc2f02f46bfc252e02ddf12cbff9198e"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun May 10 21:08:10 2020 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Wed May 27 19:38:16 2020 -0700"
      },
      "message": "Additional mediametrics for MediaCodec\n\nbitrate + bitrate mode\nhandle updates to profile/level coming back from codec.\nlifetime of the codec\n\nBug: 139143194\nTest: instagram recording/playback\nChange-Id: Ic6f4074b65d1307782de4aeff4ed196218dfb00f\n"
    },
    {
      "commit": "3fdcc3469075ce68a9e419409819a605dea220d6",
      "tree": "c607df5759fd0000237c0847230b22129877f605",
      "parents": [
        "d46fedc30fe07f500f2e2681d2f8d8a8a794faa5",
        "6292112eca818eab9fa5056bc4a28092812b291b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 28 02:03:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 28 02:03:46 2020 +0000"
      },
      "message": "Merge \"Tracks: Stabilize the latency/startup metrics for BT\" into rvc-dev"
    },
    {
      "commit": "6292112eca818eab9fa5056bc4a28092812b291b",
      "tree": "1e37d150cd5325d37b7d1b115c18fc7e4e1c0d0c",
      "parents": [
        "b4a3b65d297a8436ba48138ce7ce2ba6b7a652b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 27 11:47:47 2020 -0700"
      },
      "message": "Tracks: Stabilize the latency/startup metrics for BT\n\nUse kernel timestamps instead of server timestamps.\nPostpone latency / startup collection until later\nto ensure BT is stabilized.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: Ie4e0658cedec13000f7b713407630e273df391b7\n"
    },
    {
      "commit": "1ea842e9b24b2e3fcb92afe90309ccd96a571a1d",
      "tree": "d795e6e97330a175fd197126045212f952146713",
      "parents": [
        "b4a3b65d297a8436ba48138ce7ce2ba6b7a652b8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 27 11:32:19 2020 -0700"
      },
      "message": "MediaMetrics: Update and clean proto formatting\n\nMake code compatible with both string\nand integer enumeration in the protos.\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: I0a1c21be711f82915f3bb403860b40c695a0587d\n"
    },
    {
      "commit": "666caaf1eeffd98cff00f25f8a3c84108d86ea42",
      "tree": "1ea57cc510d06e589f6821e241ff6de6ad91a1b3",
      "parents": [
        "557bdaa8d244b97afcdb75eeab06278a0fb93d6f",
        "3ab1b329780cdd4c93741128b0003bbaa4a7c938"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 22 00:00:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 22 00:00:16 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add and fix clang-tidy\" into rvc-dev"
    },
    {
      "commit": "3ab1b329780cdd4c93741128b0003bbaa4a7c938",
      "tree": "9d4002f18913fb752fc2e8f4aeb10c962fd38a6a",
      "parents": [
        "6296cc3b9c44867131e651ca058b56614cb4a472"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 18 10:47:31 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 21 09:36:52 2020 -0700"
      },
      "message": "MediaMetrics: Add and fix clang-tidy\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: Ia02fad2cbefdbfe3deba3897526a21dd88270c27\n"
    },
    {
      "commit": "eca178fbbf489c06f1dd275658dc8a438328565e",
      "tree": "17dce5b20fb79abf74ebbe776e94a9003d819a78",
      "parents": [
        "3bd241dcd726b2c4119a0b6bb1246bcdc513a912",
        "d1478ceafe5acf538e96f5d0e42dda92bbfb118e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 19 05:07:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 05:07:26 2020 +0000"
      },
      "message": "Merge \"cameraserver: system camera rules should be checked before making onPhysicalCameraStatusChanged callbacks.\" into rvc-dev"
    },
    {
      "commit": "3bd241dcd726b2c4119a0b6bb1246bcdc513a912",
      "tree": "54fe12c143c4045bc1fb35a52d62fe8858b65862",
      "parents": [
        "db0b34440ac627f7d153ec7849d7590ab199d334",
        "7ebbc11051f1af7a520e9ae7e582125c63e92f95"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 19 03:28:54 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 19 03:28:54 2020 +0000"
      },
      "message": "Merge \"aaudio: lock transport methods\" into rvc-dev"
    },
    {
      "commit": "7ebbc11051f1af7a520e9ae7e582125c63e92f95",
      "tree": "7605285baef0ae3c9e08a2a887af0fa4b4739628",
      "parents": [
        "05be7e510992ebf41919c84a26b38717a7f3211f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 13 15:55:17 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon May 18 16:23:28 2020 -0700"
      },
      "message": "aaudio: lock transport methods\n\nThe start/pause/stop/flush/close and other binder methods\nneed to be thread safe. They do not need to run\nin parallel. So a lock was added for each.\n\nWhere virtual methods are needed, the locked method calls\na corresponding _l submethod, eg. stop() calls stop_l().\n\nThe close logic was also simplified because the \"pending\"\ntechnique is not needed now that we have the locks.\nIt was only needed because a close could have occured\nwhile in the middle of another method.\n\nThis CL was merged with changes in RVC-DEV.\n\nBug: 153358911\nTest: adb logcat *:F\nTest: in another window:  test_binder_attack\nTest: There should be no fatal error in the logcat.\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I5920cf78af4501856756c5c2fc8e77758232508a\n"
    },
    {
      "commit": "d3d11c6dd5e520db0aba8ad17fdfe9f57d47a4df",
      "tree": "8e5eea63867d21226acdfa1e34a9f2839a10b08a",
      "parents": [
        "6021501137c85ac531ecdf0bb5a5c3bea4c72541",
        "e3cf41a2806834c4d678a78534134aeee4e12cc5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 18 20:18:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 18 20:18:29 2020 +0000"
      },
      "message": "Merge \"Set min_sdk_version (for non-mainline files)\" into rvc-dev"
    },
    {
      "commit": "0a37803c9c9432ab156ea40f52ae0f32da3bff9c",
      "tree": "7c7a417b457e701f0d23a1aa458b25b532734f63",
      "parents": [
        "f7d03e830d791cfcfc4540e290a48e06c4438207"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 15 11:35:12 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 15 11:43:00 2020 -0700"
      },
      "message": "MediaMetrics: Enable AudioPowerUsage to statsd\n\nTest: adb shell dumpsys stats --metadata | grep 275\nBug: 121318157\nChange-Id: Iba2416ceb4c113a8fc219f670c7f99ba55969efa\n"
    },
    {
      "commit": "09869a1c369e0edc421a379c2ffb3cb3afbbe392",
      "tree": "d687f660faef689641c3503573b708073d6f4d75",
      "parents": [
        "22e58223044a6910a1d92f2c6cef3c7b418c4d4f",
        "ea84038803580b4c35ce4cb60918c0c384127417"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 13 22:12:54 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 13 22:12:54 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Prepare statistics for protos\" into rvc-dev"
    },
    {
      "commit": "ea84038803580b4c35ce4cb60918c0c384127417",
      "tree": "d8c91402af2f630e4f1c36f7798d161767d01301",
      "parents": [
        "38e65911a65a51edf2efd5ca63c4e00daac24852"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 21:50:17 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 13 11:15:49 2020 -0700"
      },
      "message": "MediaMetrics: Prepare statistics for protos\n\n1) Add AudioRecord to Analytics trigger.\n2) Log RecordThread statistics.\n3) Rename DURATIONNS to EXECUTETIMENS to avoid confusion.\n4) Use streamType from server not client.\n5) Split MMAP types to MMAP_PLAYBACK and MMAP_CAPTURE.\n6) Use string flags for AudioTrack and AudioRecord.\n7) Compute underrun frames for MixerThread.\n8) Log BT connection state.\n\nTest: adb shell dumpsys media.metrics\nTest: atest mediametrics_tests\nTest: adb shell dumpsys stats --metadata\nBug: 149850236\nChange-Id: Iacf3f117c00ec9f377e62862080252aef9dc084f\n"
    },
    {
      "commit": "22e58223044a6910a1d92f2c6cef3c7b418c4d4f",
      "tree": "f29e3133eb02ab9b3e8415d18dfd630e4f81bc11",
      "parents": [
        "3e58083f214629ebc87cd0a0d965e84e673524f0",
        "e867578b74c62770971f64734d5e0729a870a4b0"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 13 04:55:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 13 04:55:28 2020 +0000"
      },
      "message": "Merge \"Camera3: Add flush support to HEIC composite streams\" into rvc-dev"
    },
    {
      "commit": "e867578b74c62770971f64734d5e0729a870a4b0",
      "tree": "90f507899ae0d082eab9ed82f3c04b3f41834b2a",
      "parents": [
        "40fae84d5e67baab376c831df2b1ad33f9b989ce"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Dec 05 09:12:14 2019 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue May 12 15:02:52 2020 -0700"
      },
      "message": "Camera3: Add flush support to HEIC composite streams\n\n- Handle various corner cases with regard to REQUEST_ERROR, RESULT_ERROR, and BUFFER_ERROR.\n- Drain the codec outputs in case the input buffer isn\u0027t dropped.\n- Allow APP_SEGMENT to drop while still producing valid output image.\n- Add a status tracker to manage active/idle state.\n- Use frame number as key for pending input frames since with ZSL, 2\ncapture result could have the same timestamp.\n- Also removed some deprecated variable/methods.\n\nTest: CTS, vendor testing\nBug: 145579077\nChange-Id: I9c3e929469b8fb75b32b016f9006036c954f663f\n"
    },
    {
      "commit": "d1478ceafe5acf538e96f5d0e42dda92bbfb118e",
      "tree": "508c7fd844d177479685a73f328f47c06b721e13",
      "parents": [
        "5120edaad25acb60218d81bde9a1e7b79ac3f143"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu May 07 17:35:23 2020 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon May 11 15:14:21 2020 -0700"
      },
      "message": "cameraserver: system camera rules should be checked before making onPhysicalCameraStatusChanged callbacks.\n\nBug: 152089822\n\nTest: GCA (sanity)\nTest: Camera CTS\n\nChange-Id: I1cdca010819550f9743f8a6d1c209b123cb16ba4\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "651d0a575517e0b1591715f74c862335ab04ac72",
      "tree": "1b3c7e1b59ba074aa676281dd908fd5e2aba95f8",
      "parents": [
        "05be7e510992ebf41919c84a26b38717a7f3211f"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 08 14:00:58 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri May 08 14:00:58 2020 -0700"
      },
      "message": "audioflinger: fix NUL terminator in dumpsys\n\nBug: 155096545\nTest: adb shell dumpsys media.audio_flinger | more\nTest: then search for \"Device\"\nTest: There should be no garbage characters on the next line.\nChange-Id: I798d914cede3f45151f97178de3ceee09b4e24c0\n"
    },
    {
      "commit": "05be7e510992ebf41919c84a26b38717a7f3211f",
      "tree": "3a79e37da026cb5068fd197d31dc1e0a7314bf26",
      "parents": [
        "07f031e889d78edd549d8ad4254cd31902b46479",
        "1c4794bfdee92c9491312432bd966d2439c49179"
      ],
      "author": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri May 08 18:26:31 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 18:26:31 2020 +0000"
      },
      "message": "Merge \"Support query encapsualtion modes and metadata types.\" into rvc-dev"
    },
    {
      "commit": "07f031e889d78edd549d8ad4254cd31902b46479",
      "tree": "b834592b9dfb110146c5664ecd6dbfb0f0925f81",
      "parents": [
        "e3469d1d6d7a8a894064e925b0770765bbe4bea0",
        "f7667505a23d017d984e03fbb71a6fc28be34449"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 01:27:35 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 01:27:35 2020 +0000"
      },
      "message": "Merge \"Force DIRECT flag on direct output thread.\" into rvc-dev"
    },
    {
      "commit": "e3469d1d6d7a8a894064e925b0770765bbe4bea0",
      "tree": "0e0b84a3912239aaf3452410bc19d1c2681c4acc",
      "parents": [
        "eaad70fbfcec64206f42a11071efa683efe0c3ab",
        "a77869d964afe3915ae6dfcb1b832a7ccb1fe308"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 08 00:53:00 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 08 00:53:00 2020 +0000"
      },
      "message": "Merge \"aaudio: process callbacks asynchronously\" into rvc-dev"
    },
    {
      "commit": "1c4794bfdee92c9491312432bd966d2439c49179",
      "tree": "0947f6dea04e00753357a87d2ab38cb9d6fd13e4",
      "parents": [
        "eaad70fbfcec64206f42a11071efa683efe0c3ab"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue May 05 10:08:05 2020 -0700"
      },
      "committer": {
        "name": "Jiabin Huang",
        "email": "jiabin@google.com",
        "time": "Fri May 08 00:37:55 2020 +0000"
      },
      "message": "Support query encapsualtion modes and metadata types.\n\nWhen a new device is attached to hardware module, query the HAL to get\nthe supported encapsulation modes and metadata types.\n\nTest: atest EnumDevicesTest, manually\nTest: atest audiofoundation_parcelable_test\nBug: 155799506\nChange-Id: I903e46e35a44416c9f2d206c128face8a6c61dcb\n"
    },
    {
      "commit": "a77869d964afe3915ae6dfcb1b832a7ccb1fe308",
      "tree": "37a516c20dbd10c7575cbe1ce90cb352dd6b49a5",
      "parents": [
        "686dac0cdb04834b889b1264f7a41c5d6ce25d2a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 07 10:39:47 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 07 14:33:39 2020 -0700"
      },
      "message": "aaudio: process callbacks asynchronously\n\nSpawn a thread to handle the disconnects for onRoutingChanged()\nand onTearDown(). This is to prevent deadlocks when calling back into\nAudioFlinger.\n\nBug: 155819038\nTest: See bug for repro steps with OboeTester\nTest: Also run TEST DISCONNECT in OboeTester. It was failing.\nTest: atest CtsNativeMediaAAudioTestCases\nChange-Id: I83212fea140d3b6beca9aa737606a77a7c97b007\n"
    },
    {
      "commit": "5298998e5749ce5883cda027b0791d071c4c8b0b",
      "tree": "2d5cd73553f7795e4dae085e1bddad5bc48686d3",
      "parents": [
        "ad531ce5d938385330ec260d4049914b354d1c37"
      ],
      "author": {
        "name": "Joey Poomarin",
        "email": "poomarin@google.com",
        "time": "Thu Mar 05 17:40:49 2020 +0800"
      },
      "committer": {
        "name": "Robert Lee",
        "email": "lerobert@google.com",
        "time": "Thu May 07 12:25:59 2020 +0800"
      },
      "message": "MediaMetrics: Implement audio power usage metrics\n\n- Trigger audio power usage logging when\n   1. endAudioIntervalGroup event for track/record\n   2. setMode to NORMAL for telephony\n- Aggregate audio usage by type and device\n- Send audiousage data every 24hrs by default, using property\n  persist.media.audio_power_metrics.interval_hr to config the interval\n- Add property persist.media.audio_power_metrics.disable to disable\n  audio power metrics\n\nBug: 121318157\nBug: 140909217\nTest: atest mediametrics_tests\nTest: adb shell dumpsys media.metrics --all\nChange-Id: I94ff00a5609a49c96a14827d3260d481c1310abe\nSigned-off-by: Robert Lee \u003clerobert@google.com\u003e\n"
    },
    {
      "commit": "e3cf41a2806834c4d678a78534134aeee4e12cc5",
      "tree": "98562f4fc57f3ca03b8d8e37afadcced6f15ad5c",
      "parents": [
        "ddd5870816f48e598e8c7e2c43940169f848c02f"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Apr 30 04:22:22 2020 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu May 07 03:15:31 2020 +0900"
      },
      "message": "Set min_sdk_version (for non-mainline files)\n\nModules contributing mainline modules (APK/APEX) should set\nmin_sdk_version as well as apex_available.\n\nFor now setting min_sdk_version doesn\u0027t change build outputs.\nBut build-time checks will be added soon.\n\nThis is second part of two CLs: covers non-mainline files\n\nBug: 152655956\nTest: m\nChange-Id: I55336e644990d3f175e0c011856b52ec600e452a\n"
    },
    {
      "commit": "f7667505a23d017d984e03fbb71a6fc28be34449",
      "tree": "45e9d5370330e051307878944a68468333892420",
      "parents": [
        "cc79094c69bdc85c7c8f52247a00bae1dff68473"
      ],
      "author": {
        "name": "yucliu",
        "email": "yucliu@google.com",
        "time": "Tue Apr 28 15:33:55 2020 -0700"
      },
      "committer": {
        "name": "Yuchen Liu",
        "email": "yucliu@google.com",
        "time": "Wed May 06 18:02:52 2020 +0000"
      },
      "message": "Force DIRECT flag on direct output thread.\n\nForce DIRECT flag if current playback thread is direct output thread.\n\nThis can happen when the playback is re-routed to direct output stream\nby dynamic audio policy.\n\nBug: 130296239\nTest: manual\nChange-Id: I24efd87f74bacf6b769d3663e9521eb27b1704e9\n"
    },
    {
      "commit": "cc79094c69bdc85c7c8f52247a00bae1dff68473",
      "tree": "ae20e4e48fc2ccda1611c3010b378e4dc34b2e63",
      "parents": [
        "b3cedfdf595bbb3538a7a6e36b70de5e62a58fa1",
        "12c7ec759a2629c2b11861ec89fd8a3bef778d39"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Wed May 06 16:59:34 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 16:59:34 2020 +0000"
      },
      "message": "Merge \"Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\" into rvc-dev"
    },
    {
      "commit": "b3cedfdf595bbb3538a7a6e36b70de5e62a58fa1",
      "tree": "ed9f3624e2615c3260276284eaaafdba4469e179",
      "parents": [
        "40fae84d5e67baab376c831df2b1ad33f9b989ce",
        "ce9b66343a4bbd570bddbd8916279af612d6341f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 02:53:29 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 06 02:53:29 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add device-based actions for Bluetooth\" into rvc-dev"
    },
    {
      "commit": "ce9b66343a4bbd570bddbd8916279af612d6341f",
      "tree": "2285bebd7f0bd11fe8553a0e470ff993bba98747",
      "parents": [
        "25b1e25a724ac10547670382745789bdf8a18e0b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 28 20:15:17 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 05 17:46:17 2020 -0700"
      },
      "message": "MediaMetrics: Add device-based actions for Bluetooth\n\nLog summary group statistics by device.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: I31fef89fa020de175e59784049ef4741914f3a2c\n"
    },
    {
      "commit": "686dac0cdb04834b889b1264f7a41c5d6ce25d2a",
      "tree": "e62aea3a7797665dd7a839e1c5072dfd494bf3be",
      "parents": [
        "789d4e903e47669066a5fe4c3b05360e83ee012b",
        "6e463ce6fc456a3c185b80086d3605e2189eccd6"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 11:08:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 05 11:08:28 2020 +0000"
      },
      "message": "Merge changes I7f8339d8,Idff0c394 into rvc-dev\n\n* changes:\n  aaudio: steal exclusive streams\n  aaudio test: test stealing an exclusive stream\n"
    },
    {
      "commit": "6e463ce6fc456a3c185b80086d3605e2189eccd6",
      "tree": "5c897c19218b6ab714ad781076018079ef2b0240",
      "parents": [
        "4756a9f78b39c7aad0bd79c18b97bf8ed00b4bc6"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 13 10:20:20 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue May 05 02:54:41 2020 -0700"
      },
      "message": "aaudio: steal exclusive streams\n\nAn app (B) that asks for an exclusive stream can steal\nan exclusive stream from an earlier app (A).\nApp B will be given the MMAP resource as a SHARED stream.\nThe stream for app A will be disconnected and released\nby the service.\nIf app A reopens a stream then it will get a SHARED\nstream.\n\nThe order of the opening of the streams is controlled by using a\nrecursive_mutex in AAudioService::openStream().\n\nBug: 129846760\nTest: media/libaaudio/tests/test_steal_exclusive.cpp\nTest: also\nTest: Launch AudioTroubleMaker. It should say \"EXCLUSIVE\".\nTest: Press Home button.\nTest: Siren sound from AudioTroubleMaker should continue.\nTest: Launch OboeTester\nTest: TEST OUTPUT, then Open, Start\nTest: You should get an MMAP SHARED stream on Pixel.\nTest: Go back to AudioTroubleMaker. It should say \"SHARED\".\nChange-Id: I7f8339d8ed62546520a9b46ed398418b41ca2832\n"
    },
    {
      "commit": "12c7ec759a2629c2b11861ec89fd8a3bef778d39",
      "tree": "f6761f74625adddd3853d93fd8d5e92a7f388950",
      "parents": [
        "ffffffc42242cf06c433e4e4958d7991a7e2848c"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Mon May 04 17:40:52 2020 +0000"
      },
      "committer": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Mon May 04 18:06:32 2020 +0000"
      },
      "message": "Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\n\nRevert \"Add isUidActiveOrForeground() for camera/audio to use.\"\n\nRevert \"Add isUidActiveOrForeground for camera/audio to use.\"\n\nRevert submission 10829580-isUidForeground\n\nReason for revert: In CameraService.cpp, before this change, around \"am.isUidActive\", there was up to 300 ms retry. After this change, the code could move forward fast without retry, but at \"mAppOpsManager-\u003estartOpNoThrow\" call, for the same reason as uid is not updated fast enough, \"mAppOpsManager-\u003estartOpNoThrow\" could also fail.\n\nThis CL does not really fix the root cause, but it changes the timing and now the code fails at \"mAppOpsManager-\u003estartOpNoThrow\" call.\n\nAlso the timing change may also cause recent multiple CTS test failures.\n\n\nBug: 154570809, 155032617, 154849083\n\nReverted Changes:\nIffed63293:Add isUidActiveOrForeground() for camera/audio to ...\nI3685e0c8d:Add isUidActiveOrForeground() for camera/audio to ...\nI51ed1fe78:Add isUidActiveOrForeground for camera/audio to us...\n\nChange-Id: I8acde2524201b6c6d0d5c0ff9cfb2053ffbcb8ef\n"
    },
    {
      "commit": "6ffc516235c5bdda22b06afc7f840ce2a60dc79e",
      "tree": "5929e758151a2343edc6f867873d7023ee7c88e4",
      "parents": [
        "2fc997ef3107415ba111cbe64d4355059830d85f",
        "12b716ce09943cc7b427f192d986e6830822c166"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon May 04 16:30:09 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 16:30:09 2020 +0000"
      },
      "message": "Merge \"Enforce basic thread safety in Audio Policy Service\" into rvc-dev"
    },
    {
      "commit": "2fc997ef3107415ba111cbe64d4355059830d85f",
      "tree": "24d9b2dbe9f7b9d590ac8cbc8486c7ef1510d1bc",
      "parents": [
        "ef9abae0c7f05913cddb3e87566aa4d64b6f353f",
        "9bf8a6fcf9800df24961d2a4691fee7cccb242e9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 05:28:39 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 04 05:28:39 2020 +0000"
      },
      "message": "Merge \"Camera: Initialize preCorrectionActiveArraySize\" into rvc-dev"
    },
    {
      "commit": "9bf8a6fcf9800df24961d2a4691fee7cccb242e9",
      "tree": "18213271661c1cdadb629c9d0c6113455fb3692d",
      "parents": [
        "241746e794c0e160a18fcd2ddf989584e81f3dad"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri May 01 09:49:04 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Sat May 02 22:28:27 2020 -0700"
      },
      "message": "Camera: Initialize preCorrectionActiveArraySize\n\nHandle the case where the HAL doesn\u0027t advertise\npreCorrectionActiveArraySize by initializing it to activeArraySize.\n\nTest: \"dumpsys media.camera\" before and after the change\nBug: 145300768\nChange-Id: I1281686d9b324793a4a99c6a4ddf5d693172507b\n"
    },
    {
      "commit": "029f52b0d1c235f83723d22533fb9f129b172f24",
      "tree": "53d5d50b4ba6fa4f62851bebd610213aed9561b5",
      "parents": [
        "12a6940bb181aae48383e9365b6ab62e24663bfd"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Thu Apr 30 14:39:39 2020 -0700"
      },
      "committer": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Sat May 02 00:29:57 2020 +0000"
      },
      "message": "Replace direct pid writes with setting task profiles\n\nFor easy transition from SchedTune to UtilClamp, direct access to these\ncgroups should be abstracted by using task profiles. Replace writepid\ncommands with new task_profiles command.\n\nBug: 155419956\nTest: change .rc file and confirm task profile is applied\nSigned-off-by: Suren Baghdasaryan \u003csurenb@google.com\u003e\nChange-Id: Id00370b25af973a4b3813a4a1d6ccbd1e555c87f\nMerged-In: Id00370b25af973a4b3813a4a1d6ccbd1e555c87f\n"
    },
    {
      "commit": "12b716ce09943cc7b427f192d986e6830822c166",
      "tree": "9c3d2d8e77a1db06766593f620e37b9e3686d48d",
      "parents": [
        "929c3645336dd0e01d3f61ffaedc95fe417ab1bb"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 30 22:37:43 2020 +0000"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri May 01 23:29:38 2020 +0000"
      },
      "message": "Enforce basic thread safety in Audio Policy Service\n\nEnable clang thread safety analysis. Convert comments on TS\ninto directives. Fix missing lock acquisitions. Add missing\ndefault initializers for the fields of UidPolicy and\nSensorPrivacyPolicy\n\nAlso remove unused fields mpAudioPolicyDev and mpAudioPolicy\nfrom AudioPolicyService.\n\nTODO: Consider protecting pointers to command threads,\nAPM instance and the client, and system usages with a separate\nlock.\n\nBug: 70398235\nBug: 155336464\nTest: make, flash, and test audio on device\n      execute \"adb shell cmd media.audio_policy\" commands\nChange-Id: I47b132c8b5c977812fad5c89fa57882a37779c18\nMerged-In: I47b132c8b5c977812fad5c89fa57882a37779c18\n"
    },
    {
      "commit": "25b1e25a724ac10547670382745789bdf8a18e0b",
      "tree": "0cdad164ce8e7c534d0c0bfcb70290397c98e673",
      "parents": [
        "31300b43da852e6eeb93791361ece11015963cf4",
        "cf10d743aedcd29a53f3a4f16a25565f5b462dd8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 01 19:59:16 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:59:16 2020 +0000"
      },
      "message": "Merge \"ThreadMetrics: Add device-based statistics for audio\" into rvc-dev"
    },
    {
      "commit": "31300b43da852e6eeb93791361ece11015963cf4",
      "tree": "c34b92381b740682048d7be61da9769a0450117d",
      "parents": [
        "17f951088b42c4f399e1c18b65f1ffebee48fa80",
        "c2b11cbcb88c5970fb4ec6ff8a562b1465dfa70a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 01 19:57:50 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 19:57:50 2020 +0000"
      },
      "message": "Merge \"TrackMetrics: Add device-based statistics for audio\" into rvc-dev"
    },
    {
      "commit": "17f951088b42c4f399e1c18b65f1ffebee48fa80",
      "tree": "3455820b06beee3f5b10d0272ad348a11b74e722",
      "parents": [
        "fc8cd670b78d399981f95209e410e155c6bce43d",
        "7ffbd9898911062cea59c1c6b39875be88b66eb3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 18:00:47 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 18:00:47 2020 +0000"
      },
      "message": "Merge \"Camera: Fix potentail race condition\" into rvc-dev"
    },
    {
      "commit": "74dc21be3318f53013d099b6cbf235430296fa08",
      "tree": "4f0aa53d433fe43664222fa2665c409302e3092e",
      "parents": [
        "36c77d400c1e86b0aab5d529f061c158a674a122",
        "68eb212b74e31e43ffa112586cd056a6cf402bfb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 02:09:56 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 02:09:56 2020 +0000"
      },
      "message": "Merge \"audio policy: add ECHO_REFERENCE to virtual audio sources\" into rvc-dev"
    },
    {
      "commit": "36c77d400c1e86b0aab5d529f061c158a674a122",
      "tree": "0cb0664fc1e1ba3c9b645f8506f6f8486104869c",
      "parents": [
        "f872f885531a3dfaddc0e6f95c01117d151145e5",
        "c64e0ab206323877dc4bc6cdefa509c0e8f5e08f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 00:47:08 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 01 00:47:08 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash if output for DAP is not opened\" into rvc-dev"
    },
    {
      "commit": "68eb212b74e31e43ffa112586cd056a6cf402bfb",
      "tree": "31cf2d726a1727955093c7a543e3a745cfcc7875",
      "parents": [
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 17:40:57 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 17:40:57 2020 -0700"
      },
      "message": "audio policy: add ECHO_REFERENCE to virtual audio sources\n\nWhen ECHO_REFERENCE audio source was added, it was omitted\nfrom the list of virtual audio sources (sources protected by privileged\npermission not accessing the mic). This prevents from capturing echo\nreference at the same time as the input from mic.\n\nBug: 154639757\nTest: test app on yukawa\nChange-Id: Ib12e8c817dec7c3f4d3f3f7e7403330c88cead52\n"
    },
    {
      "commit": "cf10d743aedcd29a53f3a4f16a25565f5b462dd8",
      "tree": "17f4ba2cd404347873f8f059d620a2ec890a7529",
      "parents": [
        "c2b11cbcb88c5970fb4ec6ff8a562b1465dfa70a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 28 15:38:24 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 30 17:39:50 2020 -0700"
      },
      "message": "ThreadMetrics: Add device-based statistics for audio\n\nCompute summary statistics based on the current device\nrather than the entire Audio Thread duration.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: Ie6d459b06b4a469401ee9e0c194e45ea5ce380c6\n"
    },
    {
      "commit": "c2b11cbcb88c5970fb4ec6ff8a562b1465dfa70a",
      "tree": "dedee4f6e9c95af20ef76e79bddbc79ed850781a",
      "parents": [
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 09:04:01 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 30 17:18:26 2020 -0700"
      },
      "message": "TrackMetrics: Add device-based statistics for audio\n\nCompute summary statistics based on the current device\nrather than the entire AudioTrack or AudioRecord duration.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: Ia3a5707c43c4530f5a6ac90f52901bd2e0bd0bab\n"
    },
    {
      "commit": "c64e0ab206323877dc4bc6cdefa509c0e8f5e08f",
      "tree": "e52e7cac0bccd47305ab7e571d132c8f9737c8a2",
      "parents": [
        "199012b0c66d555207d81fedb7cce16305c865f8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 15:59:34 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 15:59:34 2020 -0700"
      },
      "message": "audio policy: fix crash if output for DAP is not opened\n\nFix crash in getOutputForAttrInt() if the output corresponding to\nthe mix returned by AudioPolicyMix is not opened and the device\nselected by the mix is not attached.\nBefore commit c529cf6f, a policy mix without opened output would not\nbe retuned by AudioPolicyMix.getOutputForAttr(). With direct\noutput suppoort, this is possible but should be ignored if the device\nselected by the policy mix is not attached.\n\nBug: 155430290\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual mirroring and car projection tests\nChange-Id: I66be4a3c5fb8b9ae0674c0f1e6e39de7f18ed2fb\n"
    },
    {
      "commit": "f872f885531a3dfaddc0e6f95c01117d151145e5",
      "tree": "ff81793d1aed4885b058ef008dae9e0461aebff6",
      "parents": [
        "95963560affebd3ef4aa5248a939182f38259580",
        "0d0191e6788af367ca6c3a563c8085ccac458341"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 30 21:11:12 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 21:11:12 2020 +0000"
      },
      "message": "Merge \"Camera: Skip session parameters in case of abandoned streams\" into rvc-dev"
    },
    {
      "commit": "929c3645336dd0e01d3f61ffaedc95fe417ab1bb",
      "tree": "115acc7fe0d7eac74ec7aefb26c3da6aff4aafd5",
      "parents": [
        "51fd7f1eba0e60da89549424e534c041ca0b235e",
        "d20e9366519b44218894df3a1e9e05611eef223d"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Apr 30 17:12:33 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 17:12:33 2020 +0000"
      },
      "message": "Merge \"RELAND: \"stagefright: MediaCodec::releaseAsync()\"\" into rvc-dev"
    },
    {
      "commit": "2c4f8cec92e58141b2e8b246ef8dfe94d250be22",
      "tree": "8d0c44463f390fb88559c8fc499cdc2d20f34c7c",
      "parents": [
        "55bfd11fd19949f9a657eda09053901a2515060a",
        "0e26e3f980a9904f23f24b0390844dcfeedd1418"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:16:23 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 30 00:16:23 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix areAllDevicesSupported()\" into rvc-dev"
    },
    {
      "commit": "0e26e3f980a9904f23f24b0390844dcfeedd1418",
      "tree": "537c172187d9dd6bf3155c0a2a9c85c7b0a06669",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 29 14:24:16 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:15:50 2020 +0000"
      },
      "message": "Audio policy: fix areAllDevicesSupported()\n\nFix areAllDevicesSupported() where HwModules.getDeviceDescriptor()\nmust be called with matchAddress \u003d\u003d true: if the caller does not want to\ndistinguish on address it can leave the address field empty in the\nAudioDeviceTypeAddr passed which has the same effect as using\nmatchAddress \u003d\u003d false.\n\nAlso fix places where device_distinguishes_on_address() was improperly\nused in place of audio_is_remote_submix_device().\n\nBug: 155224229\nTest: build and launch car emulator\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual mirroring and car projection tests\nChange-Id: I74295de95bcd82e7fa439c396ae32749b9c70c05\n"
    },
    {
      "commit": "0d0191e6788af367ca6c3a563c8085ccac458341",
      "tree": "a7dade403e7c060aa17b2ab3dc3faff226437c52",
      "parents": [
        "55bfd11fd19949f9a657eda09053901a2515060a"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Apr 21 17:01:18 2020 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Apr 29 23:46:34 2020 +0000"
      },
      "message": "Camera: Skip session parameters in case of abandoned streams\n\nSession parameter application may require an internal stream\nre-configuration. Sometimes clients can abandon one ore more\nregistered outputs before changing a session parameter value.\nEven if the new capture request doesn\u0027t reference the\nabandoned surfaces the session parameter cannot be properly\nconfigured. Keep the camera service behavior consistent with\nolder versions by skipping the internal stream\nre-configuration.\n\nBug: 113513019\nTest: Camera CTS\nChange-Id: I8fb49b59ae0aecf537484a7238fe7a8a5d3efe64\n"
    },
    {
      "commit": "26f937a4c27a91f53e08ab6a584b0db81e9e0b66",
      "tree": "5ffe17f6df7db73d185a8b9537a97f93b28f1268",
      "parents": [
        "b79d3b8d4bfafc8600e4b01d8bf5d88f76876c63",
        "9b0d9534c75dc4d40edbf13938aa09c3eec737a1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 29 23:00:11 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 29 23:00:11 2020 +0000"
      },
      "message": "Merge \"Camera: Fix off-by-1 error for scaling crop region\" into rvc-dev"
    },
    {
      "commit": "0a957d32556294b0f4209bb5b7914fd05d742751",
      "tree": "5890a5b9d69c9df0905b8652cb30e274c08b6d81",
      "parents": [
        "ec660f185a1e212b1d22125de81e9bd1d0ff58a3"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 29 10:56:20 2020 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Apr 29 10:56:20 2020 -0700"
      },
      "message": "Check silent mode when updating output device.\n\nAfter refactoring audio device type, the output devices will only be set\nwhen create/release audio patch. In that case, the output devices are\nempty when creating the thread. If the \"ro.audio.silent\" is set, it will\nmake master muted if the output devices are empty. To fix the issue, do\nnot check silent mode when the output devices are empty, but check\nsilent mode when output devices are updated.\n\nTest: atest AudioHostTest with setting \"ro.audio.silent\"\nBug: 154037767\nChange-Id: I6cb219353e541ba99ba9acebd6ce853128d963d3\n"
    },
    {
      "commit": "d20e9366519b44218894df3a1e9e05611eef223d",
      "tree": "771e1b1b87be2b89a6697ab51a1405e5ddceeed7",
      "parents": [
        "2578a95a57dd9796b55095dc22b8171dd5da73c3"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Apr 28 10:42:57 2020 -0700"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Tue Apr 28 19:30:14 2020 -0700"
      },
      "message": "RELAND: \"stagefright: MediaCodec::releaseAsync()\"\n\nAt async release, set to stub surface to free up the current surface.\n\nBug: 129008570\nTest: atest CtsMediaTestCases -- --module-arg CtsMediaTestCases:size:small\nTest: manual app test\nChange-Id: I2d90bd37b2be5324199410e1f776afb9cb19d662\n"
    },
    {
      "commit": "ec660f185a1e212b1d22125de81e9bd1d0ff58a3",
      "tree": "2895b3bb6e630fe798eb3345f25942186a0734df",
      "parents": [
        "6d05a57e70a66ce0864db0387eb40df48d52bc4a",
        "c08f261af02a7678e81f6c1c2ca5c8453b5cfc0e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 28 16:28:07 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 28 16:28:07 2020 +0000"
      },
      "message": "Merge \"fix audioflinger integer multiplication overflow\" into rvc-dev"
    },
    {
      "commit": "6d05a57e70a66ce0864db0387eb40df48d52bc4a",
      "tree": "115e842644461e9c2947d4fe34f983896c0075aa",
      "parents": [
        "5559ae7c9dabaf8b0bbfaf7553fef050f008f425",
        "c529cf6fa9b500506d675ec971909dba18cfb71b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 15:35:46 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 28 15:35:46 2020 +0000"
      },
      "message": "Merge \"audio policy: allow direct outputs for dynamic audio policies\" into rvc-dev"
    },
    {
      "commit": "d203eb6b3cd99af3c9616df2bd0d982796b0f918",
      "tree": "0f2cfa6c24a30d32913de484c6dd52514b37a9a3",
      "parents": [
        "2578a95a57dd9796b55095dc22b8171dd5da73c3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 09:12:46 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 27 23:42:41 2020 -0700"
      },
      "message": "MediaMetrics: Use AllowUid property for services to control client access\n\nRemove implicit first client uid access.\n\nTest: adb shell dumpsys media.metrics\nBug: 149850236\nChange-Id: I4f953db4688bf5f174c3e1611f492f31d2926e96\n"
    },
    {
      "commit": "c08f261af02a7678e81f6c1c2ca5c8453b5cfc0e",
      "tree": "0856b7fce43c4044a150cfdd52a19475cc09820b",
      "parents": [
        "433ccf7dca6db9ffd774cd10d539ccf9d62e3f46"
      ],
      "author": {
        "name": "wendy lin",
        "email": "wendy.lin@mediatek.com",
        "time": "Wed Jun 12 10:37:11 2019 +0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 27 16:04:37 2020 -0700"
      },
      "message": "fix audioflinger integer multiplication overflow\n\nwhen underrun duration is over 3 sec, overflow happens\nfor multiplication of nsec\u003dsec*1000000000. Use correct format transform\nto solve it.\n\nBug: 135075416\nTest: run MTBF test\n\nChange-Id: I0a09ca41f2fad055ce0cfa18f936131b7a630f52\n"
    },
    {
      "commit": "c529cf6fa9b500506d675ec971909dba18cfb71b",
      "tree": "ebd662d9270ac9ca37849fa7a44b16fe73cd4abd",
      "parents": [
        "02d69c15b683418de39901a74f1eea8ddbfcbf40"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 17 18:19:10 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 27 14:42:06 2020 -0700"
      },
      "message": "audio policy: allow direct outputs for dynamic audio policies\n\nAdd support for direct outputs with RENDER audio policy mixes.\nA mix of type render can be registered even if no corresponding\noutput is opened to reach targeted device provided a direct output\nprofile exist for this device.\n\nAlso:\n- Fix setUidDeviceAffinities(): was not closing direct outputs\nopened by checkOutputsForDevice() and was not re-evaluating routes\n\n- Fix removeUidDeviceAffinities(): was not re-evaluating routes\n\n- Implement consistent sanity checks on selected devices in\nsetUidDeviceAffinities(), setUserIdDeviceAffinities() and\nsetPreferredDeviceForStrategy().\n\n- Fix onNewAudioModulesAvailableInt(): attached devices reachable only\nvia direct outputs were not loaded.\n\nBug: 130296239\nTest: AudioHostTest\nTest: AudioServiceHostTest\nTest: audiopolicy_tests\nTest: manual test: Auto projection over USB, screen mirroring\nChange-Id: I54470b61b4bc7e041e3a295764d368c5ded21268\n"
    },
    {
      "commit": "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847",
      "tree": "7d2a46abbe29eb5b8ce6afacdf673eab55823ba5",
      "parents": [
        "784745befac68d978fe7abf09f0aeea33fb0e4ff",
        "a9876703e89afa6db42913d48e2360b7dad98725"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 24 14:30:58 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev"
    },
    {
      "commit": "a9876703e89afa6db42913d48e2360b7dad98725",
      "tree": "4e51b01b2fa4be83868318a1619e3b7c2f42f36e",
      "parents": [
        "6e89a0704605f4750f87a3243495b175c67e6fbb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Apr 20 18:16:15 2020 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Apr 23 18:00:10 2020 -0700"
      },
      "message": "aaudio: add MediaMetrics for MMAP streams\n\nLog events from service.\nLog start, stop, disconnect and other events.\nLog underruns and bufferSize.\n\nBug: 154543374\nTest: adb shell dumpsys media.metrics --clear\nTest: run an app that uses MMAP, like OboeTester\nTest: adb shell dumpsys media.metrics\nTest: Expect to see lots of \"audio.stream\" events.\nChange-Id: I690e5226b695d53d038d644f4438c759e08f9fbb\n"
    },
    {
      "commit": "7d947b361853035f3c1eefdb5a65ac2c9da3982f",
      "tree": "76b1fb9b7cfd36f1f9863ff1488160b30670ef27",
      "parents": [
        "02ec2d9d9a0040d4565e038a0291ca5b862a3a41",
        "00abf0d08363d063bd5ea6e35a71c54f16f3ed31"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 23 21:47:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 23 21:47:28 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: fix getMicrophones implementation\" into rvc-dev"
    },
    {
      "commit": "9b0d9534c75dc4d40edbf13938aa09c3eec737a1",
      "tree": "8497e2d67c87e7ba12b86bf7bd07d2cf7a531e1a",
      "parents": [
        "ec77ef69320225579dbee12b5199442fe3e669ca"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Apr 14 17:14:20 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Apr 23 12:19:22 2020 -0700"
      },
      "message": "Camera: Fix off-by-1 error for scaling crop region\n\nMake sure the scaling of coordinates based on zoomRatio is symmetric\nrelative to the center of the image. And use the center of the pixel\nfor calculation.\n\nTest: testZoomRatio, testDigitalZoom, cameraservice_test\nTest: vendor testing\nBug: 153959755\nChange-Id: I966bd31bde5afd50462a018590c7a4fefc3eaac6\n"
    },
    {
      "commit": "00abf0d08363d063bd5ea6e35a71c54f16f3ed31",
      "tree": "1d9de701622390a7d3db05b77393ad238b8d35f6",
      "parents": [
        "369ad274564c02b79c15b13e8e69ccb73080d6fb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 22 19:28:22 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 23 09:04:24 2020 -0700"
      },
      "message": "AudioFlinger: fix getMicrophones implementation\n\ngetMicrophones() should return aggregated mic information\nfrom all HW modules, not just primary.\n\nAlso:\n- Fix assignment of mPrimaryHardwareDev that should be\nfirst from HW module name and then according to primary output\nif no module with name \"primary\" is loaded.\n\n- Make sure we do not dereference mPrimaryHardwareDev if null.\nNote that this should not happen with current rule that a primary module\nmust be present.\n\n- Implement consistent locking scheme where both mPrimaryHardwareDev and\nmAudioHwDevs are guarded by mHardwareLock\n\nBug: 154772890\nTest: AudioManagerTest#testGetMicrophones\nChange-Id: I7c9449bb705a6fbebdc0642166e58348d47b7ee8\n"
    },
    {
      "commit": "7d391087f86cee1c4dc87c03e5549aa4359ddfe6",
      "tree": "e67969f57ea54f0beaa950d6f5c9351e5182ee72",
      "parents": [
        "369ad274564c02b79c15b13e8e69ccb73080d6fb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 18 15:03:51 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 22 16:32:38 2020 -0700"
      },
      "message": "MediaMetrics: Misc fixes\n\nRemove unneeded headers from MediaMetricsItem.\nOptimize map writes with emplace_hint.\n\nTest: atest mediametrics_tests\nBug: 149850236\nChange-Id: Ice6fddb8402a5ccbf1df6e6e02fa4aae4c1b42d5\n"
    },
    {
      "commit": "718f96b3bb80a72cda547f2a345e23e595bf7fbb",
      "tree": "595a94dbf7e6b8fb7f853a4bca5669830b56beaf",
      "parents": [
        "e202fc24bc2b4916ddfd8e52b5a7bffb9b5898e9",
        "f7c14104673750445bd1c2553021fd61aaeb7f2c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 21 04:19:04 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 21 04:19:04 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add thread-safety checking\" into rvc-dev"
    },
    {
      "commit": "f7c14104673750445bd1c2553021fd61aaeb7f2c",
      "tree": "bbdef5be71641b2b894f543a36472f0f581e581a",
      "parents": [
        "a6127a935639f127db56974851abc2dda360eca2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 18 14:54:08 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 20 18:07:51 2020 -0700"
      },
      "message": "MediaMetrics: Add thread-safety checking\n\nTest: atest mediametrics_tests\nBug: 70398235\nBug: 149850236\nChange-Id: I288ef92e6444785e02043c2629355c229c14e85c\n"
    },
    {
      "commit": "afee5576faeef5d557a4dbd233250eb6a8ca8e1e",
      "tree": "c2de0ae50aeabfd1077f3e0edf11b252f5d0fc64",
      "parents": [
        "ccc44f3f72a8d65c1d9fa829515eab478c647ebc",
        "99a3463d17da6c287e6db05790372b5b943d6468"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 19:25:21 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 20 19:25:21 2020 +0000"
      },
      "message": "Merge \"audio policy: fix volume for unsupported device\" into rvc-dev"
    },
    {
      "commit": "99a3463d17da6c287e6db05790372b5b943d6468",
      "tree": "acda2bb9a80c4b740768eccd3a1f31c950a090b1",
      "parents": [
        "a4cfeca69f76fbd2eedd6217b058d118844a5d4c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 16 16:52:38 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 16:30:13 2020 +0000"
      },
      "message": "audio policy: fix volume for unsupported device\n\nDo not allow changing volume on an output when\nthe specified device is not supported by the\ncorresponding output profile.\n\nThere is a similar sanity check in setOutputDevices()\nbut there was none in AudioOutputDescriptor::setvolume().\n\nBug: 153411189\nTest: atest AudioManagerTest\nTest: manual audio smoke tests\nChange-Id: I539697c54d70c442ba1ce38d212b43cd3ef0138c\n"
    },
    {
      "commit": "27cf37ca3ed87077c4beaceb2f7373c98e16737c",
      "tree": "f22fffa28ae98f0bb8319aaa0a5a82f15ed8fb89",
      "parents": [
        "a6127a935639f127db56974851abc2dda360eca2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 14 14:47:01 2020 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 17 01:54:47 2020 +0000"
      },
      "message": "audio: Centralize audio configuration paths specification\n\nThe list of possible paths for the audio configuration\nfiles is now retrieved using audio_get_configuration_paths()\nfunction. All duplicated lists of known configuration\ndirectories have been removed.\n\nBug: 153680356\nTest: test audio on built image working\n      atest VtsHalAudioV6_0TargetTest VtsHalAudioPolicyV6_0TargetTest\nChange-Id: I8c369442f5ca7baa17df95e6a001396fc9de5681\nMerged-In: I8c369442f5ca7baa17df95e6a001396fc9de5681\n"
    },
    {
      "commit": "ec77ef69320225579dbee12b5199442fe3e669ca",
      "tree": "2003bdf216eae4a09956727b820bf7e94b9884f1",
      "parents": [
        "f8673bf03d095bf9c9b3fe89b88b5df64c37060a",
        "2c656796f416401ae48cd4a2e313dcb9e3aa256b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 14 21:06:18 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 21:06:18 2020 +0000"
      },
      "message": "Merge \"Camera: Handle the case of calling Uid being cameraserver\" into rvc-dev"
    },
    {
      "commit": "2c656796f416401ae48cd4a2e313dcb9e3aa256b",
      "tree": "32f9cfe2e8d6fa552d24a5c1c9bbbafb6607a3f5",
      "parents": [
        "7e540682b362a3e8679e274084aeaefdf01314da"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Apr 13 17:36:49 2020 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Apr 14 09:39:35 2020 -0700"
      },
      "message": "Camera: Handle the case of calling Uid being cameraserver\n\nWith HAL1-camera2 legacy implementation, the getCameraCharacteristics\nmay be called without camera permission. So the cameraserver\u0027s Uid is\nused in that case.\n\nAppOpsManager returns MODE_IGNORED when the cameraserver\u0027s Uid is passed.\nDo not treat this as an error case.\n\nBug: 153511543\nTest: On Pixel 2 device, run \"adb root; adb shell setprop\npersist.camera.HAL3.enabled 0; adb reboot\", then \"atest\ncts/tests/camera/CaptureRequestTest\"\n\nChange-Id: I29aaa2045b14233537c737bf0738fbc32422540e\n"
    },
    {
      "commit": "9b8c695c4879c2e28ee359cc55d6101da8931a9e",
      "tree": "a33496cdd3d5191b868ec2435c453f3908fd0ed2",
      "parents": [
        "7feb854e9ff78e8ca64e012af874503569905924",
        "26874fed269f1f88d5e9eaef831d0d4c14ba74be"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 01:52:49 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash in findPreferredDevice() on duplicating outputs\" into rvc-dev"
    },
    {
      "commit": "26874fed269f1f88d5e9eaef831d0d4c14ba74be",
      "tree": "1b53a2407f10fbf3197a7859d24899f79cb8fd1f",
      "parents": [
        "141095dce0006e73b7941367c4b03f64c6ae997d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 15:52:39 2020 -0700"
      },
      "message": "audio policy: fix crash in findPreferredDevice() on duplicating outputs\n\nDuplicating outputs do not have an associated IOProfile and\ngetPolicyAudioPort() returns null.\n\nAdd a method to AudioIODescriptorInterface to query if the\ninput or output descriptor corresponds to MMAP IO profile or not.\n\nBug: 153849965\nTest: repro steps in the bug\nChange-Id: I300356880198f1785e3a5e1359ffd393c6ae4190\n"
    },
    {
      "commit": "7feb854e9ff78e8ca64e012af874503569905924",
      "tree": "5fc22308c6ebd0a7f2066a8d7acf19a18e4347a5",
      "parents": [
        "141095dce0006e73b7941367c4b03f64c6ae997d"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 06 17:39:47 2020 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 13 13:21:15 2020 -0700"
      },
      "message": "AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\n\nScenario: startAudioSource (SW bridge) started, then stopped.\nAF patch is released, so PlaybackThread has empty patch.\n\nNext playback using the same sink will not recreate any patch\non AF as same device (and output desc has still valid patch handle)\n\nHence, ioconfichanged will get PORT NONE as sink device, no\nonAudioDeviceUpdate cb can be fired.\n\nThis CL fixes this issue by reset of patch handle on the output\n\nBug: 136121584\nTest: startAudioSource / stopAudioSource then playback on the same\nsink. Ensure onAudioDeviceUpdate is fired\nTest: atest RoutingTest\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ia9c2570f687166f38335ed7efae28920f7acc474\n"
    },
    {
      "commit": "7ffbd9898911062cea59c1c6b39875be88b66eb3",
      "tree": "39ea58633a125ca880630f02f969afee0acae9e4",
      "parents": [
        "b27ef83f2c8e37d2b9c50b001e03969c451b9131"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Apr 13 10:04:23 2020 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Apr 13 10:05:10 2020 -0700"
      },
      "message": "Camera: Fix potentail race condition\n\nmDistortionMappers are used in callback thread and request thread.\nHowever, callback thread does not query before calling mDistortionMappers[mId.c_str()],\nthis may cause insertion to the map and mDistortionMappers.find may run at the same time.\n\nBug: 153506800, 153457587\nTest: Camera CTS\nChange-Id: I899033bacd355113fbad3e8f7ec76482aa147158\n"
    },
    {
      "commit": "fd27c5239294058ec92ab2120256e7906110ffb4",
      "tree": "4e4ef7232f04db88ce82ca05fcaa603cef8a3a86",
      "parents": [
        "292b3e63852e6d438fa8f6b37ce76737e73added",
        "b744fafc831e1a13cc5e054aa4812281c3c5c7fc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 10 01:05:53 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 01:05:53 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Fix clang-tidy warnings\" into rvc-dev"
    },
    {
      "commit": "a73e0d674d83be857ffe7148aea4ab0f4dbeda06",
      "tree": "1dca718e55d47556a90e7e851b960759115e8808",
      "parents": [
        "3ee398df16f90491c53e3fca46445c4e7d7be511",
        "2325bf07edfa494aa5a186aacdcc80ff0233adbe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 09 20:51:04 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 20:51:04 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: mute mic on primary HAL only\" into rvc-dev"
    },
    {
      "commit": "b744fafc831e1a13cc5e054aa4812281c3c5c7fc",
      "tree": "8ac63b4df77923f6a8ba054036b43dee8ef79211",
      "parents": [
        "cc39f3d7fe665dcb39ce6757f5811f7c9ab6c992"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:09:26 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 13:09:26 2020 -0700"
      },
      "message": "MediaMetrics: Fix clang-tidy warnings\n\nTest: atest mediametrics_tests\nBug: 153658358\nChange-Id: Ic3c05de5466df24ffd37b224c97ac1138257a73c\n"
    },
    {
      "commit": "2325bf07edfa494aa5a186aacdcc80ff0233adbe",
      "tree": "97c72fb106d9f84c2cbbb654b657ab928843f494",
      "parents": [
        "967bfe95b6e95d4e590bb172826623e8a59664bd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 08 19:38:13 2020 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 09 10:03:30 2020 -0700"
      },
      "message": "AudioFlinger: mute mic on primary HAL only\n\nOnly the primary HAL has to support mic mute function.\nIgnore errors returned by other HALs in setMicMute() and\nonly report mic mute state from primary HAL in getMicMute().\n\nBug: 153103117\nTest: CTS AudioManagerTest.testMicrophoneMute\nTest: manual phone call and verify microphone mute.\nChange-Id: Ic121c49e7e7cd75eeee9342249271c7fca7c1c2a\n"
    },
    {
      "commit": "98fc01e7d68ab445103da4170958fdb7131eb595",
      "tree": "c419d674be8d9376eb585da5f592da4e0f2b9b80",
      "parents": [
        "967bfe95b6e95d4e590bb172826623e8a59664bd"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Apr 06 12:58:39 2020 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 08 16:42:15 2020 -0700"
      },
      "message": "Make missing seccomp file fatal.\n\nIf there is an issue where this is not loaded, we should know.\n\nBug: 146059841\nTest: boot health check on devices\nChange-Id: I3c50078b254e3caff5c824024909cb722dfb1aae\n"
    },
    {
      "commit": "967bfe95b6e95d4e590bb172826623e8a59664bd",
      "tree": "8f2ec48d60b45a29faf25a4c72f7e5652fc442f4",
      "parents": [
        "b27ef83f2c8e37d2b9c50b001e03969c451b9131",
        "2a245e16f70635c0489efc204d8a76b935f4a0df"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 08 19:11:02 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 19:11:02 2020 +0000"
      },
      "message": "Merge \"Camera: Fix possible invalid metadata access\" into rvc-dev"
    },
    {
      "commit": "2a245e16f70635c0489efc204d8a76b935f4a0df",
      "tree": "c774fa4f6b9ff064c1c69536d043498c07aef414",
      "parents": [
        "1ad04e663d0f6eb86032b7c4ac7ef7b3dba01de1"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Apr 07 16:54:14 2020 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Apr 08 08:34:34 2020 -0700"
      },
      "message": "Camera: Fix possible invalid metadata access\n\nCamera metadata entries can become invalid\nafter updates. Avoid using the possibly\nreleased entry pointer when extending\ncamera characteristics with dynamic depth\ntags.\nAdditionally simplify rotate and crop\nregion checks.\n\nBug: 152240541\nTest: cameraservice_test\nChange-Id: I416739ed7e128f4ec94353ec2938b9bf226be182\n"
    },
    {
      "commit": "d03d42b5478f9b65f8f0a7807626c4ec9c65ad8a",
      "tree": "8e563cd28a6ae4d157feda80c088f93899cf4e8d",
      "parents": [
        "44e8ff246da8bbf73fa38fa6c95fc3915de0bda1"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Sun Jan 19 17:27:41 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Apr 07 22:12:22 2020 +0000"
      },
      "message": "flexibility for having extra policy files\n\nadd an interface to accept a list of additional policy files, instead of just a single file.\nAlso add TEST_MAPPING for presubmit.\n\nBug: 147914640\nTest: boot with empty, 1, and 2 element lists, atest\nChange-Id: I97e8e0ec7b68699838595c09a4a8e7c7eef657c3\nMerged-In: I97e8e0ec7b68699838595c09a4a8e7c7eef657c3\n(cherry picked from commit 11c1a68778c39564ed37e653d7af6881a2d11ea6)\n"
    },
    {
      "commit": "709b91e1e8a646f17117fc5e9baa224182cbec64",
      "tree": "00f091b41d344a9ef0609d11e0a750bdeddb024a",
      "parents": [
        "1ad04e663d0f6eb86032b7c4ac7ef7b3dba01de1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:23:36 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 12:22:38 2020 -0700"
      },
      "message": "MediaMetrics: Update dumpsys parameters\n\nMake --prefix and --since work for analytics.\n\nTest: adb shell dumpsys media.metrics --all\nTest: adb shell dumpsys media.metrics --clear\nTest: adb shell dumpsys media.metrics --heap\nTest: adb shell dumpsys media.metrics --help\nTest: adb shell dumpsys media.metrics --prefix c\nTest: adb shell dumpsys media.metrics --prefix audio.volume\nTest: adb shell dumpsys media.metrics --since -100\nTest: adb shell dumpsys media.metrics --unreachable\nBug: 149850236\nChange-Id: Id3e0cb6fe789027b5d5c86cce93ce07f636736bf\n"
    },
    {
      "commit": "1ad04e663d0f6eb86032b7c4ac7ef7b3dba01de1",
      "tree": "62ee64eda54d20399ef782e1aede345ab15be31b",
      "parents": [
        "2e717a0265d6b95094946fb5ca41035019fa9716",
        "9099a1a58dfd8828381fe080a8c897d7d06c88be"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 03:49:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 03:49:26 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Use libmemunreachable for memory testing\" into rvc-dev"
    },
    {
      "commit": "2e717a0265d6b95094946fb5ca41035019fa9716",
      "tree": "a6b431d6066a92be07956c3d8808680ed1b856c7",
      "parents": [
        "65328604dedbb0c01937efa0e831e62a191869f8",
        "85732f4121889191410448cfc19c336e0ea69285"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 07 01:15:26 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 01:15:26 2020 +0000"
      },
      "message": "Merge \"audio policy: fix mmap stream invalidation logic\" into rvc-dev"
    },
    {
      "commit": "65328604dedbb0c01937efa0e831e62a191869f8",
      "tree": "41870604bbdecc2565f81e2e8651dddaca86913b",
      "parents": [
        "9509d74058eda44fb4de1acc3e119e53f78e1ae7",
        "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 22:57:50 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 06 22:57:50 2020 +0000"
      },
      "message": "Merge \"MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\" into rvc-dev"
    },
    {
      "commit": "9099a1a58dfd8828381fe080a8c897d7d06c88be",
      "tree": "7d4741e9fa1d965cefd957d5aa9f6474e8ffae49",
      "parents": [
        "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:23:36 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 14:41:40 2020 -0700"
      },
      "message": "MediaMetrics: Use libmemunreachable for memory testing\n\nFull testing steps:\n\n// required for unreachable\n$ adb shell setenforce 0\n// set up debug malloc\n$ adb shell setprop libc.debug.malloc.program mediametrics\n$ adb shell setprop libc.debug.malloc.options backtrace\u003d8\n\n// kill media metrics\n$ adb shell pkill -f media.metrics\n// verify media.metrics has restarted with new pid\n$ adb shell pgrep -f media.metrics\n\n// now check media metrics heap (largest 100 items) and unreachable memory.\n$ adb shell dumpsys media.metrics --heap\n$ adb shell dumpsys media.metrics --unreachable\n\nTest: adb shell dumpsys media.metrics --heap\nTest: adb shell dumpsys media.metrics --unreachable\nBug: 149850236\nChange-Id: I269003485dd6933c399171fbd9d9a152cee50886\n"
    },
    {
      "commit": "0fa486f5148b706062f333e7283a0af4b9374382",
      "tree": "cb929db2d288c553907d09e69abe7b57da3a4fb5",
      "parents": [
        "95ec1b8ea487abbf4ef50d53c227338f559e9599",
        "c530c5973f425f574fc5e4add205938e5f040ab4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Apr 06 19:42:12 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 06 19:42:12 2020 +0000"
      },
      "message": "Merge \"Camera: fix use after free in sensor timestamp\" into rvc-dev"
    },
    {
      "commit": "e9eb03e9db8f66c711e2824e0f96d1fdc8f727b5",
      "tree": "77671b8d041a66b35884657fc4e05c5e5214787a",
      "parents": [
        "95ec1b8ea487abbf4ef50d53c227338f559e9599"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 04 14:08:23 2020 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Apr 06 09:48:59 2020 -0700"
      },
      "message": "MediaUtils: Move MemoryLeakTrackUtil.h to the proper library.\n\nTest: dumpsys sanity check of mediaserver, audioflinger, drmmanager\nBug: 149850236\nChange-Id: I7a3694444de0f940beacb699bc6f07ebb6a7cc7d\n"
    },
    {
      "commit": "95ec1b8ea487abbf4ef50d53c227338f559e9599",
      "tree": "59fbb841d724d8012ae7b46e9b9c58c77760dbb5",
      "parents": [
        "944e25516ee01715c74e4e65a2d69ef5b7398d06"
      ],
      "author": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Apr 02 18:08:36 2020 -0700"
      },
      "committer": {
        "name": "Ytai Ben-Tsvi",
        "email": "ytai@google.com",
        "time": "Thu Apr 02 19:34:08 2020 -0700"
      },
      "message": "Keep the death recipient alive\n\nBinder doesn\u0027t hold on to the death recipient.\nThis caused audio server to miss notifications about system server\ndeath.\n\nFixes: 153080001\nTest: Manual verification of killing the system process.\nChange-Id: Iad1b2d4c5348d3d9917efc6838e86b736fa33094\n"
    }
  ],
  "next": "19c458805f7a91b09a6c90a2940a3f03ed20d44b"
}
