)]}'
{
  "log": [
    {
      "commit": "2b5794206ede7558dd467d97a1903db1d6e63e6c",
      "tree": "7dfe38d745ae67ef5def6273391634fdc6fe29ef",
      "parents": [
        "cfca9375b2e0d3c241540053a70dbc310b9899cc",
        "cc79094c69bdc85c7c8f52247a00bae1dff68473"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Wed May 06 17:01:19 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 06 17:01:19 2020 +0000"
      },
      "message": "Merge \"Revert \"Add isUidActiveOrForeground() for camera/audio to use.\"\" into rvc-dev am: cc79094c69\n\nChange-Id: I5d67e226bfe4bbdadd6bbbeb3cd14a47beb26d4f\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": "8b4dd92c6eb5ad31635f1591deaf703a259bd4bb",
      "tree": "2deec00ae2d55ca990d56be46ab59639007d4a73",
      "parents": [
        "0cfafe0fa29c5675a77ba1d8307cf69e8b7e301b",
        "b3cedfdf595bbb3538a7a6e36b70de5e62a58fa1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 06 03:06:29 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed May 06 03:06:29 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add device-based actions for Bluetooth\" into rvc-dev am: b3cedfdf59\n\nChange-Id: Ib7f8942702a39d459e9d73a86f795af8b94fbeb7\n"
    },
    {
      "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": "cc2ebfc95d0925ad06cd368be6d7de557d1eaef5",
      "tree": "8ee765f8c2162282109abb22be7a1cb8df19caf2",
      "parents": [
        "303147efc0d6bd3f29e1da40720ddc175a78d388",
        "686dac0cdb04834b889b1264f7a41c5d6ce25d2a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue May 05 11:19:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue May 05 11:19:47 2020 +0000"
      },
      "message": "Merge changes I7f8339d8,Idff0c394 into rvc-dev am: 686dac0cdb\n\nChange-Id: If597e6b6a35e038c90090614dbdda35b0b5ce854\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": "1a4bd0574f15ba3b16f54654a45af09f1052e026",
      "tree": "a2c407bbba6d723cab02f62e1cf9417fc134722b",
      "parents": [
        "280ad70bba2f25236f7ac85c51cf298edae047e6",
        "6ffc516235c5bdda22b06afc7f840ce2a60dc79e"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon May 04 16:43:40 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon May 04 16:43:40 2020 +0000"
      },
      "message": "Merge \"Enforce basic thread safety in Audio Policy Service\" into rvc-dev am: 6ffc516235\n\nChange-Id: I14b5553158137cc1aed7e79c58fceb2d664a2bca\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": "f60ce823df3f6b38114df4da88518ceaa8e43c3e",
      "tree": "357b28d5d494185f79231df449fa33ae794be664",
      "parents": [
        "706aeeeb146f910a53130b3ca218b6b3d8295953",
        "2fc997ef3107415ba111cbe64d4355059830d85f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 04 05:44:00 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon May 04 05:44:00 2020 +0000"
      },
      "message": "Merge \"Camera: Initialize preCorrectionActiveArraySize\" into rvc-dev am: 2fc997ef31\n\nChange-Id: I23d84cb0401fb315e6326d401e780ca2498fcee6\n"
    },
    {
      "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": "04bbffe0a539007b03f1026cc5df953da8ef8537",
      "tree": "bd482a7a2e2fad58755ee7731a2f7477528f95bf",
      "parents": [
        "9cf1d5bee91c9f9349afd0e47bd9a55b10709847",
        "ef9abae0c7f05913cddb3e87566aa4d64b6f353f"
      ],
      "author": {
        "name": "Suren Baghdasaryan",
        "email": "surenb@google.com",
        "time": "Sat May 02 06:35:56 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat May 02 06:35:56 2020 +0000"
      },
      "message": "Merge \"Replace direct pid writes with setting task profiles\" into rvc-dev am: ef9abae0c7\n\nChange-Id: I5339cefc40bde64673c979e96b059346b08a639c\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": "b98251180a94bb2f45f1e39f79d4452d2e60892c",
      "tree": "a2f0e77077cd132630a56c2be392deaed1664738",
      "parents": [
        "fa95b402cea9508d3da6549b7a1a95ae4f14de5a",
        "25b1e25a724ac10547670382745789bdf8a18e0b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 01 20:10:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 20:10:35 2020 +0000"
      },
      "message": "Merge \"ThreadMetrics: Add device-based statistics for audio\" into rvc-dev am: 25b1e25a72\n\nChange-Id: I6ec981dba8d962da781c053f90123164657fbeb7\n"
    },
    {
      "commit": "fa95b402cea9508d3da6549b7a1a95ae4f14de5a",
      "tree": "1a7124140f7cac8dfdc4c119af5368af243b41e6",
      "parents": [
        "7eeb4aa443fb7f435cb041cc9877ccfbc8787656",
        "31300b43da852e6eeb93791361ece11015963cf4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 01 20:10:29 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 20:10:29 2020 +0000"
      },
      "message": "Merge \"TrackMetrics: Add device-based statistics for audio\" into rvc-dev am: 31300b43da\n\nChange-Id: Ia82b2e288104e6c255f470ff19bd58c2b1aadd1a\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": "1dfdf2a61e3e03bc3344876a7873fd7c4a9406a0",
      "tree": "a86bbb1e90a58e729d9f55b42a296e8a6d8733b8",
      "parents": [
        "db661b7ebfc80c1ff088fc4a7879383bb98a9276",
        "17f951088b42c4f399e1c18b65f1ffebee48fa80"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 18:03:08 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 18:03:08 2020 +0000"
      },
      "message": "Merge \"Camera: Fix potentail race condition\" into rvc-dev am: 17f951088b\n\nChange-Id: I88454477a5149b1594e9eeaae39615276b3be342\n"
    },
    {
      "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": "d4ce8a591832a07eb16cf32a428da1f3570de9ae",
      "tree": "9243537ffe7bc51f177300cbed6f396a1220a31a",
      "parents": [
        "a3beae498ee2d962cbffadc40b6a2084c519b726",
        "74dc21be3318f53013d099b6cbf235430296fa08"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 02:27:16 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 02:27:16 2020 +0000"
      },
      "message": "Merge \"audio policy: add ECHO_REFERENCE to virtual audio sources\" into rvc-dev am: 74dc21be33\n\nChange-Id: Ifc46d717d0e8d45109b325e1e301e5bcb2ffcd53\n"
    },
    {
      "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": "a3beae498ee2d962cbffadc40b6a2084c519b726",
      "tree": "e7709e7dfd5ed8f6cef259ba4135221b26580b4f",
      "parents": [
        "4e9bdf3f0d5c8dcb3750bf5f1a5279d6f4658a00",
        "36c77d400c1e86b0aab5d529f061c158a674a122"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 01 00:58:35 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri May 01 00:58:35 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash if output for DAP is not opened\" into rvc-dev am: 36c77d400c\n\nChange-Id: I802e42ceda0a5d7cd0422f9076cea623f96a3263\n"
    },
    {
      "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": "4e9bdf3f0d5c8dcb3750bf5f1a5279d6f4658a00",
      "tree": "06dc9151878bf3a4aa9b7b9457f39553f7e99530",
      "parents": [
        "038033ead8a64b0a7abdc2126fd30d89fded8474",
        "f872f885531a3dfaddc0e6f95c01117d151145e5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 30 21:21:49 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 21:21:49 2020 +0000"
      },
      "message": "Merge \"Camera: Skip session parameters in case of abandoned streams\" into rvc-dev am: f872f88553\n\nChange-Id: Ibc3bc335b17a24891efdfb86e6295c608b94aa1e\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": "8491db2ee7642c62ac7966b6040dbce72b594deb",
      "tree": "9b78f6b45c0ac8c6f378e8d29b0b7ea5b68a8036",
      "parents": [
        "77cff85fdbfcc10cb846e2286336ed32bdc99807",
        "929c3645336dd0e01d3f61ffaedc95fe417ab1bb"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Apr 30 17:38:48 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 17:38:48 2020 +0000"
      },
      "message": "Merge \"RELAND: \"stagefright: MediaCodec::releaseAsync()\"\" into rvc-dev am: 929c364533\n\nChange-Id: Idb0031ae9001e2084d74f39c587770c0f5e692fc\n"
    },
    {
      "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": "47b369ad6d0bbc58273b81a1d657b3a40f30288f",
      "tree": "db9bdb6a8b4606087eb46211c61f727ac860c7b6",
      "parents": [
        "67876491db881e2ac0d9c700806f5944a41997e1",
        "2c4f8cec92e58141b2e8b246ef8dfe94d250be22"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 30 00:33:11 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 30 00:33:11 2020 +0000"
      },
      "message": "Merge \"Audio policy: fix areAllDevicesSupported()\" into rvc-dev am: 2c4f8cec92\n\nChange-Id: I1331529be0fa846d90d26d335b55f65b4ccf0946\n"
    },
    {
      "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": "b6659276b6cc82e35ead2f2bbc8c6d2c673ad861",
      "tree": "dcc50fde8d056a23d1984f7f5841ac36c6f0c177",
      "parents": [
        "4f57d42adcff94ca2471135f5173a4c7578ab68c",
        "26f937a4c27a91f53e08ab6a584b0db81e9e0b66"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 29 23:19:53 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 29 23:19:53 2020 +0000"
      },
      "message": "Merge \"Camera: Fix off-by-1 error for scaling crop region\" into rvc-dev am: 26f937a4c2\n\nChange-Id: Ib96de6a190eb21248e0dc6e0d6c85e271e394c43\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": "4f57d42adcff94ca2471135f5173a4c7578ab68c",
      "tree": "090e2a08c399b2285c658f26edaa758c21dc90c5",
      "parents": [
        "eb64895ba449f7d4297def3aaf8b695ac0c32cff",
        "b79d3b8d4bfafc8600e4b01d8bf5d88f76876c63"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 29 20:17:28 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 29 20:17:28 2020 +0000"
      },
      "message": "Merge \"Check silent mode when updating output device.\" into rvc-dev am: b79d3b8d4b\n\nChange-Id: I3cdf7065cb85312b91dc19411337df739bfedccb\n"
    },
    {
      "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": "9896942a54faf48b9e4fc8ae92265ce8e872dd87",
      "tree": "d698bf9c61af2efe8b30579360412883ce5c65c6",
      "parents": [
        "76d7cc4578423dd14e4ccfd15cea1691108b1b37",
        "6d05a57e70a66ce0864db0387eb40df48d52bc4a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 28 15:39:10 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 28 15:39:10 2020 +0000"
      },
      "message": "Merge \"audio policy: allow direct outputs for dynamic audio policies\" into rvc-dev am: 6d05a57e70\n\nChange-Id: Ia7c5228de068ecdbd719a55c7dbe407ce22578e9\n"
    },
    {
      "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": "76d7cc4578423dd14e4ccfd15cea1691108b1b37",
      "tree": "77e98ccb24caf0a5fb3693b8c538b9c33bf14717",
      "parents": [
        "f76edb9df96d63a33438e294ea0ece89e818ab9e",
        "5559ae7c9dabaf8b0bbfaf7553fef050f008f425"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 28 15:29:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 28 15:29:31 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Use AllowUid property for services to control client access\" into rvc-dev am: 5559ae7c9d\n\nChange-Id: I2d0505ebb6ba113cd4f53467943b498aca117c62\n"
    },
    {
      "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": "d74b9c0efbc0a7cce9c7aaa0204414612a64d8d9",
      "tree": "57e18d652a0daac9904248d4eb13fe0b18eeac39",
      "parents": [
        "3de3935a515ecefea19f5dbd251191fc63c20795",
        "cc40c5fa11767eb9a87cf6e1a5e8a99d6cec2847"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Apr 24 14:41:54 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 24 14:41:54 2020 +0000"
      },
      "message": "Merge \"aaudio: add MediaMetrics for MMAP streams\" into rvc-dev am: cc40c5fa11\n\nChange-Id: I95149514982f70f1eb2cef58978a46ecf3bbb5dc\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": "ac516165c4a93e6e52005b0004a4a3dd5a98e8d4",
      "tree": "146fa34ce0c0eaa8926123f29abd0198932c95b9",
      "parents": [
        "31cd2cc33638966747f589dce4400edfd9259817",
        "7d947b361853035f3c1eefdb5a65ac2c9da3982f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 23 21:56:33 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 23 21:56:33 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: fix getMicrophones implementation\" into rvc-dev am: 7d947b3618\n\nChange-Id: I2bfd16097ac7f058ea76b105ec4e029a1ba3498d\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": "433d1f98e4bdee47adb1e9165f39d7776153fcd4",
      "tree": "b37abbe9d771f69e373fc93ce72ed3b4ed8731f5",
      "parents": [
        "977c16dc060412e4197b79533b5ee562de55279d",
        "cba42e3c35f6e835e7a6baa30fe68bfa495d1ab5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 23 02:53:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 23 02:53:30 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Misc fixes\" into rvc-dev am: cba42e3c35\n\nChange-Id: Ib0633452e26905e8823fba842870453f0bc12fd3\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": "1d8c0888ca87e7690e3344f0597827b1db0d4f75",
      "tree": "fc8aee4e86859b0e59173eaa92367c2f59be843c",
      "parents": [
        "9ddc336498d698a9d18fc0bdb4ddb1041421fdeb",
        "718f96b3bb80a72cda547f2a345e23e595bf7fbb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 21 04:28:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 21 04:28:39 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Add thread-safety checking\" into rvc-dev am: 718f96b3bb\n\nChange-Id: Iced340c9e327b3db9d291957216390fcfb11a0ca\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": "1b4fb6145084cbbafe049236d4831a6e1faef95c",
      "tree": "ee176fc1ec37f387bfaf0bd3f6fb3e8218b11cda",
      "parents": [
        "6d2e170bb8e416481eb7fca010fd303edd7d7516",
        "afee5576faeef5d557a4dbd233250eb6a8ca8e1e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 20 19:49:02 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 20 19:49:02 2020 +0000"
      },
      "message": "Merge \"audio policy: fix volume for unsupported device\" into rvc-dev am: afee5576fa\n\nChange-Id: I49c9f9f00498ca358323f3c750a95c1977d49562\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": "2c365b16ad0e0b801622b338c558b0f66427c84c",
      "tree": "b0421cbbda51f1f25b58d3fbb19abf1e25e71305",
      "parents": [
        "65412b25fcf6149b739032e9dfe0e02f43c7d78b",
        "a89bd207aad8de70d4376ec7108306f18fcc8133"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 16 23:35:46 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 16 23:35:46 2020 +0000"
      },
      "message": "Merge \"audio: Centralize audio configuration paths specification\" am: c0884de8b9 am: a89bd207aa\n\nChange-Id: I8c5eaa6dd147a68e5380f4638b89e8050eefc308\n"
    },
    {
      "commit": "a89bd207aad8de70d4376ec7108306f18fcc8133",
      "tree": "75372d956702224c0f0624d2d7ee4e486b493e5a",
      "parents": [
        "a85def6612ade71bd31a0d60e45ee7e0068af638",
        "c0884de8b9a3c7ba3755356717b94bfdfc5eb31d"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 16 23:21:24 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 16 23:21:24 2020 +0000"
      },
      "message": "Merge \"audio: Centralize audio configuration paths specification\" am: c0884de8b9\n\nChange-Id: I4efd1b4423efe2734c7ba79a3bac75ceb78f0036\n"
    },
    {
      "commit": "c0884de8b9a3c7ba3755356717b94bfdfc5eb31d",
      "tree": "79fd2da36b706d97e239e988221cfd34069d24d6",
      "parents": [
        "ada7c446d5579a57238a2fd89bcee6ca32c68786",
        "edc0ae1ebc8ec716f327269552ceaf81fbd874a0"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 16 23:05:30 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Apr 16 23:05:30 2020 +0000"
      },
      "message": "Merge \"audio: Centralize audio configuration paths specification\""
    },
    {
      "commit": "edc0ae1ebc8ec716f327269552ceaf81fbd874a0",
      "tree": "f393c230c74478be53856618c5169998f0ff71b0",
      "parents": [
        "04f759bfd400f64bd7d17e9e3fd725d1e2cea31e"
      ],
      "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": "Tue Apr 14 14:47:01 2020 -0700"
      },
      "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 VtsHalAudioV5_0TargetTest VtsHalAudioPolicyV1_0TargetTest\nChange-Id: I8c369442f5ca7baa17df95e6a001396fc9de5681\n"
    },
    {
      "commit": "cef0c2d43134cc26a1c3d4600abc6437a7dedcd9",
      "tree": "9e9179ecf00b600bb035be8bd5dcd333501d3f82",
      "parents": [
        "4080e97fad8fc0058b0c6921d2f914737b99d9ae",
        "ec77ef69320225579dbee12b5199442fe3e669ca"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 14 21:27:22 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 21:27:22 2020 +0000"
      },
      "message": "Merge \"Camera: Handle the case of calling Uid being cameraserver\" into rvc-dev am: ec77ef6932\n\nChange-Id: I5816f58c6258806744e19b8a70c447109d426df4\n"
    },
    {
      "commit": "2beb1dedfdc0c7f92fa4dc4628795578291dc7ad",
      "tree": "1332ca819b7e2d3f222a4afbd39d3585320b87aa",
      "parents": [
        "19b1a8e0b729d0fc06518e5c5619950b747aaaab",
        "8607a8bae7da02e77166da6079f4a1ff24261919"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 21:16:47 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 21:16:47 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\" am: 8607a8bae7\n\nChange-Id: Ie17695801cdb5266c8dd8cb816ced979ae2095f5\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": "8607a8bae7da02e77166da6079f4a1ff24261919",
      "tree": "31b3c6faab94e2e0de3c044bcaa177092ef07055",
      "parents": [
        "a224da5c41cc54a526bfed7a2027223557167f89",
        "3b17354a89c230442c81211ccdb64653a4defa12"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 21:00:06 2020 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Apr 14 21:00:06 2020 +0000"
      },
      "message": "Merge \"AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback\""
    },
    {
      "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": "1f86aef7c94c2a01480d668c0292caeea0e8e21d",
      "tree": "8d3a5c2baa9e000e76395c90bac18235b409a7b0",
      "parents": [
        "887b1a3719b31f605147c5ee580f42f769d3e9ee",
        "9b8c695c4879c2e28ee359cc55d6101da8931a9e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 14 02:19:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 02:19:31 2020 +0000"
      },
      "message": "Merge \"audio policy: fix crash in findPreferredDevice() on duplicating outputs\" into rvc-dev am: 9b8c695c48\n\nChange-Id: Iec288ac53e5e7ba9c81d2a8b879bce8c31548650\n"
    },
    {
      "commit": "887b1a3719b31f605147c5ee580f42f769d3e9ee",
      "tree": "f76572a43fc4ebf5c967e5537cb8c45f7ded08b8",
      "parents": [
        "da4faa6c2e50b6ab28dfd9a40289313239319d16",
        "42c1c38d7f0340f448b38dcf228b2e7753a2bcd2"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 14 02:10:00 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 02:10:00 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003cunistd.h\u003e\" am: 8a71223d5a am: 42c1c38d7f\n\nChange-Id: I7487c7d3e566736733b6510072f6a32c2c4534ac\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": "42c1c38d7f0340f448b38dcf228b2e7753a2bcd2",
      "tree": "5c2d51a723e7514ae3f31fdcbba7022e4143f31a",
      "parents": [
        "1c09d740e714fa8963a2399eed953cc2015f2519",
        "8a71223d5a998fd743ac3b25a799bc2cfedf2f86"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Tue Apr 14 01:48:52 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Apr 14 01:48:52 2020 +0000"
      },
      "message": "Merge \"Include what you use: \u003cunistd.h\u003e\" am: 8a71223d5a\n\nChange-Id: Ia9c0bba3fa290221d00bbfd7aec4aab65db5e4f0\n"
    },
    {
      "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": "7ae782545020eec1bfb9eb74e690ae26e2cca7fa",
      "tree": "b99f5db2f4d75aeddb175896c3fa67070b21154e",
      "parents": [
        "2ac41184ae00b2e99e55d995944288f33b2fce49"
      ],
      "author": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "committer": {
        "name": "Tom Cherry",
        "email": "tomcherry@google.com",
        "time": "Mon Apr 13 15:20:50 2020 -0700"
      },
      "message": "Include what you use: \u003cunistd.h\u003e\n\nThis was transitively included, but no longer is, so it must be\nexplicitly included.\n\nExempt-From-Owner-Approval: Janitorial\nTest: build\nChange-Id: I78268a4867697bf797d40b5fead3745fdd0cc807\n"
    },
    {
      "commit": "da4faa6c2e50b6ab28dfd9a40289313239319d16",
      "tree": "0753dde67b3cec1d756f3ae865915e005e943e08",
      "parents": [
        "0ac5d85606596b4a2c1c7e04d7dd80dee9367d1a",
        "7feb854e9ff78e8ca64e012af874503569905924"
      ],
      "author": {
        "name": "Francois Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Mon Apr 13 22:10:13 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Mon Apr 13 22:10:13 2020 +0000"
      },
      "message": "AudioPolicy: managerdefault: fix onAudioDeviceUpdate callback am: 7feb854e9f\n\nChange-Id: If268c3e8b4762a20ca1ad180a9316dc72230ef1b\n"
    },
    {
      "commit": "3b17354a89c230442c81211ccdb64653a4defa12",
      "tree": "1898597d4c8bcfcf90acea0ca40ae47575d2cf88",
      "parents": [
        "6861be79547c425ee21370bef55adbdd7bcb54c3"
      ],
      "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 20:25:00 2020 +0000"
      },
      "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\nTest: startAudioSource / stopAudioSource then playback on the same\nsink. Ensure onAudioDeviceUpdate is fired\n\nSigned-off-by: Francois Gaffie \u003cfrancois.gaffie@renault.com\u003e\nChange-Id: Ia9c2570f687166f38335ed7efae28920f7acc474\nMerged-In: Ia9c2570f687166f38335ed7efae28920f7acc474\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": "12b147fe0dcc04b93b7791f02e675ed78a72cbac",
      "tree": "7b08546d97178286e2ce82fa601d4877545072c7",
      "parents": [
        "0ab3d3e4e9de4519ff8633437d813526199aec36",
        "3009a12c9a1fe8d8bdfa65ad0d81b832899b1baf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 21:00:01 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 21:00:01 2020 +0000"
      },
      "message": "Merge \"Check if calling uid is system uid for setAllowedPolicyCapture.\" into stage-aosp-master"
    },
    {
      "commit": "3009a12c9a1fe8d8bdfa65ad0d81b832899b1baf",
      "tree": "d138c568179ff8a0058ec65cf87258afaf684979",
      "parents": [
        "292e854b4e905ca87861368b8c7ab32e90e6fcd4"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Dec 23 11:17:25 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 18:50:17 2020 +0000"
      },
      "message": "Check if calling uid is system uid for setAllowedPolicyCapture.\n\nAudioSystem.setAllowedPolicyCapture is only called from audio service.\nIn that case, checking if the calling uid is system uid to before taking\naction.\n\nBug: 151922109\nBug: 145115448\n\nTest: AudioManagerTest#testAllowedCapturePolicy\nChange-Id: I614ac881ecde6bad13f22f1382de701f314a7ada\nMerged-In: I614ac881ecde6bad13f22f1382de701f314a7ada\n(cherry picked from commit 140a34fbfe829542c2c3651656d5c595201b3b4a)\n"
    },
    {
      "commit": "22121b85aae6f9b245836049612f50bfd91316ef",
      "tree": "aa981ca192e4738de8b3bf43accd7516c288440f",
      "parents": [
        "9d96bd4f97af1c949858e6e8ab481bc081e8a669",
        "fd27c5239294058ec92ab2120256e7906110ffb4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 10 01:08:21 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Apr 10 01:08:21 2020 +0000"
      },
      "message": "Merge \"MediaMetrics: Fix clang-tidy warnings\" into rvc-dev am: fd27c52392\n\nChange-Id: I3668ce74e614cd1ac3b71eff9c6ed999f5faec81\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": "25ffb8a971b184b11004b94a964961a382d756e2",
      "tree": "0919c0a0725ab0373d92544870cbea785cda1493",
      "parents": [
        "12d019baa7520f2b769e6597c5385b5e159ac168",
        "a73e0d674d83be857ffe7148aea4ab0f4dbeda06"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 09 21:13:44 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 09 21:13:44 2020 +0000"
      },
      "message": "Merge \"AudioFlinger: mute mic on primary HAL only\" into rvc-dev am: a73e0d674d\n\nChange-Id: If3bee83432b58b4032bdc843c179aeb3fbe15bb4\n"
    },
    {
      "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": "12d019baa7520f2b769e6597c5385b5e159ac168",
      "tree": "b57f0fe56a583a9511c3989e7f1950579c4548db",
      "parents": [
        "90569baf472462322f701acac725de49109f70c9",
        "3ee398df16f90491c53e3fca46445c4e7d7be511"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Thu Apr 09 17:47:12 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Apr 09 17:47:12 2020 +0000"
      },
      "message": "Merge \"Make missing seccomp file fatal.\" into rvc-dev am: 3ee398df16\n\nChange-Id: I9799bb2079edf468aa3ed5fcca558e4a9115f9de\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": "7f25366432229bda3ca392e7ad1823889f582daf",
      "tree": "06d8e0aaa625dbcebfda8ae4b6d030c84ad841a2",
      "parents": [
        "0b3d066d3f9b81766f6949988b5c86241539d613",
        "967bfe95b6e95d4e590bb172826623e8a59664bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 08 19:22:26 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 08 19:22:26 2020 +0000"
      },
      "message": "Merge \"Camera: Fix possible invalid metadata access\" into rvc-dev am: 967bfe95b6\n\nChange-Id: Ic1e1b38ab5108f2c696c312f3dcfd8634bdbacbd\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": "0b3d066d3f9b81766f6949988b5c86241539d613",
      "tree": "28e08b2d913090bb4000edf97af4f78ca1c2bfe4",
      "parents": [
        "f506737630574f138c6f3528b5a634b3f805cc13",
        "b27ef83f2c8e37d2b9c50b001e03969c451b9131"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Apr 08 16:50:31 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Apr 08 16:50:31 2020 +0000"
      },
      "message": "Merge \"flexibility for having extra policy files\" into rvc-dev am: b27ef83f2c\n\nChange-Id: Iedee898dc9994b26273a21cfa9725c3fe11a89d4\n"
    },
    {
      "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"
    }
  ],
  "next": "17bfa45534a79e8273c73a9f51f7fbdfc86022dc"
}
