)]}'
{
  "log": [
    {
      "commit": "8ca23dca1cd450b4d93e8da1c8bd6f6ee61e2f5f",
      "tree": "259191c6f2a13395c27c8095d00bfcbf3e926616",
      "parents": [
        "90153cae7ffd321338f90678a80abd62fb56e877"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Sep 05 18:15:56 2017 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Sep 05 18:15:56 2017 -0700"
      },
      "message": "Camera: fix race in onRepeatingRequestError callback\n\nTest: CTS\nBug: 64180296\nChange-Id: I620e238bf1f4e7ab72911b6e68c689580fba22f1\n"
    },
    {
      "commit": "e8c96c765b95ec7dcd10732621a825fce05960c6",
      "tree": "0197cb1e0849140d5be7aaf085cff87ad91177cf",
      "parents": [
        "15fb0ee6bd752ccde960b961dd1e9113c37e5f8b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jun 27 12:24:07 2017 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jul 10 11:59:00 2017 -0700"
      },
      "message": "CameraService: Clean up ICameraServiceProxy; send it more info\n\n- Remove hand-written ICameraServiceProxy C++ impl; use the AIDL-\n  generated version instead\n- Send client package name and camera facing with the camera state\n  notices\n\nTest: Verify by logging that information sent to proxy is correct;\n      no camera CTS regressions.\nBug: 32449509\nChange-Id: I7a305b76b4f1d5c08b7938108bd73c95986508e0\n"
    },
    {
      "commit": "71c73a2985a7ac65ee597be3441ab300fa56e22e",
      "tree": "8f702e303a177904911b397237bde5cfd96e6fbb",
      "parents": [
        "98e11c12e6f5bd64e5d6930a2bbd3522a309d6b1"
      ],
      "author": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Tue Mar 21 16:35:51 2017 +0000"
      },
      "committer": {
        "name": "Emilian Peev",
        "email": "epeev@google.com",
        "time": "Wed Apr 05 11:57:02 2017 +0000"
      },
      "message": "Camera: Support vendor tags from multiple providers\n\nDifferent vendors could have different vendor tags.\nA global vendor tag cache will store all available\nvendor tag descriptors from different providers.\nThe cache will then be shared with each camera client.\nCamera metadata will use specific vendor ids stored\nin the metadata buffer to identify the correct vendor\ntag provider.\n\nBug: 34275821\nTest: adb shell /data/nativetest/cameraservice_test/cameraservice_test\n--gtest_filter\u003dCameraProviderManagerTest.MultipleVendorTagTest\nComplete Camera/Camera2 CTS tests\nChange-Id: I2262128f21a0167504f018230624e2a89786c467\n"
    },
    {
      "commit": "bbbbe84b3a7296c9c3266bb16e0dc98b11cb5939",
      "tree": "8aa3ad36f5a828c1bd97400c0a3999482d5d171b",
      "parents": [
        "17d791ad76d6c33201e5953483a0770380d42572"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Feb 28 17:50:56 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Mar 07 12:35:49 2017 -0800"
      },
      "message": "Camera: Allow direct selection of operating mode\n\nInstead of a true/false switch for high-speed mode, use an integer\nenum instead and define the two existing modes, plus the start\nof a vendor mode space.\n\nFor all non-high-speed modes, use the normal configuration path,\nbut pass the operating mode to the HAL.\n\nTest: New CTS test passes\nBug: 34853980\nChange-Id: I9dc2b2a2164e9779f079a30e936c4117bcf96efe\n"
    },
    {
      "commit": "758c215374dba397dabe17b8e96dd38593c09dd7",
      "tree": "d3c1326f44d95e97d5c73270f0195c5e2b7297ae",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 10 18:26:18 2017 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 24 11:25:06 2017 -0800"
      },
      "message": "Camera: Combine handling of deferred surface and shared surface\n\n- Refactor the OutputConfiguration to contain isDeferred and isShared\n  flag, and not contain NULL surface.\n- Unify the handling of deferred surface and shared surface.\n\nTest: Camera CTS, and manual testing of GoogleCamera use cases\nBug: 33777818\nChange-Id: I5dd3472f0f2133699b0e9fbdd8ba456956222746\n"
    },
    {
      "commit": "f51fca277eb5b86bd0b2e3fc90ecb2b63089de29",
      "tree": "4c9b0b9c9e3969dca6ee7a0e0f4b0904a1757d8c",
      "parents": [
        "07f49573613aee5a8e661f74a324db371ecc8551"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Dec 13 11:25:55 2016 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Dec 13 16:32:23 2016 -0800"
      },
      "message": "Camera service: Updates in preparation for HIDL\n\n- For all camera2 paths, and anything shared between the legacy API and\n  camera2, switch to using strings for camera IDs\n- Update ICameraService.addListener to return current set of known\n  devices and their status, to allow for immediate return of camera\n  devices when first connecting to camera service\n- Remove unused code path for getCameraCharacteristics with HALv1\n- Add namespace qualifiers to Binder objects that are also used by\n  hardware binder.\n- Switch to using new HIDL DeviceStatus and TorchStatus enumerations\n  for better type safety in the service; map more clearly between\n  the HAL, service-internal, and Binder enums.\n\nTest: cts-tradefed run cts -m Camera --skip-connectivity-check -d -o --abi armeabi-v7a --disable-reboot\nBug: 32991422\nChange-Id: I765951d9a21000a8432bed9aa0e3604709daa4b1\n"
    },
    {
      "commit": "9d06601e54848f076b7472a376c672215cd70c46",
      "tree": "8ef76a427e631fde284d0e920075f406a6d885ab",
      "parents": [
        "d3196abc2d216e74be7b137cd0b93ef5b4f005db"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Sep 30 11:30:20 2016 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Mon Oct 17 10:39:19 2016 -0700"
      },
      "message": "Camera2: Add onCaptureQueueEmpty callback\n\nonCaptureQueueEmpty is called when the non-repeating request queue in\ncameraservice becomes empty. Application can use this callback as a\ntrigger for a new request.\n\nTest: testMultipleCapture in PerformanceTest.java\n\nBug: 29006447\nChange-Id: Id21afd74381e0b70f924c6026025c91a8ffd5ee0\n"
    },
    {
      "commit": "5d677d1f0879d5101e38df480a38228a64d63959",
      "tree": "eb8724a33f7f422d4dd0914e206c19948fc4da68",
      "parents": [
        "827388ba4fd8d5e859858dbb29ced986b9ed77f4"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Sun May 29 16:52:39 2016 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Thu Jun 02 15:42:57 2016 -0700"
      },
      "message": "Camera3: add deferred surface support\n\nInitial native implementation and aidl changes for surfaceless support.\n\nBug: 28323863\nChange-Id: Id6634c3ef2ecc84422a88f63de0a19a0cb496e96\n"
    },
    {
      "commit": "e8c535e833ed135895e99ca81aa3b85d80d7cf3c",
      "tree": "b0b0a255eda7c96bfffd3da79828d52c86372677",
      "parents": [
        "bc0c73e05ec935bc478ee0e40aee79f80771a482"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Apr 14 12:18:26 2016 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Fri Apr 15 16:01:25 2016 -0700"
      },
      "message": "Camera: Stop repeating request if its output is abandoned\n\nStop repeating request if any of its output stream is abandoned.\nAdd a callback to notify the repeating request has been stopped\nwith frame number of the last frame.\n\nUpdate NDK with the new callback and behavior.\n\nBug: 21270879\n\nChange-Id: I3553775c7807a77104aa1650609480ca3321310c\n"
    },
    {
      "commit": "d56db1d2bee182d1851097a9c712712fc094d117",
      "tree": "243fda59e2b4d51491af628b49b3a35b267e0051",
      "parents": [
        "cf7913e2389a5e850e01aa6f905d252ee54c9891"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Dec 17 16:50:35 2015 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 02 10:27:36 2016 -0800"
      },
      "message": "Camera: Switch camera2 to auto-gen C++ binder interfaces\n\n - Move camera service AIDL files to frameworks/av\n - Build C++ interface stubs with AIDL tools\n - Add necessary native-side parcelables and update existing ones\n - Remove manually-written stubs, rearrange remaining manual stubs\n - Adjust implementations to work with auto-generated stubs\n   - Adjust method signatures for auto-gen differences\n   - Add rich error messages using binder::Status\n\nBug: 25091611\nChange-Id: I6f69f34b9d1a3f8d1fb7db87357363f8fa8483ff\n"
    }
  ]
}
