)]}'
{
  "log": [
    {
      "commit": "6baa5de62a91b151af7a19036706b3d45143a32e",
      "tree": "615273d172f64e3e0a3c36a0e2de1a27a67b21d1",
      "parents": [
        "5a68e17d07369a16b16a16dcdc539c293b8c2810"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Dec 06 19:45:24 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Dec 06 19:53:01 2010 -0800"
      },
      "message": "Don\u0027t drop video frames but to release them.\n\nbug - 3259009\n\nChange-Id: Ib7634f10a7fe7b7ce7014b79b07957d194bae1a7\n"
    },
    {
      "commit": "e4db265e478bdac2381d85cf3dd41bbda14271b4",
      "tree": "9f99fa66754dea7d1a1d77742ddda06f63b3576b",
      "parents": [
        "32cb1ba657a1094bb815f4d39f3e4bf12ce8437e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 23 09:11:35 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 24 13:35:31 2010 -0800"
      },
      "message": "Revert \"Temporary workaround for issue 3187563\"\n\nThis reverts commit 065299b58d1c00cd24e442fa192561decf7b1fec.\n\nThe work around for issue 3187563 is not needed any more since the new kernel\nDMA driver implementation (commit 7953250be7c9a1c3417e21b20032b571d495d218)\nfixes the root cause.\n\nChange-Id: Ibaac2826b63c8e5825ae2e5cab2fb2f0e51ab7b4\n"
    },
    {
      "commit": "e3aac34f9e0d825aaad597f70e2b3dcb615ef313",
      "tree": "0f7f64c156d4690c9e86768ef19920ba7e422a41",
      "parents": [
        "b50a8033f1c7c2b58913212825f9200f1a9e5652"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 11 16:47:38 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 11 16:47:38 2010 -0800"
      },
      "message": "Temporary workaround for issue 3187563\n\nThe audio HAL does not always handle properly simultaneous input and output stream\nstate changes. This happens in particular when starting video record because output\nstream starts and stops while input is active.\n\nTemporary disable the video record jingle the time the audio HAL issues are solved.\n\nChange-Id: I3b923d81af543a335deae9e22d7f396bb5791d91\n"
    },
    {
      "commit": "e09591eff55fdff1868b32c3e046c62f800330fc",
      "tree": "a426ffeb610452b7020a7805f7a8a729b36f5b17",
      "parents": [
        "9065ce6207730f55566eb3b78f9b487b1a4502b6"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Oct 14 20:17:44 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Oct 25 15:02:44 2010 +0800"
      },
      "message": "Mirror the camera preview if the camera is front-facing.\n\nbug:3095272\nChange-Id: Ib1c1d1edc06a33e9d4d2dcb42bc1dd2c25b1310c\n"
    },
    {
      "commit": "e2ad6734eccc4b9ea7857c747ff9469a9c11ba09",
      "tree": "adefb903549a218f19eb6f8a624bf532e6fa7580",
      "parents": [
        "f705b5aa8c3b319f7b49f9ea46207187278076f9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 18 20:42:51 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Oct 19 23:07:08 2010 -0700"
      },
      "message": "Camera framework change required for 0-memcpy recording\n\nbug - 3042125\n\nChange-Id: I46eb7a10b5394086b353fd73e4503beceeed76f1\n"
    },
    {
      "commit": "012716a857641a977afd16ff6be4bf66fc403884",
      "tree": "99310083065ae33d75b6b5c87a45a9b2dab096fc",
      "parents": [
        "23d2071ab44d7b5e3b16e8a81e11884faf01092f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Oct 08 22:04:43 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Oct 12 15:52:44 2010 +0800"
      },
      "message": "Fix camera display orientation.\n\nbug:3036262\nChange-Id: I6fc3dc381fcfaceba09fd5bd14afb85045b3d676\n"
    },
    {
      "commit": "b36f2df1daf7e733be7c51f93792f8fc4252544c",
      "tree": "67cc64d0fd46312a304aafd24cdd1167d793c919",
      "parents": [
        "214a2bdcf6f8f26a0218f2d7a8d822c7b3a71d03",
        "2c423a4dc0988e3195c781d56f119514789b604b"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Sep 27 20:50:22 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Sep 27 20:50:22 2010 -0700"
      },
      "message": "resolved conflicts for merge of 191a25e1 to master\n\nChange-Id: I6f4940e337a992bf84e50bc1d22432593937499c\n"
    },
    {
      "commit": "4a73f3da3501db6e95473a4a653d6319c6d618e2",
      "tree": "0083cf53310b1a1ebf15563cf2782c350afcfd3d",
      "parents": [
        "e2dc4aa0578dea9ab8c13ea4b69b7e6d0d1711d8"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 23 17:17:43 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Sep 27 11:49:56 2010 -0700"
      },
      "message": "The old overlay should be destroyed if orientation changes.\n\nPreviously the orientation was wrong after suspend and resume.\nWhen the camera app is resumed behide the lock screen, it\norinteation is portrait. When users slide to unlock the screen,\nsurfaceChanged is called and the orientation is landscape.\nThe camera app stops the preview, sets the display orientation,\nand starts the preview. Overlay should be destroyed if the\norientation has changed.\n\nbug:3031640\nChange-Id: I38b527f9ea78c91b538463292152c023383b4695\n"
    },
    {
      "commit": "3b7b358d1a45844ca427626554ff81f472fd1583",
      "tree": "628389e34737e14cefb22954d66f4e9208bc097f",
      "parents": [
        "b5ca4618a722a21f084fe8bfc1c2992749ccd3f0"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Sep 14 16:49:08 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Sep 14 16:49:08 2010 -0700"
      },
      "message": "Added command type to play recording sound.\n\nAdded CAMERA_CMD_PLAY_RECORDING_SOUND command type to play recording\nsound through sendCommand. This is currently needed by time lapse\nrecording using still mode capture, which disables the shutter sound\nbut needs to play the recording sound.\n\nChange-Id: I376aa40f45b6064fd862abc065456b06fc338020\n"
    },
    {
      "commit": "b5ca4618a722a21f084fe8bfc1c2992749ccd3f0",
      "tree": "51ee3a6bdcb6301db5b34168a105409f2d4cf4a6",
      "parents": [
        "d20b4cfde2848052cf93ed13df14d75347ec64fd"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Sat Sep 11 19:31:10 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Sep 14 13:57:59 2010 -0700"
      },
      "message": "Adding enable/disable option for sendCommand()\n\n- Added enum CAMERA_CMD_ENABLE_SHUTTER_SOUND which corresponds to\n  command type for enabling/disabling shutter sound.\n- The implementation checks if it is legal to disable shutter sound.\n  If it is, then any process can disable the sound. If not, then only\n  the mediaserver process is allowed to do this. Currently time lapse\n  capture needs this functionality to disable shutter sound when still\n  mode is used to capture time lapse video.\n\nChange-Id: Id147a3bcc6a345c2c6a6d52bf98fd8292386bb19\n"
    },
    {
      "commit": "0667de7038238c31af77865eb6d83c5ae9ca1b1e",
      "tree": "272f8749351c143f79d995bd1311c60eddb980d6",
      "parents": [
        "5de4999e6dd8a3f2740d20e30e8a3fccdcb76362"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Sep 03 16:40:32 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 09 16:23:35 2010 -0700"
      },
      "message": "Only enable CAMERA_MSG_PREVIEW_FRAME when necessary.\n\nNow camera driver uses ANativeWindow for display.\nCameraService should not request preview callback from\ncamera hardware if applications have not requested it.\n\nbug:2951018\nChange-Id: I85f74ea4a61104feca018867bc9d6dfe3a9479f5\n"
    },
    {
      "commit": "3abe8d29864d3e8a9f40be43e5faa10e57a4fac5",
      "tree": "c18a7deca9573c4284349b778d4c7a770231cc78",
      "parents": [
        "3ddc7c3f56c6657809764d56d36948dda381d9fb"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 31 17:08:58 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 31 17:18:38 2010 -0700"
      },
      "message": "Remove setPreviewDisplay in CameraService::Client::~Client().\n\nmSurface is released in destructor and setPreviewWindow(0) is\ncalled in Client::disconnect(). setPreviewDisplay is not needed\nin destructor.\n\nbug:2964479\nChange-Id: I329901659a2af407816c34e02f37143b28183a89\n"
    },
    {
      "commit": "8f3e6aa2951358c0dea593a2448171a3f97cc0eb",
      "tree": "29073542e3377ad44789a7d97bc66f9224f8c552",
      "parents": [
        "4b79168835965cf0fc41ebe2a367e22b4cb20d08"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 23 17:23:08 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 23 17:25:55 2010 -0700"
      },
      "message": "Add the setPreviewWindow camera HAL API to the camera stub.\n\nChange-Id: Ic669f9d5f5ae8f1fe5bd055f55aa4a18fa6d84cd\n"
    },
    {
      "commit": "4b79168835965cf0fc41ebe2a367e22b4cb20d08",
      "tree": "d70a673d243fdc72171ecbcf51094554f947987a",
      "parents": [
        "82252a9a732c7325166c36589c1dfa9f2cb8ac04"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Aug 10 16:37:53 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 23 14:31:30 2010 -0700"
      },
      "message": "Change the framework to use the new camera preview path.\n\nThis change makes the camera HAL interface take an ANativeWindow interface from\nwhich all the camera preview buffers will be allocated.  The framework code\nrunning in application processes now passes a Surface object rather than an\nISurface to the camera server via Binder when setting the preview surface.  The\ncamera server then forwards that Surface object (which implements the\nANativeWindow interface) to the camera HAL, which uses it to communicate with\nSurfaceFlinger to allocate the camera preview buffers.\n\nChange-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f\n"
    },
    {
      "commit": "b7a67942823e8339eb298238f117aaa6d7b63111",
      "tree": "cd07930a4e5c17f61ae9b06f96fbfa4debde66cc",
      "parents": [
        "f1cca5ade334859bf23cf8aa5e73bad653681c8c"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 17 15:45:37 2010 -0700"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 19 21:44:06 2010 -0700"
      },
      "message": "Handle the camera open failure better.\n\nCheck if camera hardware is NULL to avoid mediaserver crash.\n\nChange-Id: Ibde0251f30bdb6b36a5d5380222d7be25ec9449c\n"
    },
    {
      "commit": "9da2070b6d6d20550de7da61478c325f0928d020",
      "tree": "f1548891fab33ca03923f70cf25a2ffeab50be82",
      "parents": [
        "3be9523784cc4038f601e510faee595117cdacb3",
        "efe6039f71e9bac2138003b3287e94a7ab7e5c55"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "message": "resolved conflicts for merge of 27eecb70 to gingerbread\n\nChange-Id: If064f2f4950fc1a4ff38e6927fe2120af76b26f1\n"
    },
    {
      "commit": "5462fc9a38fa8c9dff434cd53fa5fb1782ae3042",
      "tree": "76ee9bdf73fb2460d074025ed451e56f8ec34a11",
      "parents": [
        "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:41:18 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:43:19 2010 -0700"
      },
      "message": "added BinderService\u003c\u003e template to help creating native binder services\n\nChange-Id: Id980899d2647b56479f8a27c89eaa949f9209dfe\n"
    },
    {
      "commit": "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0",
      "tree": "da088916c7cadadcddf47467f20cc8b0b6ff7f41",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    }
  ]
}
