)]}'
{
  "log": [
    {
      "commit": "c833ccc86b8af68cfb80de182309be6d4eaac860",
      "tree": "fe812669d009ddb4c7148d791a65a4961b9c533c",
      "parents": [
        "5e39adb1c42dabd229fa416f4bb484181418e016"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 13 09:32:47 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 17 02:49:54 2019 +0000"
      },
      "message": "audio policy: fix mmap capture disconnect\n\nForce close mmap input streams when a capture device is\nconnected to force disconnect callback to client.\n\nBug: 137311579\nTest: capture with oboetester and connect headset\nChange-Id: Iafe939247fa565e2424b40afacdb79a31b8955b7\n(cherry picked from commit 7bd2939d6ce0574f01771b8569b1d76faf2b09b7)\n"
    },
    {
      "commit": "9066766c0f6fc1c9282023070de2abacaa25a6df",
      "tree": "4484bcdfea9726e072ec7c56eb4317950ff742f8",
      "parents": [
        "9694a99645a42c23d489ce605e5cea4fdc0e1936"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jul 01 15:45:00 2019 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jul 02 11:00:01 2019 -0700"
      },
      "message": "Camera: fix format overriden logic\n\nOriginal logic was comparing an overridden format int, switch\nto use a const original format.\n\nTest: partner device, Pixel 3 CTS\nBug: 136456900\nChange-Id: I03d6e190770ee05e40446c417e323f546fdc2689\n"
    },
    {
      "commit": "62a6173c5443f9726b914ede43b3c2e0fd643128",
      "tree": "932fd27e4e895ba76a9b98623fedf4dc63ed25ca",
      "parents": [
        "a426cf1c3d42d2e17212bd0aa5fbfe7517ad3284",
        "94c98021b7e0ea614d92a1d1ea8bf163de9136bd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Jun 22 03:16:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jun 22 03:16:26 2019 +0000"
      },
      "message": "Merge \"Camera: Destroy jpeg handle in \u0027encodeGrayscaleJpeg\u0027\" into qt-dev"
    },
    {
      "commit": "a426cf1c3d42d2e17212bd0aa5fbfe7517ad3284",
      "tree": "28688ba181fa2c42a44e113fa7be1e6d5a83483e",
      "parents": [
        "239ff11cdb463c4d1559f9a1a31c041b94c8b921",
        "fad001d05d2a928d6196978ba94adf95f0297244"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 21 17:10:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 21 17:10:00 2019 +0000"
      },
      "message": "Merge \"audio policy: mute call RX when SCO volume is 0\" into qt-dev"
    },
    {
      "commit": "23f4d6cc618576ac53da4ce9e761e9bee3109333",
      "tree": "96fa896900c3cf2aaab10f74d91cc95cf38dd812",
      "parents": [
        "0963d443b054ad3a83afbee1035f2d7a9db6086d"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jun 20 10:16:37 2019 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu Jun 20 10:16:37 2019 -0700"
      },
      "message": "Enable count-based expiration for media metrics\n\nin addition to the time-based expiration, enable count based expiration\nand set it to 2000 records, about 5x the daily average. Caps the memory\nfootprint.\n\nBug: 135552978\nTest: boot, enough traffic to force expirations\nChange-Id: Ide96df24b00e8f115905678800c782f29a91bcba\n"
    },
    {
      "commit": "94c98021b7e0ea614d92a1d1ea8bf163de9136bd",
      "tree": "788292b06ccba866f790469bbcbfcb1d762509f8",
      "parents": [
        "a69eacc42ca98e7da08efaac1426c691be0a85b2"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jun 19 09:11:51 2019 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Jun 19 13:23:19 2019 -0700"
      },
      "message": "Camera: Destroy jpeg handle in \u0027encodeGrayscaleJpeg\u0027\n\nMake sure \u0027jpeg_destroy_compress()\u0027 is always called\nbefore leaving \u0027encodeGrayscaleJpeg()\u0027.\nAdditionally fix misspelling of \u0027intrinsic\u0027.\n\nBug: 135622974\nTest: atest\ncts/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java#testDynamicDepth\n--generate-baseline\u003d12\nChange-Id: I55c1f86881ba05aac6aac6981df5fcb276c9d4da\n"
    },
    {
      "commit": "63655808d78f8e6219fd0915671cca7d87363bbc",
      "tree": "504a8cf81bf181208b6d0dffe81a42b076aa25ea",
      "parents": [
        "7061679b69cd2b3fa2da058c725b14c2a3672d26",
        "5fee0f2b7c6fc2ac8ca7c908aef25864ce8894a2"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jun 14 22:54:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 14 22:54:21 2019 +0000"
      },
      "message": "Merge \"libhidltransport users user libhidlbase\" into qt-dev"
    },
    {
      "commit": "fad001d05d2a928d6196978ba94adf95f0297244",
      "tree": "0875e33154326ff4b05afea3ba315710d4407fc5",
      "parents": [
        "e81a326d90dfce1249917b796f69b48fe1c59971"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 11 19:17:57 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 14 15:13:32 2019 -0700"
      },
      "message": "audio policy: mute call RX when SCO volume is 0\n\nSet voice volume to 0 when SCO volume index is 0 to\nallow muting RX audio. when index is not 0, voice volume\nis set to max to allow volume control by headset as before.\n\nBug: 111195322\nTest: check call volume with SCO headset\nChange-Id: I90466b01a9899929cd3e6fb1ac0a4985099497fc\n"
    },
    {
      "commit": "e81a326d90dfce1249917b796f69b48fe1c59971",
      "tree": "ff2150258ac552a5ac5d23a626d4821be434cf36",
      "parents": [
        "b365706b2675fcc16eb14d89db5c3736170c7dd5",
        "6ede98f9b3e3e1988f401d79b625ead653027ccc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jun 12 01:02:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 12 01:02:33 2019 +0000"
      },
      "message": "Merge \"audioservice: add RTT mode observer\" into qt-dev"
    },
    {
      "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": "584d868a6bfc0a51ff4c0b6e9ea2b5b9895d3240",
      "tree": "dfb8a7c7a03280efa17a995369cd3a2bf6706617",
      "parents": [
        "7a92b009df1f4cc5a98078f1c2808524e237b7bc",
        "f9b4eb9e3f74ee03adccdf471d9e1073b6bc9d8c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 11 17:36:54 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 11 17:36:54 2019 +0000"
      },
      "message": "Merge \"Camera: Compare old and new overrides for finishConfigure\" into qt-dev"
    },
    {
      "commit": "f9b4eb9e3f74ee03adccdf471d9e1073b6bc9d8c",
      "tree": "6b40d02f452498ca27294677f68b11ebac9994ac",
      "parents": [
        "9c8dfd599caf7c8b727b90601da4fc8160d23ab4"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Jun 10 11:06:01 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Jun 10 22:48:33 2019 -0700"
      },
      "message": "Camera: Compare old and new overrides for finishConfigure\n\nWith the new dataSpace/format override logic, during\nfinishConfiguration, we shouldn\u0027t check mDataSpaceOverride flag anymore\nbecause now mDataSpaceOverride will be true for reconfigure.\n\nInstead, we should check if the new override is the same as old\noverride.\n\nTest: testPrepare on HAL device with dataSpace override\nBug: 134800141\nChange-Id: I1ddc258100dfd7e3c2cc86f9e476d8d52c710e3f\n"
    },
    {
      "commit": "ed95748f36d6440fad826ca2d01331697c5e4215",
      "tree": "6df4961c85d7c76fbb6cfaaa48e623d247fd0b81",
      "parents": [
        "e0092766d214720c1fd22b8c08ccc7ceeaf4a700",
        "4e5f402253592726d05f4864b2f30b740abf15fc"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 10 23:55:45 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 10 23:55:45 2019 +0000"
      },
      "message": "Merge \"Fix remote-submix not found for MIX_TYPE_RECORDERS LOOPBACK\" into qt-dev"
    },
    {
      "commit": "4e5f402253592726d05f4864b2f30b740abf15fc",
      "tree": "985acb69bb0c83784662238236e2a9bfd4e1adf7",
      "parents": [
        "90d1d53862638210d848ddedef2600aae35337d3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jun 08 02:32:21 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jun 10 14:06:11 2019 -0700"
      },
      "message": "Fix remote-submix not found for MIX_TYPE_RECORDERS LOOPBACK\n\n[Context]\nWhen a LOOPBACK dynamic audio policy mix PLAYER/RECORDER\nis registered, first the REMOTE_SUBMIX device that will be\nused by the app to capture/play respectively is activated.\n\nEg a mix RECORDER (used to inject audio to apps recording),\nwhen registered will activate an OUT_REMOTE_SUBMIX.\n\nThen the app can open a record/playback track on this\nREMOTE_SUBMIX, which will trigger the other end of the pipe\nto be activated.\n\nFollowing this the playback/Record Tracks that match the\nmix will be routed to the IN/OUT REMOTE_SUBMIX.\n\n[Example for an app FUU]\n 1) App FUU register Playback/record mix\n    2) APM activates out/in remote submix\n 3) App FUU opens track to out/in remote submix\n    4) APM activates in/out remote submix\n 5) tracks matching mix are redirected to the out/in remote submix\n\nWhen an OUT_REMOTE_SUBMIX is activated, it tries to check if it matches\na mix, if it does, it saves the output in the mix (in mOutput).\nThis output is then used to find a matching mix output in\ngetOutputForAttr(). If a mix has no output is is considered inactive.\n\nNote that IN_REMOTE_SUBMIX do not save their input in the mix, the\ninput is queried by APM each time in its mAvailableInputDevices.\n\n[Issue]\nThe issue is that in step (2), when an OUT_REMOTE_SUBMIX is\nactivated (thus for a MIX_TYPE_RECORDERS), no mix is matched because the\nmix is of type IN_REMOTE_SUBMIX as it will be used to route AudioTracks\nin step (5).\nThus no mix output is found in getOutputForAttr and the step (3) fails.\n\nThis is a recent regression as previously the type was not checked when\nlooking up for a mix in step (1).\n\nThe Change-Id of the patch that caused the regression is:\nI4dc7f23bef19a7d47afc2998102da07dde41fbca, its sha1 is:\n679172768d86e29a47b9e15dd56776694128cf59\n\n[Workaround]\nFor now, given the release timing, implement a minimal fix that restore\nthe previous behavior for the OUT_REMOTE_SUBMIX output save lookup.\nAka, make sure to query for a IN_REMOTE_SUBMIX mix in step (2).\n\nStep (4) is fine as the mix type is the same as the REMOTE_SUBMIX type.\n\nAs IN_REMOTE_SUBMIX do not attempt to save their output in the mix, no\nissue is present on this code path.\n\nA proper fix needs to be implemented on master, preferably by having the\nsame device save behaviour on both mix type.\n\nBug: 134068143\nTest: Wifi calling call screening\nTest: atest AudioPlaybackCaptureTest AudioHostTest\nChange-Id: I1547948ae412dbdeb2d85cc62bf18f7ac5f1efc0\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "5fee0f2b7c6fc2ac8ca7c908aef25864ce8894a2",
      "tree": "6983a1bf9b3f51ac216509f257719312632acec7",
      "parents": [
        "e0092766d214720c1fd22b8c08ccc7ceeaf4a700"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jun 10 13:35:00 2019 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jun 10 13:35:06 2019 -0700"
      },
      "message": "libhidltransport users user libhidlbase\n\nlibhidltransport symbols are being moved into libhidlbase in order to\noptimize linking/memory usage. libhidltransport will no longer be\nrequired in the future (however removing references to it will come\nseparately).\n\nBug: 134961554\nTest: boot\nChange-Id: Ie8b9b03a53ae1f5672ce2565550768b4bcd321ee\n"
    },
    {
      "commit": "8caf80a23a6abdfdea466e424679b176c4c649bc",
      "tree": "061c39cd7f365101d458dc6c0e982c48a89b41e8",
      "parents": [
        "ca77ca26c12734407f12581854701b1d255cbba3",
        "9265395f3429d1c324e66a91a6a42cf5525b4498"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jun 07 00:05:50 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 07 00:05:50 2019 +0000"
      },
      "message": "Merge \"Camera: Use original format and dataSpace for reconfigure\" into qt-dev"
    },
    {
      "commit": "b61526c6a080af7bc062b231c52d1b7e6545868d",
      "tree": "1d5916e12e4d7a3ee2493dca2185677431fbab0d",
      "parents": [
        "46238cd0395a0cb759bb1370356a8ac0fb2fa72b"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon May 13 19:37:42 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Jun 05 16:51:08 2019 -0700"
      },
      "message": "cameraserver: Stop appOps camera reporting for vendor clients.\n\nSince vendor native clients don\u0027t have package names, appOps reporting\nwould be inaccurate for them. In order to avoid that, we stop appOps\nreporting for vendor clients.\n\nBug: 132718220\n\nTest: AImageReaderVendorTest, use hal client for cameraserver, GCA(sanity)\n\nChange-Id: Ie6f80e8ab530aa755df57f8d25d9f1a15a20d7f7\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "9265395f3429d1c324e66a91a6a42cf5525b4498",
      "tree": "e7142391b15465d7174e2c0ab0a93c7f7423447e",
      "parents": [
        "90d1d53862638210d848ddedef2600aae35337d3"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue May 07 15:11:43 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Jun 05 15:23:19 2019 -0700"
      },
      "message": "Camera: Use original format and dataSpace for reconfigure\n\nStarting from HAL device version 3.5, the format and dataSpace for\nIMPLEMENTATION_DEFINED pixel format uses original instead of overridden\nvalues.\n\nThis makes HAL interface behavior consistent in that HAL doesn\u0027t need to\ndistinguish between first-time configureStreams and subsequent\nreconfigure.\n\nTest: Camera CTS and partner testing\nBug: 131864007\nChange-Id: Ie5fdc7e9b6c11c1c96a069262b9458455855bcef\n"
    },
    {
      "commit": "333ab963ed35ee99efa076db100e70a45e6ffff9",
      "tree": "ccab1ba155378b4e57996049a08afa4a74ef5171",
      "parents": [
        "b472cf075b83686fe30254a3b58f60e5866a667a"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 28 20:23:35 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 29 09:53:04 2019 -0700"
      },
      "message": "VolumeShaper: Ensure consistent observable state when muted\n\nPrior to this patch, VolumeShaper state for direct\nand offloaded tracks did not appear to advance for master mute\nand all tracks did not appear to advance for stream mute.\n\nTest: atest android.media.cts.VolumeShaperTest with and without muting\nBug: 133354056\nChange-Id: I589f4e0837124a185509718f1175e06102a1be96\n"
    },
    {
      "commit": "679172768d86e29a47b9e15dd56776694128cf59",
      "tree": "f96e84cd5dcf55079976366eb1d8c8be210262dd",
      "parents": [
        "5592ee268507a8ee90fd374530e55a6279dbf0de"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed May 22 11:54:37 2019 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 24 07:27:52 2019 -0700"
      },
      "message": "APM: make AudioPolicyMixCollection inherit from Vector\n\n  Modify AudioPolicyMixCollection to inherit from Vector instead\nof KeyedVector so all so the collection of mixes stays in the same\norder as the mixes were added.\n  Also make the mix selection take the deviceType into consideration,\nnot just the address to enable the same address to be associated to\ndifferent devices.\n\nBug: 131090322\nTest: see bug for multi bus scenario\nTest: atest AudioPlaybackCaptureTest\n\nChange-Id: I4dc7f23bef19a7d47afc2998102da07dde41fbca\n"
    },
    {
      "commit": "5592ee268507a8ee90fd374530e55a6279dbf0de",
      "tree": "2a2ef3e15e9073a81c23fdf667b128963de98f5b",
      "parents": [
        "f9b3d532eb7422446d7efbd54b15fa87ea60d68a"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed May 22 08:00:05 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 22 18:57:28 2019 -0700"
      },
      "message": "audiopolicy: fix source client lifecycle\n\nUpon startAudioSource -\u003e connectAudioSource, the source client\nis attached to the output.\nUpon stopAudioSource -\u003e disconnectAudioSource, the source client is\nnever removed.\n\nAs a result, if the same client is trying to call startAudioSource again,\nasthe client is already attached, getClient will lead to bailing out in\nconnectAudioSource and the source will not be started.\nThe stopAudioSource if called would claim that the client refcount is already 0.\n\nAny following call to start would fail again on outputDesc-\u003estart as invalid\nas the profile fails on canStartNewIo.\n\nThis CL fixes this issue by removing the client source desc on disconnectAudioSource.\n\nBug: 133367802\nTest: build \u0026 run\n\t    AudioPolicyEmulatorTests --gtest_filter\u003d*AudioSourceEffectTest*\n      multiple consecutive times.\n\nChange-Id: I78370be248ff24cf4135d51f709d965c5bfae4e8\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "3be0ffbd9d2804e7cfcd425b80c6835d5cc5e7af",
      "tree": "0631d94e73c487bc9f1b441648dc39d1bcd18e62",
      "parents": [
        "f01afea93046d442f0ed7517fcac0d9be125365d",
        "9066ad3846deb54fe2bba86b25a934d5bf6033d7"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed May 22 00:23:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 22 00:23:26 2019 +0000"
      },
      "message": "Merge \"audioflinger: fix App Ops for services\" into qt-dev"
    },
    {
      "commit": "9066ad3846deb54fe2bba86b25a934d5bf6033d7",
      "tree": "c23c4f7093b5f9775f4284471b913e14c1dc028b",
      "parents": [
        "86bd6afc79a46d586be816172f3cef7e7c89dc09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 20 14:40:10 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 21 14:28:58 2019 -0700"
      },
      "message": "audioflinger: fix App Ops for services\n\nDo not check app ops for audio playback for services in\ngeneral, not just for audioserver or root user.\n\nBug: 133178934\nTest: audio smoke tests\nChange-Id: I3a34e6418dc750cc12ed35d465ca8874b0ce0f73\n"
    },
    {
      "commit": "688abaa2865dab9ba955a6543a965d10e4c506db",
      "tree": "260fed212b84c3ce6afcaded95707082c66b7dcc",
      "parents": [
        "86bd6afc79a46d586be816172f3cef7e7c89dc09"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri May 17 16:32:23 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue May 21 12:03:30 2019 -0700"
      },
      "message": "Enumerate all hevc encoders to find one that support CQ @ 512x512 size\n\nbug: 132905160\ntest: ImageReaderTest#testHeic\nChange-Id: I497b203f7e21299eb4e322af4d4c5c925cf5a48a\n"
    },
    {
      "commit": "d68496deee058c6c03c35859b2548bfee3393a62",
      "tree": "02b4f7eade9369f92f807b2191ef3409b1accffa",
      "parents": [
        "4f1b69083719207f8cde2a6bf22bd3ebef80fdd8",
        "f8e28fb940d725afb26a37c1964fbd1fcdb50fe8"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 20 02:09:36 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 20 02:09:36 2019 +0000"
      },
      "message": "Merge \"Camera: fix acquire fence FD double close\" into qt-dev"
    },
    {
      "commit": "b7a422adffb463c62617895ed8d1d46188f08aa4",
      "tree": "32a49fbf6c353351c67e609fe3765ac23eac3357",
      "parents": [
        "a37a0d1295dc0f4336c1eac745a493f8eca5670f",
        "22fcda29e5982a052d2f6c6ce312d1f65edc7920"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 18 01:01:40 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 18 01:01:40 2019 +0000"
      },
      "message": "Merge \"audio policy: fix camera shutter sound\" into qt-dev"
    },
    {
      "commit": "a37a0d1295dc0f4336c1eac745a493f8eca5670f",
      "tree": "aeed0c3767140e0638e2a0dabfea723f225bc7b8",
      "parents": [
        "302652eab7ad68a89af1dcf06c190492e941b8c1",
        "097090588fa2d4beebb7defb9481f6e990b55c98"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 18 00:22:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 18 00:22:00 2019 +0000"
      },
      "message": "Merge \"Pull xaac codec from build\" into qt-dev"
    },
    {
      "commit": "302652eab7ad68a89af1dcf06c190492e941b8c1",
      "tree": "3913775585af1ef99e5ba38fd5970de392e9ff6b",
      "parents": [
        "5f31276553dea24e56b4a4feae6edfd939e07d5e",
        "11648852d7e9b92d36879bb2ed6d9953751121c5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 23:57:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 17 23:57:00 2019 +0000"
      },
      "message": "Merge \"Camera: cleanup some dead code\" into qt-dev"
    },
    {
      "commit": "22fcda29e5982a052d2f6c6ce312d1f65edc7920",
      "tree": "5212b9474c047e7f68b73e46b9d63b60103541de",
      "parents": [
        "4fc900d75601247d565a736decb36381165f6d83"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 17 16:28:47 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 17 16:28:47 2019 -0700"
      },
      "message": "audio policy: fix camera shutter sound\n\nFix regression in camera shutter sound when system stream\nvolume is 0.\n\nBug: 132696227\nTest: repro steps in bug.\nTest: regressions when camera sound is enforced\nChange-Id: I76b4a5ee041f97c5f771c003bf4f99327d797096\n"
    },
    {
      "commit": "5f31276553dea24e56b4a4feae6edfd939e07d5e",
      "tree": "7ded9ca6848e3599bfaf4ae96288b332de59acda",
      "parents": [
        "1dc04e4127742b47a700c41915637967ae41c37a",
        "5ee9984930753d3231f457be1bbcdba8910b7666"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 17 21:20:44 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 17 21:20:44 2019 +0000"
      },
      "message": "Merge \"Camera: Allow out of order ZSL shutter vs regular shutter\" into qt-dev"
    },
    {
      "commit": "f8e28fb940d725afb26a37c1964fbd1fcdb50fe8",
      "tree": "c45ffdcd968213bb90e658a4d75957921a31903b",
      "parents": [
        "11648852d7e9b92d36879bb2ed6d9953751121c5"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu May 16 11:46:54 2019 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri May 17 14:17:58 2019 -0700"
      },
      "message": "Camera: fix acquire fence FD double close\n\nThis patch fixes several issues:\n* Change the timing the acquire fence FD is closed: we used to\n  close the FD when the buffer is returned from HAL. This patch\n  changes that to after the request is sent to HAL (or failed\n  to send to HAL)\n* Cleanup inflight buffer map if the request fails to be sent to\n  HAL\n* With the CL, the acquire fence FDs are now closed by\n    - HalInterface::processBatchCaptureRequests if the HIDL\n      processCaptureRequests call succeeds and HAL is running\n      in binderized mode (for passthrough mode the FD is owned\n      by HAL if the HIDL call succeeds)\n    - Camera3Device::cleanupFailedRequests otherwise\n\nTest: Camera CTS tests\nBug: 132594861\nChange-Id: I5f67ae9e7b8008738bd9a24246d754a6a3669b0c\n"
    },
    {
      "commit": "097090588fa2d4beebb7defb9481f6e990b55c98",
      "tree": "09419a10ef41bf5086e71d95afbf0c851105447b",
      "parents": [
        "efb768921e7566c41b2d01eb0fccdff4d2445445"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri May 17 11:04:03 2019 -0700"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri May 17 11:04:03 2019 -0700"
      },
      "message": "Pull xaac codec from build\n\nremove references that pull xaac codec into the build; the codec is\nstill considered experimental and not to be included in product.\n\nBug: 131342273\nTest: compilation\nChange-Id: Ic7ff3871c88555bd006c0c79beebada3732a8b8e\n"
    },
    {
      "commit": "b57bf1667082ddc329828895559c46edb1997cae",
      "tree": "884eb3f2f34f760499966ac644a039ea50842260",
      "parents": [
        "b8378c37cc7b837a7069c2483cbf0d6589520b0c",
        "97bab91e628cb0b8029a422939e2ceef83bf6a7b"
      ],
      "author": {
        "name": "Oliver Nguyen",
        "email": "olivernguyen@google.com",
        "time": "Thu May 16 23:05:00 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 16 23:05:00 2019 +0000"
      },
      "message": "Merge \"Mark setAppState as pure virtual.\" into qt-dev"
    },
    {
      "commit": "11648852d7e9b92d36879bb2ed6d9953751121c5",
      "tree": "2828a179c15a51d0eb1094a886673c9232eba764",
      "parents": [
        "e445c2817a0996d6ced1c24e3a9d8532fd7ee51a"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu May 16 10:42:54 2019 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu May 16 10:42:54 2019 -0700"
      },
      "message": "Camera: cleanup some dead code\n\nWe no longer have code path running non-HIDL interface.\nThis cleanup also simplifies some logic needed for fixing\nb/132594861\n\nBug: 132594861\nTest: Camera CTS\nChange-Id: If15ea359a1a59c5a8e7a59818ce4db8120000bc4\n"
    },
    {
      "commit": "efb768921e7566c41b2d01eb0fccdff4d2445445",
      "tree": "666750fdb5c1d24b41f96f052276f839f791d21e",
      "parents": [
        "a6d436ca2741657360882e54d868937127a430a8",
        "9924d5ad544cabbc1de06ab6871aaa696f90b2a0"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Thu May 16 16:04:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 16 16:04:33 2019 +0000"
      },
      "message": "Merge \"mediacodec: Add a couple 32-bit permissions\" into qt-dev"
    },
    {
      "commit": "a6d436ca2741657360882e54d868937127a430a8",
      "tree": "c841cb6827dcc9b8b208cf4255bd63bf6df9731c",
      "parents": [
        "6de2d24bd940e74141a418fe5f6ad395e77a784e",
        "9a645a9355f697182bd11ba7fbdddae7e0b13708"
      ],
      "author": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Thu May 16 01:56:41 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 16 01:56:41 2019 +0000"
      },
      "message": "Merge \"audio: fix index of input vector\" into qt-dev"
    },
    {
      "commit": "9a645a9355f697182bd11ba7fbdddae7e0b13708",
      "tree": "d4f4457defd2de1bab4d11e96b4120efdfcf9489",
      "parents": [
        "f95c698108b608e6ebf86e7450a9a2464e3ae264"
      ],
      "author": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Wed May 15 12:15:32 2019 +0800"
      },
      "committer": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Thu May 16 01:56:03 2019 +0000"
      },
      "message": "audio: fix index of input vector\n\nBug: 131666114\nTest: manual\nChange-Id: I7de750aa2f212e6b7e6296ce2caf544a0188902b\nSigned-off-by: Carter Hsu \u003ccarterhsu@google.com\u003e\n"
    },
    {
      "commit": "9924d5ad544cabbc1de06ab6871aaa696f90b2a0",
      "tree": "adcac8ac15d79957a96cd994d82dc02dd9331736",
      "parents": [
        "e445c2817a0996d6ced1c24e3a9d8532fd7ee51a"
      ],
      "author": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Wed May 15 16:00:14 2019 -0700"
      },
      "committer": {
        "name": "Greg Kaiser",
        "email": "gkaiser@google.com",
        "time": "Wed May 15 16:00:14 2019 -0700"
      },
      "message": "mediacodec: Add a couple 32-bit permissions\n\nWe add permissions for \u0027readlink\u0027 and \u0027open\u0027 for 32-bit targets.\nThese are used when grabbing bug reports, at least on some\n32-bit devices.\n\nTest: Tried this change on a 32-bit device that was getting fatal\naborts when taking bugreports, and confirm we no longer get fatal\naborts.\nBug: 132807384\n\nChange-Id: I526217e9201d2a709baa2a6d9f078244578d678d\n"
    },
    {
      "commit": "97bab91e628cb0b8029a422939e2ceef83bf6a7b",
      "tree": "7b9a8dba80475149dfc7df42e927ea14facd72f2",
      "parents": [
        "00ffd9e0c4cd97529b77248eae5c819a7d3f8a13"
      ],
      "author": {
        "name": "Oliver Nguyen",
        "email": "olivernguyen@google.com",
        "time": "Tue May 07 13:12:20 2019 -0700"
      },
      "committer": {
        "name": "Oliver Nguyen",
        "email": "olivernguyen@google.com",
        "time": "Mon May 13 21:07:46 2019 +0000"
      },
      "message": "Mark setAppState as pure virtual.\n\nFixes build issues with -O0, due to missing vtable entries.\n\nBug: 116873221\nTest: Build with -O0\nTest: make NATIVE_COVERAGE\u003dtrue COVERAGE_PATHS\u003dframeworks/av\nChange-Id: Ice06940f4ccc55609abf0d820f9b3c6d4e43d2c6\n(cherry picked from commit 24fe48807f4f2d86677459bb5b1a9ca2cac757ff)\n"
    },
    {
      "commit": "68f7b18e8edaabf6c6c67b350d3126c11ba590ff",
      "tree": "d4e8c5fe2157ef8843fb31baa6b49744ca294254",
      "parents": [
        "d4e2ab1785d813aa336479a57de634f30fb13a92",
        "429844193f7149f3b642f1f260a7f20398eb3778"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 11 02:47:56 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 11 02:47:56 2019 +0000"
      },
      "message": "Merge \"audio policy: add permission check for privileged attributes flags\" into qt-dev"
    },
    {
      "commit": "d4e2ab1785d813aa336479a57de634f30fb13a92",
      "tree": "eb7ee11fab376ca0fc7bf75c7490e6b508ccdb89",
      "parents": [
        "eb99a27ffabbdf1795c063bd630f437a5d446052",
        "6e16157202e8c273d3c84be001e68bf7b13c9ee8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 11 02:46:59 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 11 02:46:59 2019 +0000"
      },
      "message": "Merge \"audio policy: fix channel match rule for input profiles\" into qt-dev"
    },
    {
      "commit": "eb99a27ffabbdf1795c063bd630f437a5d446052",
      "tree": "88316801946b87bd13b78bdfe65f6b4a8f6a6beb",
      "parents": [
        "b09f621af65848cb1c9336091d857ba2a8e6fdf8",
        "38bbaf299649d1addcaec105417af0aeca4c2051"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat May 11 01:07:26 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 11 01:07:26 2019 +0000"
      },
      "message": "Merge \"Camera: Prune depth samples with low confidence\" into qt-dev"
    },
    {
      "commit": "6e16157202e8c273d3c84be001e68bf7b13c9ee8",
      "tree": "ec83ddec857579985597cad7ffd8be10c25f187c",
      "parents": [
        "459e59820f8914a10c1d015fb4fa09b723cacaca"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 10 15:53:08 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 10 17:44:09 2019 -0700"
      },
      "message": "audio policy: fix channel match rule for input profiles\n\nModify channel mask match rule for input profiles in order to\nfavor profiles with positional masks and less than 2 channels.\nThis reflects the audio HAL convention to not list index channel\nmasks for less than 2 channels.\n\nBug: 131943885\nTest: repro steps in bug.\nChange-Id: I85e06f3afc2833b6aa7d52675bfd1ffda524fbcf\n"
    },
    {
      "commit": "b09f621af65848cb1c9336091d857ba2a8e6fdf8",
      "tree": "d0affd474b5da86022507ff88fbb82f9a748b4da",
      "parents": [
        "b14e4295b2cd6aebb77d67108dc6b639f24d25d2",
        "e2f34be1b70a564a9e7866934f0b626e98be999f"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 10 23:20:58 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 10 23:20:58 2019 +0000"
      },
      "message": "Merge \"APM: uid-device affinity: fix for multiple concurrent apps\" into qt-dev"
    },
    {
      "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": "b14e4295b2cd6aebb77d67108dc6b639f24d25d2",
      "tree": "2934e7eae30ff36f48c14575f39f0f7bacb09650",
      "parents": [
        "432e0fd4a48678e34d7c63e3d9b8514d1fb08be6",
        "c2cba12587834d9f9b7d076d740e8abb2cca3d51"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 10 22:35:53 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 10 22:35:53 2019 +0000"
      },
      "message": "Merge \"Camera: Add logical camera related metadata in dumpsys\" into qt-dev"
    },
    {
      "commit": "432e0fd4a48678e34d7c63e3d9b8514d1fb08be6",
      "tree": "b0511a6f72d7b53c6b56dc0b3d5d7ef98e62a69d",
      "parents": [
        "d7f726d950aa842f7c835510d795057c97d8efb4",
        "ae22b4843b3cfcbbf6fdbc21e60f1bd0c1d1f763"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 10 22:07:11 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 10 22:07:11 2019 +0000"
      },
      "message": "Merge \"AudioFlinger: Do not permit fast patch tracks if not compatible\" into qt-dev"
    },
    {
      "commit": "38bbaf299649d1addcaec105417af0aeca4c2051",
      "tree": "05470f6ea595f0d78f4dc2a813fc18b74da8d80c",
      "parents": [
        "d7f726d950aa842f7c835510d795057c97d8efb4"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri May 10 12:58:18 2019 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Fri May 10 14:55:08 2019 -0700"
      },
      "message": "Camera: Prune depth samples with low confidence\n\nDepth samples with low confidence can skew the\nnear/far values and impact the range inverse coding.\nAvoid using such samples when searching for the near\nand far points and clamp their values if necessary.\n\nBug: 132248813\nTest: Camera CTS\nChange-Id: I7dc134b50e46c664f9fc8750b9b9b37c416c9afe\n"
    },
    {
      "commit": "c2cba12587834d9f9b7d076d740e8abb2cca3d51",
      "tree": "29657a65fcad27f15d13e9773185cb0fa13ad17a",
      "parents": [
        "34a740d5360edd1f0bfd6a13b4d75667f550a512"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu May 17 18:10:24 2018 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri May 10 17:57:31 2019 +0000"
      },
      "message": "Camera: Add logical camera related metadata in dumpsys\n\nAdd below logical camera support to dumpsys:\n- Physical camera id to stream info.\n- Physical camera request/result metadata.\n- Physical camera metadata in tag monitor.\n\nAlso fixed an issue of missing vendor tags in physical metadata.\n\nTest: Run physical streams and observe dumpsys\nBug: 111940580\nChange-Id: I02889b213ff5e7ec29506c0483ef40de9d107ccb\n"
    },
    {
      "commit": "1526ab3ea008ffbe967d56dea2bfe6f1199b9c97",
      "tree": "fba50f593158321276d87cdf58fccd227fcd8dce",
      "parents": [
        "d023624cd9d9b16171a7673a19c14d55d1b2ede4",
        "c728a42d4f9f03f74b901fc7dd7fba1bc06579e9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 10 17:33:29 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 10 17:33:29 2019 +0000"
      },
      "message": "Merge changes Idbea7883,Ie49cec34 into qt-dev\n\n* changes:\n  extractor: load extractors on boot, not on request.\n  Revert \"Make tombstone in the child process on loading failure.\"\n"
    },
    {
      "commit": "e2f34be1b70a564a9e7866934f0b626e98be999f",
      "tree": "e57d0b82ebd689f5734c8bedd84ecbe091d3dd72",
      "parents": [
        "3350096bf8e52b2d96f7b7ba95642d92c05e8f09"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu May 09 12:31:06 2019 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri May 10 09:52:56 2019 -0700"
      },
      "message": "APM: uid-device affinity: fix for multiple concurrent apps\n\nAudio mix rules that contain both a match and exclude for a uid\n  or usage are ignored for routing evaluation. The implementation\n  of the uid-device affinity caused uid matches and exclusions to\n  be added to any mixes, causing previously valid mixes to be\n  discarded in the routing logic.\nThe fix consists in implementing the uid-device affinity by only\n  applying uid exclusions on mixes that:\n  a/ are compatible with the concept (mixes of players that are\n     render only),\n  b/ do not route to the selected devices\n  c/ do not have a uid match rule (such mixes are already exclusive\n     to the uid to match)\n  d/ do not already have a uid exclusion for the uid\nFix removeUidDeviceAffinities() that skipped the wrong mixes.\n\nBug: 124319394\nBug: 131180578\nTest: atest AudioHostTest#testUidDeviceAffinity\nChange-Id: I813c4cfb15956e56599740948775c32562266c21\n"
    },
    {
      "commit": "b904fe4799f1c239ef1170b016022929dd5766cb",
      "tree": "6ceaca0c0e1861ea3f39f53d4a65e7a4a056526d",
      "parents": [
        "2b7127f46d5987907cbb1edaf26d20f305b685fa",
        "04ed046665ff8466b061eccf63e21fde10508441"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri May 10 03:06:19 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 10 03:06:19 2019 +0000"
      },
      "message": "Merge \"AudioPolicy: Improve logging on Remote submix errors\" into qt-dev"
    },
    {
      "commit": "04ed046665ff8466b061eccf63e21fde10508441",
      "tree": "316394a2d114e1b45e4e79cf4c3734162f3b84e2",
      "parents": [
        "48aa740fb62459d02b9f23e27205c51d37f971d8"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Thu May 02 17:53:24 2019 -0700"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri May 10 01:31:29 2019 +0000"
      },
      "message": "AudioPolicy: Improve logging on Remote submix errors\n\nBug: 131064451\nTest: atest AudioPlaybackCaptureTest\nChange-Id: I13e662514de11e66f7ca145b320f351640a55ddb\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "ae22b4843b3cfcbbf6fdbc21e60f1bd0c1d1f763",
      "tree": "91ebed531eb0e24fbe9d9fc0ad9577a4c337e80f",
      "parents": [
        "e905b6b18738572062e9c30735539836af683643"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 09 15:38:55 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 09 17:02:49 2019 -0700"
      },
      "message": "AudioFlinger: Do not permit fast patch tracks if not compatible\n\nTest: atest AudioPlaybackCaptureTest\nBug: 132346038\nChange-Id: I67939ed7f98c546d41148d36764d93723353c893\n"
    },
    {
      "commit": "2b7127f46d5987907cbb1edaf26d20f305b685fa",
      "tree": "1a8d0f0606fa1fff13811ce75d6afe05bc7c5405",
      "parents": [
        "ceb7cc1f61d7475a2eeba807dfb5272fa0f5c035",
        "6ce27e5ffa056948b506bf7320a9f9c961150684"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Thu May 09 23:37:35 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 23:37:35 2019 +0000"
      },
      "message": "Merge \"connect mediametrics service to statsd\" into qt-dev"
    },
    {
      "commit": "459e59820f8914a10c1d015fb4fa09b723cacaca",
      "tree": "4b8431e59a45fcfac23fe93ee8d15bfdd3b775c0",
      "parents": [
        "b34bd48605d3ff17398139853d1709f54f388560",
        "2dab03030c95b40902e66b81a247738e375ebcf9"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 09 22:45:08 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 22:45:08 2019 +0000"
      },
      "message": "Merge \"audioflinger: honor flag AUDIO_FLAG_BYPASS_INTERRUPTION_POLICY\" into qt-dev"
    },
    {
      "commit": "b34bd48605d3ff17398139853d1709f54f388560",
      "tree": "4a3449045fb8ae0a0ee06e833b1ca9887471f63d",
      "parents": [
        "48aa740fb62459d02b9f23e27205c51d37f971d8",
        "c578a50c9d54e18441ffea41ce81eefbb17360ff"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu May 09 22:10:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 22:10:48 2019 +0000"
      },
      "message": "Merge \"cameraservice: re-map oom_adj scores and states of native vendor clients.\" into qt-dev"
    },
    {
      "commit": "3daf5d9146b74f3c03b1e2bd72bab547962ec351",
      "tree": "f5cc8fc321b61644487eccd71a72ccb242333732",
      "parents": [
        "486194f79edc78ef99f0f1d29ec02e9277bd20ac"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed May 08 22:34:49 2019 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed May 08 22:35:53 2019 -0700"
      },
      "message": "media: include softomx plugin in omx HAL service\n\nBug: 132213171\nChange-Id: I1a35db1344701a7e125e45543b4282b572a28182\n"
    },
    {
      "commit": "486194f79edc78ef99f0f1d29ec02e9277bd20ac",
      "tree": "89b8d125ad2bc293f5fabdb58f535f900c59265b",
      "parents": [
        "9794a84308b31f6e17915cb29c99282f4b75cd11",
        "c1de2dfe8602f10ed3086ab601b626bec632b198"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu May 09 03:48:36 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 03:48:36 2019 +0000"
      },
      "message": "Merge \"Fix NPE when trying to get input device for attributes.\" into qt-dev"
    },
    {
      "commit": "2dab03030c95b40902e66b81a247738e375ebcf9",
      "tree": "cd140cffff1b7ff1c7e35f0d3d56479bfef054d7",
      "parents": [
        "af0b1c1b5cd67cafa81dbcd1ccb7eb68821173f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 08 18:15:55 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 08 18:19:49 2019 -0700"
      },
      "message": "audioflinger: honor flag AUDIO_FLAG_BYPASS_INTERRUPTION_POLICY\n\ncommit 74e01fa7 did not bypass app ops policy when flag\nAUDIO_FLAG_BYPASS_INTERRUPTION_POLICY is set.\n\nBug: 131873101\nTest: repro steps in bug\nChange-Id: Idbce26cfdcddbb7a2ae8702ce3d135ef5a69f047\n"
    },
    {
      "commit": "34a2d4c80d002751435e0ab552e9513608e36438",
      "tree": "7e2f228f2630415f4e7fa71a8a717f603e141711",
      "parents": [
        "e6f3293b77b38867f553987e24dc82ee004071af",
        "d0cce2ebcb9e4f95729d1f5da447f345428a8315"
      ],
      "author": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Thu May 09 00:49:10 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 09 00:49:10 2019 +0000"
      },
      "message": "Merge \"audio: correct the boundary of soundtrigger index\" into qt-dev"
    },
    {
      "commit": "c1de2dfe8602f10ed3086ab601b626bec632b198",
      "tree": "68241794ce067005b2770a31b232588ecb4c33fc",
      "parents": [
        "a8cc6d418bdf459a0c0f79326b09faa45645850c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue May 07 14:26:40 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed May 08 15:19:13 2019 -0700"
      },
      "message": "Fix NPE when trying to get input device for attributes.\n\n1. Return error when remote submix device is null. Remote submix device\ncould be null in some case, such as device address error. Returning\nerror to avoid native crash.\n2. Unregister policy mix if set device connection fails. In that case,\nget input device could fail when policy mix is not found.\n\nBug: 131906484\nTest: Manually\nChange-Id: I03ab2bf217341b672c14adfba96d92ad9b453b01\n"
    },
    {
      "commit": "c578a50c9d54e18441ffea41ce81eefbb17360ff",
      "tree": "c77c416a2119d2396d349ecdd4bb3c054100f0d1",
      "parents": [
        "4714c214a0fa5a85f6f8b98c7a6c2339b6a847d1"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed May 08 10:57:54 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed May 08 12:56:52 2019 -0700"
      },
      "message": "cameraservice: re-map oom_adj scores and states of native vendor clients.\n\nOverride the oom_adj scores of vendor clients from to PERCEPTIBLE_APP_ADJ.\nOverride the process state of vendor clients to to PROCESS_STATE_PERSISTENT_UI.\n\nThis is in order for app processes to take priority over vendor clients.\nFor example, this could help in the case of the default camera app and\nface auth contending for resources from the lock screen.\n\nBug: 132117718\n\nTest: manual test on lockscreen, try to double press and open camera app\n      while a vendor client is connected to a contending camera device.\n\nChange-Id: Ie5fabb59c876cb02eb706f3dda8f748c69e3c063\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "c728a42d4f9f03f74b901fc7dd7fba1bc06579e9",
      "tree": "e41bb014ce60d61ac54c4bfad108d37836239e38",
      "parents": [
        "673236b3a962335013baddee4065be138eb610b8"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed May 08 11:17:01 2019 -0700"
      },
      "committer": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Wed May 08 11:17:01 2019 -0700"
      },
      "message": "extractor: load extractors on boot, not on request.\n\nTest: build + dumpsys media.extractor\nBug: 131106476\nChange-Id: Idbea788340c4849f1286727c159a8eb43d6a7bb0\n"
    },
    {
      "commit": "e905b6b18738572062e9c30735539836af683643",
      "tree": "77d202a1cc06ca2f620afb7fae52775bc4ab81dd",
      "parents": [
        "2f81c33460670e05f3cd8ddeab8b991c2663ee87",
        "329ddab0a26a06f828314860d290b5d6fb3bd0c9"
      ],
      "author": {
        "name": "Abhijith Shastry",
        "email": "ashastry@google.com",
        "time": "Wed May 08 17:52:41 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 08 17:52:41 2019 +0000"
      },
      "message": "Merge \"Do not cap volume for ring stream when voice stream has been programatically muted.\" into qt-dev"
    },
    {
      "commit": "d0cce2ebcb9e4f95729d1f5da447f345428a8315",
      "tree": "6be11d80af78cfa1f17c1a5b8959e8fffd8b791e",
      "parents": [
        "2ddd17ca5c49fe02c459b7026d4c271bf76c4e3c"
      ],
      "author": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Fri May 03 17:36:28 2019 +0800"
      },
      "committer": {
        "name": "Carter Hsu",
        "email": "carterhsu@google.com",
        "time": "Wed May 08 14:29:05 2019 +0000"
      },
      "message": "audio: correct the boundary of soundtrigger index\n\nBug: 129111371\nTest: manual\nChange-Id: Ic3e2d5b8b6b53be2184307b076ba8680c6f81a29\nSigned-off-by: Carter Hsu \u003ccarterhsu@google.com\u003e\n"
    },
    {
      "commit": "329ddab0a26a06f828314860d290b5d6fb3bd0c9",
      "tree": "93acc84d44b31debeae888ec8cbf28ee850062e2",
      "parents": [
        "34a740d5360edd1f0bfd6a13b4d75667f550a512"
      ],
      "author": {
        "name": "Abhijith Shastry",
        "email": "ashastry@google.com",
        "time": "Tue Apr 23 11:53:26 2019 -0700"
      },
      "committer": {
        "name": "Abhijith Shastry",
        "email": "ashastry@google.com",
        "time": "Tue May 07 15:55:24 2019 -0700"
      },
      "message": "Do not cap volume for ring stream when voice stream has been programatically\nmuted.\n\nTest: Manual\nBug: 131171138\nChange-Id: Iea9aaa618cfef60cae592a8a21026d59212c0740\n"
    },
    {
      "commit": "a171e359408050194cbc68f3fa37f2b8d8ca361c",
      "tree": "8d4f6529347d0b6d155b731340603b87002ca821",
      "parents": [
        "af0b1c1b5cd67cafa81dbcd1ccb7eb68821173f9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 07 13:04:45 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 07 13:04:45 2019 -0700"
      },
      "message": "audio policy: fix concurrent capture policy\n\nRestrict concurrent capture scenarii by not allowing 3rd party\napplications to capture concurrently\n\nBug: 131758164\nTest: manual test of main capture use cases\nTest: CTS tests for audio recording\nChange-Id: Ica17d6eea81671eeb872fe55c1e7e06ec9ad279b\n"
    },
    {
      "commit": "af0b1c1b5cd67cafa81dbcd1ccb7eb68821173f9",
      "tree": "2cba9fb6dbdda8d1aff506b68b1d7d6ee06d1387",
      "parents": [
        "4714c214a0fa5a85f6f8b98c7a6c2339b6a847d1",
        "424cfb5c35aedac5973097edb093a3cca3f8cdf7"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue May 07 16:30:43 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 07 16:30:43 2019 +0000"
      },
      "message": "Merge changes from topic \"b129710438_2\" into qt-dev\n\n* changes:\n  codec2: use media_codecs from apex and support variants/domains\n  media: add media_codecs.xml to apex module\n  media: expand media_codecs.xml to support variants and domains\n  media/omx: Make OMX software plugin an actual plugin\n  omx: only list existing OMX codecs in OmxStore\n"
    },
    {
      "commit": "6d831980776617247a209ea8a2a22fbe1c12302c",
      "tree": "4f01bcad6bd399e3f17dc673e921e420dcf3aea9",
      "parents": [
        "7906c2896a0fcb4d8f1bd6534cc0915f346c0d3e",
        "80e1a6dd0dde5302bd00e742d840550288427094"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon May 06 22:57:06 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 06 22:57:06 2019 +0000"
      },
      "message": "Merge \"Move mediaextractor seccomp policy into apex\" into qt-dev"
    },
    {
      "commit": "7906c2896a0fcb4d8f1bd6534cc0915f346c0d3e",
      "tree": "6e8d0e224e1546b69fef82690164740ce3c127ce",
      "parents": [
        "f7a11d93404ddff7323cb0055099e6696de88824",
        "573a270f26d063a388eb467d381a06c94bcfe7c4"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon May 06 22:36:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 06 22:36:47 2019 +0000"
      },
      "message": "Merge \"Camera: clear buffer cache when stream is reconfigured\" into qt-dev"
    },
    {
      "commit": "6ce27e5ffa056948b506bf7320a9f9c961150684",
      "tree": "d3c75842dba2db375a7b3b4413e902ecccbbb5ef",
      "parents": [
        "ef7eaaf8d873e9d832673fd0a8e07371fa47a0a0"
      ],
      "author": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Fri Feb 15 10:58:05 2019 -0800"
      },
      "committer": {
        "name": "Ray Essick",
        "email": "essick@google.com",
        "time": "Mon May 06 11:35:11 2019 -0700"
      },
      "message": "connect mediametrics service to statsd\n\ntake the collected media.metrics (as they arrive) and push a copy over\nto statsd, the statistics logging subsystem.\ngather data, wrap in protobufs apppropriately, and submit it to statsd.\n\nBug: 118782504\nTest: statsd\u0027s test_drive app\nChange-Id: Ieb82c43633851075e9eaf65d2a95c8cba87441ea\n"
    },
    {
      "commit": "5ee9984930753d3231f457be1bbcdba8910b7666",
      "tree": "cf585cf5da36f4576303ecceacf1b2d0cf0c29bc",
      "parents": [
        "34a740d5360edd1f0bfd6a13b4d75667f550a512"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Apr 12 11:55:48 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon May 06 11:32:45 2019 -0700"
      },
      "message": "Camera: Allow out of order ZSL shutter vs regular shutter\n\nHAL ZSL request may be out-of-order compared to normal/reprocess\nrequests. Allow such case to improve shot lantecy.\n\nTest: Camera CTS, 3P camera app sanity test.\nBug: 120604717\nChange-Id: Id994efbe392094cdae694afaa2d159bc9c49d5f0\n"
    },
    {
      "commit": "34a740d5360edd1f0bfd6a13b4d75667f550a512",
      "tree": "6565a7a0c7bda1c3a1e1b5594a8249b4ed38879d",
      "parents": [
        "92e11689bbbdab1fed786436c624d6530d56c848",
        "16c66dd1e60d6b65b846f371c2ae4bf2b673545f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 06 17:07:54 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 06 17:07:54 2019 +0000"
      },
      "message": "Merge \"aaudio: fix multichannel legacy streams\" into qt-dev"
    },
    {
      "commit": "80e1a6dd0dde5302bd00e742d840550288427094",
      "tree": "d5c54e6364b3753e74a2d7ef9dc2b31631f864fc",
      "parents": [
        "eb1b8e4a365a8833ebdaba4975d7b3e610ed709f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Apr 30 15:52:10 2019 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon May 06 09:26:50 2019 -0700"
      },
      "message": "Move mediaextractor seccomp policy into apex\n\nBug: 112767732\nTest: build, run\nChange-Id: I3d63b6346c1305ba662077eb81b714cbe24ccfb9\nMerged-In: I3d63b6346c1305ba662077eb81b714cbe24ccfb9\n"
    },
    {
      "commit": "377cc84da5332f0e0480c259eee340b752027833",
      "tree": "152eeb97f4b6cb5bd7f221691558291d8d4bd21d",
      "parents": [
        "eb1b8e4a365a8833ebdaba4975d7b3e610ed709f",
        "c16463885b106429146b6f89fbde6ef8eb372538"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat May 04 00:56:12 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat May 04 00:56:12 2019 +0000"
      },
      "message": "Merge \"AudioFlinger: Properly account for underruns\" into qt-dev"
    },
    {
      "commit": "16c66dd1e60d6b65b846f371c2ae4bf2b673545f",
      "tree": "f93c6935379a10245958db1e490208a31894a1bc",
      "parents": [
        "2ddd17ca5c49fe02c459b7026d4c271bf76c4e3c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 01 17:54:10 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 03 15:44:44 2019 -0700"
      },
      "message": "aaudio: fix multichannel legacy streams\n\nTwo fixes for multichannel playback over USB from\nAAudio legacy streams:\n1: AAudio use a channel index mask and not a positional mask\nwhen channel count is greater than 2.\n2: audio policy gives priority to an output mixer which can support\nthe requested channel mask without downmixing\n\nBug: 131685020\nTest: play multichannel audio over USB\nChange-Id: I13f2da48d47fcf81f522096d90ba59a89379cffb\n"
    },
    {
      "commit": "573a270f26d063a388eb467d381a06c94bcfe7c4",
      "tree": "c5ba0096a779e5ba7f8063fe2ffe5e03dc08823d",
      "parents": [
        "e069424fbece0edd7d432d15f0078b6d4d176c1c"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Apr 17 10:08:55 2019 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri May 03 21:44:00 2019 +0000"
      },
      "message": "Camera: clear buffer cache when stream is reconfigured\n\nAlso fix a issue for finishConfiguration is unintentionally\ndelayed till first capture request.\n\nTest: Camera CTS + partner device testing\nBug: 126390310\nChange-Id: Ibca740a7160cbf41e01884dbcef8ba51eb4c75f7\n"
    },
    {
      "commit": "2112c9160ca153717749d4055ae6d8c904d17f8a",
      "tree": "bcb73dca2719cfada55135eb609c026e588c38c5",
      "parents": [
        "ef7eaaf8d873e9d832673fd0a8e07371fa47a0a0",
        "4b2a821891b8c271ca7e1dc4a152220c923cd1e3"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Fri May 03 17:47:56 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 03 17:47:56 2019 +0000"
      },
      "message": "Merge \"Enabled removeUidDeviceAffinities\" into qt-dev"
    },
    {
      "commit": "c16463885b106429146b6f89fbde6ef8eb372538",
      "tree": "0aa0b84eb018ea03d45a6add10d7ee2de4a79714",
      "parents": [
        "ef7eaaf8d873e9d832673fd0a8e07371fa47a0a0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 30 16:12:10 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 02 17:58:01 2019 -0700"
      },
      "message": "AudioFlinger: Properly account for underruns\n\nWhen the mixer status was MIXER_ENABLED twice in a row\nzeroes were forced to the audio sink.\n\nTest: aaudio test write_sine_callback -pl -n1 -r44100 -s20\n      and then use rapid volume changes.\nBug: 131767115\nChange-Id: I24b41084138210c63e8c551ae4a5f3adddb9e607\n"
    },
    {
      "commit": "4b2a821891b8c271ca7e1dc4a152220c923cd1e3",
      "tree": "874af6d655b6643388384232e22ce386d1a85e73",
      "parents": [
        "2ddd17ca5c49fe02c459b7026d4c271bf76c4e3c"
      ],
      "author": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Fri Apr 26 23:48:59 2019 -0700"
      },
      "committer": {
        "name": "Oscar Azucena",
        "email": "oscarazu@google.com",
        "time": "Thu May 02 17:40:44 2019 -0700"
      },
      "message": "Enabled removeUidDeviceAffinities\n\nAdded code to removeUidDeviceAffinities in AudioPolicyManager.cpp\n\nBug: 131447931\nTest: ran test in android auto multizone audio and policies were\ncorrectly removed.\n\nChange-Id: I70a8452d6c4ce5812f2c3f03ddf10b96cb0bb947\n"
    },
    {
      "commit": "ef7eaaf8d873e9d832673fd0a8e07371fa47a0a0",
      "tree": "16af72980d4c2e09fb45be30e44a52eb4575236a",
      "parents": [
        "2ddd17ca5c49fe02c459b7026d4c271bf76c4e3c"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed May 01 11:26:35 2019 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu May 02 12:51:47 2019 -0700"
      },
      "message": "aaudio: protect against null client\n\nAAudioService would fail if a null client was passed.\nTwo null checks were added. One where we know the null\nclient first appears. And one where the client is first used\nin case other calls are passing null.\n\nBug: 116230453\nTest: Bug has a POC apk that triggers the bug.\nTest: Look for messages like:\nTest:      AAudio  : BnAAudioService::onTransact() client is NULL!\nChange-Id: Id9c4fc154226ab40df97335da8bc9361cfc99a73\n"
    },
    {
      "commit": "12d07c503a8ec317b4d5e7aef49036a1c36600a8",
      "tree": "b43470ddf76aad4fe29d864a30341af0137b41e1",
      "parents": [
        "91c82546ed8f47e8f43843a427f49a0d3e0b4e45",
        "6e6a2e6190b63a19c8788c475269d711f7853743"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 01 16:47:24 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 01 16:47:24 2019 +0000"
      },
      "message": "Merge \"AudioFlinger: Fix haptic race condition\" into qt-dev"
    },
    {
      "commit": "6e6a2e6190b63a19c8788c475269d711f7853743",
      "tree": "9d925d56d96fbd63e4c14e42331b85e5304bf6f3",
      "parents": [
        "2f7a6072bbafd4faba8cbaf170d3cb72e37e3454"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 30 16:38:41 2019 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 30 16:52:46 2019 -0700"
      },
      "message": "AudioFlinger: Fix haptic race condition\n\nTest: compiles\nBug: 131715193\nChange-Id: I57f136903b9ecc40ecd10642c0bfaad0134495f4\n"
    },
    {
      "commit": "91c82546ed8f47e8f43843a427f49a0d3e0b4e45",
      "tree": "f2b88de6f0e56eb020258a45de872c4fa9c9ddf4",
      "parents": [
        "68d138bd7df3ac30eb33be48c2a8d6d974211d54",
        "d1c60298edff98fb613476f50fd88776a396bb9d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 30 23:35:47 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 30 23:35:47 2019 +0000"
      },
      "message": "Merge \"add crash dump policies to mediaswcodec-arm.policy\" into qt-dev"
    },
    {
      "commit": "d1c60298edff98fb613476f50fd88776a396bb9d",
      "tree": "56da181da9083b033f757357f6bf4687586bc985",
      "parents": [
        "ab09f6e62122eb6d09a4013cf54de3a2d2805873"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 30 13:39:39 2019 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 30 22:03:46 2019 +0000"
      },
      "message": "add crash dump policies to mediaswcodec-arm.policy\n\nbug: 131328009\nbug: 129426284\ntest: test on 32bit Android Go device and see mediaswcodec starts on boot\nChange-Id: I21c2b3d228dfa4916bbdbe4f899024f69fd0c77e\n"
    },
    {
      "commit": "3c3d1d267efea85412a70eb1e18089a7d56a413e",
      "tree": "d540563a33b9a65dbcda61ac9780df0916743946",
      "parents": [
        "9f5591ac13d2916d04f9a8f54fd59727323fc806"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Apr 08 17:22:26 2019 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Apr 29 15:24:52 2019 -0700"
      },
      "message": "omx: only list existing OMX codecs in OmxStore\n\nBug: 129710438\nChange-Id: Iaeba313ec94838880a8d20d775866f20454104be\n"
    },
    {
      "commit": "09f1ed2cb4479c93859557f5b4d40e1c3732f6f2",
      "tree": "27f2c1c23755b45acdfd0832bb9e493f6b890aaa",
      "parents": [
        "2f7a6072bbafd4faba8cbaf170d3cb72e37e3454"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 24 17:45:17 2019 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 29 09:59:31 2019 -0700"
      },
      "message": "audio: improve audio routing callbacks\n\nDo not force audio device changed callback when the client\n(AudioTrack or AudioRecord) registers to AudioFlinger but only when\nit starts playback or capture. Doing so prevents a spurious callback\nhapping at registration time where a stale device\n(previously selected by AudioFlinger thread) but irrelevant to this\nclient is indicated. This causes a disconnection of AAudio streams\ndespite no real device change.\n\nBug: 128630993\nTest: CTS: android.nativemedia.aaudio.AAudioTests, android.media.cts.RoutingTest\n      CTS Verifier: Audio Input/Output Routing Notifications Test\n\nChange-Id: Ia7f1d11490989b0287c97479466c1c07a223aab3\n"
    },
    {
      "commit": "66ea39290308e4851a5c6fe149e576b7d6249e5f",
      "tree": "f0fe4950c8d77207be8ce281623f9345e448e478",
      "parents": [
        "09940bbc0e7eb687c1b08c1ba0252852752f68ab",
        "2996f67767ff90617cc5f7801c7bd8dc67c9dd66"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Apr 25 18:01:03 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 25 18:01:03 2019 +0000"
      },
      "message": "Merge \"AudioPolicy/AudioFlinger: Track AudioRecords via Record IDs\" into qt-dev"
    },
    {
      "commit": "2996f67767ff90617cc5f7801c7bd8dc67c9dd66",
      "tree": "d20af841b6537ca44a0b1bf7a839e0ba3f9c7a91",
      "parents": [
        "3208826f676b1be78e1c04692d7f17249e45c3ea"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 18 12:29:59 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 24 14:49:52 2019 -0700"
      },
      "message": "AudioPolicy/AudioFlinger: Track AudioRecords via Record IDs\n\nThe client must provide a unique Record ID (RIID) when creating\nan AudioRecord. This RIID is passed down to AudioInputDescriptor\nin AudioPolicyManager which sends configuration updates\nvia IAudioPolicyServiceClient callback.\n\nBy supplying RIID, the Audio Service can coalesce start / stop\nevents coming from clients (apps) with recording configuration\nupdate events.\n\nFor AAudio MMap clients everything is handled at the server\nside because they correspond directly to audioserver objects.\n\nBug: 123312504\nTest: android.media.cts.AudioRecordingConfigurationTest\n      AudioRecordTest#testAudioRecordInfoCallback\n      MediaRecorderTest#testAudioRecordInfoCallback\n      manual testing using Oboe and Solo test apps\n\nChange-Id: I3d32241752d9a747736606dc4cb1e068e6b7aa3b\n"
    },
    {
      "commit": "a8eb68a59b58e078d7c6f8496514134148693652",
      "tree": "7c8ad251a722ec2b1a316cc39953d90c7c5c3b45",
      "parents": [
        "9602d9c306c8911ab44a327aceb83a96b79c10d6",
        "dcfecd0db52d7880566662f8dd7cfd623b500471"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 24 20:39:48 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 24 20:39:48 2019 +0000"
      },
      "message": "Merge changes I146430a1,I60d41eaa into qt-dev\n\n* changes:\n  audiopolicy: engineconfigurable: align with PFW unix socket convention\n  audiopolicy: fix build issue by going on switching to bp\n"
    },
    {
      "commit": "9602d9c306c8911ab44a327aceb83a96b79c10d6",
      "tree": "c429ec9701bd7951447eaefbb4834595561039f7",
      "parents": [
        "ca45d6b3922909d07f65b5a48771655b697d0b41",
        "f7e3a3a2eb753da4500b9000c113ae0f3b058792"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 18:22:08 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 24 18:22:08 2019 +0000"
      },
      "message": "Merge \"audioflinger: Fix reference counting protocol in OpPlayAudioMonitor\" into qt-dev"
    },
    {
      "commit": "dcfecd0db52d7880566662f8dd7cfd623b500471",
      "tree": "218456a57ec4bc3187faaff27b02219e022eb573",
      "parents": [
        "962ba215fbffcf27b3c69827a9221e0a82108ff0"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Apr 17 16:58:56 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 24 09:04:14 2019 -0700"
      },
      "message": "audiopolicy: engineconfigurable: align with PFW unix socket convention\n\nThis CL aligns the engineconfigurable PFW top file to the convention\nadopted within parameter-framework.\n\nBug: 130284799\nTest: make\n\nChange-Id: I146430a1a6618d73273dbfd85b060d9fd04a6f9a\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "962ba215fbffcf27b3c69827a9221e0a82108ff0",
      "tree": "e0ef04ba1857443ef150e35e146522c84fcbb41f",
      "parents": [
        "48601f013a60c916187591e6e05dfaf76a87b698"
      ],
      "author": {
        "name": "François Gaffie",
        "email": "francois.gaffie@renault.com",
        "time": "Wed Apr 03 16:21:39 2019 +0200"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 24 09:03:17 2019 -0700"
      },
      "message": "audiopolicy: fix build issue by going on switching to bp\n\nBug: 130284799\nTest: make\n\nChange-Id: I60d41eaa41564fecdeef6d4cb223a8367883db50\nSigned-off-by: François Gaffie \u003cfrancois.gaffie@renault.com\u003e\n"
    },
    {
      "commit": "9cd03f4bc01d2c5b05f544de50f48615ef71dbef",
      "tree": "f2b212709d1f21dbcd12072a51d53ef93fb0d6e5",
      "parents": [
        "27d12e5b832ceae7f2c727a4715a1e40c3717d53",
        "ae5b0043994b5a5410bde2361164c9457ff8e5f6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 24 01:22:51 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 24 01:22:51 2019 +0000"
      },
      "message": "Merge \"audiopolicy: engineconfigurable: update structure for Q\" into qt-dev"
    },
    {
      "commit": "bde241b71f7bc1d6f4ccf8d1fb4d02b31c9785a6",
      "tree": "bf2f5ae965f6d9c7423b3cfecf35320561ef3a85",
      "parents": [
        "9561db99ec348b40207765e2fea4a0e96e7843aa",
        "3c4e6b503848623a0ff9bb1bee78e5b0d7c248ea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Apr 24 00:53:25 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 24 00:53:25 2019 +0000"
      },
      "message": "Merge \"aaudio: use actual DSP burst size in timing model\" into qt-dev"
    },
    {
      "commit": "9561db99ec348b40207765e2fea4a0e96e7843aa",
      "tree": "7a18a528e6acfc741eb178fdc3b2cb19509d064e",
      "parents": [
        "4fe9f3e9ad145980e244aa84ecf4204857036a2f",
        "e8322b5584596350b2bb7ccffacd9af8ffe8194c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Apr 23 23:19:07 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 23 23:19:07 2019 +0000"
      },
      "message": "Merge \"Camera: The vector memory is freed after clear\" into qt-dev"
    },
    {
      "commit": "4fe9f3e9ad145980e244aa84ecf4204857036a2f",
      "tree": "76995d16869ad9c77e0c5a872bfad5a8c75ec7a7",
      "parents": [
        "37a9adef14ecb54e487780210664ea423a2771f6",
        "a1e9bbb1dfcc8a2967ed75c5543c85751da00ee4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 23 22:03:05 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 23 22:03:05 2019 +0000"
      },
      "message": "Merge \"audiopolicy: engineconfigurable: fix phone configuration\" into qt-dev"
    },
    {
      "commit": "ee326db2bbd59b81f1ca5433d9a68b76b2bfe3b4",
      "tree": "02763a786e5cfb99b1b4aa190ef3a83c37bc1af3",
      "parents": [
        "9730f4d7d27c49bfdfa69f3b7555b5a641a8499d",
        "df7f0a201b4b91ee86bd0b8d3a2a05beba9f46f4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 23 19:56:20 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 23 19:56:20 2019 +0000"
      },
      "message": "Merge \"audiopolicy: engineconfigurable: fix build issues on Q environment\" into qt-dev"
    },
    {
      "commit": "3c4e6b503848623a0ff9bb1bee78e5b0d7c248ea",
      "tree": "f9e53f6f37f77695bbc4d4576854d2cf3bb55935",
      "parents": [
        "9730f4d7d27c49bfdfa69f3b7555b5a641a8499d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Jan 22 15:53:36 2019 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Apr 23 17:16:29 2019 +0000"
      },
      "message": "aaudio: use actual DSP burst size in timing model\n\nThis will more accurately track the read or write\nposition of the DSP.\n\nThe client sometimes aggregates multiple hardware bursts\nto avoid waking up too often. This can make it look like the DSP has\nprocessed a larger amount of memory than it really has.\nWith this change, the timing model will advance in sync with the hardware.\n\nBug: 117834966\nBug: 130911274\nTest: see bug for repro steps\nChange-Id: Id22f1f313e02f0514665ee5ac144cab4684e3bc1\n"
    }
  ],
  "next": "f7e3a3a2eb753da4500b9000c113ae0f3b058792"
}
