)]}'
{
  "log": [
    {
      "commit": "01d56fe3fcad97dbed15093e03d6f50eca9fbef9",
      "tree": "6fcba42b38d4afb289fb7b74438c277f6d8f6c6c",
      "parents": [
        "ba05ff122c080be9fafe1f8112052cacfcd2b6fe"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 07 17:12:36 2017 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 07 17:12:36 2017 -0800"
      },
      "message": "Add missing includes\n\nTest: compiled\nBug: not applicable\nChange-Id: Ie4007970f83e5d08b2d35e78a49d93d696809d7b\n"
    },
    {
      "commit": "03904c44cdf8ce30333d7e96e3eda959e5a8c208",
      "tree": "d30daba7da2e48e10e358038b9a8d64c18db4d3c",
      "parents": [
        "be0ee69ae88f9082eab0083cbf7b8a0676b5f673",
        "a141c5f3cc2214a96f250999edacc3bd4d454601"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Feb 02 02:10:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 02:10:01 2017 +0000"
      },
      "message": "Merge \"Camera: StreamSplitter: Return overwritten buffer to input\""
    },
    {
      "commit": "ec0a5ac45728bc610e0266ec1a21d65ac340562a",
      "tree": "0269cf403217944cd63d475acca76f26cbfc1c11",
      "parents": [
        "67999b020e1eec218f5aa669ebc969636f53956b",
        "c31dc7e61eb37214ad186f6a2bc43d7b92bd236e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Feb 01 23:36:33 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 23:36:34 2017 +0000"
      },
      "message": "Merge \"Camera3Device: Update frame counters/timestamps for dumpsys info\""
    },
    {
      "commit": "2987b83c782667dd3740f731268fe3372c343fce",
      "tree": "686cfefcaafa349999cd206c347c68a3700b107a",
      "parents": [
        "b23ba1ddd57b12e632e470ba21ce3c6ef44de4b3",
        "d00111e3b0c2ee59736fda992dd9ea24b23ef46a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 01 02:57:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 02:57:02 2017 +0000"
      },
      "message": "Merge \"Camera service: Fix dump() for treble path and rearrange it\""
    },
    {
      "commit": "aadc336983e503f1b86533eb910f693383711b6a",
      "tree": "c8234f0324e88a19dfa6a5fd15fbcf6711508d32",
      "parents": [
        "12eb31583f40220b73a5e33b427e1d8f58243939",
        "8131418cf06d38431aff416f1d38ec011d4259ee"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 01 02:07:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 02:07:01 2017 +0000"
      },
      "message": "Merge \"Camera service: Clean up dump() command indenting.\""
    },
    {
      "commit": "c31dc7e61eb37214ad186f6a2bc43d7b92bd236e",
      "tree": "c278e63c123a07aef08fc8e175bd14a226369e88",
      "parents": [
        "d00111e3b0c2ee59736fda992dd9ea24b23ef46a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 31 17:35:41 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 31 17:59:47 2017 -0800"
      },
      "message": "Camera3Device: Update frame counters/timestamps for dumpsys info\n\nFor output streams, increment frame count and update timestamp when a\nfilled buffer is queued to the output buffer queue.\n\nFor input streams, increment frame count and update timestamp when a\nbuffer is acquired from the input buffer queue.\n\nTest: Manual inspection of adb shell dumpsys media.camera while\n   running DevCamera\nChange-Id: I8dc1d134baf5ad467e169f3ba6ffe0d1486df9dc\n"
    },
    {
      "commit": "d00111e3b0c2ee59736fda992dd9ea24b23ef46a",
      "tree": "af753b6ed405ab05ef5cdd6dce61b6196cd4c671",
      "parents": [
        "8131418cf06d38431aff416f1d38ec011d4259ee"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 31 11:59:12 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 31 17:21:23 2017 -0800"
      },
      "message": "Camera service: Fix dump() for treble path and rearrange it\n\nGet camera service dump working again in the Treble path, and clean\nup the formatting a bit\n\n- Switch to dprintf instead of write() for most dump calls\n- Add clearer headers for each section\n- Add static metadata details to CameraProviderManager dump\n\nTest: adb shell dumpsys media.camera with Treble both enabled and disabled\nBug: 32991422\nChange-Id: Ie1d431b68649777bfe84fbb1be0687dd02e671af\n"
    },
    {
      "commit": "8131418cf06d38431aff416f1d38ec011d4259ee",
      "tree": "610d99d8fe4fc8fa73bd0aff7418f3a72cedfc4f",
      "parents": [
        "6963d0ad7b621dcdaa74cbfed17c776121635146"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jan 30 16:13:45 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 31 17:03:20 2017 -0800"
      },
      "message": "Camera service: Clean up dump() command indenting.\n\nIn preparation for fixing dump() for Treble codepath.\n\nTest: Compiles\nBug: 32991422\nChange-Id: I1d889361e4836b75483e066b97de4015a2ef84cf\n"
    },
    {
      "commit": "a1ee4c28facd2e4ae0eb288178c8988bf1806148",
      "tree": "e788eec0db250db3156f094bc3b73e262bbb1f57",
      "parents": [
        "9f910521ca5f06e728cf946822fa1d5c4ddb95ec",
        "4c5b1c777680df26af1d28624b99f8388fb9df4c"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 31 23:13:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 23:13:40 2017 +0000"
      },
      "message": "Merge \"Camera: remove wait for remote HIDL interface\""
    },
    {
      "commit": "4c5b1c777680df26af1d28624b99f8388fb9df4c",
      "tree": "6f174199c699c8c8e0dc99e994dbdbd0bd21f35b",
      "parents": [
        "e4806bbccc2150607d84d2df5cb91aa24c4fe10a"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 31 13:20:56 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 31 13:20:56 2017 -0800"
      },
      "message": "Camera: remove wait for remote HIDL interface\n\nThe new getService implementation does it.\n\nTest: fixing Marlin flashlight control\nBug: 34821019\nChange-Id: Ifd21f41313b85ef0abbd306d2862524e19b94e7d\n"
    },
    {
      "commit": "6963d0ad7b621dcdaa74cbfed17c776121635146",
      "tree": "a665cd75d0820c7b40efc630e8ed7fa6e187f00d",
      "parents": [
        "e4806bbccc2150607d84d2df5cb91aa24c4fe10a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 31 13:00:34 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jan 31 13:04:40 2017 -0800"
      },
      "message": "CameraService: Fill in missing facing information in Treble path\n\ngetDeviceVersion(), for whatever reason, also optionally returns the\nfacing of the specified camera device.  The latter part was left\nout of the Treble path implementation, resulting in incorrect\ndisplay orientation calculations higher up the chain.\n\nAlso add checks for invalid facings returned by getDeviceVersion so\nthat error logs will point this out next time.\n\nTest: Manual inspection: API1-based applications do not have upside-\n  down preview. API1 CTS passes.\nBug: 34816614\nChange-Id: Ice4c644e504f59e7df9be6636d9e6a3b38c52d4b\n"
    },
    {
      "commit": "78b3ee27f696980c999c9ac5db87e626ff6f717f",
      "tree": "659a8ab7e82d59e735963398cd82951f96916048",
      "parents": [
        "bc03dbeb6c3c0c829aa25b57dc28322996a8d630",
        "9cbbc837625cced18adabc57d71479044999155d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sat Jan 28 00:16:22 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Jan 28 00:16:23 2017 +0000"
      },
      "message": "Merge \"Camera service: Switch to HIDL by default, add prop to disable\""
    },
    {
      "commit": "9cbbc837625cced18adabc57d71479044999155d",
      "tree": "edff3ee437b96ffa2f60dddd4f74ab22e0125eb1",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jan 23 15:39:53 2017 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jan 27 23:23:52 2017 +0000"
      },
      "message": "Camera service: Switch to HIDL by default, add prop to disable\n\nOn camera service startup, use the HIDL provider codepath unless the\nsystem property \"camera.disable_treble\" is set to true.\n\nThe system property is needed until the HALv1 implementation is\ncomplete and the emulator can switch over, as well as for devices not\nyet tested in passthrough mode.\n\nWhether passthrough or separate-process HAL is used depends on the\nservices and libraries available on each device.\n\nTest: Camera CTS on angler, bullhead, sailfish, ryu. HFR performance\n      test on sailfish. Basic operation of camera app.\nBug: 32991422\n\nChange-Id: I3dd580cbcddd0df2e6b1e422920aa84270286e0a\n"
    },
    {
      "commit": "a141c5f3cc2214a96f250999edacc3bd4d454601",
      "tree": "dda8e7681fcdd3af710ad2a0ac4b84e0f1aea70c",
      "parents": [
        "758c215374dba397dabe17b8e96dd38593c09dd7"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 24 14:51:37 2017 -0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 24 16:36:22 2017 -0800"
      },
      "message": "Camera: StreamSplitter: Return overwritten buffer to input\n\nFor Async buffer queue, if a pending buffer is overwritten by an\nincoming buffer, onBufferReleased callback isn\u0027t called. But the stream\nsplitter depends on the onBufferReleased to return buffer to input.\n\nFix the problem by checking the bufferReplaced flag in\nQueueBufferOutput.\n\nTest: Camera CTS\nBug: 33777818\nChange-Id: I270c7bae7873797ae9b050782828b5a124d3eff9\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": "f3a8a2392e5dadee8afa51d384da008ae22b4091",
      "tree": "cd51c1dfe77bef61e391a7997d4b6bb88f04c3ed",
      "parents": [
        "17bd3ded8acd68ccdf28e6ce745116dd634fc34a",
        "6540509f9180bbaf9b0a76bc061ea3c0d7f8dbb8"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Jan 18 20:35:35 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 20:35:36 2017 +0000"
      },
      "message": "Merge changes from topics \u0027cam-hidl-fence\u0027, \u0027camera-hidl-bufId\u0027\n\n* changes:\n  Camera: wait for remote camera provider\n  Camera: setup vendor tag in binderized mode\n  Camera: treble: close acquire_fence\n  Camera: pass bufferId to HIDL interface\n"
    },
    {
      "commit": "addae1cfa92c3bae2b59917160da5520d2a25865",
      "tree": "d1b4f95e84a693a1f932337f9e45a47e35cf2d0a",
      "parents": [
        "7a667f6675f6dfc07892e0f9e67c60b26002e8f8",
        "0129d52df9794d6fdf06be304722b5cb51a2eab5"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 01:54:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 01:55:02 2017 +0000"
      },
      "message": "Merge \"camera2: Add support for secondary surface for stream\""
    },
    {
      "commit": "6540509f9180bbaf9b0a76bc061ea3c0d7f8dbb8",
      "tree": "5c3f26287a98ce1a03edaeae60f65f28620a102a",
      "parents": [
        "067428c5a8429d711f94bf008debde29ac118849"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Jan 13 15:42:28 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 17 16:43:13 2017 -0800"
      },
      "message": "Camera: wait for remote camera provider\n\nBefore we attempt to get passthrough implementation.\n\nTest: run binderized camera HAL mode with Camera2 CTS.\nBug: 34250977\nChange-Id: I5ef81429c85e7761e60541d1a8764b4e6d58b24a\n"
    },
    {
      "commit": "067428c5a8429d711f94bf008debde29ac118849",
      "tree": "f6a90448dddd0bc56cc70e26b79cdf949347cc7f",
      "parents": [
        "f4650601b4615f6a28727c1ad6bc956fd5ea532c"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Jan 13 15:19:24 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 17 16:33:12 2017 -0800"
      },
      "message": "Camera: setup vendor tag in binderized mode\n\nBug: 34275821\nChange-Id: I0472ab3d68279129a8713d4862de8e4608e7a5f7\n"
    },
    {
      "commit": "f4650601b4615f6a28727c1ad6bc956fd5ea532c",
      "tree": "70c2535b75abd57256ea4e80ddd7a212d7f051ca",
      "parents": [
        "773270525f68bdb706b85c3cd6e3750f27ca6d11"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 10 13:13:39 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 17 16:29:38 2017 -0800"
      },
      "message": "Camera: treble: close acquire_fence\n\nThis is to make the behavior agnostic to passthrough/binderized\nmode.\n\nTest: running API2 CTS\nBug: 30985004\nChange-Id: I48ce307f8566ff0a2a5b35763e1a37733e6ed9a0\n"
    },
    {
      "commit": "773270525f68bdb706b85c3cd6e3750f27ca6d11",
      "tree": "55a7bf4ee88071fd48ea02efa680785af1279826",
      "parents": [
        "e396e1cfaf67244b3b256e81ca452217bd3662ca"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jan 09 18:23:07 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Jan 17 16:19:12 2017 -0800"
      },
      "message": "Camera: pass bufferId to HIDL interface\n\nThis gives each buffer a unique ID and save some time sending\nbuffer_handle_t to HAL process.\n\nBug: 30985004\nChange-Id: Idf0d3edde94e1331cadb271dce3e4bed8bfb8c14\n"
    },
    {
      "commit": "0129d52df9794d6fdf06be304722b5cb51a2eab5",
      "tree": "f1d74ea701960753675b03385434c90a7c3c5875",
      "parents": [
        "844800fb97bfd061f845cd13d42fbdfacdbca6c5"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Sun Oct 30 22:43:41 2016 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Jan 10 10:31:40 2017 -0800"
      },
      "message": "camera2: Add support for secondary surface for stream\n\n- Enhance OutputConfiguration to contain multiple surfaces for one\n  underlying stream.\n- Create Camera3SharedOutputStream to handle streams with multiple\n  surfaces.\n- Create Camera3StreamSplitter to handle buffer flows between camera and\n  multiple consumers.\n\nTest: cts, and manually test camera preview/snapshot/recording\nBug: 33777818\nChange-Id: Ia010c3cc9d9b4bd5b9ea03cc42fe4e0a0d8033f1\n"
    },
    {
      "commit": "dce65c8103a8e8c3267590e90c5141d6bf842872",
      "tree": "3f0d963702349952c449ec88e6960ab3b0c75359",
      "parents": [
        "db057a5a6556f4ea81b710fc90ab6e8816d1525e"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Fri Jan 06 15:03:53 2017 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Jan 09 12:02:49 2017 -0800"
      },
      "message": "Camera: fix API1 HAL3 path\n\n1. Disable the ZSL path for now\n2. Add the missing provider version of initialize()\n\nTest: All API1 CTS passing\nBug: 32991422\nBug: 34131351\nChange-Id: I437a00db44c4fbb836875040fd4a91e1abbab734\n"
    },
    {
      "commit": "52778d448123c185fd30cd77e84659fab966d740",
      "tree": "b886d63644afec6099478290be3a75c3d9a271e2",
      "parents": [
        "0b1cb14c804d7d4343fe91c78578da8db9a678d5"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Dec 22 18:20:43 2016 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jan 05 16:56:31 2017 -0800"
      },
      "message": "Camera: patching camera service for treble\n\nBug: 30985004\nChange-Id: Idf3ec26abb6b10a0e3839e301e84c8b05ac165c5\n"
    },
    {
      "commit": "0b1cb14c804d7d4343fe91c78578da8db9a678d5",
      "tree": "282af923a4beb19016e834d8faef2526ec9e12ab",
      "parents": [
        "2f09bac6632a5ee27ee14baa2aa1367f16b5b013"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Dec 19 16:29:17 2016 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jan 05 14:48:00 2017 -0800"
      },
      "message": "Camera: Update camera service to use new HIDL HALs, part 2\n\n- Use string for device ID in Camera3Device\n- Remove camera3_device_t parameter from Camera3Stream::finishConfiguration\n  - Disables ability for the stream to register buffers\n  - This means device HALv3.0 and v3.1 are no longer supported\n- Add HIDL support to Camera3Device:\n  - Add HalInterface class to abstract whether legacy or HIDL HAL is in use\n- TODO\n  - CameraHardwareInterface\n  - Switch to using HIDL definitions instead of camera3.h definitions in\n    main body of code\n\nTest: Compiles\nBug: 30985004\nBug: 32991422\nChange-Id: I9c3c0f7b7ea5d1d74e14b1d882779e3b9445da69\n"
    },
    {
      "commit": "2f09bac6632a5ee27ee14baa2aa1367f16b5b013",
      "tree": "84b27d17b174f9a7eb9e4eab15d23f870334b55b",
      "parents": [
        "7f05785ddac8411823d865a1cdc725308ae4a7ae"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Dec 13 11:29:54 2016 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Jan 05 14:48:00 2017 -0800"
      },
      "message": "Camera: Update camera service to use new HIDL HALs, part 1\n\n- Add CameraProviderManager\n  - Enumerates individual camera provider HAL instances, as well\n    as the devices they provide\n  - Handles dynamic provider and device appearance/disappearance\n  - Maps device names to public API namespace\n  - Add unit tests for CameraProviderManager\n- Add logic to enable new HIDL path\n- Switch various bits of service internals to use string camera IDs,\n  though leaving most camera1-facing bits using int IDs, since that\u0027s\n  what the old API uses.\n- Update CameraService to use CameraProviderManager instead of\n  the legacy camera HAL\n- Update clients to pass through provider manager to devices instead\n  of just camera module\n- Still TODO:\n  - Update Camera3Device to use new HIDL interface\n  - Update CameraHardwareInterface to use new HIDL interface\n  - Update dump()\n  - Update vendor tag handling\n\nTest: New unit tests pass, camera CTS passes with Treble disabled\nBug: 30985004\nBug: 32991422\nChange-Id: I7ac41f13b9501d5e53256e28c0465ec70aa3980e\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": "f4db13db84c40299de4f9997f08d05259bdb8716",
      "tree": "d2d4f644d04141d3298e49684af8441ef4cdae4e",
      "parents": [
        "65abff18873fab87305049418c9b7c24fc0a2ef4"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Dec 08 11:20:51 2016 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Dec 08 11:23:04 2016 -0800"
      },
      "message": "Camera service: Speed up camera service startup on boot\n\nIn the common case, cameraserver starts before system server, which\ncontains the proxy camera service.  This means that\ngetCameraServiceProxy() will wait for the proxy to be up (or time out\nafter 5 seconds).  Since the proxy will call the camera service once it\nis up and running, there\u0027s no reason to block.\n\nSwitch to checkService() instead of getService() to remove this timeout\nand fail immediately.\n\nTest: Manual: Build and boot phone; confirm that camera functions normally\nChange-Id: I03596c18b13c68b5bcb15ee71de465cd14fba4de\n"
    },
    {
      "commit": "96626b7f9a4e5c9e1e04f7f710383631d1470364",
      "tree": "c4bf3f8aca5060b7574d0a531597145d0bbfe9aa",
      "parents": [
        "66c42ee95b42bea78cfc8035a1ea4e00c34d6cac"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 01 13:58:59 2016 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Dec 01 15:12:27 2016 -0800"
      },
      "message": "Use property_get_bool where possible\n\nMake handling of boolean properties more readable and consistent by\nusing property_get_bool instead of parsing the result of property_get\n\nChange-Id: I8490d0f0b41a92eab5131e0aac0ecdf704a63381\n"
    },
    {
      "commit": "0bdd9ffd24b266b3b8c79a82db871bf22436ceba",
      "tree": "6e42337a121b3709783245103f8f00cc4cda3aa7",
      "parents": [
        "f96b08d53781db2b572980a2539e86dd39cb3927",
        "e67f6da3673a6596a1058598c6cd4a9ed9cfdf15"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Nov 30 00:58:40 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 00:58:40 2016 +0000"
      },
      "message": "Camera: fix camera facing override logic am: 13cd59a7ea\nam: e67f6da367\n\nChange-Id: Ie356c8cf4f0b15cce677ecc5e5954b97bea775c0\n"
    },
    {
      "commit": "e67f6da3673a6596a1058598c6cd4a9ed9cfdf15",
      "tree": "f6609b6a35d4a76773b1077b204d2a7d4ed462ab",
      "parents": [
        "002e6c6452e4136a56a458c0a4929fb0dd6b489f",
        "13cd59a7ea9110546088e76f9c844503fa638850"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Nov 30 00:53:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 30 00:53:08 2016 +0000"
      },
      "message": "Camera: fix camera facing override logic\nam: 13cd59a7ea\n\nChange-Id: Id2f4f8a02843ad90cd4a61d1223346361e88e18a\n"
    },
    {
      "commit": "13cd59a7ea9110546088e76f9c844503fa638850",
      "tree": "79aa478a34f7642417ba241558f889454d7f26e5",
      "parents": [
        "879c32eda91d69e2174c5782854ee1753c495f8b"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Nov 29 12:13:15 2016 -0800"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Nov 29 14:44:33 2016 -0800"
      },
      "message": "Camera: fix camera facing override logic\n\nTest: hack existing HAL to report EXTERNAL and run cts\nBug: 33091893\nChange-Id: Idae8742fb4b18b2ef4842ec66284268fc650df22\n"
    },
    {
      "commit": "7fd5bdb5fa9db81f0293793b7b6d45dd833d05b2",
      "tree": "66c902ca2180a1ad6289d85ecb250d46fd838abe",
      "parents": [
        "bd54eef2d289f786a7ae02139ce3bb9db2b03b24"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Nov 22 15:16:25 2016 -0800"
      },
      "committer": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Nov 23 00:06:49 2016 +0000"
      },
      "message": "fix warning The left operand of \u0027!\u003d\u0027 is a garbage value\n\nThe \u0027res\u0027 is  uninitialized if params.state \u003d\u003d Parameters::PREVIEW.\nThis sets the default value to \u0027OK\u0027 to silence this warning.\n\nBug: None\nTest: Run clang-tidy on this code and the warning is gone.\nChange-Id: I9d1b5e09c7957813f3c66d052c6a9f7d4b074b84\n"
    },
    {
      "commit": "81d472ef3635bcf5cf05e4567f715c52f2cf3b22",
      "tree": "f0aac901b68dcd42536a7e1eee3fcea414c7e110",
      "parents": [
        "6507185f5c59d39deeda6598ce50ee4900723501",
        "ce85a6975b2b416c8c267265f47ad32f924c0556"
      ],
      "author": {
        "name": "Jinguang Dong",
        "email": "dongjinguang@huawei.com",
        "time": "Thu Nov 17 19:34:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 17 19:34:19 2016 +0000"
      },
      "message": "Merge \"Camera3: Add missing mTriggerMutex lock\" am: ad4663c5a5 am: fa43b5468f am: 51c4a65f5c\nam: ce85a6975b\n\nChange-Id: I0b2995ef33ae80eebb32085fd42a81d868aeb8aa\n"
    },
    {
      "commit": "ce85a6975b2b416c8c267265f47ad32f924c0556",
      "tree": "51fbfb63e9bf770495ad1dc84036d99e4689df05",
      "parents": [
        "01abec873792d290944192814029c98a6e46917a",
        "51c4a65f5cea001eb97a6914ee48901513eb6ce1"
      ],
      "author": {
        "name": "Jinguang Dong",
        "email": "dongjinguang@huawei.com",
        "time": "Thu Nov 17 19:27:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 17 19:27:21 2016 +0000"
      },
      "message": "Merge \"Camera3: Add missing mTriggerMutex lock\" am: ad4663c5a5 am: fa43b5468f\nam: 51c4a65f5c\n\nChange-Id: I0fbb1098a246db4dd2b0a6b9720dea275be23a42\n"
    },
    {
      "commit": "fa43b5468f93af356297b5e2f381274d4b484ece",
      "tree": "63e5daa1542d2496c37d67d70de2075b511306eb",
      "parents": [
        "3c0f1962af4d61ce9f3bc250bc3bf8fe0fe7980b",
        "ad4663c5a57b274defaed6e156d323083e4638a0"
      ],
      "author": {
        "name": "Jinguang Dong",
        "email": "dongjinguang@huawei.com",
        "time": "Thu Nov 17 19:12:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 17 19:12:18 2016 +0000"
      },
      "message": "Merge \"Camera3: Add missing mTriggerMutex lock\"\nam: ad4663c5a5\n\nChange-Id: I59b7de9cdd9f608afa503293947a19d3f11d533b\n"
    },
    {
      "commit": "b26e7a07894882f8cef2c6b0127106e649f22d42",
      "tree": "c69131225fb80c3303a53d01355eab2f3de54baf",
      "parents": [
        "caea9fc26a654c6b856d6e3f4458b52c5d14365f"
      ],
      "author": {
        "name": "Jinguang Dong",
        "email": "dongjinguang@huawei.com",
        "time": "Mon Nov 14 16:04:02 2016 +0800"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Wed Nov 16 23:05:09 2016 -0800"
      },
      "message": "Camera3: Add missing mTriggerMutex lock\n\nThere is thread safety problem for mTriggerMap in\nCamera3Device::RequestThread::clear(). For correctness,\nacquire mTriggerMutex before mTriggermap.clear().\n\nTest: 1. Configure power saving mode to 2 seconds by\n      modification software;\n      2. using pyhon or monkey to turn on the screen every 4\n      second;\n      3. device doesn\u0027t crash any more on loop test.\n\nChange-Id: I2f04e21dae3a9879d6cebfefb9d9c191ef3f4df4\n"
    },
    {
      "commit": "4b2f81808a3d6600ead4d51d0f5a0eba4a7ee6fe",
      "tree": "7e2c463187c1e9bf40f40dcccd520693ac6007d9",
      "parents": [
        "f348da28b5bba5022fdf13fcadb7b2eb65c2a853"
      ],
      "author": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Wed Oct 26 11:46:42 2016 -0700"
      },
      "committer": {
        "name": "Craig Donner",
        "email": "cdonner@google.com",
        "time": "Fri Nov 11 12:00:08 2016 -0800"
      },
      "message": "Use layered version of graphic buffer allocation calls.\n\nAllocators now require a layer count, but in these cases we can\nassume that a single layer is sufficient, since that\u0027s what they\neffectively do now.\n\nBug: 31686534\nTest: manual\nChange-Id: Ic22f56f8dbbf5bca01ad21421d12faac95783de7\n"
    },
    {
      "commit": "c0fff7e64a3205ec7e91eae4cbd7926813ae70f8",
      "tree": "33bd86a26a83ba04483b391dcf4a82d6744aa1ef",
      "parents": [
        "a36591ba9ce6258c3b2f9477761add084ac4ec47",
        "cc621decd54f2d469925de20f33812f2464fc313"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Nov 08 22:00:14 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 08 22:00:14 2016 +0000"
      },
      "message": "Camera: Clear not-yet-submitted request in cleanupFailedRequest am: cadb330fd8\nam: cc621decd5\n\nChange-Id: Ic14af20f08280a4196388230040f8762b149bb7e\n"
    },
    {
      "commit": "cc621decd54f2d469925de20f33812f2464fc313",
      "tree": "c06dd352c70ad2a16162766796fdf784b41363df",
      "parents": [
        "0a064faeddedd189d73c20e93a45eccaf9a995ef",
        "cadb330fd8b51d17b548e913651d13376ac2e3a5"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Nov 08 21:44:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Nov 08 21:44:16 2016 +0000"
      },
      "message": "Camera: Clear not-yet-submitted request in cleanupFailedRequest\nam: cadb330fd8\n\nChange-Id: I655bdce42c508734a671c0f6f9ae8b668b8b2593\n"
    },
    {
      "commit": "cadb330fd8b51d17b548e913651d13376ac2e3a5",
      "tree": "d997a505ef06e0c05ba267fd74f9c0a1377e9c51",
      "parents": [
        "ceb2370f8167e80fb9c4c6c479d7e8b817c5812b"
      ],
      "author": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Fri Nov 04 14:17:56 2016 -0700"
      },
      "committer": {
        "name": "Shuzhen Wang",
        "email": "shuzhenwang@google.com",
        "time": "Tue Nov 08 10:57:40 2016 -0800"
      },
      "message": "Camera: Clear not-yet-submitted request in cleanupFailedRequest\n\nIn case request fails for a burst, previous not-yet-submitted\nrequests that are put into mInFlightMap are never taken out.\nThis causes waitUntilDrained error.\n\nBug: 32466355\nChange-Id: Icd28d465dca3f850938c13058c916efc477b0d2b\n"
    },
    {
      "commit": "66ded7d95b9a2885b9750966f0ebdaa5082bf83d",
      "tree": "34d48f4a8e5d9504c3db217a56509368559d0959",
      "parents": [
        "204e8dc55cbe53624f7f5b16083073c20f47adad",
        "b3250b0b8a1a42d06ec436b30afd871ba305cb66"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 22:59:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 04 22:59:21 2016 +0000"
      },
      "message": "Merge \"Remove unneeded links with dynamic libraries\" am: 46d0a5b493 am: 4f197ec220\nam: b3250b0b8a\n\nChange-Id: Ic1e29e8d1e91ab34c3b7d5f7ad3e25c48a150888\n"
    },
    {
      "commit": "4f197ec220d2c9634429692dd37896233273111d",
      "tree": "9ee3410c97a0375f18e05a0728643cfe587f0edc",
      "parents": [
        "68f9d0dc3b25c69eecccc9487319dd3343f0790b",
        "46d0a5b493dc7ef8cfd068c1b12d1d47d03d7884"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 22:52:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 04 22:52:20 2016 +0000"
      },
      "message": "Merge \"Remove unneeded links with dynamic libraries\"\nam: 46d0a5b493\n\nChange-Id: Ica6dd538c30b9aeccddad229cb24ade4d82d2e4c\n"
    },
    {
      "commit": "263506542fbe480ddb247597bdcef16c437b48dd",
      "tree": "1ad06b1495a50534199f1aa5068b8519dd5d50c5",
      "parents": [
        "712690b37495816a3f55e2d000f1f68caf1c20a4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 25 13:17:47 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 04 14:17:07 2016 -0700"
      },
      "message": "Remove unneeded links with dynamic libraries\n\nVarious media components were linking against dynamic libraries that weren\u0027t needed.\n\nTest: built and booted\n\nChange-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e\n"
    },
    {
      "commit": "59e450f2f51601259b787d202b7438f50c76bc0d",
      "tree": "a16fb63120e47dbedd45530982531dbcbf14257f",
      "parents": [
        "0578109154b7c41d2e0618145522d2660e0a7bf4",
        "3b5fa81889299181f3463504ddff9e091846e1ba"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Nov 02 17:40:35 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 02 17:40:35 2016 +0000"
      },
      "message": "Camera API1: don\u0027t pick wrong preview fps value am: 49aac43b4a am: 73952713b5 am: 341d2236fa\nam: 3b5fa81889\n\nChange-Id: I2d6d9a128623ebab42b023d45a57f48ad9d38fd2\n"
    },
    {
      "commit": "3b5fa81889299181f3463504ddff9e091846e1ba",
      "tree": "60c02b900abd8c725a0e5007c4f8c2860aec8aa2",
      "parents": [
        "7b9bd40f14393bc586ed829ef1fefe0901899a1d",
        "341d2236fa13275789e0d4ac65057f97bf95152b"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Nov 02 17:35:35 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 02 17:35:35 2016 +0000"
      },
      "message": "Camera API1: don\u0027t pick wrong preview fps value am: 49aac43b4a am: 73952713b5\nam: 341d2236fa\n\nChange-Id: I504588f8f97a44c00725685a3808a312b98ca899\n"
    },
    {
      "commit": "49aac43b4a323a8702d93b7cf878252905dc3987",
      "tree": "125099fef354312c7b63a7a8e13e0ca10ae1f4b4",
      "parents": [
        "123efa3d1b317c3e055205827113e6f78603107c"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 01 15:24:29 2016 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Nov 01 19:31:03 2016 -0700"
      },
      "message": "Camera API1: don\u0027t pick wrong preview fps value\n\nBug: 32556975\nChange-Id: I69eb18abe191ae0f1e76f8b62daaf5717cce9669\n"
    },
    {
      "commit": "51db74d1ab1366205e39c52ba3273a6cadab830a",
      "tree": "bc05b6e3917187e32ebc3fa4bef8508db567e975",
      "parents": [
        "a498096d9f768d92ac2606120d3a01f07ccf44f0",
        "36edfc5a6ce2257b8e6c50ea697319bdaccad1f5"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Oct 31 23:21:31 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 31 23:21:31 2016 +0000"
      },
      "message": "Camera API1: relax the fps check with some margin am: 84eb96049c am: b6d50049c7 am: aebb26a330\nam: 36edfc5a6c\n\nChange-Id: I3fe8e31d3a10833c8e40951ca1b3408002642586\n"
    },
    {
      "commit": "36edfc5a6ce2257b8e6c50ea697319bdaccad1f5",
      "tree": "52cd55785da6bad1ec6d80cb983c1a0b089e7cec",
      "parents": [
        "baa453af9fb666c7083bb8ed23aead0611def087",
        "aebb26a3302acaead3f416c5e8699d7dc713cbbf"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Oct 31 23:18:43 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Oct 31 23:18:43 2016 +0000"
      },
      "message": "Camera API1: relax the fps check with some margin am: 84eb96049c am: b6d50049c7\nam: aebb26a330\n\nChange-Id: I1724e2690a8fe3b12887333cf5f3da84db7ac6fa\n"
    },
    {
      "commit": "84eb96049ce0690334530ad916e22d6933c0223b",
      "tree": "43f1b52fb8aab29b5f37412536e373821eef9f12",
      "parents": [
        "4f5dc7799f082d77e399d8beee7b017a02755cf6"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Oct 31 13:27:52 2016 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Oct 31 13:27:52 2016 -0700"
      },
      "message": "Camera API1: relax the fps check with some margin\n\nSome HALs may advertise slightly larger min frame durations, which\nmakes the supported fps check fail. Then, some supported fps range\nmay be missing in the supported preview fps range list.\n\nBug: 32544699\nChange-Id: I1ed62b97d3d39e5d7f0e7c407c6cc482b8968373\n"
    },
    {
      "commit": "7a987ecdab7e87f916fef28bf991a6183020f1b4",
      "tree": "e1cf28ee9ed1c710c192f51b8b5d44d512654e28",
      "parents": [
        "d7f5b6de42553ec22314dd341f019fb8ebe76bc1",
        "c661ae6165338fd5f0bca50a63058b4bcd6def4b"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Oct 27 16:21:35 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 27 16:21:36 2016 +0000"
      },
      "message": "Merge \"Remove unneeded links with dynamic libraries\""
    },
    {
      "commit": "7405dc62bbec9eed2384325db40ed95277217fa3",
      "tree": "d3582bb841be63ffe82f9b1b9e864422fc61b66a",
      "parents": [
        "6f6555a169316f1b9e2acda2b8e7042e285de310",
        "2e6d8d607fb3bd38d87fb7c1274680bbc4424398"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Thu Oct 27 01:38:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 27 01:38:10 2016 +0000"
      },
      "message": "Camera API1: filter out the unsupported preview fps range am: 4f5dc7799f am: c4bea30beb am: 34b27bc05f\nam: 2e6d8d607f\n\nChange-Id: I589c96f88b30dd062e922f3f086dd7dc6e8214a5\n"
    },
    {
      "commit": "2e6d8d607fb3bd38d87fb7c1274680bbc4424398",
      "tree": "6b60ac1b64ab7cb94d46a1963a41760c0c101ad7",
      "parents": [
        "e76046149332e1b56f44ede50ce511802fd8f7f4",
        "34b27bc05fe99b886743ab412fd60f8ae0773a34"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Thu Oct 27 01:33:41 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 27 01:33:41 2016 +0000"
      },
      "message": "Camera API1: filter out the unsupported preview fps range am: 4f5dc7799f am: c4bea30beb\nam: 34b27bc05f\n\nChange-Id: I0593a3e694e6f8fa41b396cfbaaf4c7a4893ce7a\n"
    },
    {
      "commit": "4f5dc7799f082d77e399d8beee7b017a02755cf6",
      "tree": "466bc6e41b266d3c97a4173e036b0c4c8d1135d7",
      "parents": [
        "59e9ca734f4d33fa1698466cdb2b66ab4ea1b82b"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 26 14:34:40 2016 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Oct 26 16:32:30 2016 -0700"
      },
      "message": "Camera API1: filter out the unsupported preview fps range\n\nThe advertised supported preview fps ranges need to be supported\nby all preview sizes. This change does the check to make sure the\nAPI1 doesn\u0027t over-advertise its capability.\n\nBug: 32360340\nChange-Id: Iccd13967305f1d0a62b89da87070591bfb973bbf\n"
    },
    {
      "commit": "c661ae6165338fd5f0bca50a63058b4bcd6def4b",
      "tree": "1fabefad176045b256eb3282f391b9e1ae4ee654",
      "parents": [
        "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Oct 25 13:17:47 2016 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 26 15:42:11 2016 -0700"
      },
      "message": "Remove unneeded links with dynamic libraries\n\nVarious media components were linking against dynamic libraries that weren\u0027t needed.\n\nTest: built and booted\n\nChange-Id: I7379506fd06d4e28e0eff0001fd073a2d3860f8e\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": "2f919a49511af0b8736f6edb43d7ce579470b259",
      "tree": "517c1d7f344b1070b659073c137ce97980696710",
      "parents": [
        "2e97f1eea42fc4acdec6094c552552447a29c24f",
        "019e54142c85031e5320ba9103e3558835dda04c"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 12 19:16:50 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 12 19:16:50 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in camera.\" am: f9ee5183c8 am: beff1fb18b\nam: 019e54142c\n\nChange-Id: I1278af9e5244995c7fdbc4ee7a54314571b3df3f\n"
    },
    {
      "commit": "019e54142c85031e5320ba9103e3558835dda04c",
      "tree": "038968d99c3ef5eea8f5ad7bfb9d7d3d434a37a9",
      "parents": [
        "5848eb65f6ced6bb9ada57223bdbc416602d6f6c",
        "beff1fb18b4fdb642e466d8864cfa8dca7f4cb24"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Sep 12 19:13:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 12 19:13:21 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in camera.\" am: f9ee5183c8\nam: beff1fb18b\n\nChange-Id: I0f337390c99af8b300b28f8dfe60635290fc20b0\n"
    },
    {
      "commit": "d19d994770a04f02c204affd29985c5aeaa58baa",
      "tree": "15224cbe7fce560c768f9dc16279e8913b94cd51",
      "parents": [
        "1567662f5a709398004cf509fb3f382f0c76f5b1"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:21:14 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:21:14 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in camera.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I61f9b5b2b6e13e0c6561327bc8dfe69c9cfc5ba5\n"
    },
    {
      "commit": "56b0c92009e76851ed3a161804117971b4defa4b",
      "tree": "8cbbdf6c2c48cd1f0ef58fe8f5c9956540f318d7",
      "parents": [
        "c6cea3f57ca1639ac4e02833599be72888aac2ee",
        "744c3070464e9e32de8b60c425c722be4251d2aa"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Aug 25 22:49:10 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 25 22:49:10 2016 +0000"
      },
      "message": "Merge \"Mark unused parameters as UNUSED in BRILLO.\" am: 1567662f5a am: 002a0ffe14\nam: 744c307046\n\nChange-Id: I3c43605f4a67c24c4651fdefc0c4319cec3da76b\n"
    },
    {
      "commit": "744c3070464e9e32de8b60c425c722be4251d2aa",
      "tree": "213c53bbc529322b1f9889dd590aa16cbc490f65",
      "parents": [
        "4dc093f3181ded686acfd53cb96dc4cc226a9121",
        "002a0ffe149b719d117bce3d16e993d3325cf40b"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Aug 25 21:31:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 25 21:31:21 2016 +0000"
      },
      "message": "Merge \"Mark unused parameters as UNUSED in BRILLO.\" am: 1567662f5a\nam: 002a0ffe14\n\nChange-Id: I597292095289b14e1b2e4652e78344aa193bf26e\n"
    },
    {
      "commit": "1567662f5a709398004cf509fb3f382f0c76f5b1",
      "tree": "d515bc41de18fa10c427889c424dc50c04d4046b",
      "parents": [
        "b990030f42fba7cf47fc76c6024aeab7305cff83",
        "9c2a2c26c0d70de97f51063b06a5efc79b327eed"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Aug 25 21:10:02 2016 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Aug 25 21:10:02 2016 +0000"
      },
      "message": "Merge \"Mark unused parameters as UNUSED in BRILLO.\""
    },
    {
      "commit": "83c1a98f774cc4e4e1546aaaba2fa13820f05b40",
      "tree": "05017473f1db74b3258f157f5151248ec996c46b",
      "parents": [
        "205a224eeee3cb41395af783755c347bb6ce7a02",
        "3c2423173de69a7dede1c358c75be50fb17a7194"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 25 19:53:46 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 25 19:53:46 2016 +0000"
      },
      "message": "Merge \"Camera3: don\u0027t let dequeueBuffer block indefinitely\" am: bbf70c5122\nam: 3c2423173d\n\nChange-Id: I0f813700d620b164e3347e14427d21df322826f7\n"
    },
    {
      "commit": "9c2a2c26c0d70de97f51063b06a5efc79b327eed",
      "tree": "38a886c658a9682bad071c9f52a274aa80432810",
      "parents": [
        "bcd87f596960bf8623545e935b3e892d45cce623"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Aug 25 11:59:14 2016 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Aug 25 12:46:28 2016 -0700"
      },
      "message": "Mark unused parameters as UNUSED in BRILLO.\n\nBug: 31068444\nTest: `make dist` in Brillo.\n\nChange-Id: Ib0229ad78894fc703e9c5ad7bda4ab2466641f77\n"
    },
    {
      "commit": "f81b009d77466c5b3901d2c49b0fcc618e3d1592",
      "tree": "a23a015c325574967b9348049e4fdb65f61ef517",
      "parents": [
        "bcd87f596960bf8623545e935b3e892d45cce623"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Aug 02 00:58:11 2016 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 25 10:45:33 2016 -0700"
      },
      "message": "Camera3: don\u0027t let dequeueBuffer block indefinitely\n\nThe synchronous consumers (e.g. ImageReader) may be very slow when the\nclients have computational intensive image processings. When system\nload is high, these processing will be even much slower. This could\nstarve the producer side and then cause dequeue/attach buffer block\nindefinitely. If clients intends to close the capture session, right\nafter a capture request is submitted, the waitUntil drain could be\nblocked indefinitely if the capture request dequeue buffer call is\nblocked indefinitely, as the request thread will never become idle until\nthe last dequeue buffer is done and the request is sent.This indefinite\ngetBuffer() blocking could easily trigger the waitUntilDrained 5s timeout\nthus put the camera device into error state although there is nothing\nbad happening in the HAL.\n\nIntroducing the timeout will avoid such bad situation. When consumer is\nslow, there will be no new request being sent to HAL, as there is really\nno new buffer available.\n\nBug:30404840\nChange-Id: Ibf08d2745911203bce6f31130800707f36d7f985\n"
    },
    {
      "commit": "f5e60b1e798d15fc466f5f15a4db6920e4d0c2d1",
      "tree": "1cc8967443372ea839d69eb19b1e2762cd237414",
      "parents": [
        "78e800e9369636a2a17d668a90eeaab275e83d5e",
        "205a224eeee3cb41395af783755c347bb6ce7a02"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Aug 25 16:47:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 25 16:47:21 2016 +0000"
      },
      "message": "Merge \"Silence warning about unused variables in BRILLO.\" am: bcd87f5969 am: ca59abe191\nam: 205a224eee\n\nChange-Id: Id4e0626842a3d9f170e29a364f4d31020172f233\n"
    },
    {
      "commit": "205a224eeee3cb41395af783755c347bb6ce7a02",
      "tree": "b4cb19cf15be425c695c630471042b4b514478f1",
      "parents": [
        "50859c322975156d332f715d4d64dad95469f7d8",
        "ca59abe191823b4695362958abd389215a04e067"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Thu Aug 25 16:44:21 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 25 16:44:21 2016 +0000"
      },
      "message": "Merge \"Silence warning about unused variables in BRILLO.\" am: bcd87f5969\nam: ca59abe191\n\nChange-Id: Ic2e37c41dad8579cdcd28e6698fce991854c7962\n"
    },
    {
      "commit": "eb4c32d20d43bb6a36dcbef9b995cd7871c1fa4d",
      "tree": "c8c703d66eaa8f6d1cbdba766b5f8db7ab868b23",
      "parents": [
        "84183ba49683678a3420c4c1108be7c1be69443c"
      ],
      "author": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 24 20:19:39 2016 -0700"
      },
      "committer": {
        "name": "Alex Deymo",
        "email": "deymo@google.com",
        "time": "Wed Aug 24 20:19:39 2016 -0700"
      },
      "message": "Silence warning about unused variables in BRILLO.\n\nThis patch moves the call to validateClientPermissionsLocked() outside\nthe #if so it is executed in Brillo builds anyway, but the result is\nignored. This fixes the warning about unused parameters which was\ncausing the build to fail.\n\nBug: 31068444\nTest: `make dist` in Brillo\n\nChange-Id: I8a6648bf2221406068c9f5a1850a59ae0bde03ca\n"
    },
    {
      "commit": "0878ecfc07712e0caa83642fba55af928b173363",
      "tree": "9073d22b0402e71d6a32b3c1298f446c07235dbc",
      "parents": [
        "3756e42e21f39fdeabd22fe36906438d14b889b5",
        "e890fa14d6ba103132b2faac60726fb0dd217962"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 18 23:01:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 18 23:01:55 2016 +0000"
      },
      "message": "Camera3Device: Wait for empty in-flight map when waiting for idle am: e4df8abe28\nam: e890fa14d6\n\nChange-Id: I9ed6eb856a29a512b0ae1ca04011e122108ab999\n"
    },
    {
      "commit": "e890fa14d6ba103132b2faac60726fb0dd217962",
      "tree": "489d2168187045b7360fcd7a25fa5d30d484ed5e",
      "parents": [
        "ba46b47c4fb986f352ccad956a2ab3c1421b01c4",
        "e4df8abe28ca2da39dcacc4f3396ba9aea7cfdb3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 18 22:58:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 18 22:58:22 2016 +0000"
      },
      "message": "Camera3Device: Wait for empty in-flight map when waiting for idle\nam: e4df8abe28\n\nChange-Id: Ia0095a20f128fff93f1adda905f2a8d71369915d\n"
    },
    {
      "commit": "d17567dcae35bef4635766c408c23e6fa4abf33a",
      "tree": "489d2168187045b7360fcd7a25fa5d30d484ed5e",
      "parents": [
        "d44ade926e137941596a51d5005f9deabde0ca9c",
        "e4df8abe28ca2da39dcacc4f3396ba9aea7cfdb3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Aug 18 22:40:26 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 18 22:40:26 2016 +0000"
      },
      "message": "Merge \"Camera3Device: Wait for empty in-flight map when waiting for idle\" into nyc-mr1-dev"
    },
    {
      "commit": "e3fd0d0c51d81fdc3f7b6892f8f3f2f821065009",
      "tree": "360a836f64d58a77a086234aaa69959c8eb29d41",
      "parents": [
        "b28cff2ae913359048f8adf70c4224cd07ecfe33",
        "601f677b6d7791b4f48e61a520efb4bedc5893db"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Aug 17 19:25:09 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 17 19:25:09 2016 +0000"
      },
      "message": "Camera3Device: add prop to disable sched fifo am: 90f7c37361\nam: 601f677b6d\n\nChange-Id: I86b6da77822a5c2b71ea9c2b75349c3c1e4a5482\n"
    },
    {
      "commit": "90f7c37361c22f86bd3d63d22c27fbea34c188e1",
      "tree": "5f4f092af79056faf9962d9aa7d4de77cd845a31",
      "parents": [
        "15223ec262f8f1135be6ee727a480dd4a04457e7"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Aug 16 16:19:43 2016 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Aug 16 16:27:55 2016 -0700"
      },
      "message": "Camera3Device: add prop to disable sched fifo\n\nto disable sched fifo:\nadb root\nadb shell setprop camera.fifo.disable 1\n\nBug: 30898724\n\nChange-Id: Ic3d1d15f9deb36b49e7d710d60fac969a98a1730\n"
    },
    {
      "commit": "7bc559a13c14acb3e74ffc08fd0d898b4d494d4d",
      "tree": "c9703a663cb7eadc3459bd6a73b9b17b8b9afdb5",
      "parents": [
        "335e29064de8f6cfe69ea3bb9fe6fc6c383380e1",
        "f671d5bbf8bdba4076be34b254e9e5f7d3f4b874"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 12 18:55:36 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 12 18:55:36 2016 +0000"
      },
      "message": "resolve merge conflicts of 70066d9 to stage-aosp-master am: 311f99eade\nam: f671d5bbf8\n\nChange-Id: I80d1494c33d33a5ebe784dd894148d90747ae726\n"
    },
    {
      "commit": "f671d5bbf8bdba4076be34b254e9e5f7d3f4b874",
      "tree": "49db0f9281ef8d49650fa22af9dec7739810e350",
      "parents": [
        "1f1fa8ba374b83eadeab27c98309a54e1e827394",
        "311f99eade1222575bc65a2fcbd9f9a5a40d2024"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 12 18:52:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 12 18:52:06 2016 +0000"
      },
      "message": "resolve merge conflicts of 70066d9 to stage-aosp-master\nam: 311f99eade\n\nChange-Id: I8264ed7436d6ffce3106085efad14a58da2f50b5\n"
    },
    {
      "commit": "311f99eade1222575bc65a2fcbd9f9a5a40d2024",
      "tree": "6447b98dbfe17885b554084501e3bb1efb0087fc",
      "parents": [
        "89155dfeef87e07c36a6cf1dc839e881e8838e57",
        "70066d92606c66dedd27c974a7ee6f84e36ef015"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 12 11:13:49 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Aug 12 11:13:49 2016 -0700"
      },
      "message": "resolve merge conflicts of 70066d9 to stage-aosp-master\n\nChange-Id: I9af1ace904388c91e6ce885e8a6d3540eb57bb4a\n"
    },
    {
      "commit": "5404ee174dd6b5e312d3a97bc63c2bc8d142012b",
      "tree": "f91538f49c70a4730b3806617b1cdf11328e8b55",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:25:53 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:28:17 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in camera.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\n* Use const reference type to avoid unnecessary copy.\nBug: 30413862\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I71d3008da843ba5f1df1a73a320fb2af6ceffa16\nMerged-In: I71d3008da843ba5f1df1a73a320fb2af6ceffa16\n"
    },
    {
      "commit": "04a0551e4488c267422e87faa416e37e28c61c73",
      "tree": "abe7e2e7b90ab715504eccaacfd71385e0e73dee",
      "parents": [
        "53fd1073c09a8be5bf06615ec0dc17d5923b2004",
        "ece9e363675773c8a02e1ca5ea57762fb38bfb61"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Tue Aug 09 01:26:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 09 01:26:42 2016 +0000"
      },
      "message": "Camera: use wp for NotificationListener am: e1c8063521\nam: ece9e36367\n\nChange-Id: Ib04667dd002186aa5b4f401f58209a48b436cc81\n"
    },
    {
      "commit": "e1c8063521b0645b091b080d896106b2e6fd8670",
      "tree": "c654bdea51c62cd6b15df075604fd44bfc805521",
      "parents": [
        "cd05b9a27a35fcf840de2554bd35f279bddf597d"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Aug 08 14:48:05 2016 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Mon Aug 08 14:48:05 2016 -0700"
      },
      "message": "Camera: use wp for NotificationListener\n\nBug: 30737827\nChange-Id: I01b8bee39fe329bf250b9179a84a8928d209a357\n"
    },
    {
      "commit": "203d7b2d37828dfa2a34f1848170e1022f27d7de",
      "tree": "b0699a6b9b1b21c68177bc2ebe183549a1b36705",
      "parents": [
        "cf3cbdaaf8b5c4cbcd584cea4b866249817c8fa3",
        "04062860026937238e20c675e29c2c6e11366431"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Aug 04 23:11:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Aug 04 23:11:54 2016 +0000"
      },
      "message": "CameraService: Notify flashlight about device close am: e4fe21bb7c\nam: 0406286002\n\nChange-Id: Ie4d5274f0847e4bfd2a8a1d26fede1a3827fe1bc\n"
    },
    {
      "commit": "e4fe21bb7cef893cd38bd194ea880333389aea38",
      "tree": "f11a6522c9bfe08156124a3e0a2ddf2f5e22d901",
      "parents": [
        "fa1e123f3fffe1eb3d6c284e19014815835e22d6"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Aug 04 12:42:40 2016 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Aug 04 12:47:21 2016 -0700"
      },
      "message": "CameraService: Notify flashlight about device close\n\nAlways notify flashlight about device close when device is\ndisconnected.\n\nBug: 30485086\nChange-Id: Id537c32413f4df9d12c405538ceab2974d3ab319\n"
    },
    {
      "commit": "4f370c878cd8e21f5926d089b7a3cd73045f8433",
      "tree": "1462d520c85e459e704609cc2663dfcfe39c932b",
      "parents": [
        "f9d00165878fa37879c30f4ca0f7831d7d27b6af",
        "1e8e893f8e1b5dcddb268b6e1db066bb636083e2"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Aug 02 20:21:12 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 02 20:21:12 2016 +0000"
      },
      "message": "Camera3: don\u0027t let dequeueBuffer block indefinitely am: f0645c19a8\nam: 1e8e893f8e\n\nChange-Id: If07a6286dc670e03be6ac2a65d7db650c8d2f8f5\n"
    },
    {
      "commit": "f0645c19a8c8433766f4cb6edff7fca5db8017bf",
      "tree": "a2b109f9ca90986d8fd53ff94de6866af376dfad",
      "parents": [
        "2da394d6ea122c0521a2f3fffe2bbfc75405f4be"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Aug 02 00:58:11 2016 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Aug 02 19:10:58 2016 +0000"
      },
      "message": "Camera3: don\u0027t let dequeueBuffer block indefinitely\n\nThe synchronous consumers (e.g. ImageReader) may be very slow when the\nclients have computational intensive image processings. When system\nload is high, these processing will be even much slower. This could\nstarve the producer side and then cause dequeue/attach buffer block\nindefinitely. If clients intends to close the capture session, right\nafter a capture request is submitted, the waitUntil drain could be\nblocked indefinitely if the capture request dequeue buffer call is\nblocked indefinitely, as the request thread will never become idle until\nthe last dequeue buffer is done and the request is sent.This indefinite\ngetBuffer() blocking could easily trigger the waitUntilDrained 5s timeout\nthus put the camera device into error state although there is nothing\nbad happening in the HAL.\n\nIntroducing the timeout will avoid such bad situation. When consumer is\nslow, there will be no new request being sent to HAL, as there is really\nno new buffer available.\n\nBug:30404840\nChange-Id: Ibf08d2745911203bce6f31130800707f36d7f985\n"
    },
    {
      "commit": "d22e96cc1250d74b2c869ccd0baf788976caa305",
      "tree": "17ae2e15f35719cceb8cc4302e1a51cdb4467d1f",
      "parents": [
        "e45b4d49d3fe299d6975f6b943858f46992bee8b",
        "7ee4c0778c75a54cccf5ce82bd296e0dadcccb24"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Jul 27 04:22:55 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 27 04:22:55 2016 +0000"
      },
      "message": "Camera3Device: make request thread SCHED_FIFO for all cases\nam: 7ee4c0778c\n\nChange-Id: Ib4b1fd28e74b88c94b6727112e2a9397f015d812\n"
    },
    {
      "commit": "7ee4c0778c75a54cccf5ce82bd296e0dadcccb24",
      "tree": "2719734a0bdbebd03e3cf02b4696ec38d328f24e",
      "parents": [
        "de0613d0ad8b8fb9d19a27185ae4d307a5b7fb9d"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Jul 25 13:52:28 2016 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Jul 26 19:59:39 2016 -0700"
      },
      "message": "Camera3Device: make request thread SCHED_FIFO for all cases\n\nTo mitigate the request thread CPU starvation for system highly loaded\nsituation.\n\nBug: 30357698\nBug: 28313712\nChange-Id: Ied30103ce7245e139580219cce99d743b657307e\n"
    },
    {
      "commit": "e4df8abe28ca2da39dcacc4f3396ba9aea7cfdb3",
      "tree": "9ff96d50457832f530e436f37905e4a2e24084f8",
      "parents": [
        "a6c2f96018533e24f44480f5336e56cc98f0a341"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 21 12:53:07 2016 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 21 12:53:07 2016 -0700"
      },
      "message": "Camera3Device: Wait for empty in-flight map when waiting for idle\n\nCurrently we only wait for the request queue to be idle, and for\nall outstanding buffers to be returned to their queues and their\nfences triggered.\n\nBut we also need to wait for result metadata to arrive for all\nin-flight requests.  This is simplest to check for by monitoring\nentries in the in-flight map and signaling idle/active to the\nstatus tracker when the map becomes empty/nonempty.\n\nBug: 30282459\nChange-Id: I34275b0fdb4f279783291d300707ac21a6aa5249\n"
    },
    {
      "commit": "b4115063f468216510cb9265962b7fb942212e28",
      "tree": "668f95a942d2e57aa497abd66498b4981480dd7b",
      "parents": [
        "97a480927d83e4d79ec915a86262ac3489377bff",
        "4d453830b6a8fb7571a88a9a241eabd50a483c44"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jul 18 21:30:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jul 18 21:30:33 2016 +0000"
      },
      "message": "Camera3Device: Add dumpsys monitoring of request/result metadata\nam: 4d453830b6\n\nChange-Id: Iefb0f526d0d6d8d667fd1c3c3e4637db6624c276\n"
    },
    {
      "commit": "4d453830b6a8fb7571a88a9a241eabd50a483c44",
      "tree": "8cde39560a9a84e3b1807e2fe3cc1346c50feb68",
      "parents": [
        "cecb30a22f3657483f07f259231b81b02b2a7305"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 15 11:56:53 2016 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Jul 18 11:09:08 2016 -0700"
      },
      "message": "Camera3Device: Add dumpsys monitoring of request/result metadata\n\nAdd new -m dumpsys option to cameraservice dump for monitoring\nchanges in selected metadata values in requests and results.\n\nThis option takes a comma-separated list of metadata keys, or the\nshortcut value \"3a\", which expands to all the \"android.control\" tags.\n\nIn subsequent dumpsys calls, the last 100 changes to the tags being\nmonitored are listed.\n\nThe monitoring must be turned on once the camera device is running.\n\nBug:\nChange-Id: If8938b30611ccafa86c2c4a06e57fc72680f827b\n"
    },
    {
      "commit": "55943ae68e72b362ba701f9e39e3dd50167a9e9c",
      "tree": "3d6347f2bf50c40d372b3976836354ef838b5303",
      "parents": [
        "a5cb3f08d5f14991f05749898d9a73e0666707b4",
        "24edc3b919777167c7f5c2a356c972d0ecbfd9b7"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 08 21:15:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 21:15:24 2016 +0000"
      },
      "message": "Merge \\\"Camera service: Trust telephony service to forward client UIDs.\\\" into nyc-mr1-dev\nam: 24edc3b919\n\nChange-Id: Iabe7af8fc708ee10a4aa36b5bf9fa13903601777\n"
    },
    {
      "commit": "24edc3b919777167c7f5c2a356c972d0ecbfd9b7",
      "tree": "87c52952873bb90f165805cef4f12a8c5feb0ed3",
      "parents": [
        "ed61dd87524387e9121bbf9633674ebd155ba85f",
        "af9d030e075e659e9f50fdd143aa83459a7795e2"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Jul 08 21:02:49 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 08 21:02:51 2016 +0000"
      },
      "message": "Merge \"Camera service: Trust telephony service to forward client UIDs.\" into nyc-mr1-dev"
    },
    {
      "commit": "af9d030e075e659e9f50fdd143aa83459a7795e2",
      "tree": "8fccc7bc56b932c75a53dad67d9361f283ced88b",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 29 14:40:10 2016 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 08 11:28:17 2016 -0700"
      },
      "message": "Camera service: Trust telephony service to forward client UIDs.\n\nFor video telephony use cases, trust callers from the telephony\nservice to forward the true client UID in the connect calls, so\nthat it can be verified for access.\n\nBug: 27616192\nChange-Id: Icd3ff4f7c8686f74a0677f54d49579b95c69037e\n"
    },
    {
      "commit": "54a4d67ae524eee37c1a2b2220d8e3d36b0c87e4",
      "tree": "0e139f898a000ac61ca3bd029aaf99158f961448",
      "parents": [
        "b44eb7edc85ad6e5305a6f582ea28e6988556744",
        "a1cad728da6462444bac316844e3cc0b3ddb2db5"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 08 17:28:35 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 17:28:35 2016 +0000"
      },
      "message": "Merge \\\"Camera1: JpegProcessor: Do not lock until we have to\\\" into nyc-mr1-dev\nam: a1cad728da\n\nChange-Id: I20fda033f58fdfeeebf983bb7b2f60d7533d8df3\n"
    },
    {
      "commit": "8e73af9bcea96bc90afa7451c6014333fc51b655",
      "tree": "f126561d5e3b0dfa0d97df586fb6799909903e0c",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 07 17:44:22 2016 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 07 17:44:22 2016 -0700"
      },
      "message": "Camera1: JpegProcessor: Do not lock until we have to\n\nJpegProcessor::onBufferReleased is fired for both successful and failed\nJpeg captures, but only cares about the failures.\n\nIn success cases, onBufferReleased is always fired some time after\nonFrameAvailable, and sometimes the thread scheduling pushes\nonBufferReleased to be so late that preview restart has started, which\ncan cause a deadlock with onBufferReleased acquiring locks in the\nopposite order that preview startup will.\n\nTo fix, move the JpegProcessor mutex acquire to only happen in the error\ncases, in which case onFrameAVailable will not have fired, and the\ncamera state will still be STILL_CAPTURE, not STOPPED or mid-preview\nstartup.\n\nBug: 29524651\nChange-Id: I3f103e070c3b39c38117b91824cd79c5dfc757ac\n"
    },
    {
      "commit": "c4c56c41cf0962ccbf70dbbedf5130e1e98d5218",
      "tree": "a314fc37a151137d7f0e97c744989c9c7545c8f0",
      "parents": [
        "564dbb409b81d491eb7fb9d13d29c7fb1d861de3",
        "879234b240d47843a922d7b31ba90d99aea4a0ee"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 01 23:08:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 01 23:08:22 2016 +0000"
      },
      "message": "Merge \\\"Camera: API1: Improve ZSL mode activation heuristics\\\" into nyc-mr1-dev\nam: 879234b240\n\nChange-Id: I26efe76186d552ea92f0d98d1f2ae7ddf3e03822\n"
    },
    {
      "commit": "c451d0f8098c9efd21d796e32f739af1915f9aba",
      "tree": "73246c15eba4cb5db8604476af93d4f4ac8ba227",
      "parents": [
        "bb3bee86d56930752cfef5197cd67c4495a946e6"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jun 30 17:17:35 2016 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 01 14:31:50 2016 -0700"
      },
      "message": "Camera: API1: Improve ZSL mode activation heuristics\n\n- Don\u0027t engage ZSL if picture size is too small\n- Don\u0027t engage ZSL if picture size matches preview size\n- Include ZSL choice in dumpsys\n\nBug: 29620318\nChange-Id: Ie8e0c5a9e1ed9f177d701f22996c4c1f4b81a71e\n"
    },
    {
      "commit": "acd69cc45687d283f0f47c68485eacbe5d774de7",
      "tree": "31fb6005163aa6494d5db23857fe685dd262d648",
      "parents": [
        "620d94b8c9866d168569814a90b978c517a02a38",
        "fe82275a06f0ace675482b23ee2cb685d2628af1"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 29 00:57:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 29 00:57:06 2016 +0000"
      },
      "message": "Merge \\\\\"Camera3Device: Correctly shut down abandoned streams\\\\\" into nyc-dev am: b889242aff\nam: fe82275a06\n\nChange-Id: Id93546464b95e04c5024525e66544f2bb5cb9e35\n"
    },
    {
      "commit": "b461a998a5e5f69790748e50d8e75d25301dd32a",
      "tree": "0d55e3b755548ec133b526d40a8cea793f6ae887",
      "parents": [
        "c58f76670d68e57ff036cda3b4293a58b210a278",
        "b889242affec0f669408f2ad58bd7fb3d44a05a2"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 29 00:54:38 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 29 00:54:38 2016 +0000"
      },
      "message": "Merge \\\"Camera3Device: Correctly shut down abandoned streams\\\" into nyc-dev\nam: b889242aff\n\nChange-Id: I18f7dc2b363856e7709782da4ec2fdd431bde52e\n"
    },
    {
      "commit": "fe82275a06f0ace675482b23ee2cb685d2628af1",
      "tree": "eb2270d84bdb4ba685ff8bf9cd11d195babb85e5",
      "parents": [
        "fd75b28a114aeb5f4c02a3c5c8f41fc80051b354",
        "b889242affec0f669408f2ad58bd7fb3d44a05a2"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jun 29 00:54:38 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jun 29 00:54:38 2016 +0000"
      },
      "message": "Merge \\\"Camera3Device: Correctly shut down abandoned streams\\\" into nyc-dev\nam: b889242aff\n\nChange-Id: I50fd0619dec5488dbeadb903b95e5bd4e5980f61\n"
    },
    {
      "commit": "ff51b47dae1c236291a0508b29e8f4e7d0780761",
      "tree": "7388d7ab90032db64771e2f2d30bf8afb650396b",
      "parents": [
        "6e70614750e8100f86fb4cb0f010b49aef39b3a1"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jun 28 15:26:19 2016 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jun 28 15:26:19 2016 -0700"
      },
      "message": "Camera3Device: Correctly shut down abandoned streams\n\nIf a stream was abandoned (consumer died), the stream teardown would\nterminate early. Update teardown conditions to complete even for the\nabandoned state.\n\nOne consequence of this is that the buffer manager never received an\nunregister call for the stream, leading it to error out when trying to\nremove buffers from it.\n\nAlso switch to STATE_ABANDONED in case of an error detaching a buffer,\ninstead of the error state.\n\nBug: 29778464\nChange-Id: I44de69773e8bbf9ebe83207498d6ee0674ed91bf\n"
    },
    {
      "commit": "4abfb3ba062fdb402e6b04c26a79ecd8f0e8ac25",
      "tree": "67d67e49d27b3283b952c8c85633e80164c63029",
      "parents": [
        "ead8201f18ced9e5c1e89243426206fe331d91bc",
        "7b171a9e7be64e9881ed03baad1422d75ca768a4"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Sat Jun 25 00:41:07 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 25 00:41:07 2016 +0000"
      },
      "message": "Camera3: log a warning when frame drop occurs\nam: 7b171a9e7b\n\nChange-Id: I96c84451ce70eff2d2aeeea03e9a3ede6b90d178\n"
    }
  ],
  "next": "7b171a9e7be64e9881ed03baad1422d75ca768a4"
}
