)]}'
{
  "log": [
    {
      "commit": "98eec446ab3318203eff08c361a0f5eb1a953653",
      "tree": "70c0583442e55c6c358aba75d34d4750b67fc33a",
      "parents": [
        "2d8a8cac418a6d7b16348b70f85aca08936cefc1"
      ],
      "author": {
        "name": "atis112",
        "email": "toth.ati13@gmail.com",
        "time": "Sun Jun 30 19:46:32 2013 +0100"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:27 2013 +0000"
      },
      "message": "Camera: Add more htc parameters\n\nChange-Id: Ica43a42f6ec6e25671b22536c768140469fb9824\n"
    },
    {
      "commit": "2d8a8cac418a6d7b16348b70f85aca08936cefc1",
      "tree": "f8c0940de7820e8f614af5d6ad61fb26a86e2bb0",
      "parents": [
        "2c14d32107b3983dd511491c1c67b602dbb485c2"
      ],
      "author": {
        "name": "Daniel Hillenbrand",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Thu Jun 27 17:16:10 2013 +0200"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:27 2013 +0000"
      },
      "message": "camera: add more htc parameters\n\nGoogle Edition\n\nChange-Id: I67968ea749dec0bf3810110f99bccdd3edee3428\n"
    },
    {
      "commit": "8f093d6fe777b9ebbd81387f2b2598cd9747804d",
      "tree": "964abf316b5d76fc0330dbc1b64926cf9e6790f8",
      "parents": [
        "dc3600a0706b57c53785e10736c6ec93f699b94c"
      ],
      "author": {
        "name": "Daniel Hillenbrand",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Sun May 05 15:56:08 2013 +0200"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:27 2013 +0000"
      },
      "message": "camera: fixup htc params\n\nChange-Id: Iee0086e8a7319ada09f5191092c314c099e0d66a\n"
    },
    {
      "commit": "dc3600a0706b57c53785e10736c6ec93f699b94c",
      "tree": "367fdccbce7ab51b33d08e456b8213d0d233e5ff",
      "parents": [
        "691b4289fc98c15dcde57a9201f1814a343b1453"
      ],
      "author": {
        "name": "Daniel Hillenbrand",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Sat May 04 19:48:15 2013 +0200"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:27 2013 +0000"
      },
      "message": "[WIP]: camera: add parameters for htc cameras\n\nChange-Id: I1456e5af22d1cb68fd19626a136fef68c5573074\n"
    },
    {
      "commit": "2a1aae0f90b188bcf6fbda17406af7aa046c1fde",
      "tree": "aaefd2bc570cfd853eac903391c9bbe1acf85e82",
      "parents": [
        "1bb22708c5d7e6766b8a4d6e1c45da3ddfff167e"
      ],
      "author": {
        "name": "Arne Coucheron",
        "email": "arco68@gmail.com",
        "time": "Mon Apr 15 05:31:41 2013 +0200"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:26 2013 +0000"
      },
      "message": "Camera parameters for Samsung\u0027s qcom based legacy devices\n\nChange-Id: I8f84e06771338d992521e69704d21cd113201b4b\n"
    },
    {
      "commit": "821695d4f8451c2277fc3d624a4dbce6cba15492",
      "tree": "df7d348044affd567b32869a779740ac86314d67",
      "parents": [
        "7f37b3b4ce2f98576da1d334f1ee5b77dab5e2a8"
      ],
      "author": {
        "name": "Ajit Khare",
        "email": "ajitk@codeaurora.org",
        "time": "Mon Jan 07 23:23:39 2013 -0800"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:26 2013 +0000"
      },
      "message": "libmediaplayerservice: Add new player for DASH\n\n- Add new player factory to support dash playback.\n- DASH urls end with .mpd. When media player receives\n  an url with .mpd, it will use new factory to instantiate the player\n  to be used for supporting DASH playback.\n\nChange-Id: I69e5a08fb2baf89d97b1e0711dbe52a8b1c39c29\n"
    },
    {
      "commit": "3142d888bba540849071804d14e1313271cba56c",
      "tree": "55687bad361c73306185341d6adf10bc74c2e08e",
      "parents": [
        "81c3e81a6e91f1275bd0d0631a5ff2e5d9df8103"
      ],
      "author": {
        "name": "Stefan Ekenberg",
        "email": "stefan.ekenberg@stericsson.com",
        "time": "Mon Aug 20 12:00:26 2012 +0200"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:26 2013 +0000"
      },
      "message": "FM Radio: Add support for FM Radio in Android\n\nCreating interface and framework for using FM Radio\nRX and TX from different vendors.\n\nChange-Id: I1a71aed01bfffdddfabf1cdfbfa3707cb1ed016b\nSigned-off-by: Benn Porscke \u003cbenn.porscke@stericsson.com\u003e\n"
    },
    {
      "commit": "d8d2b3538f357762d5a7979da6aee39710115fcf",
      "tree": "e744bf02bfe68b6c0112775344926ac4426d573b",
      "parents": [
        "ced8df44565281ad1fbea69936b33b36c7e9c447"
      ],
      "author": {
        "name": "codeworkx",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Thu Jan 17 19:51:39 2013 +0000"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:26 2013 +0000"
      },
      "message": "camera: add cityid parameter and getInt64 stub for t0lte camera hal\n\nChange-Id: I28a1a909aa8267ba77c2b44d4191f7a92e8ef533\n"
    },
    {
      "commit": "6b8f36a3c4ae8a9112b15f1505454f8810be8eee",
      "tree": "ae74fbef4f88fa1e93bfdf206a7fddb21ca8e45c",
      "parents": [
        "8eda5d36e132e7d22b0e98186c6c27f582c16a1a"
      ],
      "author": {
        "name": "Steve Kondik",
        "email": "shade@chemlab.org",
        "time": "Wed Jan 09 00:27:31 2013 -0800"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:25 2013 +0000"
      },
      "message": "Fix the build on non-QCOM\n\nChange-Id: Idb8d5c98fbdc01e6063ad0eb224baba66acc813d\n"
    },
    {
      "commit": "8eda5d36e132e7d22b0e98186c6c27f582c16a1a",
      "tree": "980cf463f35acec2893d63f548fd47682fb3652a",
      "parents": [
        "a973a86ec43e9252b110f8ac2ac9685d8214b889"
      ],
      "author": {
        "name": "Emerson Pinter",
        "email": "dev@pinter.com.br",
        "time": "Tue Nov 27 19:52:52 2012 -0200"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:25 2013 +0000"
      },
      "message": "camera: add power mode support\n\nBased on commit 7036d66bec7697160ba1b2e255f1e7fae0c8c435 from CAF,\nbranch ics_chocolate.\n\nChange-Id: I652d63c33db9a8da4a9f8f613be12877d032de37\n"
    },
    {
      "commit": "a6dd01a6f82390a5771089e4092841726dfd4b57",
      "tree": "6ebd7e05ebd1e5491cddf69fe875cd142af6b6e0",
      "parents": [
        "5649c28ed0d241ef63c83f65ae3aa754ff6102dd"
      ],
      "author": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Sep 23 03:36:03 2012 +0100"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:25 2013 +0000"
      },
      "message": "stagefright: OMXCodec: Re-enable OMX.TI.Video.encoder\u0027s quirks\n\nThese have been around since early stagefright, and were dropped for\nJB. Unfortunately, they\u0027re still necessary with for this encoder to\nwork.\n\nChange-Id: I8a251bf195a24b166db7464a90a822d6e69b644d\n\nlibstagefright: Add support for the 720P OMAP3 encoders\n\nBring back some more OMAP code that was removed by Google in JB,\nand a couple of omapzoom patches.\nThis may stop being necessary if TI publishes JB-specific OMAP3\ncode, but as long as we\u0027re using the ICS domx, these need to\nbe here\nChange-Id: Ia29f8c9f9ed769ba07b09c07260486f6502841d6\n\nlibstagefright: Unbreak OMAP4 encoders\n\nThe \"manual\" construction of the h264 codec data is only needed\non OMAP3. Execution of this code on OMAP4 breaks the mpeg4 header\ngeneration\n\nChange-Id: I3ae52f2e685e2d9097796685c98dffa93cfa6430\n"
    },
    {
      "commit": "5649c28ed0d241ef63c83f65ae3aa754ff6102dd",
      "tree": "5a42b6d1e07df6f3d102912a494d18bd5676b33f",
      "parents": [
        "0bb568f14f3441daa038f814b870f6e0e596d2a7"
      ],
      "author": {
        "name": "Emerson Pinter",
        "email": "dev@pinter.com.br",
        "time": "Tue Nov 27 09:13:34 2012 -0200"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:25 2013 +0000"
      },
      "message": "camera: add ISO3200 and ISO6400\n\nThis change adds camera ISO 3200 and 6400, needed by some camera hal.\n\nChange-Id: I65172a7de6554c3c288f0a4153d3fcb432b70db8\n"
    },
    {
      "commit": "0bb568f14f3441daa038f814b870f6e0e596d2a7",
      "tree": "eb6d50adb9e90dc758b21a0ae8f22dfbd140dd60",
      "parents": [
        "4526b34d3b8ea639d0cdd61e15fd9352d7f90d43"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Tue Dec 04 20:57:49 2012 -0800"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:25 2013 +0000"
      },
      "message": "libstagefright: Add support to seek to zero\n\n- Add CAN_SEEK_TO_ZERO flag in MediaExtractor to allow\n  seek to zero, when previous button is pressed, for clip\n  that can\u0027t be seeked.\n\nChange-Id: Ic2761cc5bac2403ee1339da77ad02fde942a3437\n"
    },
    {
      "commit": "bf3be126b86d731e5b394b37c6ed009e806f0eea",
      "tree": "3953bccb0a8a9ad382a802ba967400a0ffbe897c",
      "parents": [
        "23faa62ebed997f737313f996216b0eea749b49a"
      ],
      "author": {
        "name": "Ankit Premrajka",
        "email": "ankitp@codeaurora.org",
        "time": "Mon Nov 21 19:25:02 2011 -0800"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:24 2013 +0000"
      },
      "message": "Camera: Qcom parameters partial rebase\n\nAdd customized parameters for qcom camera features.\n\nSquashed commit of the following submissions to CAF:\n\ncamera: add custom camera parameters to hardware java file.\n\nChange-Id: Ic2b363df6d25a0c3a49aed30e717d10874f533ae\n\nCamera: Add support for wavelet denoise\n\nChange-Id: I97be72615fe5909987ac430034bbdc16f2d20509\n\nCamera : Add support for histogram in frameworks\n\nChange-Id: Ibf751c3b2d488f4be0afaaa3e994372bafeffbe7\n\nCamera: Add ZSL support in framework.\n\nChange-Id: I4e863020d7d407d9c3936beb83dc7abf385c4654\n\nCamera: Add touch AF/AEC support in ICS framework\n\nIn, ICS the old touch AF/AEC functions getTouchIndexAf(),\nsetTouchIndexAf() etc  are no longer valid. Added new functions  to get\nthe center of touched area.\n\nChange-Id: I37d00040f895cd8a4de2e2a438971aa2d9c1a045\n\nCamera: Add support for Red eye reduction\n\nChange-Id: Iada280ac33aee8b1114dc40d8d79e0e47ad5c2fd\n\nConflicts:\n\n\tapi/current.txt\n\nCamera: Enable streaming texture and YV12 feature\n\nChange-Id: I814c92b469e0f25baef0ce80338761d1e6443085\n\nCamera: Add frameworks support for high frame rate\n\nChange-Id: I9722e9b7e61433651ab5f76f76208853eb1fd849\n\nCamera: Simplify ASD menu and best mode menu.\n\nChange-Id: Ia7a1eca9268eec021a6e2c3f7ce2a932e8819d50\n\nCamera : Macro definition change. PIXEL_FORMAT_YV12 to \"yuv420p\"\n\nWhy: CTS testcase is expecting \"yuv420p\" as the format string for YV12 mode.\n\nCRs-Fixed: 328252\n(cherry picked from commit 0a263f67b75497e4b95b9de8c370ed9496ab59ef)\n\nChange-Id: I66f418a52775a969d81bcb332bbe500370e3ab7c\n\nCamera: Changes for face detection\n\nChange-Id: I7b2172e8690d6e23762e42f5888fecbfda15ba61\n\nCamera: Add support for burst count\n\nChange-Id: I4488a5eac1eebb0b5c8e2cc7cbbe7be0c7301be7\n\nCamera: enable HDR feature\n\n(cherry picked from commit e40770bbdadd925fc1e07a08249a15981b961570)\n\nChange-Id: Ie9ca3066e8e53710bf292d047a3724aefc029854\n\nCamera : Add API to find fullsize liveshot support\n\nChange-Id: I3c2fc3578decbe5cf87fded5362f317df0b40b5e\n(cherry picked from commit 65d80f04892776eec1c19c844eacb8c454b4bd1a)\n\nCamera: Set default camera area string\n\nThe default invalid value for KEY_FOCUS_AREA and\nKEY_METERING_AREA is changed to \"(0,0,0,0,0)\"\nCRs-fixed: 334934\n\nChange-Id: I354802c8611ee5c00a591b96b1a1ca04926969cb\n\nCamera: Change the scenemode names in framework\n\nTo comply with ICS API Specification,\nSCENE_MODE_AUTO changed to SCENE_MODE_ASD\nSCENE_MODE_OFF changed to SCENE_MODE_AUTO\n\nChange-Id: I8e744f10c728f469923b09f69d6d64bc5c7c6850\n\nCamera : Framework changes for camcorder UI menu\n\nChange-Id: Iff9e9021da44b67f81a24c828b960113ee249248\n\nCamera : Remove unwanted video resolution in Framework\n\n- FWVGA, WQVGA resolution UI options are removed for camcorder.\n\nChange-Id: If621140966b01dbc8c30a4d161e6771528b8adda\n\nCamera : Enable FWVGA and WQVGA resolutions in camcorder media profiles\n\nChange-Id: Iad9cc33f7b6d8eb7de21df372c016edeef0b99ba\n\nUnlock camera AWB lock only when white-balance is changed.\n\nbug:5633546\nChange-Id: I90bb4b5b445daedf38a64e2f8fb980fc0f0aaa81\n\nChange-Id: Ie3cc15132489502e64321776d49d96846b5705d6\n\nConflicts:\n\tcamera/Android.mk\n\tcamera/CameraParameters.cpp\n\tinclude/camera/CameraParameters.h\n\tservices/camera/libcameraservice/CameraService.cpp\n\tservices/camera/libcameraservice/CameraService.h\n"
    },
    {
      "commit": "906eba9f93019dcaa2c3508d8531582e8e792836",
      "tree": "1ba179464128ba75d22d19e063f8babaab513edf",
      "parents": [
        "dafc0dfb92aa2f817d3a056607537807497f9e9f"
      ],
      "author": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:19 2013 +0000"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:45:19 2013 +0000"
      },
      "message": "exynos4: libstragefright: add support for samsung colorformat/omx/mfc\n\nSource:\nhttp://git.insignal.co.kr/samsung/exynos/android/platform/frameworks/av/commit/?h\u003dexynos-jb\u0026id\u003d1614612f7ca2a00473d202dbedcb135fadc608ad\n\nChange-Id: Ib40b3cfa1480ecbb69831e7967a81f63719e2ff7\n\nConflicts:\n\tmedia/libstagefright/ACodec.cpp\n"
    },
    {
      "commit": "9d29299eeca83005f5624be23c75cf3b097044d5",
      "tree": "beba7d5aec96cf970848993d258a877c7cfeaaf7",
      "parents": [
        "9f12215d4515d90ace36e3a3ac1f9036be4fcb72"
      ],
      "author": {
        "name": "codeworkx",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Tue Nov 27 01:30:33 2012 +0100"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:44:22 2013 +0000"
      },
      "message": "camera: add iso parameter\n\nEnable with BOARD_CAMERA_HAVE_ISO\n\nFrom: jt1134 \u003cjt1134@gmail.com\u003e\nDate: Mon, 17 Sep 2012 22:05:04 -0500\nSubject: [PATCH] camera: add define for ISO settings\n\nChange-Id: I8716a260ad552d3684197237c2055dce129e461e\n---\n"
    },
    {
      "commit": "9f12215d4515d90ace36e3a3ac1f9036be4fcb72",
      "tree": "4e1268b4a8cc682250af89d6ba5c7a0260218201",
      "parents": [
        "1c960844f826584a2967dcdd60f3153fd812e650"
      ],
      "author": {
        "name": "codeworkx",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Tue Nov 27 01:22:13 2012 +0100"
      },
      "committer": {
        "name": "Ricardo Cerqueira",
        "email": "cyanogenmod@cerqueira.org",
        "time": "Sun Nov 03 02:44:22 2013 +0000"
      },
      "message": "camera: add parameters for samsung cameras\n\nFrom: codeworkx \u003ccodeworkx@cyanogenmod.com\u003e\nDate: Sat, 22 Sep 2012 11:36:26 +0200\nSubject: [PATCH] camera: added weather key for samsung cameras\n\nChange-Id: I1c6dc38f548fb3087abbdf7d7f83c39afaa217a1\n---\n\nFrom: Steve Kondik \u003cshade@chemlab.org\u003e\nDate: Tue, 15 May 2012 09:41:02 -0700\nSubject: [PATCH] camera: Add parameters for some Samsung cameras\n\n * Enable with SAMSUNG_CAMERA_HARDWARE\n * Adds anti-shake, metering, and wdr modes.\n\nChange-Id: I080c90e11fcb8fa48900c01a454868f173f61eb0\n---\n"
    },
    {
      "commit": "a6f2c7b1ac67075197ccbaba61e5e23277aab5f7",
      "tree": "f872e4b7570cf2f431cca474e47d9d10c6cbed66",
      "parents": [
        "6a99d2058d0e5afed3643367166abee6b978209f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 18 13:00:29 2013 -0700"
      },
      "committer": {
        "name": "The Android Automerger",
        "email": "android-build@google.com",
        "time": "Sun Oct 20 12:32:53 2013 -0700"
      },
      "message": "Allow releaseBuffer after flush\n\nAfter AudioTrack start checks for pending flush,\nallow releaseBuffer on any previously obtained buffer.\nFor example, this can happen if the resampler has obtained\na buffer but not released the whole buffer yet.\nNote that the resampler will be reading obsolete data.\n\nBug: 11285590\nChange-Id: I0614fbb62e43604aac3089cce4b7797c87a306b5\n"
    },
    {
      "commit": "f8f15b05fe051009945c9042a1a9260280e0feb2",
      "tree": "28fd5dede6b2aae34a9b3b987049f3331ace5037",
      "parents": [
        "787c0d04ac4f9c938a1311f8e30d9d7ac2b8a6da",
        "598de6c701e989385eeffa7c5dfd61f0459a2631"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 17 00:59:33 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 17 00:59:33 2013 +0000"
      },
      "message": "Merge \"Fix race condition in AudioTrack::pause followed by start\" into klp-dev"
    },
    {
      "commit": "598de6c701e989385eeffa7c5dfd61f0459a2631",
      "tree": "090b30e255f0aed57a73ca6c9252e19da162fd97",
      "parents": [
        "014e7fa2e90827d911c37bb0ce4d2e10e14d0bb3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 16 17:02:13 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 16 17:20:11 2013 -0700"
      },
      "message": "Fix race condition in AudioTrack::pause followed by start\n\nBug: 11148722\nChange-Id: Iec88f00c8510363d4418e4b8d5b34feb06ecf04d\n"
    },
    {
      "commit": "cc21e4f1e41dfa17e7e2bef995fcd22c45f6bcd0",
      "tree": "a446f08a1adaf31ef5dddc491c620209176b67aa",
      "parents": [
        "014e7fa2e90827d911c37bb0ce4d2e10e14d0bb3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 16 15:12:32 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 16 15:12:32 2013 -0700"
      },
      "message": "AudioTrack: fix head position after restore\n\nThe head position transfered to the new track\nby restoreTrack_l() must take into account the frames that\nare dropped from the old track to avoid a non recoverable\noffset in the playback head position returned to applications.\n\nBug: 11230062.\nChange-Id: I51143a08b95e8f264ed709ae2054360315f2b8b1\n"
    },
    {
      "commit": "fee4ce338d78eeb58af1f66831ead53322d3859e",
      "tree": "f90931a7c5c4628b0e8e47976d68a9d586802b53",
      "parents": [
        "ea0fadeb5d81ef3cb7f9db458c9033d628bdb86a",
        "e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 07 16:16:06 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 07 16:16:06 2013 +0000"
      },
      "message": "Merge \"Cleanup openRecord error handling\" into klp-dev"
    },
    {
      "commit": "b2d71d3a35de6382096ed688a4cae3bbca3c97bf",
      "tree": "f9e480cf0fa17a8dc7abd0577df1190820c42443",
      "parents": [
        "56ce726019f700a95ce5b45beebceadae4836e30",
        "f1e98d857ec377f2c9b916073d40732e6ebb7ced"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Oct 03 18:33:55 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 03 18:33:55 2013 +0000"
      },
      "message": "Merge \"Camera API 2, Device 2/3: Implement idle and shutter callbacks\" into klp-dev"
    },
    {
      "commit": "56ce726019f700a95ce5b45beebceadae4836e30",
      "tree": "4ad17b9ec996277e80861895fb1b20f2dc408b9d",
      "parents": [
        "a306ee6bc1aef463f8984be26b8a4214490b6c55"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu May 02 16:30:48 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Oct 03 16:12:45 2013 +0000"
      },
      "message": "IOMX: Add prepareForAdaptivePlayback method\n\nprepareForAdaptivePlayback is the fallback mechanism to support\nseamless resolution change for devices that do not support dynamic\noutput buffers.  It is up to the codecs to handle this appropriately,\nbut codecs that do not handle dynamic output buffers would\nrequest enough buffers up to the requested size in this method\nto avoid port reconfiguration on resolution changes.\n\nChange-Id: I58d4aa8ef1359ea3472735bbe9140c3132039b3d\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 10192531\nRelated-to-bug: 7093648"
    },
    {
      "commit": "f1e98d857ec377f2c9b916073d40732e6ebb7ced",
      "tree": "2a435e723f17c0c7b3e6db323d68be6cfb7d5c66",
      "parents": [
        "f05e50eb06d3f70e50fa7f44c1fd32128033b49d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 06 09:32:43 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Oct 02 18:11:21 2013 -0700"
      },
      "message": "Camera API 2, Device 2/3: Implement idle and shutter callbacks\n\n- Update callback Binder interface\n- Rename frameId to be requestId to be consistent and disambiguate\n  from frameNumber.\n- Implement shutter callback from HAL2/3 notify()\n  - Add in-flight tracking to HAL2\n  - Add requestId to in-flight tracking\n  - Report requestId from shutter callback\n- Implement idle callback from HAL3 process_capture_result\n  - Add new idle tracker thread\n  - Update all idle waiting to use the tracker\n  - Add reporting from request thread, all streams to tracker\n  - Remove existing idle waiting infrastructure\n\nBug: 10549462\nChange-Id: I867bfc248e3848c50e71527e3561fe92dc037958\n"
    },
    {
      "commit": "353fb9bf940ee34a3885bc85ec7891228e958a4b",
      "tree": "10970a60eeeef1af0170cab7bf0937a465851c21",
      "parents": [
        "5fd39f777d54368a93fc9d8a6a24da0239d41fcf",
        "6218fdc2bef7b9c912bc4d132c12ee43b7b2dd37"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Oct 01 16:36:52 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 01 16:36:52 2013 +0000"
      },
      "message": "Merge \"MediaTimeProvider support fixes\" into klp-dev"
    },
    {
      "commit": "6218fdc2bef7b9c912bc4d132c12ee43b7b2dd37",
      "tree": "5ef5c0ecca29a36a6ebb3cc8569ff6ef4cac8c50",
      "parents": [
        "3d97e23fcd78f752443cb6c30a1ee39f49f1f987"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 25 08:09:41 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Sep 30 15:12:23 2013 -0700"
      },
      "message": "MediaTimeProvider support fixes\n\nAdd MEDIA_SKIPPED event when resuming at a different time than\nseeked to.\n\nSend MEDIA_STARTED/PAUSED events only when playing (vs. when doing seek\npreviews)\n\nChange-Id: I243ebf054303755ea8863229c3211694f2c204a7\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nBug: 10954008\n"
    },
    {
      "commit": "59fe010bcc072597852454a2ec53d7b0a2002a3b",
      "tree": "b6b42e04a89ead77c9ecd9635a328686a8bb9863",
      "parents": [
        "5d6d86a4d102704f49b9235eaf282c428d7100b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 18:48:26 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 30 12:05:38 2013 -0700"
      },
      "message": "fix volume and effect enable delay on offloaded tracks\n\nVolume: add a method to wake up the mediaserver playback\nthread when a volume command is received on an offloaded track.\n\nEffects: call effect chain process on offloaded playback threads\nasynchronously from writes to allow effect state updates while\nwaiting for async write callback.\n\nBug: 10796540.\n\nChange-Id: Id2747ae88783575d1d7ffd6fc86fbd054ab2c739\n"
    },
    {
      "commit": "2eab94f7dfd41a65e13aca379a1aed97447f8884",
      "tree": "bdd573d7a104c25ad6951dcfd58ee37ff2c03760",
      "parents": [
        "83f400056ac913250f0926326ff78697c68d18a1"
      ],
      "author": {
        "name": "jpadmana",
        "email": "jayashree.r.padmanaban@intel.com",
        "time": "Tue Jun 04 16:08:29 2013 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 16:03:30 2013 -0700"
      },
      "message": "Effects Factory changes for effects offload\n\naudio_effects.conf - commented changes to illustrate the\naddition of Proxy and sub effects to the conf file\n\nAdded an effectFactoryApi - EffectGetSubEffects for querying the\nsub effect descriptors from the factory. This api is used by the Proxy\nto get the sub effects\n\nAdded functions and data structures in factory code for\nloading the sub effects\n\ngSubEffectList - has the Proxies and their corresponding sub effects\n\n- addSubEffect() - reads a sub effect node and adds to the gSubEffectList\n- findSubEffect() - searches through the gSubEffectList to find a SubEffect\n\nBug: 8174034.\n\nChange-Id: Id7f6aa67c41db370d32beaf43a979ba4ac925928\nSigned-off-by: jpadmana \u003cjayashree.r.padmanaban@intel.com\u003e\n"
    },
    {
      "commit": "83f400056ac913250f0926326ff78697c68d18a1",
      "tree": "4dcd3ee8df9d39701190664ce5d0e9b4bb5b7cc9",
      "parents": [
        "5b8ce24b849f6cd5629b4ba508f7c78d6227d250"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 14:53:24 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 16:03:26 2013 -0700"
      },
      "message": "Revert \"Effects Factory changes for effects offload\"\n\nThis reverts commit 284c17e73bbff51cb5b1adcee98386d47733757a.\n\nChange-Id: I31db21e1ad4758b21356bfe4c4c64f15b2da8737\n"
    },
    {
      "commit": "2b59be89dc245b6e2475d9e8b0c5f2392370e71e",
      "tree": "85564dae05e9343c75e9a5d1f54f7efee4b349f7",
      "parents": [
        "d2ac3144e201398340cc5b9bb36e5efe39edd9eb"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Sep 25 10:14:30 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Sep 25 15:36:07 2013 -0700"
      },
      "message": "Camera: Implement getCameraCharacteristics\n\nBug: 10904541\nBug: 10360518\nChange-Id: Ie9ca6b3b0b5f2fe529e6b0decc193096e770a017\n"
    },
    {
      "commit": "e93cf2ca27ae6f4a81d4ef548bbf10a34db6d98f",
      "tree": "4de6f04ad4abc14bb0e777bcb02863196c59e34b",
      "parents": [
        "402dfba6dcd68f5fd8d8921f9751f3e47eb1449d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 24 11:52:37 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 24 12:12:47 2013 -0700"
      },
      "message": "Cleanup openRecord error handling\n\nBug: 10888816\nChange-Id: I84897dd7d30b370640b54e928f230604b873cb68\n"
    },
    {
      "commit": "3d00aa6de95fb46e36f2bab4e3facdf0b96acf06",
      "tree": "1ad12df4c11ca37280cbe6850eed9bff1e0a2f35",
      "parents": [
        "402dfba6dcd68f5fd8d8921f9751f3e47eb1449d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 09:53:27 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 24 11:59:59 2013 -0700"
      },
      "message": "soundpool: allocate shared memory heap by client\n\nCurrent SoundPool implementation allocates the shared memory heap\ncontaining decoded PCM samples in mediaserver process.\nWhen mediaserver process crashes, the shared memory heaps allocated by\nAudioCache cannot be mapped anymore in the new instance of mediaserver.\nThis causes a silent failure to end playback of new sounds because\nAudioFlinger believes the new AudioTracks are opened in streaming mode\nand not static mode: it sees a NULL shared memory pointer when the track\nis created.\n\nThe fix consists in allocating the memory heap in the client process. Thus\nthe heap is not lost when mediaserver restarts. The global memory usage is\nthe same as this is shared memory.\n\nAlso added a way to detect that a shared memory is passed when the track is\ncreated but cannot be mapped on mediaserver side.\n\nAlso fix a crash in SoundPool when ALOGV is enabled.\n\nBug: 10894793.\nChange-Id: Ice6c66ec3b2a409d75dc903a508b6c6fbfb2e8a7\n"
    },
    {
      "commit": "09647d29eaf429ce88c9c9709ff63dee62f2147a",
      "tree": "3626eb231080732d92a0b1bdfbd1710b52e36aa6",
      "parents": [
        "4b701cc041d635e5ec56e382043a4c5d01aedd80"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 20 11:58:40 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 23 15:53:53 2013 -0700"
      },
      "message": "Add support for level measurements in Visualizer\n\nNew commands to set a measurement mode and perform peak + RMS\n measurements.\n\nBug 8413913\n\nChange-Id: Ib25254065c79d365ebb34f9dc9caa0490e2d300d\n"
    },
    {
      "commit": "5a6cd224d07c05b496b6aca050ce5ecf96f125af",
      "tree": "c5d2fe55f0080c9660d283d040616d9a9fb6decc",
      "parents": [
        "a3b97ad288e6808c54c6275eaac1bd53108d8f11"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 09:20:45 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 20 12:22:29 2013 -0700"
      },
      "message": "Fix slow AudioTrack and AudioRecord destruction\n\nThere were two causes for the slowness:\n\nWhen thread was paused, it used nanosleep and sleep.  These usually\nrun to completion (except for POSIX signal, which we avoid because it\nis low-level).  Instead, replace the nanosleep and sleep by condition\ntimed wait, as that can be made to return early by a condition signal.\nAnother advantage of condition timed wait is that a condition wait was\nalready being used at top of thread loop, so it is a simpler change.\n\nThe AudioRecord destructor was missing a proxy interrupt that was correct\nin AudioTrack.  This proxy interrupt is needed in case another thread\nis blocked in proxy obtainBuffer.\n\nDoes not address the 1 second polling for NS_WHENEVER.\n\nBug: 10822765\nChange-Id: Id665994551e87e4d7da9c7b015f424fd7a0b5560\n"
    },
    {
      "commit": "ce8828a016b082f730152af2204b8ea3610dc1ec",
      "tree": "aad0c32a17516519b22bcea0d4f2fa7c81c61d28",
      "parents": [
        "d176ec1e371a686c58385692a28da677e398c302"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 16 18:07:38 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 17 11:24:02 2013 -0700"
      },
      "message": "Fix underruns when fast track denied due to SRC\n\nOpenSL ES requests a fast track.  If sample rate conversion is needed,\nthe request is denied by server, and a larger client buffer is used\nto handle the higher latency of a normal track.  However the client\nnotification period was calculated based on buffer being divided into\n2 sub-buffers.  That resulted in the notification period being too long.\nThe server pulls chunks that are smaller than half the total buffer.\nSo now the client uses 3 sub-buffers when there is SRC.\n\nAlso removed the \u0027defer wake\u0027 optimization because it was incorrect.\nThis optimization attempted to reduce the number of wakeups of client,\nwhen server releaseBuffer knows that another releaseBuffer will be\nfollowing.  But there is no way for the first releaseBuffer to predict\nhow soon the second releaseBuffer will occur.  In some cases it was\na long time, and the client underran.  So now the client is woken up\nimmediately if the total number of available frames to client is \u003e\u003d\nthe minimum number the client wants to see (the notification period).\n\nAlso fix bug where minimum frame count was not being used in the\ncalculation of notification period.\n\nBug: 10342804\nChange-Id: I3c246f4e7bc3684a344f2cf08268dc082e338e2a\n"
    },
    {
      "commit": "7f9551f75eedb3e4e1fe8feaaba48d8080635fc4",
      "tree": "2723b3ac82ab83025a52fbc8462f58875df0d94c",
      "parents": [
        "6220f993541b0317e6ace3c410dd35a8d76e30bc"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 09 15:48:58 2013 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Mon Sep 09 17:24:06 2013 -0700"
      },
      "message": "MediaMuxer: Hook up setLocation method\n\nThis method is needed when mediamuxer is used for camera video recording.\n\nBug: 10594784\nChange-Id: I9bd006a07e5e2ac7019849e3f4f7cf7b8356d669\n"
    },
    {
      "commit": "284c17e73bbff51cb5b1adcee98386d47733757a",
      "tree": "d400f398fd4f2e8e383256973185b7dae243f92f",
      "parents": [
        "a19912554f3779fac0c341ac702227bf4b5fe399"
      ],
      "author": {
        "name": "jpadmana",
        "email": "rpadmanaban.jayashree@gmail.com",
        "time": "Tue Jun 04 16:08:29 2013 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 06 10:33:03 2013 -0700"
      },
      "message": "Effects Factory changes for effects offload\n\naudio_effects.conf - commented changes to illustrate the\naddition of Proxy and sub effects to the conf file\n\nAdded an effectFactoryApi - EffectGetSubEffects for querying the\nsub effect descriptors from the factory. This api is used by the Proxy\nto get the sub effects\n\nAdded functions and data structures in factory code for\nloading the sub effects\n\ngSubEffectList - has the Proxies and their corresponding sub effects\n\n- addSubEffect() - reads a sub effect node and adds to the gSubEffectList\n- findSubEffect() - searches through the gSubEffectList to find a SubEffect\n\nBug: 8174034.\n\nChange-Id: I25b0c62b2ad523a52337128b51469e628209ea3e\nSigned-off-by: jpadmana \u003crpadmanaban.jayashree@gmail.com\u003e\n"
    },
    {
      "commit": "a19912554f3779fac0c341ac702227bf4b5fe399",
      "tree": "eae1ed9c538fb796181f512770d0cb0796915e7d",
      "parents": [
        "7a4c2711d7a85ce962b9d18fee41975f9c574c0b",
        "ec3acca4a75fc4adc076b56751124f507b419622"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Sep 04 22:08:00 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 04 22:08:00 2013 +0000"
      },
      "message": "Merge \"wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\" into klp-dev"
    },
    {
      "commit": "ec3acca4a75fc4adc076b56751124f507b419622",
      "tree": "d8e15b4acf4de74c3edcdad49f3528ca668fc2a1",
      "parents": [
        "4585e8f0ff47580fdb81ed8652bde32db1770050"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 14:35:37 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Sep 03 16:02:35 2013 -0700"
      },
      "message": "wifi-display: do not use HDCP\u0027s encryptNative method if its unsupported\n\nBug: 10609422\nChange-Id: I005f1d04a4191b1503b5f3e895a98b8d6560c402\n"
    },
    {
      "commit": "6466c9e6e6278c740aed77f695f679be9f5db478",
      "tree": "cd987ec819ddecba0665cd692285069c083fb19b",
      "parents": [
        "894d6be4f9b4721c77a01919ecf03b27cec90cc9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 10:54:07 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:11 2013 -0700"
      },
      "message": "Add ExtendedAudioBufferProvider::framesReleased and onTimestamp\n\nand implement them in SourceAudioBufferProvider using the associated NBAIO_Source,\nand in Track using the associated AudioTrackServerProxy.\n\nChange-Id: I60dc4adba63fc1dc452ff16caf347e4a7c8242c2\n"
    },
    {
      "commit": "894d6be4f9b4721c77a01919ecf03b27cec90cc9",
      "tree": "c0356613af3c5dc3451197f8781a43c5d9d4d36c",
      "parents": [
        "a07a1c2c91dc7ee6ded319262499f20cd01edcf7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 26 10:29:28 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:03 2013 -0700"
      },
      "message": "Add NBAIO_Source::onTimestamp()\n\nwith dummy default implementation, and implement in MonoPipeReader.\nonTimestamp is meant to be called by the corresponding sink when it has\na new timestamp available.\n\nChange-Id: I8a90d24d1061e4a592ce5bd8ee1c9fce6bdd8a84\n"
    },
    {
      "commit": "a07a1c2c91dc7ee6ded319262499f20cd01edcf7",
      "tree": "2d7b01150635952af8d8d9e4f1a0d0d48ccfa874",
      "parents": [
        "943ba3cca8df0da24db38e97e43aaacb5b788a21"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 10:54:35 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:11:39 2013 -0700"
      },
      "message": "Instantiate SingleStateQueue\u003cAudioTimestamp\u003e\n\nas typedef AudioTimestampSingleStateQueue and use it in MonoPipe.\n\nChange-Id: Idaebb362bd9d0a81a7ed83792ab9369dc37c0e74\n"
    },
    {
      "commit": "943ba3cca8df0da24db38e97e43aaacb5b788a21",
      "tree": "f0e19f47cec090e2795df2df75b91c88c935ec01",
      "parents": [
        "572864b94e7882c2d23537525c708abcacde43b0",
        "767094dd98b01baf21de2ad09c27b3c98776cf73"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 22:08:53 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 03 22:08:53 2013 +0000"
      },
      "message": "Merge \"Add NBAIO_Sink::getTimestamp()\" into klp-dev"
    },
    {
      "commit": "767094dd98b01baf21de2ad09c27b3c98776cf73",
      "tree": "57b1a9c3b3d794bac2e1922b314046f02df18e7e",
      "parents": [
        "e45a767e13fe3396185c9d378a70f7f11eb881d0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 13:51:43 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 11:24:02 2013 -0700"
      },
      "message": "Add NBAIO_Sink::getTimestamp()\n\nwith a real implementation in AudioStreamOutSink\nfor dummy implementation initially in MonoPipe.\n\nUse in AudioFlinger::PlaybackThread::threadLoop_write()\nto keep the input to the timestamp latch up-to-date.\n\nChange-Id: I10ef277991b63bb43d55d6f3df75116ef32246cd\n"
    },
    {
      "commit": "4585e8f0ff47580fdb81ed8652bde32db1770050",
      "tree": "6aa5196aef1b75edc79199065ad825c26da64533",
      "parents": [
        "e45a767e13fe3396185c9d378a70f7f11eb881d0"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 30 23:05:00 2013 +0000"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Sep 03 10:15:01 2013 -0700"
      },
      "message": "Revert \"Enhancement for OnInfo callback on DRM Framework\"\n\nThis reverts commit 5ff7836da0220b3097f36c8a5e82111816ebca62.\n\nFixes Fatal signal 6 (SIGABRT)\" when playing or downloading a video\nbug: 10542864\n\nChange-Id: I7f81a41c3acdbeb571a514b3f65e7ba37d403cca\n"
    },
    {
      "commit": "bd096fd9d8e5fc0e62f98807f4818a06f70d0812",
      "tree": "8ff27bce9f34e4bdd0f8e233494a24efef475a7d",
      "parents": [
        "573d80a8f463f648a515fc0975bf83951b272993"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 13:53:56 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 09:59:31 2013 -0700"
      },
      "message": "Implement Track::getTimestamp()\n\nusing a new timestamp latch in PlaybackThread, and\nAudioTrackServerProxy::framesReleased() which returns mServer.\n\nChange-Id: I1ebfba968c773faaab95648c272fd3ebd74718d6\n"
    },
    {
      "commit": "53cec22821072719ee02c856e9ac2dda2496c570",
      "tree": "1ac72eaf3ba6059680f8c3d7e39ae58a9e03adc8",
      "parents": [
        "ce70374bf105f8a6160bf5dd70affea012b2a464"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 09:01:02 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 29 09:19:07 2013 -0700"
      },
      "message": "Add IAudioTrack::getTimestamp()\n\nwith dummy implementation in AudioFlinger::TrackHandle, and\nimplement AudioTrack::getTimestamp() using IAudioTrack.\n\nAlso document invariant that mAudioTrack and control block are always\nnon-0 after successful initialization.\n\nChange-Id: I9861d1454cff7decf795d5d5898ac7999a9f3b7e\n"
    },
    {
      "commit": "ce70374bf105f8a6160bf5dd70affea012b2a464",
      "tree": "60d2673b83bff3622e7e299974104e572656b5a6",
      "parents": [
        "e07f53720bcf543bcfe90c228a49c2a85a3fdb4c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 19 16:33:58 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 28 17:24:58 2013 -0700"
      },
      "message": "New AudioTrack C++ API for audio timestamps\n\nThis new API is intended to replace latency(), especially for A/V sync.\nThe application will receive periodic timestamp notifications.  The period\nis unspecified, but will likely be more frequent after a pause or stop,\nset position, underrun, display on/off change, route change, or when audio\nframework notices drift.  It will be up to the higher level application\n(e.g.  Stagefright) to reconstruct a clock that updates more frequently.\n\nThe current latency() method doesn\u0027t indicate when latency changes\ndue to screen on/off state, route changes, etc.\n\nIncludes squahsed change-Id: I2082f8752040be0c234b1a6f1be2e269abf2ce7c\n Dummy implementation of AudioTrack:getTimestamp()\n Rename AudioTrack::Timestamp to AudioTimestamp.\n Renaming and pulling up to a higher level allows more modules to use it.\n\nChange-Id: Ibf7f6a207c3f8d8697f25ede2cd5200697fadb86\n(cherry picked from commit dd69eb893867634fd169c03204a6ad7c74b351e7)\n"
    },
    {
      "commit": "e07f53720bcf543bcfe90c228a49c2a85a3fdb4c",
      "tree": "388f8ab6a1b539a7bd8b903479864f1c1a3afeb0",
      "parents": [
        "8271f1a2225a34a0748624786392213a746c56d7",
        "abaa51d3ca31f0eda99e1d271e6dc64c877dbf58"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 27 16:49:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 27 16:49:13 2013 +0000"
      },
      "message": "Merge \"Camera2: Add flush support\" into klp-dev"
    },
    {
      "commit": "3bd3690fb0a423f9d0ba635e8db1c148ac9e93fc",
      "tree": "4f0325468fd7977d00223a9efa4c4c566125878a",
      "parents": [
        "33142e1e318c0c766a385d88d2434f62f9e2dfe7",
        "5ff7836da0220b3097f36c8a5e82111816ebca62"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Aug 26 16:09:03 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 26 16:09:03 2013 +0000"
      },
      "message": "Merge \"Enhancement for OnInfo callback on DRM Framework\" into klp-dev"
    },
    {
      "commit": "5ff7836da0220b3097f36c8a5e82111816ebca62",
      "tree": "4612e1308d3dd9961db0fae6d3372203d5937f61",
      "parents": [
        "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75"
      ],
      "author": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Wed Jul 11 17:09:21 2012 +0900"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 23 18:01:07 2013 -0700"
      },
      "message": "Enhancement for OnInfo callback on DRM Framework\n\nIn DRM framework, plugins can transmit DrmInfoEvent to Java layer.\nAlthough DrmInfoEvent has several entries, current implementation\ncan only convey integer and String. This change enables plugins\nuto propagate a hashmap to Java layer. The hashmap can have\none or more Strings and one byte array as value.\n\nChanges are made by Sony Corporation.\n\nbug: 10459159\n\nChange-Id: Ic19265d4ad3db4eda66a3c27e1e08873a8f2a4d7\n(cherry picked from commit 4f782bf0cb69929ebf03de239e2c9bf8e82adf5e)\n"
    },
    {
      "commit": "33142e1e318c0c766a385d88d2434f62f9e2dfe7",
      "tree": "7834e6bcc639ce13eafd275f7ceb6770fec9b865",
      "parents": [
        "2484040e0f413989e4edbe26ba3bf71122382af6",
        "87ecf19404586672008e98babc225e094292ceb5"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 23 23:18:18 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 23:18:18 2013 +0000"
      },
      "message": "Merge \"wifi-display: pass session info to wifi display settings\" into klp-dev"
    },
    {
      "commit": "abaa51d3ca31f0eda99e1d271e6dc64c877dbf58",
      "tree": "52f4cc1078708f7c0099fded06dcb01daf6ca6bb",
      "parents": [
        "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 14 11:37:00 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Aug 23 14:08:27 2013 -0700"
      },
      "message": "Camera2: Add flush support\n\n- On HAL2 devices, fall back to wait until idle\n- On HAL3 devices, call HAL flush method\n\nBug: 9758581\nChange-Id: Ie1c570a15f6590a1ee6c271e3b989c48079b468a\n"
    },
    {
      "commit": "2484040e0f413989e4edbe26ba3bf71122382af6",
      "tree": "0a17a226282f38322b9761650a9536088096c657",
      "parents": [
        "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75",
        "dcb89b3b505522efde173c105a851c412f947178"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Aug 23 19:13:28 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 23 19:13:28 2013 +0000"
      },
      "message": "Merge \"MediaPlayer: add listener for raw track data\" into klp-dev"
    },
    {
      "commit": "62c1a46eec047eb5fbc4b90432ec1ce65b76fb75",
      "tree": "dce59b6f085880d667534b7190df11d1c52b6343",
      "parents": [
        "4b820b0e1fa069714b123fc35784541d0f94d267",
        "9cf69e0fc110f17c28e988ed0f9bf91abfaf710d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 22 23:08:10 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 22 23:08:10 2013 +0000"
      },
      "message": "Merge \"Add ability to test supported content types to MediaDrm\" into klp-dev"
    },
    {
      "commit": "9cf69e0fc110f17c28e988ed0f9bf91abfaf710d",
      "tree": "c5cb3fb67b26c852f8c7bea7e4eeb87952830842",
      "parents": [
        "75c16dde986e16ac5fd4d34b06b0cc6a90679866"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 21 11:59:23 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 22 09:27:35 2013 -0700"
      },
      "message": "Add ability to test supported content types to MediaDrm\n\nbug: 10244066\nChange-Id: I317f05b146db962c271893f6208890a5a6c396f1\n"
    },
    {
      "commit": "4b820b0e1fa069714b123fc35784541d0f94d267",
      "tree": "3418113d8ce7eca26303d6dce7d147e07003a0e9",
      "parents": [
        "1ce7c34e67c2cf58dd88c31f36f4bd62e375f7f0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 14:39:05 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 14:56:46 2013 -0700"
      },
      "message": "Camera1: Rename setPreviewTexture to ...Target for clarity\n\nBug: 10312644\nChange-Id: I19976188f0359bfd177209fb40145defdae9c740\n"
    },
    {
      "commit": "1ce7c34e67c2cf58dd88c31f36f4bd62e375f7f0",
      "tree": "4febd2dd2325c391977d64c9d78a8ee955277e80",
      "parents": [
        "99ad37a47628b1ea1f8981bf974de38a49c653a0"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 13:57:21 2013 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 21 14:35:48 2013 -0700"
      },
      "message": "Camera1: Set preview to be asynchronous, and remove dead code\n\n- Use the controlledByApp flag to make sure application-bound\n  preview buffer queue is asynchronous as before\n- Remove setPreviewDisplay in service, since it is no longer in\n  the binder interface\n- Rename setPreviewTexture to setPreviewTarget, to make it clear it\u0027s\n  the only game in town now. Rename only on the binder level and service\n  for now.\n\nBug: 10312644\nChange-Id: Icd33a462022f9729a63dc65c69b755cb7969857e\n"
    },
    {
      "commit": "87ecf19404586672008e98babc225e094292ceb5",
      "tree": "6351a002b70f93befda9a8b27317138d4cff4b87",
      "parents": [
        "99ad37a47628b1ea1f8981bf974de38a49c653a0"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Jun 06 12:42:59 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Aug 21 11:03:28 2013 -0700"
      },
      "message": "wifi-display: pass session info to wifi display settings\n\nBug: 9371882\n\nChange-Id: I9e4b8c2154b03ce8ff3e14c465a5224bb6e8db9a\n"
    },
    {
      "commit": "46291616486979986cba3ab83e894728ef53063f",
      "tree": "6e725226e68719d0c3c445dc5530bf0392204095",
      "parents": [
        "cf2a123e7ad39700c6e5318006f9acccf69511fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 18 14:38:44 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 19 17:45:42 2013 -0700"
      },
      "message": "AudioSystem: new audioflinger restart detection\n\nAdd a specific method to AudioSystem for AudioService to poll\nfor AudioFlinger service restart instead of relying on current\ncallback mechanism which is flaky.\n\nBug: 9693068.\nChange-Id: Ie88bc9d25033503bc5cd2fa9d8c754d0f8045b8f\n"
    },
    {
      "commit": "dcb89b3b505522efde173c105a851c412f947178",
      "tree": "eb89386fb07021a6527b35ea3d8ecf80584c73b7",
      "parents": [
        "1cb4e1661e4144cb188c2c79b89804fcb902fd19"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Aug 06 09:44:47 2013 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Aug 19 10:53:52 2013 -0700"
      },
      "message": "MediaPlayer: add listener for raw track data\n\nBug: 10326117\n\nChange-Id: I2c0bdf8adc67b11f8dc633423bee66897548f181\n"
    },
    {
      "commit": "e9f3a3141c2eaafa3a5a3417d1e5682a909c5b31",
      "tree": "bc27152b22072be2e18ab9c01bf86c852d0b902e",
      "parents": [
        "1cb4e1661e4144cb188c2c79b89804fcb902fd19",
        "0f61d8f14aa368c9cd7076528e8096e10ed100a0"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Sat Aug 17 00:29:13 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Aug 17 00:29:13 2013 +0000"
      },
      "message": "Merge \"Refactor CameraService to handle errors properly.\" into klp-dev"
    },
    {
      "commit": "0f61d8f14aa368c9cd7076528e8096e10ed100a0",
      "tree": "ed95cb70d56dd3a732f4e1909c96e7889b23ce94",
      "parents": [
        "75c16dde986e16ac5fd4d34b06b0cc6a90679866"
      ],
      "author": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Thu Aug 08 13:07:18 2013 -0700"
      },
      "committer": {
        "name": "Ruben Brunk",
        "email": "rubenbrunk@google.com",
        "time": "Fri Aug 16 14:42:28 2013 -0700"
      },
      "message": "Refactor CameraService to handle errors properly.\n\nBug: 10361136\n\n-Connect calls now return status_t error flags.\n\nChange-Id: Idca453b111e5df31327f6c99ebe853bb2e332b95\n"
    },
    {
      "commit": "1cb4e1661e4144cb188c2c79b89804fcb902fd19",
      "tree": "05514005c18fb0e5c85ff566b26526519cd8fb1a",
      "parents": [
        "75c16dde986e16ac5fd4d34b06b0cc6a90679866",
        "cbaffcffee6418d678806e63097c19fe26d48fe0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Aug 16 19:32:29 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 16 19:32:29 2013 +0000"
      },
      "message": "Merge \"Add MEDIA_STARTED/PAUSED/STOPPED events to media players\" into klp-dev"
    },
    {
      "commit": "cbaffcffee6418d678806e63097c19fe26d48fe0",
      "tree": "21af7d5eab33df7c6487290014f29a83b525734c",
      "parents": [
        "b8689b31813f55cbc1bf8e9ca0d46a9ee113e38a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 18:30:38 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 15 16:04:58 2013 -0700"
      },
      "message": "Add MEDIA_STARTED/PAUSED/STOPPED events to media players\n\nThis is needed for the MediaTimeProvider java interface, so it does not\ncontinually poll for current media time.\n\nNote: NuPlayer and AwesomePlayer do not correctly handle stop (pause\ninstead), so for those we will signal PAUSED.\n\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nChange-Id: I3c61e1bda475f131323f475c18a42e3ec66c9ae1\nBug: 10326117\n"
    },
    {
      "commit": "75c16dde986e16ac5fd4d34b06b0cc6a90679866",
      "tree": "82d64dc5359021224e07e0e63fb74e4d1f3deb16",
      "parents": [
        "c85a986af84962515c10499faab3dc8f9a0948d4",
        "0167414e261f88a96b5e4bf6cb592e6ca11e5a95"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 15 16:12:08 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 15 16:12:08 2013 +0000"
      },
      "message": "Merge \"You can now opt-in to having the video decoder push blank buffers to the\" into klp-dev"
    },
    {
      "commit": "0167414e261f88a96b5e4bf6cb592e6ca11e5a95",
      "tree": "1510cccda507a05fa1b410b4a6a8d4828a1740cc",
      "parents": [
        "cd06d357ed4fcde991aa55dc97317d97cb287332"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 14 10:28:14 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 14 10:28:14 2013 -0700"
      },
      "message": "You can now opt-in to having the video decoder push blank buffers to the\n\nsurface on the transition from executing-\u003eidle by specifying the key\n\"push-blank-buffers-on-shutdown\" with a value of 1 in the call to configure.\n\nChange-Id: I1155fccf89f18e717728c985e590651597595515\n"
    },
    {
      "commit": "7f76a81b18ade3158ae27015637074ce08e837b2",
      "tree": "b2927c2cc99053ba118553a0242cf41b664fb5be",
      "parents": [
        "cd06d357ed4fcde991aa55dc97317d97cb287332",
        "2ee14000a38683220fb250d9e7300e1d71ccdaa0"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 14 01:27:14 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 14 01:27:16 2013 +0000"
      },
      "message": "Merge \"Check adaptive playback support via CodecCapabilities\" into klp-dev"
    },
    {
      "commit": "2ee14000a38683220fb250d9e7300e1d71ccdaa0",
      "tree": "2f59a1eb7737e5e426bb7be177f853a6f333146d",
      "parents": [
        "b8689b31813f55cbc1bf8e9ca0d46a9ee113e38a"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 06 15:02:22 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 13 13:42:52 2013 -0700"
      },
      "message": "Check adaptive playback support via CodecCapabilities\n\nAdded flags field to CodecCapabilities, so that applications\ncan query whether codecs support various features.  For now\nadded one video-decoder feature:\n\nkFlagSupportsAdaptivePlayback\n\nMedia playback applications can query it to see if a codec\nsupports seamless resolution changes, such as by supporting\ndynamic output buffers.\n\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\nChange-Id: I09da46e8ab6b8645fa2749e33128e49eda2e865b\nRelated-to-bug: 7093648\n"
    },
    {
      "commit": "cd06d357ed4fcde991aa55dc97317d97cb287332",
      "tree": "b6bc5dab4fa6096bcd314749878760c279033e3f",
      "parents": [
        "1e0b080825a169c6ac655f11a798ff177575608c",
        "a61285dcf1da8a2cf40c499ee3a7b9fc4d74ac58"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 13 17:13:24 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 13 17:13:24 2013 +0000"
      },
      "message": "Merge \"Optionally repeat the previously submitted frame to the encoder\" into klp-dev"
    },
    {
      "commit": "a61285dcf1da8a2cf40c499ee3a7b9fc4d74ac58",
      "tree": "a360123ee73434ee45608b03a02d8fb6ff431c3b",
      "parents": [
        "1b832c3d8f2b1b24f9bc7025afd2b4a8b4e6c6f9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 31 13:50:42 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 13 10:11:46 2013 -0700"
      },
      "message": "Optionally repeat the previously submitted frame to the encoder\n\nif no new frame has been delivered by surface flinger within the timeout\ninterval.\n\nChange-Id: I282f1b726dfe5646b178d7858d6f5d4f5a264fde\n"
    },
    {
      "commit": "ac0bbe16f3eba46b3d8057b66c2aff9101fc6f7d",
      "tree": "14008bb60b6b0ac3eb77b8e39504400d2b446e43",
      "parents": [
        "1b832c3d8f2b1b24f9bc7025afd2b4a8b4e6c6f9"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 09 18:32:30 2013 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Aug 09 19:57:53 2013 -0700"
      },
      "message": "Fix potential leak of audio input handle.\n\nThe audio input handle is ultimately owned by the audio recorder\nobject but it could be dropped on the floor if an error occurred\nbefore that object was fully initialized.\n\nRearranged some of the argument validation and merged getInput_l\nwith openRecord_l to simplify the code and prevent such a leak\nfrom occurring.\n\nBug: 10265163\nChange-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2\n"
    },
    {
      "commit": "f31abb4ee82050030b3e5a0793bb2b8e30f40d31",
      "tree": "bc17b9e9d4a4dc1108c032cad4a714471180478c",
      "parents": [
        "2f583c0ac819a7bbd1228d7b8c3857c7e6a98a91",
        "02de89293b74ab1e9a77ce2367c5c499ab038968"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 07 17:19:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 17:19:37 2013 +0000"
      },
      "message": "Merge \"Cleanup comments for the new control block implementation\""
    },
    {
      "commit": "2f583c0ac819a7bbd1228d7b8c3857c7e6a98a91",
      "tree": "a142b620d9f27575b983685dbb28f131d8ab43ee",
      "parents": [
        "89a70f71cef61d10437b3901e8efc1f082a857c5",
        "362552a53523c46679e8b3cbb83b39d7ae769ff7"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Aug 07 01:44:37 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 07 01:44:38 2013 +0000"
      },
      "message": "Merge \"Adds a drm resource busy error, removes some deprecated errors\""
    },
    {
      "commit": "89a70f71cef61d10437b3901e8efc1f082a857c5",
      "tree": "a973a3c580ab5de75ffc390a7eb52293028fb9c6",
      "parents": [
        "e1e476669a5ee25f2a3c2fe30170e0f9a89f30a4",
        "d0715867861c216e88a4a7523b6da8a3cb128724"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 06 23:55:31 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 23:55:31 2013 +0000"
      },
      "message": "Merge \"IOMX: add updateGraphicBufferInMeta method for metadata mode\""
    },
    {
      "commit": "d0715867861c216e88a4a7523b6da8a3cb128724",
      "tree": "9b474094654a2dccb440fd9ca4a87f8afbdb9278",
      "parents": [
        "b08ab81bab9e8cd2e3a7fff02725a387070fd078"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Jul 22 12:57:43 2013 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 06 13:19:26 2013 -0700"
      },
      "message": "IOMX: add updateGraphicBufferInMeta method for metadata mode\n\nThis is used to set the handle in the metadata buffer that is\nvalid in the mediaserver process, as well as to keep a reference\nfor the graphic buffers in BufferMeta.\n\nChange-Id: I46bb68d8bed894f357eeeb25368360d11b276634\nSigned-off-by: Lajos Molnar \u003clajos@google.com\u003e\n"
    },
    {
      "commit": "deeef54487a34034dc0cfaab20b20d557224c07c",
      "tree": "cc0aa13d8349df8a57e82374cfd2df9095cf2cbe",
      "parents": [
        "230c5bde2779c618b26edc73443280b2d9371c70"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 02 01:50:59 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 20:05:40 2013 +0000"
      },
      "message": "separte producer and consumer interfaces\n\nBug: 9265647\nChange-Id: Iefabc11e4bd2e2e8ffd31160476c450affe6629c\n"
    },
    {
      "commit": "230c5bde2779c618b26edc73443280b2d9371c70",
      "tree": "313a1848799a279e3a56859f0d474a459a981d5a",
      "parents": [
        "33f3177c08d238285b296d137e527ec99e34228f",
        "7cd9cf70e36ad4b8eb12e24f9adbbe6fd69edebd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 06 17:32:40 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 17:32:41 2013 +0000"
      },
      "message": "Merge \"AudioRecord notification frames\""
    },
    {
      "commit": "743649fa70392b668377fb507d251b346c7b2769",
      "tree": "3d23d5355c7ea676aaeee2465447dc72f093c346",
      "parents": [
        "5279e3e1187e4da0fed4349d29ea548f52e95f95",
        "73493688f4190f790ee15d9ca54831cd64f4e195"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 06 16:14:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 06 16:14:01 2013 +0000"
      },
      "message": "Merge \"AudioRecord::openRecord_l now take flags\""
    },
    {
      "commit": "3aa03e40668dd90390d9f1702f8c576e15b366c3",
      "tree": "01037957009952351730da4b588c3e2bcc42cda9",
      "parents": [
        "77baebfe89c99415a0ee4c2ea87bfd8a0f9e51f1",
        "eeca32671896739e84050da5992d5f151a1629de"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 22:59:42 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 22:59:43 2013 +0000"
      },
      "message": "Merge \"IAudioFlinger::openRecord track_flags_t flags is in/out\""
    },
    {
      "commit": "77baebfe89c99415a0ee4c2ea87bfd8a0f9e51f1",
      "tree": "8a8f4aa15e520fddf80ed076f54b14ed6085dc50",
      "parents": [
        "9b26847ed122a601ba857e0ef22ee2c818641120",
        "27f7b2a8fe899565487d8a326676a5f7d0a05a37"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 21:56:17 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 21:56:17 2013 +0000"
      },
      "message": "Merge \"AudioRecord::set and constructor now take flags\""
    },
    {
      "commit": "9b26847ed122a601ba857e0ef22ee2c818641120",
      "tree": "8100bc87e1c56a08005f55ea4f1d3943c6eb1e48",
      "parents": [
        "ce7842c295638ee1432041186700a71d4bf1c176",
        "6ca126d5c83386941c5cb9600099e5510e4430d6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 21:50:15 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 21:50:15 2013 +0000"
      },
      "message": "Merge \"Make AudioRecord and AudioTrack comments more similar\""
    },
    {
      "commit": "f86b18b1ce3cf20a39aea1fcaf90ec66f9d6d63e",
      "tree": "ffcd083e96e9edaa7e8a597165584bfd5d3eb43f",
      "parents": [
        "13c34e09fdfe0bcd2053368df4dd26028004d18f",
        "28f1351369682801e1bb40a835bdae3c97b73c1c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 19:47:51 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 19:47:51 2013 +0000"
      },
      "message": "Merge \"AudioRecord callback thread waits for priority boost\""
    },
    {
      "commit": "13c34e09fdfe0bcd2053368df4dd26028004d18f",
      "tree": "e884b091f302facb3fc9661fddc90d267e80c881",
      "parents": [
        "6c104a4a245ea72b7bdf8c7c016121189045d4bc",
        "743732236ab84e94168378cdb293964861b1ed00"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 05 14:56:23 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 05 14:56:23 2013 +0000"
      },
      "message": "Merge \"Remove default parameters for AudioTrack\""
    },
    {
      "commit": "362552a53523c46679e8b3cbb83b39d7ae769ff7",
      "tree": "fb7f5658afe720c834d0ed757cf7a11dbd471f6a",
      "parents": [
        "7f249fa9bcb64da324d19f551943fac7686d221c"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 02 23:16:18 2013 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 02 23:16:18 2013 -0700"
      },
      "message": "Adds a drm resource busy error, removes some deprecated errors\n\nChange-Id: Id719fb6df9c9d955ac24803082d08f2a4a5bc766\nrelated-to-bug: 9695816\n"
    },
    {
      "commit": "7cd9cf70e36ad4b8eb12e24f9adbbe6fd69edebd",
      "tree": "71596e7e98be91b19b5fe16a74a12926a0232177",
      "parents": [
        "3151427b6b0adf99929433715bab6f1e505100c1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 01 07:22:02 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "AudioRecord notification frames\n\nChange-Id: I76ec536d1504eb9a558178b62bf225aace4b40d1\n"
    },
    {
      "commit": "73493688f4190f790ee15d9ca54831cd64f4e195",
      "tree": "e1655201bfb7d8339e48afd78597c5cd3bcb1b33",
      "parents": [
        "90e58b1fefc8caf70b34301a92bc86179580b6fc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 16:10:53 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "AudioRecord::openRecord_l now take flags\n\nThe new parameter \u0027flags\u0027 of type audio_input_flags_t will be used for\nrequesting a fast track, but is currently ignored.\n\nChange-Id: If68dfda8b2d4eaaca42927d721b4630c47f71f3b\n"
    },
    {
      "commit": "eeca32671896739e84050da5992d5f151a1629de",
      "tree": "d611c0a426354e80345956c945e9381e6137209b",
      "parents": [
        "27f7b2a8fe899565487d8a326676a5f7d0a05a37"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 16:12:48 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "IAudioFlinger::openRecord track_flags_t flags is in/out\n\nThis will allow AudioFlinger to tell client it is denying a request.\n\nChange-Id: Iff2be3ad6636371bbda9c9899a283c94620c1f06\n"
    },
    {
      "commit": "27f7b2a8fe899565487d8a326676a5f7d0a05a37",
      "tree": "fa0b6b4ee7cfb1e6b0e7cd0f6d6114498bb176bf",
      "parents": [
        "28f1351369682801e1bb40a835bdae3c97b73c1c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 16:10:22 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:42 2013 -0700"
      },
      "message": "AudioRecord::set and constructor now take flags\n\nThe new optional parameter \u0027flags\u0027 of type audio_input_flags_t will be\nused for requesting a fast track.\n\nChange-Id: Ia7e070cb57c833e608352da354fb30dc26df6918\n"
    },
    {
      "commit": "28f1351369682801e1bb40a835bdae3c97b73c1c",
      "tree": "eb6e8fad009764ef115c894f017be5b110689b65",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:27:26 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:22:41 2013 -0700"
      },
      "message": "AudioRecord callback thread waits for priority boost\n\nChange-Id: Iae38fa4ac20a45751566169213a08a15deb0a2f6\n"
    },
    {
      "commit": "02de89293b74ab1e9a77ce2367c5c499ab038968",
      "tree": "9be5c99a98cd411009764c53d3e943e90cb6a3b9",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:30:12 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:10:38 2013 -0700"
      },
      "message": "Cleanup comments for the new control block implementation\n\nThere was some obsolete and incomplete text left over\nafter the new control block code was submitted.\nThis cleans up all those comments to be accurate again.\n\nChange-Id: Ic52f5869cb723cde25d709514d6deea6aa6f20aa\n"
    },
    {
      "commit": "f0f33c4acd231fa95deb9eeef2c46b0129e64463",
      "tree": "c20304410af6b34407a72e6ba4859427ccaf67e6",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:24:36 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:03:44 2013 -0700"
      },
      "message": "AudioRecord has no default sample rate\n\nChange-Id: I72feefdd6f3a623fd3669b80d4b264518fdc0929\n"
    },
    {
      "commit": "743732236ab84e94168378cdb293964861b1ed00",
      "tree": "b437f01649d5358e8cd65a1873c5cd71c78aa9de",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 15:51:35 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 15:56:04 2013 -0700"
      },
      "message": "Remove default parameters for AudioTrack\n\nThe defaults aren\u0027t needed; all users must know these values.\n\nChange-Id: I0c1c97cb80bfea8e69a7cfa53ec85a91a8d48bb5\n"
    },
    {
      "commit": "6ca126d5c83386941c5cb9600099e5510e4430d6",
      "tree": "6298fbfc9a0d509fa90ab50cb21894d9fa380868",
      "parents": [
        "f36dbfe3d517e9311be0a4d0fd6658380690e84c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 12:25:00 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 15:31:44 2013 -0700"
      },
      "message": "Make AudioRecord and AudioTrack comments more similar\n\nChange-Id: I122a7cf7bfc162090cb27f37c325db7a23985bc7\n"
    },
    {
      "commit": "f36dbfe3d517e9311be0a4d0fd6658380690e84c",
      "tree": "65768073d7fd288eac6c28f1283589d65fe0cbad",
      "parents": [
        "1a3739169becc850999c3c06db402541119a428c",
        "82aaf94a5b18939e4d790bbc752031f3070704a3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 02 16:14:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 02 16:14:01 2013 +0000"
      },
      "message": "Merge \"Report underruns for fast tracks also\""
    },
    {
      "commit": "30873bfd08255e2c4e98ff5732ffff2838772617",
      "tree": "e452e0a82e8716e8a7a0fd01f896cc2adfec4f63",
      "parents": [
        "9610adc395d18e474e6e35c0bc8b9c3220e6e525"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 31 13:04:50 2013 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 31 13:04:50 2013 -0700"
      },
      "message": "Unregister any handlers still registered on now \"dead\" ALoopers\n\nupon the death of an ALooper.\n\nChange-Id: I64c0835b8db04486204f3d0fa7173ee53708a116\nrelated-to-bug: 10106648\n"
    },
    {
      "commit": "82aaf94a5b18939e4d790bbc752031f3070704a3",
      "tree": "4e39e32d0ccde726548afcbd81e253d5e316b295",
      "parents": [
        "b08ab81bab9e8cd2e3a7fff02725a387070fd078"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 17 16:05:07 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 31 09:15:00 2013 -0700"
      },
      "message": "Report underruns for fast tracks also\n\nThis fixes a regression that was introduced earlier\nby commit 9f80dd223d83d9bb9077fb6baee056cee4eaf7e5\ncalled \"New control block for AudioTrack and AudioRecord\".\nThat commit broke underrun reporting for fast tracks.\n\nAlso remove Track::mUnderrunCount, which counted the number of underrun\nevents, and was only used by dumpsys media.audio_flinger.\n\nNow dumpsys media.audio_flinger reports the number of underrun frames,\n\nIsolated underrun-related control block accesses via the proxy, so that\nthe server is not directly poking around in the control block.\n\nThe new proxy APIs are AudioTrackServerProxy::getUnderrunFrames() and\nAudioTrackServerProxy::tallyUnderrunFrames().  getUnderrunFrames() returns\na rolling counter for streaming tracks, or zero for static buffer tracks\nwhich never underrun, but do a kind of \u0027pause\u0027 at end of buffer.\ntallyUnderrunFrames() increments the counter by a specified number of frames.\n\nChange-Id: Ib31fd73eb17cbb23888ce3af8ff29f471f5bd5a2\n"
    },
    {
      "commit": "4d74828fc0f6c13d49a36147a4250bcfa8ad0a47",
      "tree": "b7c8867114e2b5ff7997c6a8adb10f3b223acb1e",
      "parents": [
        "7b82efe7a376c882f8f938e1c41b8311a8cdda4a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 19 11:24:51 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 30 11:39:50 2013 -0700"
      },
      "message": "Remove default channel mask in AudioRecord constructor and set()\n\nChange-Id: I22ad4ba8777842bf6705e79c6ad796fdb9a4104c\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"
    }
  ],
  "next": "d054c32443a493513ab63529b0c8b1aca290278c"
}
