)]}'
{
  "log": [
    {
      "commit": "e7cb781cb8b54f5fb27db05c8b876c9de53f9de2",
      "tree": "69c686bb70393b7fbf230cd00745bc173459b4e0",
      "parents": [
        "0b38a6b7ae3a797bcd383119f9eedd6aa4df4bbf"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 19 19:23:50 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 19 23:10:35 2017 -0700"
      },
      "message": "Convert libcamera_client to Android.bp\n\nSee build/soong/README.md for more information\n\nTest: m -j checkbuild\nChange-Id: Ie3a82e929ea1e2c271e362bf0fa85f79fa9e9004\n"
    },
    {
      "commit": "0b38a6b7ae3a797bcd383119f9eedd6aa4df4bbf",
      "tree": "151d10208e5bc0d1f15f76446db73dfe6c85bb71",
      "parents": [
        "6f2e6b252464097cff52f4a8f77cbad1001bfa3a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 19 19:49:08 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Apr 19 20:39:59 2017 -0700"
      },
      "message": "DO NOT MERGE: Move camera headers to camera/include\n\nIn preparation for moving libcamera_client to Soong, this is a backport\nof the camera portion of the change to move headers from include/ into\nthe appropriate directories.\n\ninclude/camera -\u003e camera/include/camera\n\nAdds a symlink from the old location to the new one.\n\nBug: 33241851\nTest: mmma -j frameworks/av/camera\nChange-Id: Ic508c2d0100f4e84b63e745d50eca1402b6fed6c\n(cherry picked from commit d008fd1e4f4cadd300355ece1547ec56d80227dc)\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": "02bf03287652923b5bb5316667b065423565d6b4",
      "tree": "37fac61e840805769bd1c7ea8030390122a624cd",
      "parents": [
        "d56db1d2bee182d1851097a9c712712fc094d117"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Feb 18 12:41:10 2016 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 02 10:27:58 2016 -0800"
      },
      "message": "Camera: Clean up warnings and set -Werror\n\n- Also fix error logging template inconsistency\n- Also add a few error handling cases into camera2 NDK\n  to deal with previously-ignored error codes\n\nBug: 27149500\nChange-Id: I8f1f4c72252dd48d652f24b595b642199f20c327\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"
    },
    {
      "commit": "6773d4777f4ccbbe6377e4ae1b42c117066ae6ba",
      "tree": "86b675cb54a819800d5bae2d50f6f910d4adb90d",
      "parents": [
        "98a668f6ea51e4d894d2ebb61a0e18287fb14008"
      ],
      "author": {
        "name": "Praveen Chavan",
        "email": "pchavan@codeaurora.org",
        "time": "Wed Jan 13 01:24:30 2016 -0800"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Tue Jan 26 13:09:16 2016 -0800"
      },
      "message": "camera: Add support to pass native handles across binders\n\nIf the video buffer contains a native handle, serialize and\ndeserialize it properly.\n\nAuthor: spodder@codeaurora.org\nBug: 26268807\nChange-Id: I1905be81e2045667e00c95ab75d1bf144756b894\n"
    },
    {
      "commit": "2823ce0ce6f9d508a07de20912c93cce9165027f",
      "tree": "8cba3b9c036b486e69578d13d8a76dcc77c5f7a7",
      "parents": [
        "6267b539d0d1ee7118aafd976d75cb8db397bc24"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Tue May 19 17:25:13 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed May 20 11:43:11 2015 -0700"
      },
      "message": "camera: Add AIDL interface for CameraServiceProxy.\n\n- Adds an AIDL interface to allow the proxy camera service\n  running in system server to accept RPCs from the camera\n  service running in mediaserver.\n- Request an update to the valid user set from the proxy\n  camera service when mediaserver restarts to initialize\n  properly + avoid DOS after a crash.\n\nBug: 21267484\n\nChange-Id: Ib821582794ddd1e3574b5dc6c79f7cb197b57f10\n"
    },
    {
      "commit": "9efdf956cc2eef63fef609375901d6c8df6351b6",
      "tree": "4e7cfe7a780397d9578bd7860023168ea62519a5",
      "parents": [
        "514d7af22c5d6526309e71fadcff42b072c30241"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Mar 18 23:11:57 2015 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Mar 20 22:34:54 2015 -0700"
      },
      "message": "camera2: Remove ProCamera.\n\nBug: 19186859\nChange-Id: I4aaadb53db65b479f92cbb3c05329d1e40317900\n"
    },
    {
      "commit": "b97babb8c08969b55af3b6456d15f764c8873d3f",
      "tree": "e972ec2e9ff83219464a753f4298aa37c3220e55",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Mar 12 13:42:44 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Mar 18 14:15:12 2015 -0700"
      },
      "message": "Camera: plumbing rotation field through\n\nChange-Id: I0f4343a0bfa7bf09ba887c78a1da1c08daa35333\n"
    },
    {
      "commit": "0b88a62d4d5ac1e515721e587cdf9bcec191812b",
      "tree": "fed446ae00af008008f80041651adb1e0af319ae",
      "parents": [
        "475da7ef08c05a482ced8d318832cf5aa1141aff"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Mar 18 18:15:23 2014 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 18 16:52:27 2014 -0700"
      },
      "message": "camera: Fix setParameters for Preview FPS single/range values\n\nAs a workaround, duplicate CameraParameters into CameraParameters2 to\nprevent ABI break for some camera HALs that directly link into\nCameraParameters.\n\nCameraParameters2 implements the real fixes needed in the framework,\nwhile CameraParameters is left in to satisfy older camera HALs.\n\nBug: 12609188\nBug: 16654949\nChange-Id: I82ea6f5de2183dd046d4bf5683600c97f37ab4da\n"
    },
    {
      "commit": "5698d4461a260dbf208484383f692b03c6473e74",
      "tree": "d29204e288b8c4c1b9b7627f9e7b33a8ea6cf01e",
      "parents": [
        "e580006cd0067109189975c56395d29309d49883"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed Jun 18 10:39:40 2014 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Mon Jul 14 22:13:45 2014 +0000"
      },
      "message": "camera2: Set orientation flags for hardware composer.\n\nBug: 15116722\nChange-Id: I3fcc9aea38afcbd665f86c511a9929fe9a6a3a8f\n"
    },
    {
      "commit": "b2119af7f4ced0ecfefd4c7388f86b4e3a3ea7d8",
      "tree": "a97770362fc690d625a0383597cb057d48737876",
      "parents": [
        "7ac0039611ea7ea18f9545f96a8f5cb31dcdebe5"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri May 09 19:57:56 2014 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Wed May 21 18:14:41 2014 -0700"
      },
      "message": "camera2: Update CameraService for HAL1 shim.\n\nUpdates the camera service to handle shim connections.\n\nChanges include:\n- Adds begin/end configure binder calls.\n- Adds cache for shim client static camera metadata.\n- Implements basic getCameraCharacteristic functionality for shim clients.\n\nBug: 15116722\nBug: 15117269\n\nChange-Id: I510c5888ca15f8e7d3b8ed1680ff1c7f8f514744\n"
    },
    {
      "commit": "9181b9f4bb53af203c090eff6d1af67d1f7c8770",
      "tree": "52880a0efb8608a9ceb7649bc281e14b9a510a4f",
      "parents": [
        "5e4c4f12337ff4d7ceb105bcd441bb7aea6ab070"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon May 12 10:33:51 2014 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon May 12 12:06:50 2014 -0700"
      },
      "message": "Camera: Don\u0027t enable log spew by default for eng build\n\nAlso replace assert with LOG_ALWAYS_FATAL_IF.\n\nChange-Id: I528b97d9bc7a93dc3575ded28f6bf7e294d0a1e6\n"
    },
    {
      "commit": "f81648ec38ff63f1f35516fa27c1c24d846e9ba5",
      "tree": "826a0e862b52bbbe22586c08693569dee723f5ff",
      "parents": [
        "fa366b2a32294ea22bf7b6f237cdbbd715cbbeb9"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Apr 17 16:14:57 2014 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri May 02 20:33:45 2014 -0700"
      },
      "message": "camera3: Update CameraMetadata vendor tag handling.\n\nBug: 12134423\nChange-Id: I97dc955ee9dd78ace93a7946296d6d9b0e407d43\n"
    },
    {
      "commit": "6770260f83f5576b041b7b3a2536d082a631f9b0",
      "tree": "afcf4bf640ea8ad973e2e613d4d5fee2e21377d3",
      "parents": [
        "4764324d2704f1b08bb7407014bf203924ff2363"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Sat May 03 00:28:33 2014 +0000"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Sat May 03 00:28:33 2014 +0000"
      },
      "message": "Revert \"camera3: Update CameraMetadata vendor tag handling.\"\n\nThis reverts commit 4764324d2704f1b08bb7407014bf203924ff2363.\n\nChange-Id: I86d7fcc11423502b73fab2a82af6aa89804f0b76\n"
    },
    {
      "commit": "4764324d2704f1b08bb7407014bf203924ff2363",
      "tree": "9aefad4eac4e67affaf093ec293fb7e0f95ba95e",
      "parents": [
        "32fa3c6fab55b075c916f4dad38e42e239bb7813"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Apr 17 16:14:57 2014 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri May 02 15:22:25 2014 -0700"
      },
      "message": "camera3: Update CameraMetadata vendor tag handling.\n\nBug: 12134423\nChange-Id: I1d1be6792b6a4c9f08e042a8b2c89146bde5665e\n"
    },
    {
      "commit": "cb0652e5a850b2fcd919e977247e87239efaf70e",
      "tree": "bdba4ac95dedd4ad9be77b9f5a86e147c11224f3",
      "parents": [
        "d27368f7d28813f7dad37fc31940c822df80e68e"
      ],
      "author": {
        "name": "Jianing Wei",
        "email": "jianingwei@google.com",
        "time": "Wed Mar 12 18:29:36 2014 -0700"
      },
      "committer": {
        "name": "Jianing Wei",
        "email": "jianingwei@google.com",
        "time": "Thu Apr 10 11:54:08 2014 -0700"
      },
      "message": "CameraService: trigger appropriate callbacks for burst capture.\n\n* Instead of tracking CameraMetadata only, now we track both\nCameraMetadata and CaptureResultExtras, which is not part of\nthe HAL metadata. This will enable the correct callback of\nonCaptureStarted and onResultReceived given burst requests.\n\n* Get last frame number in reply when submitting requests,\ncanceling requests, and flushing device. For repeating requests,\nthis frame number is the last frame number of the previous\nrequest. For non-repeating requests, this frame number is the\nexpected last frame number of the current request. The goal\nis provide frame number to Java side in order to trigger\nonCaptureSequenceCompleted correctly.\n\n* Fix notifyError so that onDeviceError can be called correctly.\n\nBug: 10749500\nChange-Id: I2f3dda6c530090055d4a2ff9f0f087bbbe8d9257\n"
    },
    {
      "commit": "d1176ef16677b6c94fb893edb6a864cdccc0b190",
      "tree": "8cc18e17c4e32633d20e8c2b7fc9e397cc1791ac",
      "parents": [
        "3a005b3b19b750afe24577ae322aff4602ca2740"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Feb 21 10:51:38 2014 -0800"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Mar 13 12:09:22 2014 -0700"
      },
      "message": "camera3: Pass vendor tags through binder.\n\nBug: 12134423\n\n- Adds a class for parceling vendor tag definitions.\n- Passes vendor tag definitions to clients of the camera service.\n- Switches over to new vendor tag mechanism when reading from HAL.\n\nChange-Id: Icef3fe9e67160767bdb8244ac49c85b68b497123\n"
    },
    {
      "commit": "7b82efe7a376c882f8f938e1c41b8311a8cdda4a",
      "tree": "d7ed69f0a495bc1a873a285ba11e72a9867c5565",
      "parents": [
        "d054c32443a493513ab63529b0c8b1aca290278c"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Jul 25 17:12:35 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Jul 30 10:58:44 2013 -0700"
      },
      "message": "Camera: Rename new API to camera2, rearrange camera service\n\n - Support API rename from photography to camera2\n - Reorganize camera service files\n   - API support files to api1/, api2/, api_pro/\n   - HAL device support files into device{1,2,3}/\n   - Common files into common/\n   - Camera service remains at top-level\n\nChange-Id: Ie474c12536f543832fba0a2dc936ac4fd39fe6a9\n"
    },
    {
      "commit": "e7ee7637747371635a85fedd24d2190bb1f38651",
      "tree": "fbae6cce035752d5386260deb4bf0222b6204ac3",
      "parents": [
        "b3570568b3f37b3f7018257ece53cbc009b91407"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Jun 11 18:10:18 2013 -0700"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Jun 20 20:31:30 2013 -0700"
      },
      "message": "Initial implementation of android.hardware.photography.CameraDevice (service)\n\n* Verified preview streaming requests\n* Other things *should* work but unverified / unimplemented in client side\n\nMissing:\n* CameraService needs to return static camera info metadata\n\nBug: 9213377\nChange-Id: I71568560fcf18d0e2b408ed1c4d0066647314868\n"
    },
    {
      "commit": "da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6",
      "tree": "67aa5a912048834766759d1842f7e54a20f74481",
      "parents": [
        "ec77122351b4e78c1fe5b60a208f76baf8c67591"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "bfc9915f482520eb9676c6d2dbf7f1ac078d937d",
      "tree": "1353c3f2f63777397770edfd1f146c691e5684e2",
      "parents": [
        "3fa4891f54bbfdbe8ee652930d22c96639964eff"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 27 12:55:20 2013 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Thu Feb 28 15:55:15 2013 -0800"
      },
      "message": "Camera: Drop ProCamera connections when a Camera connection happens\n\n* Also adds an ICameraServiceListener with available/not available statuses\n\nBug: 8291653\nChange-Id: I24680f1a2dc109510caf451cf7c7bd180b670d84\n"
    },
    {
      "commit": "c073ba525404f3416c2824c435d3d926a9892f1b",
      "tree": "f9fa36f1473054c5098bffa3926be9d2cbf6bd6f",
      "parents": [
        "b39f30b0a4902ea0f28454885785da4b2629fe25"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Feb 26 14:32:34 2013 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Tue Feb 26 18:54:03 2013 -0800"
      },
      "message": "camera_client: refactor Camera/ProCamera commonalities into BasicCamera\n\nChange-Id: Ie10a4094522d49683657665fe94ab0b7ccd280e9\n"
    },
    {
      "commit": "634a51509ee50475f3e9f8ccf897e90fc72ded31",
      "tree": "5d9fc437299a8b5adc391eb721d55c9df00afc87",
      "parents": [
        "1d88023e1de6b9f370eb4be944dd9c4480d01f11"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 20 17:15:11 2013 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Feb 22 10:50:14 2013 -0800"
      },
      "message": "Camera: Add ProCamera private binder interface for an API2-light functionality\n\nChange-Id: I2af7a807c99df75ea659e6e6acc9c4fca6a56274\n"
    },
    {
      "commit": "1d88023e1de6b9f370eb4be944dd9c4480d01f11",
      "tree": "74f8b58c828f3045acf3ab8cb9d8f92046685fd8",
      "parents": [
        "fc42642ab78da5fe25bcbea7a568bf880268a9dc"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 20 16:50:13 2013 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Feb 22 10:50:14 2013 -0800"
      },
      "message": "Camera: Add unit test infrastructure for libcameraclient\n\nChange-Id: I957538663ae8332d26f3640c63a75efc79f4ac5c\n"
    },
    {
      "commit": "7efa520c76e6a1f6b3146404cc6aca5a8353583a",
      "tree": "db2c59948bb0c344584706d6b6e36c86a42d9abf",
      "parents": [
        "99c2f923f6b04efffe949d1daf9cb7148e3cc201"
      ],
      "author": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Wed Feb 13 15:53:56 2013 -0800"
      },
      "committer": {
        "name": "Igor Murashkin",
        "email": "iam@google.com",
        "time": "Fri Feb 22 10:50:14 2013 -0800"
      },
      "message": "Camera: Move CameraMetadata.h from service to client library\n\nChange-Id: I940ce86f318f37ae5b73f912a6e589415150125f\n"
    },
    {
      "commit": "5e0067b486c3862316aa1f293cf9690c0cf54bda",
      "tree": "104ac8491b40d6e9d8353322792fb83ce76f4c82",
      "parents": [
        "52f556b976a9caceee183d8af2118ddbee02c70a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8\n"
    },
    {
      "commit": "4ca2c7c913f8bd4ada13aca56d36045d42d1e00f",
      "tree": "d65d0cadafa63bd9ab2aa9e8fbb6704b27a13fbc",
      "parents": [
        "c5a57efb706ec79032fc09c43b16d11ed0876604"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Jun 01 17:22:24 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jun 27 15:44:57 2011 +0800"
      },
      "message": "Add framework support for camcorder zoom.\n\nThe purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to\nallow applications using the camera during recording.\n\nCamera service allows only one client at a time. Since camcorder application\nneeds to own the camera to do things like zoom, the media recorder cannot\naccess the camera directly during recording. So ICameraRecordingProxy is a proxy\nof ICamera, which allows the media recorder to start/stop the recording and\nrelease recording frames. ICameraRecordingProxyListener is an interface that\nallows the recorder to receive video frames during recording.\n\nICameraRecordingProxy\n  startRecording()\n  stopRecording()\n  releaseRecordingFrame()\n\nICameraRecordingProxyListener\n  dataCallbackTimestamp()\n\nThe camcorder app opens the camera and starts the preview. The app passes\nICamera and ICameraRecordingProxy to the media recorder by\nMediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in\nMediaRecorder::start(). After setup, the recorder disconnects from camera\nservice. The recorder calls ICameraRecordingProxy::startRecording() and\npasses a ICameraRecordingProxyListener to the app. The app connects back to\ncamera service and starts the recording. The app owns the camera and can do\nthings like zoom. The media recorder receives the video frames from the\nlistener and releases them by ICameraRecordingProxy::releaseRecordingFrame.\nThe recorder calls ICameraRecordingProxy::stopRecording() to stop the\nrecording.\n\nThe call sequences are as follows:\n1. The app: Camera.unlock().\n2. The app: MediaRecorder.setCamera().\n3. Start recording\n   (1) The app: MediaRecorder.start().\n   (2) The recorder: ICamera.unlock() and ICamera.disconnect().\n   (3) The recorder: ICameraRecordingProxy.startRecording().\n   (4) The app: ICamera.reconnect().\n   (5) The app: ICamera.startRecording().\n4. During recording\n   (1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()\n   (2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().\n5. Stop recording\n   (1) The app: MediaRecorder.stop()\n   (2) The recorder: ICameraRecordingProxy.stopRecording().\n   (3) The app: ICamera.stopRecording().\n\nbug:2644213\n\nChange-Id: I15269397defc25cbbcae16abc071c8349c123122\n"
    },
    {
      "commit": "5f7fcf29a7475a20cf38bf72da67746135d504c3",
      "tree": "f5e03d6a8f7d6b70b91cc95bc2324a1cc6492f10",
      "parents": [
        "f490e1765c44f63bde8e8acd905f36f92a840ddf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 25 18:42:40 2011 -0700"
      },
      "message": "merge libsurfaceflinger_client into libgui\n\nthis is the first step in unifying surfacetexture and surface.\nfor this reason the header files were not moved, as most of them\nwill eventually go away.\n\nNOTE: currently we keep libsurfaceflinger_client.so as an empty\nlibrary to workaround prebuilt binaries wrongly linking against\nit.\n\nChange-Id: I130f0de2428e8579033dc41394d093f4e1431a00\n"
    },
    {
      "commit": "bfa33aae4f54c0020a0568b16a3acb7b30b6ca3d",
      "tree": "3dae4190516dcddec996a2b7c51b5f192c3ed4ca",
      "parents": [
        "5de2001a5c3f854b63dbcea284e02f930881ca75"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Dec 20 11:51:31 2010 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jan 06 13:31:53 2011 -0800"
      },
      "message": "Add camera service support for SurfaceTexture.\n\nThis change enables the use of a SurfaceTexture in place of a Surface as\nthe destination of camera preview frames.\n\nChange-Id: Ic70d404c8fe261e9d5da6f1de93d6babb5b191cb\n"
    },
    {
      "commit": "3cf613507f1e2f7bd932d921a6e222e426fd3be4",
      "tree": "20c9dd57e2227046ab1d6fc1185f4136c6dac12e",
      "parents": [
        "988e3f0b2c74095deae580157c57935a98573052"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    }
  ]
}
