)]}'
{
  "log": [
    {
      "commit": "a6a12269fb4a00a06b2249c2bc262fa9c5d8a3c2",
      "tree": "e54ff6ff734c7f1d1bb2713ceb5a842455fc7892",
      "parents": [
        "c893fe99918dc51c1c736d7da161f568ed1ccbaf",
        "e460b13778b06aa941843623175a8951b7fffd31"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 20 18:38:23 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 20 18:38:23 2020 +0000"
      },
      "message": "Merge \"Camera: Release online and offline resources\" into rvc-dev am: c2462eaef9 am: e460b13778\n\nChange-Id: Ie156d20f2913293dae1fc5454ecac77f2235c676\n"
    },
    {
      "commit": "c2462eaef9f174eac472bf8848081cda0e2b52d1",
      "tree": "33706f1cf51ee387424ecc3a15eafb4cd18cf5c1",
      "parents": [
        "301dd5f1d99993725cb6336e6d520904e23ce925",
        "c0fe54c6427be540e4c5e1549f7b537f88cb5570"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 20 17:59:15 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 20 17:59:15 2020 +0000"
      },
      "message": "Merge \"Camera: Release online and offline resources\" into rvc-dev"
    },
    {
      "commit": "8826d844042c5a46fbd076b2bdd199d7fd049a11",
      "tree": "7b28d040df1a137d37edd819b30d49b93dc80bfa",
      "parents": [
        "ff3d889419a9ce859cd888e2a93d1b27c2926d6a",
        "cad23c25737f100ac117835aa234c02f2013c0a9"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 14 01:48:14 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Sat Mar 14 01:48:14 2020 +0000"
      },
      "message": "cameraserver: rename getConcurrentStreamingCameraIds -\u003e getConcurrentCameraIds. am: cad23c2573\n\nChange-Id: I8b8430eefbd61fb2f62cf9e41c6060900808a7e9\n"
    },
    {
      "commit": "28fc70a6cb4f90c5ff24873d41ad2320a4e7fc34",
      "tree": "30435c4dffc4afd72d6fe7be76e7da2b9992ef56",
      "parents": [
        "1ca9e116a1a8cc1eaecdb3d2481dac71909c270d",
        "cad23c25737f100ac117835aa234c02f2013c0a9"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Sat Mar 14 01:44:49 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 14 01:44:49 2020 +0000"
      },
      "message": "Merge \"cameraserver: rename getConcurrentStreamingCameraIds -\u003e getConcurrentCameraIds.\" into rvc-dev"
    },
    {
      "commit": "c0fe54c6427be540e4c5e1549f7b537f88cb5570",
      "tree": "ed5030049ca87eae2fcf9b9bfb3dbd234d82fbdb",
      "parents": [
        "5e3b7679084322e027a7e5121ff0f4944b3b6de6"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Mar 11 14:05:07 2020 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Mar 11 17:20:07 2020 -0700"
      },
      "message": "Camera: Release online and offline resources\n\nClear the cached previous request in case of\nsuccessful offline switch. The request can\npotentially continue to have valid references\nto offline streams.\nClear the online camera device reference after\ncomposite streams switch to offline mode.\nIn this case, all internal offline streams must\nbe released by the offline session.\n\nBug: 149346795\nTest: Camera CTS\nChange-Id: If29308dd0f402ab492e304e0475005b2a9801e74\n"
    },
    {
      "commit": "cad23c25737f100ac117835aa234c02f2013c0a9",
      "tree": "06b8ffe5296c19a4256e990ac2eced37bc209caa",
      "parents": [
        "904b623c8cdbd43a2089c5d3b45240757bd3bc81"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Mar 10 15:04:59 2020 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Mar 11 16:11:14 2020 -0700"
      },
      "message": "cameraserver: rename getConcurrentStreamingCameraIds -\u003e getConcurrentCameraIds.\n\nBug: 150896133\n\nTest: builds\nTest: atest ConcurrentCameraTest.java\n\nChange-Id: Id73f15164200a4cc91354b67784bab3c470caf57\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "80fbc4cb9e32b1a7bd762d3b106ef1ba94295fc2",
      "tree": "aaebe1757cea12c4a41e34063e4dbcbd7bf1e8f6",
      "parents": [
        "aeef85fba43f7384f25cd777ac2fc392917ba403",
        "5ae4551c9290e02f7890e014ca69b1b748567ccd"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 10 23:29:03 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Tue Mar 10 23:29:03 2020 +0000"
      },
      "message": "Merge \"Camera: Add onCameraOpened/onCameraClosed callbacks\" into rvc-dev am: 5ae4551c92\n\nChange-Id: I1f9d25313e2dc509e3ae196b4f5d31c582352849\n"
    },
    {
      "commit": "695044d6f177871d349fa7e9a4a2ac07e093ae25",
      "tree": "e0dda6998c8734784af3f88cc4fa96da98d0eeba",
      "parents": [
        "6d4357197004ad81b2a256db33c82aa5c86a0b41"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Mar 06 09:02:23 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Mar 09 08:43:25 2020 -0700"
      },
      "message": "Camera: Add onCameraOpened/onCameraClosed callbacks\n\nThe onCameraOpened/onCameraClosed callbacks are used to notify camera\nservice client with CAMERA_OPEN_CLOSE_LISTENER permission that a certain\ncamera device has been opened/closed.\n\nTest: Manually check callbacks are received in SystemUI app\nBug: 150540299\nChange-Id: If6f3624c43927c30afef7df0a780eafe3ae4c527\n"
    },
    {
      "commit": "57eb313e5b20cc25f7fc524fade8d6a4ff89b13f",
      "tree": "50ebfdcc9f5545806145ba275ca27b300b4a040c",
      "parents": [
        "9f8cc0daf7856ff01145c2236dafa9c7855acab9",
        "6d4357197004ad81b2a256db33c82aa5c86a0b41"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 06 21:22:39 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 06 21:22:39 2020 +0000"
      },
      "message": "Merge \"Camera: Intialize useGrid and chooseHeic variables\" into rvc-dev am: 6d43571970\n\nChange-Id: If1d2931cdb664a10b934a07c4fe3054c6c370307\n"
    },
    {
      "commit": "9f8cc0daf7856ff01145c2236dafa9c7855acab9",
      "tree": "8ebfe8fe52fc30dad037b284bb5f7cfc1b4a6f15",
      "parents": [
        "bbe279f719a0bce9fff8a42b41ea1d777eb04066",
        "831ed185aa1dd8211bc37a05c9af8ed6941bf809"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 06 18:47:37 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Mar 06 18:47:37 2020 +0000"
      },
      "message": "Merge \"Camera: Fix ProviderInfo leak\" into rvc-dev am: 831ed185aa\n\nChange-Id: Ief1f7ffc8443db4edae6aaec050062a1ef7144d6\n"
    },
    {
      "commit": "fca6714fd6d72f6e9e47927d6ef246807cece7bf",
      "tree": "1e562e8498795e7b900dd256096902f6c53a4f51",
      "parents": [
        "796804387e39ddb35a63b747759dac955683809e"
      ],
      "author": {
        "name": "Susmitha Gummalla",
        "email": "vgummall@codeaurora.org",
        "time": "Thu Mar 05 14:58:30 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Mar 06 09:01:49 2020 -0800"
      },
      "message": "Camera: Intialize useGrid and chooseHeic variables\n\n--Handle early return case in Heic Encoder Manager\n\nBug: 150894246\nCRs-Fixed: 2636054\nChange-Id: I7f437241a1f33cc4cb4384369828e12b331b09c9\n"
    },
    {
      "commit": "796804387e39ddb35a63b747759dac955683809e",
      "tree": "22b488496859081a7c8ab3d30e3cb8435546703c",
      "parents": [
        "888b22394aab8a8d7a9741540b927ebccf3018c0"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Mar 05 11:53:46 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Mar 05 16:28:02 2020 -0800"
      },
      "message": "Camera: Fix ProviderInfo leak\n\nHaving a sp\u003cProviderInfo\u003e in DeviceInfo resulting in the parent\nProviderInfo not being deallocated.\n\nTest: Check camera characteristics object freed by killing provider\nBug: 149813446\nChange-Id: Ic15ffcd3a5ce424187877e17a14b4db581e2c50a\n"
    },
    {
      "commit": "5bc6d6096ce472e9cf8a71d7fcb336244bb34ba6",
      "tree": "029c5bcb569773b705921126b470ff3f7ccb182a",
      "parents": [
        "c4b245e1e561de8c4bf94680c88b336a90772f1b",
        "b31dab4d2d261f42dffb064a89402e3e941c6928"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 04 18:28:55 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 04 18:28:55 2020 +0000"
      },
      "message": "Merge \"Camera: Fix possible ExifUtils heap corruption\" into qt-dev am: f3f966faa6 am: 06b7522331 am: b31dab4d2d\n\nChange-Id: I3745093d8b6112a066138c82eb90b42f03d71a10\n"
    },
    {
      "commit": "b31dab4d2d261f42dffb064a89402e3e941c6928",
      "tree": "5491a09552ecf57f0372df0548baef203a826b73",
      "parents": [
        "c161e75873b85086d88e917a2a5ede1f9d513c85",
        "06b7522331a2ba20ee63aabee21c29ecc7287394"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 04 18:15:51 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 04 18:15:51 2020 +0000"
      },
      "message": "Merge \"Camera: Fix possible ExifUtils heap corruption\" into qt-dev am: f3f966faa6 am: 06b7522331\n\nChange-Id: Ifb363ff0c2cc78df2ed576094b8d2853f44abd8c\n"
    },
    {
      "commit": "06b7522331a2ba20ee63aabee21c29ecc7287394",
      "tree": "120c191031960562ca1a04d067e38c538dd7db03",
      "parents": [
        "29e2bfb97270d6c406e2b66664f5c5dd47a9ebb3",
        "f3f966faa6f46156726a338208f6c10a97d3fb4b"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 04 17:58:27 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Wed Mar 04 17:58:27 2020 +0000"
      },
      "message": "Merge \"Camera: Fix possible ExifUtils heap corruption\" into qt-dev am: f3f966faa6\n\nChange-Id: I1172c6499824d907555a7e4d5996c23b2f5c4b9d\n"
    },
    {
      "commit": "b3f7cd2ec35e4fa1eb013afa13906e25bfc4bcec",
      "tree": "8b7049d25c7a3d2a77e0b72d5e0be8e9bb82494e",
      "parents": [
        "b9bfddabc21c0819e7feccecddf09a70ade2670f"
      ],
      "author": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Thu Jan 23 12:27:18 2020 +0900"
      },
      "committer": {
        "name": "Jooyung Han",
        "email": "jooyung@google.com",
        "time": "Wed Feb 26 04:01:10 2020 +0000"
      },
      "message": "Use std::optional for nullable\n\nAIDL now use std::optional to represent nullable types for efficiency\ninstead of std::unique_ptr which might cause additional heap allocation.\n\nBug: 1447732670\nTest: m\nMerged-In: I9045bc6fc2eb06839203af6db94a80de9b83ad1f\nChange-Id: I9045bc6fc2eb06839203af6db94a80de9b83ad1f\n(cherry picked from commit 3f9a3b407aeff0311038b2097d657446c4f98b90)\n\nExempt-From-Owner-Approval: CP from master\n"
    },
    {
      "commit": "626f7fc3ff0b439bd8ea569cdaeab87fa1733048",
      "tree": "fec1573dcbe8b2a4a45e4ca9f3881972fc12d239",
      "parents": [
        "0f2787e8080e92c4fef66498e55bf2dbfe795fc6",
        "cbe770a7c3abc3f6dd45e7d704efd3549d0fb91c"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu Feb 20 06:43:14 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 20 06:43:14 2020 +0000"
      },
      "message": "Merge \"cameraserver: re-cache concurrent camera id combinations on cameraDeviceStatusChange callbacks.\""
    },
    {
      "commit": "e03cebc75e19a6034780f77af3d30d151de7f4ee",
      "tree": "0a851cb47bae70e39c4010f5b94031ea1f302993",
      "parents": [
        "b1cc886c8f2f87ac8fef9bf8f3100ee7765816d9",
        "8a0be29c19ba7c1de4a0983b8dbcafb730b17fc0"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Feb 19 22:59:23 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 19 22:59:23 2020 +0000"
      },
      "message": "Merge \"Add some move constructors and assignment operators to CameraMetadata.\""
    },
    {
      "commit": "8a0be29c19ba7c1de4a0983b8dbcafb730b17fc0",
      "tree": "a7514664b6bda989070d4b7548783a8af1578345",
      "parents": [
        "450c7b2aa6e5df8cdbebd763c719b3e149fb75f2"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Jan 08 13:10:38 2020 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Feb 19 14:48:59 2020 -0800"
      },
      "message": "Add some move constructors and assignment operators to CameraMetadata.\n\nThis avoids unnecessary copying of camera metadata which can get\nexpensive in cases of large camera metadata blobs.\n\nBug: 71727540\n\nTest: GCA (sanity)\nTest: Add CallStack::logStack() in CameraMetadata\u0027s move asignment\n      operator -\u003e see that it gets called for every insertResultLocked.\n\nChange-Id: I6c75c7ce5267126916c865b028e5f7c7f50b763b\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "cbe770a7c3abc3f6dd45e7d704efd3549d0fb91c",
      "tree": "296e3f0ef582b41ec8ed374c0cfc037d21ed0044",
      "parents": [
        "450c7b2aa6e5df8cdbebd763c719b3e149fb75f2"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Feb 14 11:14:46 2020 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Feb 18 15:23:51 2020 -0800"
      },
      "message": "cameraserver: re-cache concurrent camera id combinations on cameraDeviceStatusChange callbacks.\n\ncameraserver should re-cache concurrent camera id combinations when it\nreceives cameraDeviceStatusChange callbacks from the camera provider in\ncase new concurrent camera id combinations have appeared / old ones have\ngone away.\n\nBug: 148995918\n\nTest: atest ConcurrentCameraTest.java\n\nChange-Id: Ic433495d2dcf98d00cb247f434ad6c798ea17c54\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "649a27ad16faeb7a6bf87a50a33d19d461ece27c",
      "tree": "b711c590fb7c9148d9e04f3c16a11c185bb34008",
      "parents": [
        "cadf7289e0dacf4a40422f0b36f97891649d398b"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Feb 18 13:38:04 2020 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Feb 18 13:38:04 2020 -0800"
      },
      "message": "Camera: Fix possible ExifUtils heap corruption\n\nBoth EXIF_TAG_IMAGE_WIDTH and EXIF_TAG_IMAGE_LENGTH\nexpect short values as per EXIF spec. Call appropriate\nlibexif function to avoid possible heap corruption.\n\nBug: 148223871\nTest: run sts-engbuild-no-spl-lock -m StsHostTestCases --test android.security.sts.Poc20_02#testPocBug_148223871\nChange-Id: I57a774454b52c16d7da9f90d7e3a3407294606a5\n"
    },
    {
      "commit": "2ae8501c1b1598f331f5ddb16aa64f46b88247d6",
      "tree": "1443551316fdaa68a1ade91e98f265293b5c883d",
      "parents": [
        "450c7b2aa6e5df8cdbebd763c719b3e149fb75f2",
        "646c31b058e25dd8ee44ff4ec5a5c3005c8c829c"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Tue Feb 18 00:52:33 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 18 00:52:33 2020 +0000"
      },
      "message": "Merge \"Add mInterfaceLock back to Camera3Device methods called by RequestThread.\""
    },
    {
      "commit": "646c31b058e25dd8ee44ff4ec5a5c3005c8c829c",
      "tree": "b74cf931febaf3cd627fccd8c147b72c379de9e3",
      "parents": [
        "265e047963d0694b488c9919e7c3f95dd5d5c119"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu Jan 30 13:09:59 2020 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Feb 12 17:58:14 2020 -0800"
      },
      "message": "Add mInterfaceLock back to Camera3Device methods called by RequestThread.\n\nMethods like reconfigureCamera called by the RequestThread internally\ncall methods which might expect to have mInterfaceLock locked\n(eg: configureStreamsLocked).\n\nAlso, function calls which expect to be serialized w.r.t\nreconfigureCamera can cause reported camera status to be inconsistent\nw.r.t the expected status.\n\nFor example the following situation might occur\nthrough CameraTest.java#testVideoSnapshot :\n\nFor certain video sizes that would fail to configure the camera\nstartRecordingL\n    camera reconfiguration is triggered -\u003e reconfigureCamera() starts\n    waitUntilDrained -\u003e gets interleaved with reconfigureCamera()\n    reconfigureCamera() completes\n    Here the status of the camera device is active instead of CONFIGURED.\n    updateRecording\n        createStream() called expects the camera to not be in an ACTIVE\n        state since updateProcessorStream cannot handle stream\n        configuration failure gracefully when the device is streaming.\n        However since waitUntilDrained did not complete after\n        reconfigureCamera the camera status is STATUS_ACTIVE.\n\nAs a result, we should hold mInterfaceMutex while\ncalling these methods. To avoid deadlocks (b/143513518), we can have the thread\ncalling disconnect, relinquish mInterfaceMutex right before it starts\nwaiting on RequestThread to exit. It can re-acquire it when\nRequestThread finishes.\n\nBug: 147313521\n\nTest: atest CameraTest.java#testVideoSnapshot on pixel2 passes\nTest: camera CTS\nTest: GCA (sanity)\n\nChange-Id: I384f62bc9936d9691dfe9c13ff743e3d07f2ed55\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "61780a953c8befea40b89a289c6b66d511372c0e",
      "tree": "2cd6c3acbd6b6c90028fe50194f50e9b85cd00c3",
      "parents": [
        "117c6f7d414421093c54055fdd7672e916ec7740",
        "4fa28d2e0a2294bb265a24c7e7fe112076cfc724"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Sat Feb 08 00:32:40 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 08 00:32:40 2020 +0000"
      },
      "message": "Merge \"Camera: Fill out vndk implementation for physical camera callbacks\""
    },
    {
      "commit": "4fa28d2e0a2294bb265a24c7e7fe112076cfc724",
      "tree": "a4cfa9ee18204b5198a72cd414eb367a730a2ea7",
      "parents": [
        "de8e67bc32a4c1494ed59a36c222b6ec7ad594c6"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Jan 23 15:57:25 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Feb 06 13:48:55 2020 -0800"
      },
      "message": "Camera: Fill out vndk implementation for physical camera callbacks\n\nAlso fixed missing implementation of Camera availability callbacks for\nExtendedAvailabilityCallback.\n\nTest: Camera CTS, and vndk test\nBug: 148146086\nChange-Id: I557d6db3900b2346b7bc7e12cd946bc4c2dc4076\n"
    },
    {
      "commit": "89a2c5ceef75fbefca117d9df56a8047a36005fa",
      "tree": "ccc27362514e6bb804fe090672d443e71a19646b",
      "parents": [
        "b5c0071bb7a1c6524deb42ac6643d8fae3106248"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jan 31 15:02:25 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Feb 04 11:30:15 2020 -0800"
      },
      "message": "Use libbinderthreadstateutils.\n\nClients needing to differentiate between system/vendor used to be able\nto use isServingCall. However, this was expensive to implement. This\nalternative approach instead requires users of this API to use\nlibbinderthreadstateutils which does a slighty different operation.\n\nBug: 148692216\nTest: atest VtsHalCameraServiceV2_0TargetTest\nTest: running AImageReaderVendorTest\nTest: try face unlock\nChange-Id: I5615f4e8863487d0de8dad2d0529214750897036\n"
    },
    {
      "commit": "b6a1bc586c2f3864fe30d7fbded32ee357eca9fc",
      "tree": "6abb4421eff035c979ba49865445e8187213b706",
      "parents": [
        "f030d4e31b0e7fa52e0f6999b1c3dd39ec0b658c",
        "faa4bde9babbe4214b98c05016b6a56fc7f8807b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 03 16:08:21 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 03 16:08:21 2020 +0000"
      },
      "message": "Merge changes from topic \"offlineProc-framework\"\n\n* changes:\n  Camera: Various offline processing fixes\n  Camera: some patchs for offline processing\n"
    },
    {
      "commit": "05c49e907fd4872defdce3b15b8a6be08c177284",
      "tree": "6aa72fda62eae77ba06c584e1e53869ee71c96a6",
      "parents": [
        "0b890e627dc50e9f8bcb0870db37c0c310d1cdb2",
        "16dd56fa2dcbadb7144592a65804dbfbbc46b1c8"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jan 30 23:01:07 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jan 30 23:01:07 2020 +0000"
      },
      "message": "Merge \"CameraService: hold onto SensorPrivacyManager\" am: 733c728752 am: 9279fa954a am: 16dd56fa2d\n\nChange-Id: Ibe7d0626f3c93cabc933ae1b8fbc678c3052b19e\n"
    },
    {
      "commit": "9279fa954ac08e851618b660ab426bbf7a3c6477",
      "tree": "789e1d5526165a4aadfcc55a47114228b04c1405",
      "parents": [
        "e32e81084278221408c1e6f735f929a90787768a",
        "733c728752ae6958c88b2da4a4c662d266294b70"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jan 30 20:36:30 2020 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Jan 30 20:36:30 2020 +0000"
      },
      "message": "Merge \"CameraService: hold onto SensorPrivacyManager\" am: 733c728752\n\nChange-Id: Ibdf8f29d1ede305d4fc7f7b18ee5f37c25a85162\n"
    },
    {
      "commit": "faa4bde9babbe4214b98c05016b6a56fc7f8807b",
      "tree": "3d22f9dd95e0fae80c49a5715fd1df46dc560917",
      "parents": [
        "87fcccad5dd80a6469a52b783877a3d4edb2dbb6"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jan 23 12:19:37 2020 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jan 30 09:46:38 2020 -0800"
      },
      "message": "Camera: Various offline processing fixes\n\nNotable fixes:\n- Rework FrameProcessorBase so it accept and work with\n  offline sessions.\n- Erase internal composite streams from offline stream list.\n\nBug: 135142453\nTest: Camera CTS\nChange-Id: I9dbc01e62fa94c1e0bfb84a8ddaa9e39ab4a7e34\n"
    },
    {
      "commit": "87fcccad5dd80a6469a52b783877a3d4edb2dbb6",
      "tree": "10f5fc65014c601c30196b5949e0674daedf97a0",
      "parents": [
        "2496ffbc450029ee9ec26980a101e71352b4f635"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 28 09:37:18 2020 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jan 30 09:04:48 2020 -0800"
      },
      "message": "Camera: some patchs for offline processing\n\nTest: CTS OfflineSessionTest\nBug: 135142453\n\nChange-Id: I09a19b3b2e366855ed35b588f75f9734f505072c\n"
    },
    {
      "commit": "3cf67173b15b9ab2df4a9d029e49c4ceaa64be9d",
      "tree": "3c4dc37f5d68ca02c6c5360bedfb1a077c7631f3",
      "parents": [
        "b7765027eca85ef49f842a60db9ebda1bfe7d53c"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jan 29 11:44:22 2020 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Wed Jan 29 11:44:22 2020 -0800"
      },
      "message": "CameraService: hold onto SensorPrivacyManager\n\nunlinkToDeath is no longer required, (this change in behavior is to\navoid leaks) so holding onto the service here (still calling\nunlinkToDeath to avoid a log, but may for instance remove all\nunlinkToDeath calls in the future).\n\nBug: 145692765\nTest: boot, see linkToDeath maintained\nChange-Id: Ib74ab470580643ff61fc684fdd4e16d5e38389af\n"
    },
    {
      "commit": "6425bcd8d5698b44127550d00c0d3e8ea876f7d7",
      "tree": "ef92b9acd993769d43f3fcfb5f18603ee00026d2",
      "parents": [
        "6fd900a34131e6a6a9d9e01f1d594710ead4fb04",
        "2bbdce4e9b9d36ebd6fac699cbefe33c773558fe"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Jan 27 18:24:07 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 27 18:24:07 2020 +0000"
      },
      "message": "Merge \"ICameraService: Add methods to query concurrent streaming camera support.\""
    },
    {
      "commit": "2bbdce4e9b9d36ebd6fac699cbefe33c773558fe",
      "tree": "2bb3e0497fbf32e52b2e46bb5aeb91ec531b4629",
      "parents": [
        "e66dc80ed7ab709613d7f465f22793ef3e9d0114"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Sun Jan 12 14:55:41 2020 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Sun Jan 26 19:20:17 2020 -0800"
      },
      "message": "ICameraService: Add methods to query concurrent streaming camera support.\n\n- getConcurrentStreamingCameraIds() :\n        returns a list of combinations of camera ids that may stream\n        concurrently.\n\n- isConcurrentSessionConfigurationSupported() :\n        queries whether camera devices can support the\n        corresponding given session configurations concurrently.\n\nBug: 77960042\n\nTest: GCA (sanity)\nTest: CTS\n\nChange-Id: Iba237118ccf145695a500a2c406713e416e66011\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "5277625231db4f313115fbcb6cefca7f2dfc2ce0",
      "tree": "288802a30819352b91c3b270329fb41b577928a0",
      "parents": [
        "bccf38e3fa6bc2a372c3a0d38c6274b68c0e5fb7",
        "7c96ea7ff84e1084332548583841735b694bfebd"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 25 03:44:28 2020 +0000"
      },
      "message": "Merge \"Remove mediametrics include symlinks\""
    },
    {
      "commit": "f2e37092cfb034d2c207af0d65da686f305faa53",
      "tree": "cafb01c07b7b73fad5e71848e8447bad5dcb5cc0",
      "parents": [
        "e2a8892e61129a62c1ac158d1b7f25bead50ef03"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 07 15:32:32 2020 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jan 23 14:56:43 2020 -0800"
      },
      "message": "CameraService: Implement SCALER_ROTATE_AND_CROP_AUTO, part 1\n\nWhen an app sets SCALER_ROTATE_AND_CROP to AUTO, the camera service\nneeds to select the right ROTATE_AND_CROP mode given the application\nUI state at the moment, received from the window manager.\n\nIn addition, some of the metadata in the active array coordinate\nsystem needs to be converted to/from the cropped+rotated coordinate\nsystem to ensure roundtripping UI information works as before.\n\nAlso ensure that the available rotate and crop metadata field is\nalways available, with a value of NONE if nothing else.\n\nThis commit adds support for doing the coordinate transforms and\noverriding AUTO to a concrete value; it does not wire up a connection\nto another system service to receive the correct override value, but\ndoes add a command to set the override value for all current camera\nclients.\n\nTest: New CTS tests pass, unit tests for RotateAndCropMapper pass\nBug: 134631897\nChange-Id: Icc45530e2cfbaf838a1e4d04e4fd2aef8122e8e1\n"
    },
    {
      "commit": "4385816acc487864df24f48a97c5c1e772d87313",
      "tree": "47ebe72a3ae88881555ae75cccf1f65d4dc3017a",
      "parents": [
        "0bc6f60e1f036380bd48d022631e6561b90f210c"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Jan 10 13:42:15 2020 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Jan 23 00:08:42 2020 -0800"
      },
      "message": "Camera: Support new provider callback version in camera service\n\nThe new provider callback version enables availability callback for\nphysical camera.\n\nTest: Camera CTS\nBug: 119325027\nChange-Id: I22e0b669c3d9891a431e1befc7f1c9f40b826a08\n"
    },
    {
      "commit": "cc0b795ac29688e1675d177e60eb4f37184240c5",
      "tree": "c55c8e4b206b243c09947dfc5149867fdfc35117",
      "parents": [
        "d99c8ae877daa76ad182bab886c85ad4811ff428"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Jan 07 13:54:47 2020 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 21 13:23:33 2020 -0800"
      },
      "message": "Camera: Propagate all offline stream ids to clients\n\nCamera clients must be aware of any configured streams\nthat can support offline processing mode.\nA few corner cases that need to be considered:\n - Composite streams can support offline mode only\n   when all internal streams support it as well.\n - Streams that use the internal camera buffer manager\n   will not have support for offline mode.\n - Shared streams are also unsupported in offline mode.\n\nBug: 135142453\nTest: Camera CTS\nChange-Id: Idde826a6fb18a8907850e87cfe593de7cb1c5f4a\n"
    },
    {
      "commit": "d99c8ae877daa76ad182bab886c85ad4811ff428",
      "tree": "ae34cd0d76db6869ee2cd37c2260921adf3efcd3",
      "parents": [
        "4697b64a3b853898ec26e6397eacc3d8bb486473"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Nov 26 13:19:13 2019 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 21 13:23:21 2020 -0800"
      },
      "message": "Camera: Add initial offline client listener logic\n\nVarious camera notification callbacks need to be\npropagated back to client.\n\nTest: Camera CTS\nBug: 135142453\n\nChange-Id: I11a1bc634e4c6f9540d1f7f9c20e4151fdcc5ec6\n"
    },
    {
      "commit": "4697b64a3b853898ec26e6397eacc3d8bb486473",
      "tree": "94bedc5c648e367f9ca43df62c5915b08c22a186",
      "parents": [
        "b2bc5a46efe3e77a5962ba0f2f770c524e93e03f"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Nov 19 17:11:14 2019 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 21 13:23:08 2020 -0800"
      },
      "message": "Camera: Initial support for composite streams in offline mode\n\nComposite streams must be able to switch to offline processing\nmode. To support them the offline session client must continue\npassing all necessary callbacks and events similar to regular\ncamera clients.\n\nTest: Camera CTS\nBug: 135142453\nChange-Id: I498681af16ad072e3df01d0279b4cfe76b48f9ec\n"
    },
    {
      "commit": "b2bc5a46efe3e77a5962ba0f2f770c524e93e03f",
      "tree": "378fd039dafaeaff8882eb774a7be1a864778b86",
      "parents": [
        "5fd603ea87e9f94e4b8c5fdc5b891518d6a471a8"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Nov 20 16:02:14 2019 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 21 13:22:53 2020 -0800"
      },
      "message": "Camera: Initial offline session client\n\nTest: N/A, no implementation yet\nBug: 135142453\nChange-Id: I08fecba80ab88a8b70fe71fdd4b660d49e40324c\n"
    },
    {
      "commit": "5fd603ea87e9f94e4b8c5fdc5b891518d6a471a8",
      "tree": "f31de530528e7aa6a40e9d21ae466c8bfc77fcd0",
      "parents": [
        "56d98ba8001cd2a83c735ff8bc4d155c69072027"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Nov 20 11:22:27 2019 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 21 13:22:16 2020 -0800"
      },
      "message": "Camera: fill in Camera3Device offline processing impl\n\nMove shared method implementations to Camera3OutputUtils.cpp/h\nDefined interfaces to handle Camera3Device/Camera3OfflineSession\nbehavior differences in Camera3OutputInterface.h.\n\nBug: 135142453\nTest: N/A (not enough implementation yet)\nChange-Id: I57476ca5a1edf69c02a22241ad776d6f02636033\n"
    },
    {
      "commit": "56d98ba8001cd2a83c735ff8bc4d155c69072027",
      "tree": "d56db19cc58a63967b39ed545a810dd14f959e89",
      "parents": [
        "7d381e52fa5808e0acbad8b31383188e133c41b6"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jan 16 16:57:14 2020 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jan 16 16:57:14 2020 -0800"
      },
      "message": "Camera: supports new HIDL camera device 3.6\n\nTest: webcam HAL with device 3.6\nBug: 135142453\nChange-Id: I6cd80380608eb7ea72bc958aae870a8573bce631\n"
    },
    {
      "commit": "7c96ea7ff84e1084332548583841735b694bfebd",
      "tree": "eb5d7c1bcb91cea21469e46b7c014ae44635a217",
      "parents": [
        "255f610f5ab71b5e36d93744dfe058daf6c96041"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Jan 10 15:46:22 2020 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Jan 16 15:55:18 2020 -0800"
      },
      "message": "Remove mediametrics include symlinks\n\nBug: 143245419\nTest: build\nChange-Id: I6c836e60c0fe078f5ab7370aec156bdd6e8dcbf0\n"
    },
    {
      "commit": "336ffa96f5bb0cdd4b24b7967d9385c42d7e9299",
      "tree": "a35ecc6d7839e9b2d5363b6fda9c0bf1f298a97b",
      "parents": [
        "c60fccb3b36c1804dafd72a39bd97c99974f2348",
        "29e9ec182d20f44ee2e8a15de1940cb4ef29663e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 06 21:05:43 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 06 21:05:43 2020 +0000"
      },
      "message": "Merge \"Camera: Integrate dynamic depth processing\""
    },
    {
      "commit": "a93b86c6f1f032113f3d1fc4807b86dfe513a6b8",
      "tree": "0a94096be8d347b064269db77ec37a766287c17e",
      "parents": [
        "60e7d69f19d6c80082778dec51b23efbc2ed7e5f",
        "cfae241ef67e6ffc7d3c95148866bbc0eb188aec"
      ],
      "author": {
        "name": "Wei Lee",
        "email": "wtlee@google.com",
        "time": "Mon Jan 06 06:44:55 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 06 06:44:55 2020 +0000"
      },
      "message": "Merge \"Camera: Set focal length for external camera if the information is provided\""
    },
    {
      "commit": "7609334508e235c77a09c23b50dc07351d1487fb",
      "tree": "11282517dc96490e8bb03f69a62bde53cab66942",
      "parents": [
        "684e4758669bacea71379735d49bdc74807772f3",
        "1c834da07093c79d2a8fedb47836b78f00a31e2e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 02 21:18:03 2020 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 02 21:18:03 2020 +0000"
      },
      "message": "Merge \"Camera3: Remove mutex from ZoomRatioMapper\""
    },
    {
      "commit": "29e9ec182d20f44ee2e8a15de1940cb4ef29663e",
      "tree": "63c37c5dc495aafa88e2951fe69fecc82a57e561",
      "parents": [
        "684e4758669bacea71379735d49bdc74807772f3"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jan 02 12:43:50 2020 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Thu Jan 02 13:08:30 2020 -0800"
      },
      "message": "Camera: Integrate dynamic depth processing\n\nIntegrate dynamic depth processing as part of\nthe camera service library.\nDynamic linking is no longer required as legacy\ndevices with small system partitions are not\nsupported.\n\nBug: 132449311\nTest:\natest\ncts/tests/camera/src/android/hardware/camera2/cts/StillCaptureTest.java#testDynamicDepthCapture\natest\ncts/tests/camera/src/android/hardware/camera2/cts/ImageReaderTest.java#testDynamicDepth\natest\ncts/tests/camera/src/android/hardware/camera2/cts/ExtendedCameraCharacteristicsTest.java#testDepthOutputCharacteristics\ncameraservice_test --gtest_filter\u003dDepthProcessorTest.*\n\nChange-Id: Ie8befc5c0635e3e08c7ad8cac7b056cdf5aa3548\n"
    },
    {
      "commit": "1c834da07093c79d2a8fedb47836b78f00a31e2e",
      "tree": "4542e2d86881525c694e8111686b1674bec4b8d7",
      "parents": [
        "62f49ed06456101818acac1be1508c3439fab2fc"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Dec 18 11:17:03 2019 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Dec 31 07:18:16 2019 +0000"
      },
      "message": "Camera3: Remove mutex from ZoomRatioMapper\n\nZoomRatioMapper\u0027s member variables are const after construction. As a\nresult, we don\u0027t need mutex to protect updateCaptureRequest and\nupdateCaptureResult calls.\n\nAlso fixed missing zoom ratio mapping initialization for physical\nsub-camera.\n\nTest: testZoomRatio CTS\nBug: 130025314\nChange-Id: Ibe2ff7cffb13178dcf70fc9e2eb044184e58bcf2\n"
    },
    {
      "commit": "40ea29352c0c2dd0c1494be69463521dd3260218",
      "tree": "d04e4718594d003120db1c6154d5d37bf6e173f5",
      "parents": [
        "62f49ed06456101818acac1be1508c3439fab2fc",
        "bd2e388b26faff9d686bf56e476009843b4615df"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 27 21:35:58 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 27 21:35:58 2019 +0000"
      },
      "message": "Merge \"Functions called by RequestThread::threadLoop must not hold mInterfaceMutex.\" am: 2638df9bf8 am: 12638d3b84 am: bd2e388b26\n\nChange-Id: Iaf36c4f517ec7ab4d1956179c88600a4154f176e\n"
    },
    {
      "commit": "bd2e388b26faff9d686bf56e476009843b4615df",
      "tree": "9fd4f720217961241ed5cadc43d38f01e156c493",
      "parents": [
        "cb257970c1921db3cbfd15823ef0a561257b4690",
        "12638d3b84c5cad75135de224169a5b1e3caaf6b"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 27 21:19:19 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Fri Dec 27 21:19:19 2019 +0000"
      },
      "message": "Merge \"Functions called by RequestThread::threadLoop must not hold mInterfaceMutex.\" am: 2638df9bf8 am: 12638d3b84\n\nChange-Id: I0993e9e07e212773a92aade3148d1462aab4bfe1\n"
    },
    {
      "commit": "2638df9bf8fbe3e82c1908b47df206746080fb70",
      "tree": "95ec34c8139dec38eb7e10104bd376117dfefcc8",
      "parents": [
        "801a252a4203c54ad7165f522f4b36dd1f14fc92",
        "37eca2499bfb3cda510f0a2e2a4e9d629b405a36"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Dec 27 20:28:48 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 27 20:28:48 2019 +0000"
      },
      "message": "Merge \"Functions called by RequestThread::threadLoop must not hold mInterfaceMutex.\""
    },
    {
      "commit": "62f49ed06456101818acac1be1508c3439fab2fc",
      "tree": "cfe90abde740459ccf8135a6a819fb2bbf28fa57",
      "parents": [
        "b7b2f5d8658b5d08831f91c25400c9717b05dac1"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Sep 04 14:07:53 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Dec 27 11:24:32 2019 -0800"
      },
      "message": "Camera: Heic: Update codec quality per shot\n\nUpdate codec quality setting at the time of:\n- Input pending frame creation if there is no inflight encoding.\n- Any pending input frame is done processing.\n\nNote that since there is no way for camera framework to synchronize\nquality setting per-frame when encoder runs in surface mode, the update\nof quality is on best-effort basis.\n\nTest: vendor testing, and camera CTS\nBug: 140506016\nChange-Id: I58ddc9302b1507428ccf42f4c77c6624f1c600ba\n"
    },
    {
      "commit": "dbdf72b97b2d591bfecd22825df6b2550464bb75",
      "tree": "2897d8758f1c148594172e968ba1738565c97df5",
      "parents": [
        "9c7e2a51e2fb24bbf193b46a3f5e892af19cdfe5"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Nov 13 11:22:12 2019 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Dec 18 14:34:09 2019 -0800"
      },
      "message": "Camera: Add support for new camera zoom API\n\n- Add NDK API spec for the new zoom API\nThe new zoom API combines optical and digital zoom, and supports both\nzoom-out and zoom-in with more precision.\n- Add new NDK API to specify separate zoom ratio ranges for different\nbokeh modes.\n- Add ZoomRatioMapper in camera service to convert between\ncontrol.zoomRation to and from scaler.cropRegion.\n\nTest: Camera CTS/ITS/CtsVerifier/ZoomRatioTest\nBug: 130025314\nChange-Id: I4c7d867f840b5720bc73bb0485e8a9a93d2276b5\n"
    },
    {
      "commit": "b978c389e811a957d173cca97e19dfb5cc49ba38",
      "tree": "2586a6d50d09135ede7ff4d609f4b332fb44cbe2",
      "parents": [
        "68e5e9a665f0b57be41329325258a9839a9c7ed2"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Oct 30 00:22:37 2019 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Dec 16 11:31:14 2019 -0800"
      },
      "message": "Camera: add offline session API skeleton\n\nTest: N/A, no implementation yet\nBug: 135142453\nChange-Id: I497e42433d4d49466fe37467d4ff66e8583c55df\n"
    },
    {
      "commit": "1d8e707a3c713429d1e21349b2c9dacac07b8591",
      "tree": "f8735d228d541c4832d101c602328f5ebe4eef71",
      "parents": [
        "f1ecd8fc035ea16977e65c2ca6e9a1663c80a3d1",
        "053fe0f226924f287741de7c45e1bb9a9bff8812"
      ],
      "author": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 12 04:43:18 2019 +0000"
      },
      "committer": {
        "name": "Automerger Merge Worker",
        "email": "android-build-automerger-merge-worker@system.gserviceaccount.com",
        "time": "Thu Dec 12 04:43:18 2019 +0000"
      },
      "message": "Merge \"Camera: Handle onBuffersDiscarded callback\" into qt-qpr1-dev am: 6a971a6aec am: 053fe0f226\n\nChange-Id: I4e8808204579c8baf79438cc8c323b2c65b84257\n"
    },
    {
      "commit": "37eca2499bfb3cda510f0a2e2a4e9d629b405a36",
      "tree": "fe7f6d9647772349d4c87203b1db141e78c64474",
      "parents": [
        "3066e206366b25b6b64cf0ad29188bd04b56b183"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Nov 18 08:55:56 2019 -0800"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Dec 11 14:10:36 2019 -0800"
      },
      "message": "Functions called by RequestThread::threadLoop must not hold mInterfaceMutex.\n\nFunctions called by RequestThread::threadLoop must not hold\nmInterfaceMutex since the following deadlock scenario may occur:\n\nT1: disconnect() -\u003e holds mInterfaceMutex and waits for RequestThread to\n    exit\n  T2: RequestThread::threadLoop()-\u003ereconfigureCamera (or any other function) that waits on\n      mInterfaceMutex\n\nleading to a deadlock\n\nBug: 143513518\n\nTest: GCA\nTest: CTS\n\nChange-Id: I4bd856e5263934a54cd7087a01d35cfe10936196\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "d65084c86d0760afce46cd889b58b3d982088017",
      "tree": "d0bcc9d9ad39d899fa60e929e3fc9a7e994369d2",
      "parents": [
        "960bbfab7bd5f2fff6afdecb920f21b8eb3fee45"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Thu Aug 15 09:11:56 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Dec 09 22:21:11 2019 +0000"
      },
      "message": "Camera: Handle onBuffersDiscarded callback\n\nUse onBuffersDiscarded callback from buffer queue to invalidate the\nbuffer caches in cameraserver process.\n\nTest: Run testDiscardFreeBuffers, and use trace to profile memory\nBug: 136677409\nBug: 145617243\nChange-Id: Ifac5e852e2a1ac50f5c3f2e047966c59eeb5f1ba\nMerged-In: Ifac5e852e2a1ac50f5c3f2e047966c59eeb5f1ba\n(cherry picked from commit 0160ddd149893fd14c563ac9a124e49443b69fe4)\n"
    },
    {
      "commit": "cfae241ef67e6ffc7d3c95148866bbc0eb188aec",
      "tree": "fde38af918396900c322f3188ccd2afe4e6db3d5",
      "parents": [
        "e3c93d02f76fc8ba1628b1f4cdf271ce011b73d2"
      ],
      "author": {
        "name": "Wei Lee",
        "email": "wtlee@google.com",
        "time": "Wed Dec 04 12:48:14 2019 +0800"
      },
      "committer": {
        "name": "Wei Lee",
        "email": "wtlee@google.com",
        "time": "Fri Dec 06 17:36:37 2019 +0800"
      },
      "message": "Camera: Set focal length for external camera if the information is provided\n\nCurrently, we will set -1.0 as the default focal length for external\ncamera even if camera HAL provides the information. We should respect\nthe information if it is provided.\n\nBug: 141517606\nTest: cts-tradefed run commandAndExit cts -m CtsCameraTestCases -t\nandroid.hardware.cts.CameraTest#testJpegExif\n\nChange-Id: Iae38ed0243a386187e29c5c4549d92ca24f58d0d\n"
    },
    {
      "commit": "b7be229b0748034b6711fd855339af762e9097de",
      "tree": "f792ad2b8c278688acb339c8f13fb58461c6ba50",
      "parents": [
        "decaebce1d97f871f80847999063c6ea56cf6b81",
        "6ffc16c3531ed5a8dd9e5e1647537bd093156d96"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu Dec 05 11:03:49 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Dec 05 11:03:49 2019 -0800"
      },
      "message": "Merge \"cameraserver: filter out non-HAL3 devices from HIDL addListener.\" am: 58205951c3\nam: 6ffc16c353\n\nChange-Id: Icc89c3b8f7af5ca7899f1bbc1cddf65d87ecdda3\n"
    },
    {
      "commit": "58205951c319c089b1d320f81028262b9a470400",
      "tree": "2748ca345f579eac2ed61e77a61bdde0634a4a6c",
      "parents": [
        "0287266a3e2543268938e1b91129fb934b92b356",
        "8fe02b24e4cdf93cb1c004b7d77c01671bd44916"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Dec 05 18:34:29 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Dec 05 18:34:29 2019 +0000"
      },
      "message": "Merge \"cameraserver: filter out non-HAL3 devices from HIDL addListener.\""
    },
    {
      "commit": "8dae54c472554974c12baac111677679f66431f3",
      "tree": "5e86008717e1a14e28da7f288ae8be09b6dc8d89",
      "parents": [
        "652ba81b9ffc137883f949bc958fa388a754e701"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Dec 02 15:17:17 2019 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Mon Dec 02 15:17:17 2019 -0800"
      },
      "message": "Camera: Unblock the request thread earlier during flush\n\nExplicitly signal and unblock the request thread\nduring device flushes via \"mRequestSignal\". This can\npotentially reduce the time needed to go in to IDLE state.\n\nBug: 144978201\nTest: Camera CTS\nChange-Id: Ib212ca481a961252cf744af4b96f3c45865d121e\n"
    },
    {
      "commit": "2d05e23d5c6160e343a2d00f047883b830be0219",
      "tree": "37ef016a15e6d3bfea44bc672c329c6715f064e7",
      "parents": [
        "cb4aa3aaf8ef23b4297167ccb0da44285517bd5a",
        "1960c88baffd5371b69bbe5268702dd02b8a24a3"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Nov 20 08:27:13 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 20 08:27:13 2019 -0800"
      },
      "message": "Merge \"Camera: Check consumer interface before disconnecting\" am: aa59be48d4 am: a4f8c20bf9\nam: 1960c88baf\n\nChange-Id: I18f80217287d0c23846cc052dce768e7723518c4\n"
    },
    {
      "commit": "1960c88baffd5371b69bbe5268702dd02b8a24a3",
      "tree": "419f3e1fefaf996d23e7184a8eb9f5a13cbef079",
      "parents": [
        "f2bb7b0ccc86a06deae882ac3974e2004eb98a27",
        "a4f8c20bf985d4a6d3a108d6813fe01d5b41cd55"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Nov 20 08:23:56 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 20 08:23:56 2019 -0800"
      },
      "message": "Merge \"Camera: Check consumer interface before disconnecting\" am: aa59be48d4\nam: a4f8c20bf9\n\nChange-Id: I691c6c369db7b6334a54dbe98b61711b8185e1cb\n"
    },
    {
      "commit": "a4f8c20bf985d4a6d3a108d6813fe01d5b41cd55",
      "tree": "36c529afa2ebdbbe4a31b8649aaf60cd957ff979",
      "parents": [
        "f1a372c1792ad6b92a7cabd804a5195589daf8e0",
        "aa59be48d4385700852552e3359f5c41a73fcd16"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Nov 20 08:20:02 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 20 08:20:02 2019 -0800"
      },
      "message": "Merge \"Camera: Check consumer interface before disconnecting\"\nam: aa59be48d4\n\nChange-Id: I2c1b1878b8ca56bcce5a977afec2170a62a738a0\n"
    },
    {
      "commit": "960bbfab7bd5f2fff6afdecb920f21b8eb3fee45",
      "tree": "6eca1abc80b0d3ea6a0680f45fd0ea28019815f1",
      "parents": [
        "9132522c7e3702227cf65756d11630d51d022f3f"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 30 10:12:46 2019 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Nov 19 17:09:42 2019 +0000"
      },
      "message": "Camera: Check consumer interface before disconnecting\n\nThe internal buffer queue and respective \u0027mConsumer\u0027 may\nnever get initialized in case the connection and/or\nconfiguration of client shared output surfaces fails.\nTo avoid possible instabilities check whether the\nconsumer interface is valid before trying to disconnect.\n\nBug: 143506890\nTest: atest\ncts/tests/camera/src/android/hardware/camera2/cts/MultiViewTest.java\n\nChange-Id: Ia533233444fd548ddb52f4fde06212a21bc843bc\nMerged-In: Ia533233444fd548ddb52f4fde06212a21bc843bc\n"
    },
    {
      "commit": "0dff6354a26026e997592e65de60d51fc1413f4f",
      "tree": "310442d464502c421836a4ef3697f1ede7b646f4",
      "parents": [
        "c9b7938917ab330a9b5be036c94b644432402c51",
        "80cf46d6fb0248d62996e8277c1b699379e68e04"
      ],
      "author": {
        "name": "Michael Gonzalez",
        "email": "michgonz@codeaurora.org",
        "time": "Mon Nov 18 13:46:34 2019 -0800"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 18 13:46:34 2019 -0800"
      },
      "message": "Merge changes Iba1c82b0,Ia498f6dd,I16fd11f5 into qt-qpr1-dev am: 40f8906f45\nam: 80cf46d6fb\n\nChange-Id: I05b66f64f0f941cde473d02d02e6c1714d7d4a6a\n"
    },
    {
      "commit": "9e648f6d57901b8d2c6d595d08d0cb55d87981e4",
      "tree": "93503618ab62ac82e0f1dd0c5fa8fdefaed04748",
      "parents": [
        "f1a584a44cd2fb35a1817438db4342ee8bd6825e"
      ],
      "author": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Mon Nov 04 12:52:45 2019 -0800"
      },
      "committer": {
        "name": "Philip P. Moltmann",
        "email": "moltmann@google.com",
        "time": "Wed Nov 13 16:57:43 2019 -0800"
      },
      "message": "Pipe through featureId from context to Camera code\n\nBug: 136595429\nTest: atest CtsAppOpsTestCases (now including two new test cases that\n          open a camera with a null and a non-null feature)\nChange-Id: Idfb8f8049dff536525d4f081151c79d980d76c69\n"
    },
    {
      "commit": "f2ae75ddc535e8ecb253d0b657e597c227057838",
      "tree": "61c1153d1df097e72171679ce8fb3db1313f5bfe",
      "parents": [
        "0017f0d7714fd06bfbc8faf3039f5fac8c3bdef4"
      ],
      "author": {
        "name": "Michael Gonzalez",
        "email": "michgonz@codeaurora.org",
        "time": "Tue Oct 08 14:30:32 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Nov 08 18:57:31 2019 +0000"
      },
      "message": "Camera: Heic: Wait for output TS before dequeuing output buffers\n\nDuring testHeicExif, the codec output buffer timestamp may rarely arrive\nafter the first codec output tiles arrive.\n\nTest: vendor testing\nBug: 141169323\nChange-Id: Iba1c82b087533cb87a32d69f7d6908e2c925b807\nMerged-In: Iba1c82b087533cb87a32d69f7d6908e2c925b807\n(cherry picked from commit 5c103f2962cd41a948dca4f2156c6efdf506bef1)\n"
    },
    {
      "commit": "0017f0d7714fd06bfbc8faf3039f5fac8c3bdef4",
      "tree": "437279d82780f895267ddf9f7c3ebb79f0067521",
      "parents": [
        "983f81403e9189c52e23f878c6ea5d22e97448e2"
      ],
      "author": {
        "name": "Michael Gonzalez",
        "email": "michgonz@codeaurora.org",
        "time": "Wed Oct 09 15:38:17 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Nov 08 18:57:02 2019 +0000"
      },
      "message": "Camera: Heic: Handle out-of-order buffer outputs\n\nDuring reprocess usecases, the Camera HAL may return JPEG Appsegment\nframes out of order. This leads to a scenario where\nmAppSegmentConsumer-\u003elockNextBuffer may not refer to the currently muxed\nframe.\n\nTo work around this, the number of lockable appsegment buffers has been\nincreased.\n\nTest: Vendor testing\nBug: 141169323\nChange-Id: Ia498f6ddaba588b66cbaeee94fe8bdd7314bb90c\nMerged-In: Ia498f6ddaba588b66cbaeee94fe8bdd7314bb90c\n(cherry picked from commit b5986a36b2913ec100b110720c3e24e26fd0d1dd)\n"
    },
    {
      "commit": "983f81403e9189c52e23f878c6ea5d22e97448e2",
      "tree": "541d7935d24f3855262fe810e557f9b4230bc983",
      "parents": [
        "4333c308afa4a695fd8f444d308b794cad656a6e"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Sep 25 14:19:28 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Nov 08 18:54:15 2019 +0000"
      },
      "message": "Camera: Heic: Wait for first output tile callback before muxer start\n\nIn order for muxer to start writing any track, the format returned from\nonFormatChanged must first be available. By waiting for first output\ntile callback, we are guaranteed to have received onFormatChanged, which\nmeans a valid format is available for muxer to use.\n\nThis change also makes it such that no multiple muxers are inflight, avoiding\ndequeueBuffer failure because right now we only support maximum dequeued\nbuffer count to be 1.\n\nAdd more verbose logs for ease of debugging.\n\nTest: Vendor testing\nBug: 141169323\nChange-Id: I16fd11f5558e525ceae59df00533553e4b4e7589\nMerged-In: I16fd11f5558e525ceae59df00533553e4b4e7589\n(cherry picked from commit 3d00ee51a207d15718fcac4fefc72306532d68af)\n"
    },
    {
      "commit": "b4235aabf383c9ea3e5bcaddcab37d69b4cb6d44",
      "tree": "6b6ecfa3475471c5f91a1b6b9a21b8c4510fb77c",
      "parents": [
        "efe567a24ba2a171782c20ce2aa4c773c78fc798",
        "039b9e940fc575861e6cd652105b0c3a36a1d574"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 07 17:18:31 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 07 17:18:31 2019 +0000"
      },
      "message": "Merge \"Camera: Decrease latency when joining sequencer thread\""
    },
    {
      "commit": "dd44d37f522c4b22fefd6b4c65d048d94ece0cdc",
      "tree": "cc60d3b290331516bb034c909062ee246e8eba69",
      "parents": [
        "8f7242b6bd2c957a76176d357ca0631f287b19e8",
        "5c103f2962cd41a948dca4f2156c6efdf506bef1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 07 01:02:29 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 07 01:02:29 2019 +0000"
      },
      "message": "Merge \"Camera: Heic: Wait for output TS before dequeuing output buffers\""
    },
    {
      "commit": "039b9e940fc575861e6cd652105b0c3a36a1d574",
      "tree": "b031dc1fe7a085b2e5d2dc56c46db91d18cf291a",
      "parents": [
        "8814904b2057809ca759014d16b0b8ae434128e8"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Nov 06 12:15:15 2019 -0800"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Nov 06 13:02:46 2019 -0800"
      },
      "message": "Camera: Decrease latency when joining sequencer thread\n\nDepending on timing, legacy camera clients that try to\ndisconnect may observe a random delay while waiting\nfor the capture sequencer thread to exit from its\nrespective \u0027threadLoop\u0027. The delay there can be as much as\n\u0027kWaitDuration\u0027.\nTo improve the average disconnect latency use a separate\nand much smaller timeout when managing idle state.\n\nBug: 143557484\nTest: atest cts/tests/camera/src/android/hardware/cts/\n\nChange-Id: I164b3d37182cac776c0064047a5ef5b5a0f8b314\n"
    },
    {
      "commit": "8fe02b24e4cdf93cb1c004b7d77c01671bd44916",
      "tree": "b98bc23bfd5801683f09420cbeb179b2d24a0992",
      "parents": [
        "3066e206366b25b6b64cf0ad29188bd04b56b183"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Oct 25 11:01:00 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Nov 01 10:55:38 2019 -0700"
      },
      "message": "cameraserver: filter out non-HAL3 devices from HIDL addListener.\n\nBug: 143192708\n\nTest: Use vendor clients of cameraserver\nTest: GCA (sanity)\n\nMerged-In: Ic31f71887b55f3d838ca35274a5f65802ea50584\nChange-Id: I51ae92d3596a962ca6ca551f8fab9fd0c77b6283\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "f90425ded5810d4f4dbb12fe10d0961b1470da68",
      "tree": "56606c3cc2696f9820632665c539e179f3dc4342",
      "parents": [
        "311ee8ccb060a9d0d996cf9f00fca07939089de7",
        "90e6369928665598bf407e1ceb0ae47d39c80a64"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Nov 01 17:47:24 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 01 17:47:24 2019 +0000"
      },
      "message": "Merge \"cameraserver: filter out non-HAL3 devices from HIDL addListener.\""
    },
    {
      "commit": "eb7e13873fe59343412efbcd560fac2a2a2d9f71",
      "tree": "543f3b2cad2919fb1c0f298f4e53542bd1460c4f",
      "parents": [
        "86a313bc172914766df88420079de7fb0826a450",
        "13ad0eb5e16cb42690595f291306eaa437e952b6"
      ],
      "author": {
        "name": "Hui Yu",
        "email": "huiyu@google.com",
        "time": "Thu Oct 31 23:11:21 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 31 23:11:21 2019 +0000"
      },
      "message": "Merge \"Add new parameter capability to onUidStateChanged()\""
    },
    {
      "commit": "3cc114cc5820f78c0f14dd69492d5f37cf826cfb",
      "tree": "90aefc161196450874478d0a0a42439dcc7de813",
      "parents": [
        "9ef4f8d690bc42a0f17d6036d70f6769578a76b5",
        "b5986a36b2913ec100b110720c3e24e26fd0d1dd"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Oct 30 21:36:27 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 30 21:36:27 2019 +0000"
      },
      "message": "Merge \"Camera: Heic: Handle out-of-order buffer outputs\""
    },
    {
      "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": "359adca4b7cf734ab9a0d27a005b9f6dfdc0ad8e",
      "tree": "741e8f07f2f56c89d2e42e32233d5c4e9d6c0c37",
      "parents": [
        "2218ec1a22bb644669b7c142cea1a06c00abcf49"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 30 10:12:46 2019 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 30 21:06:40 2019 +0000"
      },
      "message": "Camera: Check consumer interface before disconnecting\n\nThe internal buffer queue and respective \u0027mConsumer\u0027 may\nnever get initialized in case the connection and/or\nconfiguration of client shared output surfaces fails.\nTo avoid possible instabilities check whether the\nconsumer interface is valid before trying to disconnect.\n\nBug: 143506890\nTest: atest\ncts/tests/camera/src/android/hardware/camera2/cts/MultiViewTest.java\n\nChange-Id: Ia533233444fd548ddb52f4fde06212a21bc843bc\n"
    },
    {
      "commit": "eef9ebc66a120a23e906c351aca079b1d1127d0b",
      "tree": "45ab80070a5dc101810cf3529af2886764b51611",
      "parents": [
        "cb6aeceef69857361fabc6d6f50e589365a61b51",
        "3d00ee51a207d15718fcac4fefc72306532d68af"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Oct 28 21:51:33 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 28 21:51:33 2019 +0000"
      },
      "message": "Merge \"Camera: Heic: Wait for first output tile callback before muxer start\""
    },
    {
      "commit": "90e6369928665598bf407e1ceb0ae47d39c80a64",
      "tree": "9dd58c3aac1c81bb53a4e2547e213350e93fcbea",
      "parents": [
        "33e8ef86ecfa90f9d41ab700c6f9f5e2a19c97a1"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Oct 25 14:13:01 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Oct 25 14:13:02 2019 -0700"
      },
      "message": "cameraserver: filter out non-HAL3 devices from HIDL addListener.\n\nBug: 143192708\n\nTest: Use vendor clients of cameraserver\nTest: GCA (sanity)\n\nChange-Id: Ic31f71887b55f3d838ca35274a5f65802ea50584\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "b7c2cf5d34843dcaf43053acc9da91cccaf122ac",
      "tree": "dbddd7d90ff918a155557baa943d5b1db79cf626",
      "parents": [
        "f16f21366cbc91778d3e4c57d0d679dafd274d1f"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Oct 07 15:26:41 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Thu Oct 24 15:51:05 2019 -0700"
      },
      "message": "cameraserver: Avoiding deadlocks while calling isPublicallyHiddenSecureCamera().\n\nThe following scenario can occur:\n\n T1 serving Client A\u0027s disconnect() call:\n   T2 : serving Client B\u0027s connect() call\n     T2 : CameraProviderManager::openSession() locks mInterfaceMutex and waits on open() HAL\n          interface call\n       T1: updateStatus() locks mStatusListenerMutex\n         T1: CameraProviderManager::isPublicallyHiddenSecureCamera() waits\n             on mInterfaceMutex\n           T2: while waiting on open(), gets a torchModeStatus() callback from the camera HAL\n              T2: onStatusChanged()\n                T2: broadcastTorchModeStatus() which waits on mStatusListenerMutex\n\nAs a result there\u0027s a possible circular hold and wait between T1 and T2.\n\nWe cache isPublicallyHiddenSecureCamera in CameraState. That doesn\u0027t completely\navoid having to hold mInterfaceLock while calling isPublicallyHiddenSecureCamera() in CameraService\n(cache updates), instead it reduces it. We instead need to hold mCameraStates lock which has a\nsmaller scope.\n\nBug: 141756275\n\nTest: CTS\nTest: GCA (sanity)\n\nMerged-In: I8562c83478b1fe8fbda7c85f97b995985666918d\nMerged-In: I4a697c1eaccc3603007be4a595febea981fbeb64\nChange-Id: Ie5508afb126a874f76fbbfc2dd19ef79ae6255e0\n(cherry picked from commit fd39db81e44e191baa476a579de6cc2618de025a)\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "f7a342bfcb9bd0ab30f6b3b98073bfcc20471150",
      "tree": "bdc534e82968841cb32df6e8dd607cba6efc3efc",
      "parents": [
        "08c3c988eee1391458ccf1adbb5d0f60c7718f8e",
        "998d1fe22142a3fd729df87af59476f97b926e02"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Oct 24 18:19:45 2019 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 24 18:19:45 2019 +0000"
      },
      "message": "Merge changes I67b3fe39,I2ad5c542\n\n* changes:\n  CameraService: Add unit test for stuck HAL at startup\n  CameraService: Don\u0027t block on camera HAL start in all cases\n"
    },
    {
      "commit": "a987db923b070148ebd42cb4a502f05702630d33",
      "tree": "31cfbdfbb4e1dfd41067d5c3909d2116c7841f90",
      "parents": [
        "8219d3feeb33a046ac39c81426ac00c898b1f6ea",
        "ff7eab2a57ff31501e9da98bdc2c633c4996eae5"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 23 15:32:41 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 23 15:32:41 2019 -0700"
      },
      "message": "Merge \"Camera: Release all composite streams during \"detachDevice\"\" into qt-qpr1-dev am: f16f21366c am: 01510dc526\nam: ff7eab2a57\n\nChange-Id: I21ee58b59ce2afefb378f6de51c616f08cc6412e\n"
    },
    {
      "commit": "ff7eab2a57ff31501e9da98bdc2c633c4996eae5",
      "tree": "2f68d5ff7da61153da6702aba670149784a5fe89",
      "parents": [
        "89f3994620c9b19ece47694680b3c3aad594d924",
        "01510dc5268a5320a289640abb92a58bc20e3c5a"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 23 15:26:39 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 23 15:26:39 2019 -0700"
      },
      "message": "Merge \"Camera: Release all composite streams during \"detachDevice\"\" into qt-qpr1-dev am: f16f21366c\nam: 01510dc526\n\nChange-Id: Id88dc89d3cf99266e34211aa72b4e99bb259c40d\n"
    },
    {
      "commit": "998d1fe22142a3fd729df87af59476f97b926e02",
      "tree": "00ec27031b6f48e16677d15c2cbeb89f3f8def99",
      "parents": [
        "ec96060c3b4b4d793c6599204ae4f639d065a57d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Oct 23 10:34:53 2019 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Oct 23 11:25:46 2019 -0700"
      },
      "message": "CameraService: Add unit test for stuck HAL at startup\n\nNew test verifies that getService is not called during camera service\nstartup, to make sure it can\u0027t get stuck if the camera HAL isn\u0027t\ninitializing properly.\n\nTest: New test passes with new tryGetService code; test fails with\nolder camera service code.\nChange-Id: I67b3fe392e8cc6961c33abf25e961a8e2df7d7b5\n"
    },
    {
      "commit": "5e4c732e8646ec700b495bc9ca532d92034f44fb",
      "tree": "bff57382c04a8d040964a8f7d3238c20ebd0eb28",
      "parents": [
        "ca7582109dd529eb80dff3d6135a20950a9e3b47"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Oct 22 14:20:52 2019 -0700"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Oct 23 09:28:36 2019 -0700"
      },
      "message": "Camera: Release all composite streams during \"detachDevice\"\n\n\"CameraDeviceClient\" which keeps all references to active\ncomposite streams may not get immediately destroyed after\nclient disconnect. This means that all registered output\nsurfaces in composite streams will continue to have\nan active connection. In such scenario camera clients will\nnot be able to re-use the same surface as long as the older\ninstances are still alive.\n Avoid this behavior by explicitly releasing all remaining\ncomposite streams during \"detachDevice\". The method must\nbe called as part of the client disconnect and will\nensure that all surface connections are removed.\n\nBug: 143212133\nTest: Camera CTS\nChange-Id: I08710645539b687f046116a88576f05bbcbdbaff\n"
    },
    {
      "commit": "31706c85b15f0e4f72cda2391aab7d6e3404de8c",
      "tree": "67d4418891d6d5662cf080f0419a2d0149986862",
      "parents": [
        "f94b6d6d8118e27213e38c0449159c60cbd74362",
        "fd39db81e44e191baa476a579de6cc2618de025a"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Oct 21 14:51:56 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Oct 21 16:46:51 2019 -0700"
      },
      "message": "resolve merge conflicts of f7b975c56a98c3134adc5dc95834673eeee81f0d to qt-qpr1-dev-plus-aosp\n\nTest: build\nTest: Camera2 app take picture(sanity)\n\nMerged-In: I4a697c1eaccc3603007be4a595febea981fbeb64\nChange-Id: I8562c83478b1fe8fbda7c85f97b995985666918d\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "8863a154f82f06b7267348d5d8f6a371d90ba1cb",
      "tree": "6b3baba11f2a280775416eeb6c17bfc23a7c1503",
      "parents": [
        "4520fef512aa02e8557b147104cc343bc2994910",
        "c52243f298aa3e570197831c8c383fdedb8f4ac6"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Oct 21 11:10:06 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 21 11:10:06 2019 -0700"
      },
      "message": "Merge changes from topic \"hiddenCameraDeadlock\"\nam: c52243f298\n\nChange-Id: Iced231eeaf55af13dfff514f21ce3398cdbd6a0c\n"
    },
    {
      "commit": "c52243f298aa3e570197831c8c383fdedb8f4ac6",
      "tree": "ef93786ab04ffd918b68adbb25d1c3a43633d791",
      "parents": [
        "4426ce8d95c78ba08d86c6d6c7f329033c1876c8",
        "fd39db81e44e191baa476a579de6cc2618de025a"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Oct 21 17:00:19 2019 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Mon Oct 21 17:00:19 2019 +0000"
      },
      "message": "Merge changes from topic \"hiddenCameraDeadlock\"\n\n* changes:\n  cameraserver: Avoiding deadlocks while calling isPublicallyHiddenSecureCamera().\n  Do not include hidden secure cameras in camera1: getNumberOfCameras\n"
    },
    {
      "commit": "5c103f2962cd41a948dca4f2156c6efdf506bef1",
      "tree": "3ba8626998ed3684a5b2712df7bb75ceebc7f60a",
      "parents": [
        "b5986a36b2913ec100b110720c3e24e26fd0d1dd"
      ],
      "author": {
        "name": "Michael Gonzalez",
        "email": "michgonz@codeaurora.org",
        "time": "Tue Oct 08 14:30:32 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Oct 16 23:25:12 2019 -0700"
      },
      "message": "Camera: Heic: Wait for output TS before dequeuing output buffers\n\nDuring testHeicExif, the codec output buffer timestamp may rarely arrive\nafter the first codec output tiles arrive.\n\nTest: vendor testing\nBug: 141169323\nChange-Id: Iba1c82b087533cb87a32d69f7d6908e2c925b807\n"
    },
    {
      "commit": "b5986a36b2913ec100b110720c3e24e26fd0d1dd",
      "tree": "1e4257d7cc41574bef1ebf50e414fff5cd3d4911",
      "parents": [
        "3d00ee51a207d15718fcac4fefc72306532d68af"
      ],
      "author": {
        "name": "Michael Gonzalez",
        "email": "michgonz@codeaurora.org",
        "time": "Wed Oct 09 15:38:17 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Oct 16 23:25:06 2019 -0700"
      },
      "message": "Camera: Heic: Handle out-of-order buffer outputs\n\nDuring reprocess usecases, the Camera HAL may return JPEG Appsegment\nframes out of order. This leads to a scenario where\nmAppSegmentConsumer-\u003elockNextBuffer may not refer to the currently muxed\nframe.\n\nTo work around this, the number of lockable appsegment buffers has been\nincreased.\n\nTest: Vendor testing\nBug: 141169323\nChange-Id: Ia498f6ddaba588b66cbaeee94fe8bdd7314bb90c\n"
    },
    {
      "commit": "3d00ee51a207d15718fcac4fefc72306532d68af",
      "tree": "841672eae5922e8543a9e10452d493dcb4245728",
      "parents": [
        "f93b9a37e19d09bae93a0d4b713c522f6cebcd28"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Sep 25 14:19:28 2019 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Oct 16 23:23:27 2019 -0700"
      },
      "message": "Camera: Heic: Wait for first output tile callback before muxer start\n\nIn order for muxer to start writing any track, the format returned from\nonFormatChanged must first be available. By waiting for first output\ntile callback, we are guaranteed to have received onFormatChanged, which\nmeans a valid format is available for muxer to use.\n\nThis change also makes it such that no multiple muxers are inflight, avoiding\ndequeueBuffer failure because right now we only support maximum dequeued\nbuffer count to be 1.\n\nAdd more verbose logs for ease of debugging.\n\nTest: Vendor testing\nBug: 141169323\nChange-Id: I16fd11f5558e525ceae59df00533553e4b4e7589\n"
    },
    {
      "commit": "fd39db81e44e191baa476a579de6cc2618de025a",
      "tree": "bbd531650f20bb1a84b0e169b32fc558835313f4",
      "parents": [
        "56c3307952478ba42bf33ad88d8e0e194623224a"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Oct 07 15:26:41 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Oct 16 14:48:24 2019 -0700"
      },
      "message": "cameraserver: Avoiding deadlocks while calling isPublicallyHiddenSecureCamera().\n\nThe following scenario can occur:\n\n T1 serving Client A\u0027s disconnect() call:\n   T2 : serving Client B\u0027s connect() call\n     T2 : CameraProviderManager::openSession() locks mInterfaceMutex and waits on open() HAL\n          interface call\n       T1: updateStatus() locks mStatusListenerMutex\n         T1: CameraProviderManager::isPublicallyHiddenSecureCamera() waits\n             on mInterfaceMutex\n           T2: while waiting on open(), gets a torchModeStatus() callback from the camera HAL\n              T2: onStatusChanged()\n                T2: broadcastTorchModeStatus() which waits on mStatusListenerMutex\n\nAs a result there\u0027s a possible circular hold and wait between T1 and T2.\n\nWe cache isPublicallyHiddenSecureCamera in CameraState. That doesn\u0027t completely\navoid having to hold mInterfaceLock while calling isPublicallyHiddenSecureCamera() in CameraService\n(cache updates), instead it reduces it. We instead need to hold mCameraStates lock which has a\nsmaller scope.\n\nBug: 141756275\n\nTest: CTS\nTest: GCA (sanity)\n\nMerged-In: I4a697c1eaccc3603007be4a595febea981fbeb64\nChange-Id: Ie5508afb126a874f76fbbfc2dd19ef79ae6255e0\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    },
    {
      "commit": "56c3307952478ba42bf33ad88d8e0e194623224a",
      "tree": "041c5c18627f7511034af70ab2f6815d1a783620",
      "parents": [
        "9ee56ec1a7ace45b42b65e01fdda98114b5c0833"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Sep 18 20:14:02 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Wed Oct 16 13:53:39 2019 -0700"
      },
      "message": "Do not include hidden secure cameras in camera1: getNumberOfCameras\n\nApps cannot connect to hidden secure cameras. Do not include them in the\nnumber of cameras reported by camera1 api.\n\nBug: 141247926\n\nTest: Without CL -\u003e mark all cameras as hidden secure cameras;\n      atest FastBasicsTest.java#testCamera1 fails\n      With CL -\u003e mark all cameras as hidden secure cameras;\n      atest FastBasicsTest.java#testCamera1 passes\n\nTest: camera CTS\n\nMerged-In: I9d1721fd5e94fa7f692c3da52aa667ae9247d368\nChange-Id: I229a336bed6b2695e16c1457cb8f74c26b07f7e8\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n(cherry picked from commit cf935409652e633096729bdb64029cf2383534e3)\n"
    },
    {
      "commit": "ec96060c3b4b4d793c6599204ae4f639d065a57d",
      "tree": "d135ada8cd3bd4267f6e2679983b8a12284f2211",
      "parents": [
        "4bebef8d593f62a5ee80cab04167f4a3ba3722d8"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Oct 15 11:46:16 2019 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Oct 15 11:46:16 2019 -0700"
      },
      "message": "CameraService: Don\u0027t block on camera HAL start in all cases\n\nWhen initially starting up, use tryGetService instead of getService to\navoid blocking camera service start in cases where the camera HAL is stuck.\n\nTest: atest cameraservice_test \u0026\u0026 atest CameraManagerTest, with and without\n  lazy camera HAL\n\nChange-Id: I2ad5c542e77e748902cfb49f90a55620b29ad4cd\n"
    },
    {
      "commit": "ecd8336f9ccbf4339b3527680d7f32d48cb15872",
      "tree": "c520c4eb6b137daeaa9c1454c63f6a034ce496e8",
      "parents": [
        "aa9c382be3bc801731cd4b39231b360d3e3388d8",
        "81d1403fb3afe153b47cde2d0b528fb4858113f5"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 11:45:42 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 15 11:45:42 2019 -0700"
      },
      "message": "Merge \"libmedia: separate codeclist from libmedia\" am: 1f72838954 am: 8b470dc956\nam: 81d1403fb3\n\nChange-Id: I1586c4149d5f3822fdb991180c831cf25595bbe6\n"
    },
    {
      "commit": "8b470dc95691b5a5c3442629a348b44a59886792",
      "tree": "fc58976e0cda56aba734b3222bf6f14a8a6a0624",
      "parents": [
        "07bd8e774093b73e225562bbd5095a1732246477",
        "1f72838954cb3689fb58eef6276553d9a45ff0a8"
      ],
      "author": {
        "name": "Dongwon Kang",
        "email": "dwkang@google.com",
        "time": "Tue Oct 15 10:30:20 2019 -0700"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 15 10:30:20 2019 -0700"
      },
      "message": "Merge \"libmedia: separate codeclist from libmedia\"\nam: 1f72838954\n\nChange-Id: I7ceb439ed034386635399982392b6b842e08c105\n"
    },
    {
      "commit": "33e8ef86ecfa90f9d41ab700c6f9f5e2a19c97a1",
      "tree": "fea40195e0d0e02860d709b7802f926e9f5cff70",
      "parents": [
        "4bebef8d593f62a5ee80cab04167f4a3ba3722d8"
      ],
      "author": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Fri Sep 27 09:20:42 2019 -0700"
      },
      "committer": {
        "name": "Jayant Chowdhary",
        "email": "jchowdhary@google.com",
        "time": "Mon Oct 14 10:53:27 2019 -0700"
      },
      "message": "cameraserver: Avoiding deadlocks while calling getSystemCameraKind()\n\nThe following scenario can occur:\n\n T1 serving Client A\u0027s disconnect() call:\n   T2 : serving Client B\u0027s connect() call\n     T2 : CameraProviderManager::openSession() locks mInterfaceMutex and waits on open() HAL\n          interface call\n       T1: updateStatus() locks mStatusListenerMutex\n         T1: CameraProviderManager::isPublicallyHiddenSecureCamera() / getSystemCameraKind() waits\n             on mInterfaceMutex\n           T2: while waiting on open(), gets a torchModeStatus() callback from the camera HAL\n              T2: onStatusChanged()\n                T2: broadcastTorchModeStatus() which waits on mStatusListenerMutex\n\nAs a result there\u0027s a possible circular hold and wait between T1 and T2.\n\nWe cache the system camera kind in CameraState. That doesn\u0027t completely\navoid having to hold mInterfaceLock while calling getSystemCameraKind in\nCameraService (cache updates), instead it reduces it. We instead need to\nhold mCameraStates lock which has a smaller scope.\n\nBug: 141756275\n\nTest: CTS\nTest: GCA (sanity)\n\nChange-Id: I4a697c1eaccc3603007be4a595febea981fbeb64\nSigned-off-by: Jayant Chowdhary \u003cjchowdhary@google.com\u003e\n"
    }
  ],
  "next": "a42a62d8633fa6fcabc8129a2c798da860630821"
}
