)]}'
{
  "log": [
    {
      "commit": "a20c4e9c9239d751d688d9a9fe5d92a8c613dd13",
      "tree": "9d5ccc5886dbf0cede2c4b63265f51f8f77eb283",
      "parents": [
        "e5f01a7d5edd517c3a52ca11e6908aead47ba916"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 12 15:55:51 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 10 11:11:27 2020 -0800"
      },
      "message": "AudioFlinger: add audio session for device effects\n\nAdd specific audio session ID for effects applied to a\nparticular audio device.\nDevice specific effects will be attached to a particular audio sink or\nsource device identified by its unique audio port ID and will all use\nthis same session ID.\nOnly one session of this type exists on a given playback or record\nthread.\nAll effects in this session apply to the same device ID and are created/released\nwhen the routing (audio patch) of this thread output or input stream is updated.\n\nBug: 136294538\nTest: make\n\nChange-Id: I4e3a55ed1244b918429dd9e217b6efecc1ec6449\nMerged-In: I4e3a55ed1244b918429dd9e217b6efecc1ec6449\n"
    },
    {
      "commit": "79673cfb78356afb4bb531d5f6fe115ab41930cc",
      "tree": "82f9a497a3221f4043e4af36f19abd4ee00fbb96",
      "parents": [
        "c1a82b91f050f4b496b2d373046cb4c9fc32c8eb"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Fri Sep 20 21:45:01 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Dec 20 15:58:46 2019 +0000"
      },
      "message": "Implement DrmSessionManager w mediaresourcemanager\n\nBug: 134787536\nTest: DrmSessionManagerTest\nTest: DrmSessionManager_test\nTest: ResourceManagerService_test\nChange-Id: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\nMerged-In: Iab9f4f681c83f46b043cefc8633bb3e513a8e75a\n"
    },
    {
      "commit": "b680e955f474a2f81ed35383da67209bcbdd7d10",
      "tree": "8fd48d3bca98f5cc5d96415255711817fc209553",
      "parents": [
        "9e1e25dd418773ad5e574441962dcc771d3ec2a3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 15:40:33 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Dec 05 13:00:07 2019 -0800"
      },
      "message": "media utils: dump audio HAL service before restarting audioserver\n\nAdd request to create tombstones of audio HAL servers before restarting\naudioserver process when the watchdog triggers.\n\nAdd audio device factory HAL interface API to retrieve HAL process pids when\npossible (on debug builds).\n\nAdd AudioFlinger service API to set audio HAL process pids from\nJAVA AudioService.\n\nBug: 141528385\nTest: Force watchdog and verify tombstone creation\nChange-Id: I68c1e8fb4db23e5952ad0c93d7d0b9d121b8ec18\nMerged-In: I68c1e8fb4db23e5952ad0c93d7d0b9d121b8ec18\n"
    },
    {
      "commit": "9e1e25dd418773ad5e574441962dcc771d3ec2a3",
      "tree": "a5733110e72d8e41d70a3b819458e2ceaa50f890",
      "parents": [
        "74cfcdf8237a455f8b8ec8e1b2a08fe777cf7512"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 14 18:47:34 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Dec 05 12:57:39 2019 -0800"
      },
      "message": "media utils: fix UAF in TimeCheckThread\n\nRead log tag from request list under lock\nto avoid use after free.\n\nBug: 142142406\nTest: make\nChange-Id: If4adab8c15a319dc84b7003adf3ac59a3980f075\nMerged-In: If4adab8c15a319dc84b7003adf3ac59a3980f075\n"
    },
    {
      "commit": "6fcb941084faecce31909f1c50ee1ba442244f8b",
      "tree": "d8904b383fd5d7e01c3c966c1c57c44266dbad18",
      "parents": [
        "22cd27bcc50b17ebb5104400cece4c34f1729930",
        "c499a089250910118da5a292794d0dc1c9053171"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Oct 30 14:30:59 2019 -0700"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Wed Oct 30 14:30:59 2019 -0700"
      },
      "message": "DO NOT MERGE - qt-qpr1-dev-plus-aosp-without-vendor@5915889 into stage-aosp-master\n\nBug: 142003500\nChange-Id: I0de886061b2d75f9c37e8edbd4e7e08225d0186b\n"
    },
    {
      "commit": "6b2859450f91f1cdd8b3ca2435df4dd37907cd8a",
      "tree": "4accc947ac99fa7246f5f7fc54f35b3c960636b1",
      "parents": [
        "35f148bc5a1cb1efffd9aee0223a06720a303329"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Oct 21 14:52:30 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Oct 24 21:25:53 2019 +0000"
      },
      "message": "Remove more header symlinks\n\nTest: build\nBug: 143245419\nChange-Id: I9bb03d54c7792625b73602f2d3721e29f8f929be\n"
    },
    {
      "commit": "21bbf7d12f74ada28f5b73f3a5bded613df8c609",
      "tree": "49d9e063daf683dc44aadd75efb2a3f9aa637af4",
      "parents": [
        "1167ff999c6a7451e7a328242b3148947cc918ee",
        "0360e714b86ceb1764f888389780d8bee7eec700"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 15:20:59 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 27 15:20:59 2019 -0700"
      },
      "message": "Merge \"Remove symlinks from include dir\" am: 5158f491c6 am: 5582a7360a\nam: 0360e714b8\n\nChange-Id: I74d8495c913ad46396294390b49e9828653fab99\n"
    },
    {
      "commit": "3230ed8235a39adef82d7c3873e6a87007799ff8",
      "tree": "158042769963aa698a8fbd240d2abfc352220c3d",
      "parents": [
        "6dc75fb0cde69661a1d2d915c1520b251ebdfbbb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Sep 26 11:20:54 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Sep 27 12:12:46 2019 -0700"
      },
      "message": "Remove symlinks from include dir\n\nTest: build\n\nChange-Id: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\nMerged-In: Ibe4eee4fe49b7884e6d720e626d88125bbee0eb2\n"
    },
    {
      "commit": "99a94746c9a2f0fc2bb6f7086aa8b586a58e0a49",
      "tree": "3c364bd4371711ac744c49d6cea8b86f13b15c94",
      "parents": [
        "72da56ed189ec5a6656ad0d4dc4b8621f0604163",
        "804b87d1f80df7b5fbe77e59100c375be1542db7"
      ],
      "author": {
        "name": "Jeffrey Carlyle",
        "email": "jcarlyle@google.com",
        "time": "Wed Sep 18 11:26:11 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 18 11:26:11 2019 -0700"
      },
      "message": "Merge \"ServiceUtilities: don\u0027t do RECORD_AUDIO check for system server\" into qt-qpr1-dev\nam: 804b87d1f8\n\nChange-Id: I2b0828faf0e54ce58465edd5c97c564ee829168f\n"
    },
    {
      "commit": "62cc92bb3801f1181403c78b4f942874050bb874",
      "tree": "5b026f29b960d0ac13cfe7cc2c0fac38891230ab",
      "parents": [
        "1f1b954261e8821a7bf03c25abfd127dcc1f4844"
      ],
      "author": {
        "name": "Jeffrey Carlyle",
        "email": "jcarlyle@google.com",
        "time": "Tue Sep 17 11:15:15 2019 -0700"
      },
      "committer": {
        "name": "Jeffrey Carlyle",
        "email": "jcarlyle@google.com",
        "time": "Wed Sep 18 03:30:30 2019 +0000"
      },
      "message": "ServiceUtilities: don\u0027t do RECORD_AUDIO check for system server\n\nOnly one system server seems to exist across multiple-users; however,\nwhen the primary user is backgrounded, system server loses its\nRECORD_AUDIO permission.  Through a number of steps this prevents the\nsecondary user from starting any services that use the SoundTrigger HAL;\nspecifically, this was found because it prevents Oslo from functioning\nwhen a secondary user is active.\n\nBug: 139839188\nTest: Oslo use cases pass\nChange-Id: Ia0dd5fd3b6992cb18279b81146b35ed040771245\nSigned-off-by: Jeffrey Carlyle \u003cjcarlyle@google.com\u003e\n"
    },
    {
      "commit": "9d2e008603bfe9dd46098dd4e58ad551078b9d8e",
      "tree": "b0b68436882064d04591dd55f7963f2ea00cceab",
      "parents": [
        "47f98f62a9db5b3650df14184963b5b299bb4e3a"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Sep 11 19:08:13 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Mon Sep 16 12:34:43 2019 -0700"
      },
      "message": "Use bionic platform headers.\n\nBug: 130763340\n\nTest: Builds.\nChange-Id: I8cabd441431cd357bf2842bb40809db5a3ad171e\nMerged-In: I8cabd441431cd357bf2842bb40809db5a3ad171e\n(cherry picked from commit 7a3180d3c87bc91561e0a61ff5bc662ea6a1e627)\n"
    },
    {
      "commit": "8021f69cc8f235eb36246a21f1118f0557e21f85",
      "tree": "8facbabdc5b9fd923adf8e27fd7430281d60de54",
      "parents": [
        "dc8ee518f7a35d0c9d8f9fadfd887d97d8e527ff"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jul 30 08:48:19 2019 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Aug 01 18:18:10 2019 +0000"
      },
      "message": "Remove product_is_iot.\n\nTest: treehugger\nExempt-From-Owner-Approval: cherrypick\nChange-Id: I0a29825c8e9fe082c0dd2bee60cfc04665678fcd\n(cherry picked from commit 917bb01c6bb02060a01f804431dd503f9b256d30)\n"
    },
    {
      "commit": "cdc2f7cb3480f528d79966044013cea47296deb9",
      "tree": "4deef1c8ff0b99122c8497464282c281af855a5d",
      "parents": [
        "1c23036f6c55e4f38653b330bbebd05fd8fcba17",
        "e81a326d90dfce1249917b796f69b48fe1c59971"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 18:31:59 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 11 18:31:59 2019 -0700"
      },
      "message": "Merge \"audioservice: add RTT mode observer\" into qt-dev\nam: e81a326d90\n\nChange-Id: I9490f8b940629a09cf62cd5211c4f626e2d4079c\n"
    },
    {
      "commit": "6ede98f9b3e3e1988f401d79b625ead653027ccc",
      "tree": "2306e3b551752f70ec01a6d8ed87824743c2ef81",
      "parents": [
        "e0092766d214720c1fd22b8c08ccc7ceeaf4a700"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 14:50:30 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 14:55:25 2019 -0700"
      },
      "message": "audioservice: add RTT mode observer\n\nEnable audio capture by the Assistant when RTT is ON during a call\nsimilarly to when an accessibility service is in the foreground.\n\nAlso remove log when permission checked for hotword\nand audio output capture fail as those checks are now done\nsystematically.\n\nAlso do not check permission to bypass interruption policy if\nbypass flags are not set.\n\nBug: 132976361\nTest: use voice input during a call with RTT enabled.\nChange-Id: Iff45b0816dac889262ec29ea115f74dea4dc6b6d\n"
    },
    {
      "commit": "d8e3af08e643a0923f96ceb3e8b64ce63148aab7",
      "tree": "31afda0efc3ae11919f66aeb6357b334251535c9",
      "parents": [
        "6e89801b62e3df72b91c34ccb96cd75e71e6b054"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 13:28:13 2019 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Fri May 17 15:38:56 2019 -0700"
      },
      "message": "Replace unused dependency on libmemunreachable\n\nlibmediautils was accidentally getting backtrace_string through\nlibmemunreachable.  Remove the dependency, which is causing problems\nfor making libmemunreachable vendor_available, and use\nlibc_malloc_debug_backtrace instead.\n\nBug: 132302484\nTest: m libmediautils\nChange-Id: Ide83ce43027f28d548a76c607a84bab6604213cf\n"
    },
    {
      "commit": "429844193f7149f3b642f1f260a7f20398eb3778",
      "tree": "96fc240567b6c528242f4a88582b587e7ba09c48",
      "parents": [
        "459e59820f8914a10c1d015fb4fa09b723cacaca"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 09 17:57:03 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 10 15:38:12 2019 -0700"
      },
      "message": "audio policy: add permission check for privileged attributes flags\n\nAdd check for privileged permission if attributes\nflags BYPASS_INTERRUPTION_POLICY or BYPASS_MUTE are set.\n\nBug: 131873101\nTest: Manual smoke tests for audio playback.\nTest: Emergency cell broadcast in\nChange-Id: I073cf669f606f0d081ff5c8d19f39b5e12efe297\n"
    },
    {
      "commit": "a90adf0a05c7582227493cc90dcaa917a6f1a445",
      "tree": "ef004bc777b3d7d6110229f4a799b50c2057d2e6",
      "parents": [
        "8263e3519b6801f019e471efe4a6045b7046e4d3"
      ],
      "author": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Wed Apr 17 13:26:15 2019 -0700"
      },
      "committer": {
        "name": "Christopher Ferris",
        "email": "cferris@google.com",
        "time": "Fri Apr 19 11:16:40 2019 -0700"
      },
      "message": "Move to android_mallopt for malloc debug calls.\n\nBug: 130028357\n\nTest: Enable backtrace for mediaserver, run dumpsys media.player -m\nChange-Id: I75adddfc5048f732ee7ec27c17192efd5857af38\nMerged-In: I75adddfc5048f732ee7ec27c17192efd5857af38\n(cherry picked from commit bd0195ecacaa5381278d8f96b51af36631dc0cd9)\n"
    },
    {
      "commit": "68e0df70cdd57dbe32f11b5de50dd83c6492d075",
      "tree": "487ed1ea1849844493c436ccde9d432724fd652f",
      "parents": [
        "63dc6cf50582fa13702c59f43155f6c18312178b"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 18 17:55:35 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 02 17:31:42 2019 -0700"
      },
      "message": "Use package name, pid, uid to check permission of capturing hotword.\n\nPackage name will be cached in ModuleClient when attaching a client. It\nwill be used when querying permission of capturing hotword.\n\nTest: test with logging.\nBug: 74078996\nBug: 122721589\nChange-Id: Icd2911f5d331d243c9eb5d58003ce5525c70c81e\n"
    },
    {
      "commit": "36b17553b2c3aad4d8f600edd2e82f9a583ee05a",
      "tree": "b07a90eaf6bcba6f06fd56ab3976d1c71c7fd712",
      "parents": [
        "791d3370830b8e22b8bbaf41c3de900de48d2be3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu Mar 07 18:48:07 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Mar 22 17:21:30 2019 -0700"
      },
      "message": "Introduce a system APC with its corresponding opt-out\n\nFor system application with the new permission CAPTURE_MEDIA_OUTPUT, or\nCAPTURE_AUDIO_OUTPUT, allow to capture the audio of playing apps that\nallow it.\n\nTest: adb shell audiorecorder --target /data/file1.raw\nTest: atest android.media.cts.AudioPlaybackCaptureTest\nBug: 111453086\nChange-Id: I5bfca51e48992234508897c595a076d066db26b2\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "8be94978a3ec70d8dd621c9b5548f27ddd41ad7a",
      "tree": "0247595dfce3b8cb46e6e94e6cdb6303c0e92d7a",
      "parents": [
        "be20185b2f93e429aa4f69fa4caa3ac9cac2ecc3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 22 13:26:25 2019 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 27 16:24:55 2019 -0800"
      },
      "message": "Check for app manifest opt-out from playback capture\n\nQuery the package manager to check if the app has not opt-out of its\nplayback being captured.\n\nTest: adb shell audiorecorder   --target /data/file1.raw \u0026\n      adb shell am start -a android.intent.action.VIEW -d file:///system/media/audio/ringtones/Lollipop.ogg -t audio/ogg\n      adb dumpsys media.audio_policy # check playback is not recorded\n      # change media player manifest to allowPlaybackCapture\u003dtrue\n      adb dumpsys media.audio_policy # check playback is recorded\n      kill %1\n      adb pull /data/file1.raw \u0026\u0026 sox -r 48000 -e signed -b 16 -c 2 file1.raw file.wav\u0026\u0026 audacity file.wav\n      # check silence then sound\n\nBug: 111453086\nChange-Id: Id6fb7d0e10c02b0473bcbc0786e8360536996f48\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "5c5c8a11e8efc9f08eba73f830f5205a8f5ad055",
      "tree": "a377258d6a024a67be0feb4382c1907a5e0a5fec",
      "parents": [
        "bb6d61d78d2a488dd36de7c8cd0c7038732ddd1f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 15 17:36:00 2019 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 15 17:36:00 2019 -0800"
      },
      "message": "audio: use proper app ops API to check capture audio permission\n\nUse AppOpsManager.checkOp() instead of AppOpsManager.noteOp() to verify\ncapture audio permission when creating an AudioRecord client.\nThis avoid false triggering of mic use UI indication if capture is not\nactually active.\n\nTest: verify main audio capture use cases\nChange-Id: I38c7429bf2c8cdeaba907c868b94e39b69626c55\n"
    },
    {
      "commit": "37d73d1502db31e3542f1ce4de5c7cbed8d1e174",
      "tree": "979cc26d7ee3343a662bc742587c1617a8390e68",
      "parents": [
        "a308287ea13cbab40ad6892be20b1253b83c0e36"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 12:49:09 2018 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 20 15:18:12 2018 -0800"
      },
      "message": "Remove unused libraries from various media libraries\n\nTest: build\nChange-Id: I3bfb70a6ed3fe8f0e1683d456156517f8b992a33\n"
    },
    {
      "commit": "32b4f494fb4c032a8c9e8f3b8c9ed1d7ccd8ef22",
      "tree": "be0513d33052df294b4bf98f466e789c47377494",
      "parents": [
        "6fdd7d07da60c4c846e4a0a5af900982f65ac551"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Nov 14 18:38:21 2018 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Nov 21 12:06:27 2018 -0800"
      },
      "message": "libmediautils: move AImageReader_getHGBPFromHandle from libmediandk.\n\nThis allows us to remove camerserver\u0027s dependency on libmediandk,\nthereby reducing its vss increase (brought about due to many of\nlibmediandk\u0027s dependencies, which cameraserver does not need)\n\nBug: 119582723\n\nTest: mm -j64\nTest: showmap \u003cpid of cameraserver\u003e vss before change: 50628\nTest: showmap \u003cpid of cameraserver\u003e vss after change: 31256\nTest: AImageReaderWindowHandleTest\n\nChange-Id: I8dec6430adda538cb293cdd0d087b9ae1767b900\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "433722eeb72ab11bb945664fa939cf7ef737af6d",
      "tree": "194eab009f7fad2010a5baa3c82b1a497d4543e3",
      "parents": [
        "5c00d01c85430178d19f6266f1bc5c94a29853c1"
      ],
      "author": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Tue Apr 24 14:25:22 2018 -0700"
      },
      "committer": {
        "name": "Ari Hausman-Cohen",
        "email": "arihc@google.com",
        "time": "Thu Aug 02 11:34:36 2018 -0700"
      },
      "message": "Add dynamic stream default effects\n\nAllows runtime modification of what effects should be default\nattached to streams of different types/usages. The core functionality\nwas already in the AudioPolicyEffects system, this allows\nthe dynamic modification of the lists.\n\nBug: 78527120\nTest: Builds, manually tested an app adding a stream effect,\ntested both media on the specified stream and on a different stream.\nAlso tested by Android Things integration tests.\nChange-Id: Ie0426b17ff7daece58b8c85d72fbef620844325b\n"
    },
    {
      "commit": "39b09b52e313e89c3493927b379d2e256bf04bd9",
      "tree": "04e64f327c09b0d3344884d59c35ff520c751e3e",
      "parents": [
        "cd56a1c2a0adcd21aad3a64c761aa3562d915be1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 29 12:24:40 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 10 09:02:26 2018 -0700"
      },
      "message": "audioserver: log system event for binder timeouts\n\nAdd event logging in case of audioserver watchdog to help\ncollect statistics.\n\nTest: make. Simulate watchdog and check events in logcat.\n\nChange-Id: I4716852c77d56703ad5f3dfc2500f598a2b80a12\n"
    },
    {
      "commit": "9b11c026344077dab9591bb8b9afdf3e7bd93eb1",
      "tree": "44bd2406c5d45c730437b4003535983df4d404f9",
      "parents": [
        "7e19897b405318df20eccb1d697a8ecccd70fbc7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 06 19:19:22 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 16:50:45 2018 -0700"
      },
      "message": "sound trigger: more checks on IMemory received from client\n\nAdd a verification on actual size of the fd backing up the IMemory\nrecevied for sound model or recognition config.\n\nFix similar problem for AudioTrack shared buffer.\n\nBug: 78596657\nTest: run POC. OK Google regression.\nChange-Id: I7cb02785f8ba46c437c7fcaa5b821f4b7e3240a0\n"
    },
    {
      "commit": "4ef19fa450e8b523741a22fabee8f62691abec37",
      "tree": "5d0eaaf73cebe029d1d8dd935d5c6fddb12ee70f",
      "parents": [
        "ab7ef300b74904bce6c5c810d9e5679abfa582e6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 15 19:35:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 17 18:11:55 2018 -0700"
      },
      "message": "Update audio permission checking\n\nChange captureAudioOutputAllowed to check client pid.\n\nCheck calling uid with AID_AUDIOSERVER instead of calling pid with\nown pid. This is consistent, and works if AudioFlinger and\nAudioPolicyManager exist as different processes.\n\nRemove getpid_cached since getpid() is very fast. This removes\nany initialization issues.\n\nReplace getuid() with AID_AUDIOSERVER to remove ambiguity of\nmultiple native audio services for multiple users. Only\none exists regardless of users.\n\nDo not use multiuser UID checks for certain native services\nthat do not spawn for multiple users to prevent accidently exposure.\n\nMove permission checks to use ServiceUtilities for control and\nconsistency.\n\nRename isTrustedCallingUid to isAudioServerOrMediaServerUid\nso that permission check is explicitly known to caller.\n\nUpdate MediaLogService to use ServiceUtilities.\n\nTest: Basic sanity\nTest: AudioTrackTest, AudioRecordTest, SoundPool, SoundTrigger\nBug: 79485140\nChange-Id: Ib8ccb36929a9b4806c01626f32fa023a046d6020\n"
    },
    {
      "commit": "ab7ef300b74904bce6c5c810d9e5679abfa582e6",
      "tree": "dadb05ba8da176c046139ca43c3fae48a14191c3",
      "parents": [
        "1f2bfd3ac9d61982acb348d2c78f95c7d4b0bf05"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 15 19:35:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 16 18:49:09 2018 -0700"
      },
      "message": "Move ServiceUtilities from audioflinger to libmediautils\n\nTest: Play Music, Play Movies, Camera, Photos\nBug: 79485140\nChange-Id: Ib8382547828e386024145c416321d24e4af182db\n"
    },
    {
      "commit": "79d2b28f3a04d7914bb932a65d87117c0c7c11cf",
      "tree": "386c0e23123c52191f3c098351898cd6a0bdb4bf",
      "parents": [
        "1cdd674121096020f7f17c216940a14aa58ff31e"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 17 14:14:31 2018 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 18 13:46:03 2018 -0700"
      },
      "message": "Request cpuset change for 1080p HDR using soft decoder\n\nKeep track of cpuset change requests in ResourceManagerService,\nand request changing of cpuset via SchedulingPolicyService.\n\nBug: 72841545\n\nTest:\n\n1)Using modified Youtube/Exoplayer (that uses softMediaCodec\nto decode VP9 profile2), manually verify the following:\n\n- media.codec is put into top-app cpuset playing VP9 1080p HDR\n- media.codec is put back into foreground after done\n- media.codec stays in foreground cpuset playing other content\n- kill the app process, verify media.codec is put back to\n  foreground until new instances request top-app\n- kill mediaserver process, verify media.codec is put back to\n  foreground until new instances request top-app\n- kill media.codec process, starting playback again, verify new\n  media.codec\u0027s cpuset can be changed correctly\n- kill system_server process (using \u0027adb shell stop \u0026\u0026\n  adb shell start\u0027), verify media.codec is put back to\n  foreground. Restart playback and verify the cpuset can be\n  changed correctly.\n\n2) CTS post submit tests\n\nChange-Id: Iba50ede1c08b695821fe4f56dbfc5694eab54e7b\n"
    },
    {
      "commit": "4049f13fb3d1c588d3e4dc518ede15d45dca4c9e",
      "tree": "3f0566fb3f3f9cb441e3b466f95341c600c9c1ef",
      "parents": [
        "205266aacc675dfb7a7f9f985c4ca973163cb59e"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 22 10:37:31 2018 -0800"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Jan 22 18:48:46 2018 -0800"
      },
      "message": "MediaPlayer2: build static libs for some components\n\nTest: compiles\nBug: 63934228\nChange-Id: I1791b40a67c87ea3146825767699e5022444e433\n"
    },
    {
      "commit": "021c8bc0db0a8934881f99ce4926eb9e0f169f6a",
      "tree": "96beb207bbd52294243a35b2e8933f71f0e7f740",
      "parents": [
        "2ef26a0d04b9cc6cebbda733056e4ac09f738c61"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 13 14:38:49 2017 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Dec 13 14:40:19 2017 -0800"
      },
      "message": "Remove unnecessary links\n\nTest: build\nChange-Id: I5b7c37648df8043795bad9b0544ecf77a5148b69\n"
    },
    {
      "commit": "8499f13735227aab50b4bc859a1ea6f02166e912",
      "tree": "25f47c647364a40db2ece3d0e06496e0f0e42a16",
      "parents": [
        "08455b8df21e586c88d9f66eff71f0d26230192e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 04 08:08:45 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 08 08:13:11 2017 -0700"
      },
      "message": "Update OWNERS to be more specific\n\nStill to do ... media/OWNERS\n\nTest: Gerrit works as expected\nChange-Id: I2645175569b579764d0298641287e56bfabeab9f\n"
    },
    {
      "commit": "22ee46008d6fb8eb4cbe8aa62acf3899e5da3a92",
      "tree": "fe3f2cca2af2e9ce612523b31b379e42cd74ed3e",
      "parents": [
        "ef0b6b64144b6e062bbb445a6df73c365b66646d"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 07 10:44:52 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Apr 07 16:59:44 2017 -0700"
      },
      "message": "libmediautils: mk -\u003e bp\n\nTest: module built and works with scheduleservice\nBug: 29251823\nChange-Id: I0dc38288b66f03919dbb9ab8abcc76dec19b0b30\n"
    },
    {
      "commit": "83f042776b131b149f803fff6ab184ae2c4d98cd",
      "tree": "d3c78a3313c94799261a927c84cddc7c0ebdd398",
      "parents": [
        "ba05ff122c080be9fafe1f8112052cacfcd2b6fe"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 07 10:45:09 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 09 15:51:36 2017 -0800"
      },
      "message": "audioflinger: Adjust priority of hal threads\n\nHALs are prohibited from using framework binder, and there is\nno equivalent scheduling policy service in hwbinder. Thus, in order\nto match priorities of FastCapture / Mixer threads with their\ncounterparts in the HAL, it is needed to request the priority boost\nfrom audioflinger on behalf of the HAL.\n\nTest done to verify the priority was correctly set.\n\nBug: 34131400\nChange-Id: If8b6b031c0fcba771fae901a5b8e7da89b3a1570\nTest: check priority match between audioflinger\u0027s and hal\u0027s threads\n"
    },
    {
      "commit": "9c8086fa924e8b570fa66c3ef3bce0ec24a16031",
      "tree": "a54e6095684f7a247ce54ea791f6d7230c7ff81d",
      "parents": [
        "e158da59b3b525cf271968bec3967414b21159fa",
        "1afd0983fdca07cd55df8dca1fa05b55c45063f4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Dec 10 00:27:34 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 10 00:27:35 2016 +0000"
      },
      "message": "Merge \"MediaPlayer: Use uid_t for uids\""
    },
    {
      "commit": "1afd0983fdca07cd55df8dca1fa05b55c45063f4",
      "tree": "8b18742499e87de49231f89af89aa7a2e8d48364",
      "parents": [
        "1f12a8ad958344c50733b948628ffa06db9c5bc6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:13:44 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 08 16:44:22 2016 -0800"
      },
      "message": "MediaPlayer: Use uid_t for uids\n\nTest: Power manager shows correct uids\nBug: 32713790\nChange-Id: Iddf8de5705319ec17c68787efc11e342779660c5\n"
    },
    {
      "commit": "75571e4bc76bd2defd4309c7154120840396329d",
      "tree": "6011d30e202e4e6c03fdeffda65a9ad98ff2c131",
      "parents": [
        "300379ab01ec4c5f9f538284dbb1e49ad012de29"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 07 16:34:52 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 07 16:34:52 2016 -0800"
      },
      "message": "Clean up mediadrm dependencies\n\nMove various things around so mediadrmserver doesn\u0027t need\nlibstagefright and libmedia\n\nTest: build/boot\nChange-Id: I48b713cd679b992cb6ad1262c20394a9892d7027\n"
    },
    {
      "commit": "538ec5e04f389cba637b030757be317fcb8677a8",
      "tree": "c9c576057efe1f6c0bdf1a4cbf6b58dce68f5e3f",
      "parents": [
        "e085c1072f017d4910f7e49741f72e8a722b8892"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 02 13:21:22 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 12:14:36 2016 -0700"
      },
      "message": "Split libmedia into libmedia and libaudioclient\n\nThis makes it so audioserver doesn\u0027t need to link against the entire libmedia,\nwhich has dependencies on camera, ICU, OpenGL and other things that aren\u0027t\nneeded for audio.\n\nTest: build/boot\n\nChange-Id: I99ba1a3dc3b33ca9b3abd98e7519dbf228ee62af\n"
    },
    {
      "commit": "f2ae3e19080938db8cbf29a963fd744a3964fcc2",
      "tree": "f5f1ef5ff03ae54e10af8e2726ce1db80b49f87d",
      "parents": [
        "2aa19a96710eaaaf6679453f0278d393fd768de5"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Oct 27 17:10:59 2016 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Oct 28 10:09:28 2016 -0700"
      },
      "message": "BatteryNotifier: attribute battery usage of video to correct uid.\n\nTest: manual check batterystats\nBug: 32361950\nChange-Id: Id052220e87f6667ca908d5bf6be6164dc8c14c53\n"
    },
    {
      "commit": "47734c9509ecb472c2844cae46e2d916b9358321",
      "tree": "6b17e7f1540458e2f1abbe1c082353f920edc3df",
      "parents": [
        "20be7bf5ba6f3d4db36686d5af4316006cf9bb27",
        "98a9b2a491360c762e2ed46a9126f576693645a5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 02 12:23:44 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon May 02 12:23:44 2016 -0700"
      },
      "message": "resolve merge conflicts of 98a9b2a to nyc-dev-plus-aosp\n\nChange-Id: Iae0a5cb698807d74ba28878d7ce1f69b6ba5219a\n"
    },
    {
      "commit": "090ef604f81447eab4aa0a5b45d6307482573560",
      "tree": "6eb6530aab79b1cdc543ef16650be519db449e37",
      "parents": [
        "cdf7931424583ff20a754999216041fb46287cb3"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 27 10:39:54 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Apr 27 10:55:42 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings.\n\nBug: 28341362\nChange-Id: I625fbab25f16282c2ea929cd16283d9d146fa17b\n"
    },
    {
      "commit": "dcb346b7dc5b88c3e85db8a70bbd6a2fee8192b9",
      "tree": "e0038e85e097843f469a6befe9fae1014435f4f5",
      "parents": [
        "ebdddf82b07fa2c4134c3c00dbbbaa1ad3286726"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 09 10:47:29 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Dec 08 11:29:11 2015 -0800"
      },
      "message": "Run audio services in audioserver instead of mediaserver\n\naudioflinger, audiopolicy, (fm) radio, soundtrigger moved to audioserver.\nmedialog is removed from mediaserver.\naudioserver has same permissions and rights as mediaserver.\n\nmediaserver is allowed to specify client uid to audioserver.\n\nSubsequent CL will add medialog to audioserver.\n\nTBD: Pare down permissions.\n\nBug: 24511453\nChange-Id: Iccaa08b874a502710d142e72f8abbb3d97c44cfa\n"
    },
    {
      "commit": "f99498ee4de7123e2fd71778c6877be44fbd1506",
      "tree": "76fc5f13ab660c053101f09a701187259952e90a",
      "parents": [
        "8595eaab5884bb74d884d366ad6e371a296bf576"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 25 16:52:55 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sat Sep 26 11:22:20 2015 -0700"
      },
      "message": "CameraService: Use SCHED_FIFO for request queue thread in HFR\n\n- Move SchedulingPolicyService from audioservice to mediautils\n\n- When starting up a high speed stream config, set request queue thread\n  to SCHED_FIFO using SchedulingPolicyService\n\nBug: 24227252\nChange-Id: I224b59142bd111caf563779f55cddd62385b9bac\n"
    },
    {
      "commit": "99e69716215cd0665379bc90d708f2ea8689831d",
      "tree": "d013b8e9273ea6032ddf24ba701eccb755b672bb",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue May 26 17:25:07 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Mon Jun 01 16:53:45 2015 -0700"
      },
      "message": "Track camera and flashlight usage in battery stats.\n\nBug: 15986092\n\nChange-Id: I9dc6828332e4091fd93bf2d82839e8e3862a2fc2\n"
    }
  ]
}
