)]}'
{
  "log": [
    {
      "commit": "4eec13829c0f00a2a4ec8346c1d13ea39115d67c",
      "tree": "bd2907f13deb6bcc2e4a0e5ff6a04575a1f6f67d",
      "parents": [
        "2192bc9d9f43ed639239641c186fdcd554d63113"
      ],
      "author": {
        "name": "Emerson Pinter",
        "email": "dev@pinter.com.br",
        "time": "Tue Nov 27 09:13:34 2012 -0200"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Mon Dec 24 21:00:21 2012 -0700"
      },
      "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": "2192bc9d9f43ed639239641c186fdcd554d63113",
      "tree": "bde3a85a9d5aff18a8d38a0c4429fb737816b69d",
      "parents": [
        "c81084cb4c2f0ccf1ff996906595f7668a5decd0"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Tue Dec 04 11:46:08 2012 -0800"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Mon Dec 24 21:00:15 2012 -0700"
      },
      "message": "Squashed commit of audio changes from CodeAurora\n\nlibstagefright: Add QC specific media format\n\n- Add QC specific media extensions\n- Add QC specific media definitions\n\nChange-Id: I7dca90be3b977701d9537f5e017117790a030f1f\n\naudio: Compile AudioParameter as shared library\n\n- AudioParameter as shared lib is needed by BT\n  support in WFD source.\n\nChange-Id: I464b428ace0cbb57ce6bf7bf3b57d51a7d56f032\n\nlibstagefright: Send flush on both i/p and o/p ports together\n\n- ANR occurs in music due to race condition in OMX component if\n  flush is issued separately for i/p and o/p ports as DSP only\n  handles simultaneous flush on i/p and o/p ports.\n\nChange-Id: I5b16cd5a9b57c857dc8bed489d2663b8f54769e3\n\nlibstagefright: Enable extended A\\V format\n\n- Add new files to support extended A\\V format\n\nChange-Id: I1e61d78d35b868d55fd8e99f95de8cab9c465db4\n\nlibstagefright: Framework to plug-in propritory parser\n\n- Extend the current framework to plug-in propritory\n  parser\n\nChange-Id: Ia586a3048420ddf1515261f20035589447263b7b\n\naudio: add support for QCOM audio formats\n\n- Add support for EVRC, QCELP, and WMA formats.\n\nChange-Id: Iaf80f982fc8b08617132dbd7d524a1748866745c\n\nframeworks/av: Support Tunnel Playback\n\n- Implement DirectTrack and DirectTrackClient\n- DirectTrack exposes API to client so it can create a direct\n  output.\n- DirectTrackClient allows notifications to be sent to the\n  client from DirectTrack\n- DirectTrack is being used for Tunnel Audio\n\nChange-Id: I2fbb18a781d8e44b8d65da9a357f6e39375f063a\n\nframeworks/av: Support LPA Playback\n\nAdd support to enable Playback in LPA mode\n\nChange-Id: I1b8ac4904f4735017d62f3757ede7bbb56e62fd3\n\naudio: Send correct channel mask in voice call recording.\n\n-Using popCount function to get channel count gives incorrect value on\nvoice call recording.\n-Only STEREO and MONO bits to be considered to count\nchannels on input\n\nChange-Id: I04c2c802422e868bdba0538ff8623dbf9eb659fe\n\nlibstagefright: Thumbnail mode initial commit\n\n- use sync frame decoding mode when kClientNeedsFrameBuffer\n  is set for hardware decoders\n- hardware decoder will only expect I frames, OMXCodec will\n  set EOS on first ETB to stop more frames from being pulled\n- skip EOS check on FTB so that the first frame will be\n  handled\n\nChange-Id: I0e8974e088fdcc468e27764861c128cfe291499f\n\naudio: Add support for QCOM\u0027s VOIP solution\n\nChange-Id: I1150f536fa204b535ca4019fdaa84f33f4695d93\n\naudio: define QCOM audio parameters\n\n- Define QCOM audio paramters for FM, VOIP,\n  fluence, SSR, and A2DP\n\nChange-Id: I29d02e37685846f6d4f00dee02e2726b015eaae7\n\nAdd ifdefs for QCOM enhanced features\n\nChange-Id: Ic8e5fe6ecc058466ced71030883b1af6c2bc055c\n"
    },
    {
      "commit": "c81084cb4c2f0ccf1ff996906595f7668a5decd0",
      "tree": "73c587f95daa903359e6980daacf78a21dc0a4f8",
      "parents": [
        "c5c46386a09e6f642b20944747d520a830b2c9ff"
      ],
      "author": {
        "name": "vivek mehta",
        "email": "mvivek@codeaurora.org",
        "time": "Tue Dec 04 20:57:49 2012 -0800"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Mon Dec 24 20:59:53 2012 -0700"
      },
      "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": "140a9ac76b79f06fc9d2191f2da336f1fc55ca1f",
      "tree": "4e13c8e25d2dc46d64368adf57458e8fac762d3c",
      "parents": [
        "f510d4701c16da39dcefbe5d5ee9d90ff90cbb0c"
      ],
      "author": {
        "name": "Ankit Premrajka",
        "email": "ankitp@codeaurora.org",
        "time": "Mon Nov 21 19:25:02 2011 -0800"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Mon Dec 24 20:59:31 2012 -0700"
      },
      "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": "018fdf4b94c17fc1c8ac22b01f2800fb4ff6deec",
      "tree": "8ab9ff6e322c625641dd4b24b218dde46ad8069f",
      "parents": [
        "cab6892c2e230a5c5111a28d82fca500983d28e8"
      ],
      "author": {
        "name": "codeworkx",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Sat Nov 24 14:39:44 2012 +0100"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Mon Dec 24 20:59:13 2012 -0700"
      },
      "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"
    },
    {
      "commit": "612842e85c5df38e9626b0692746c691f7d39327",
      "tree": "186ee0ccca2812df8621ec28baf6fe932f4c234f",
      "parents": [
        "f68caed86106327de00028a0d22f58bd110cea06"
      ],
      "author": {
        "name": "codeworkx",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Tue Nov 27 01:30:33 2012 +0100"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Mon Dec 24 20:59:02 2012 -0700"
      },
      "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": "f68caed86106327de00028a0d22f58bd110cea06",
      "tree": "fbfc438987d5c148fd78392eb0bd4cc06220214e",
      "parents": [
        "0b15645e896fa1b2406be5f73cf35ff7ec974dc5"
      ],
      "author": {
        "name": "codeworkx",
        "email": "codeworkx@cyanogenmod.org",
        "time": "Tue Nov 27 01:22:13 2012 +0100"
      },
      "committer": {
        "name": "andrew.boren",
        "email": "andrew.boren@gmail.com",
        "time": "Mon Dec 24 20:58:55 2012 -0700"
      },
      "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": "96076964863ee6887f0bed9d0f11f424b48ab9b9",
      "tree": "ff74d91d61bbcb4ddf8af89ea9f49f72e6d00da6",
      "parents": [
        "90a92053219ae50ddf4bb54e3d54db2d309e2b8d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 01 15:48:44 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Nov 01 15:48:44 2012 -0700"
      },
      "message": "Make video encoders\u0027 bitrate mode (constant, variable, ...) configurable\n\nthrough the desired output format. Configure the video encoder to use\nconstant bitrate mode for WFD.\n\nChange-Id: Id7bd619598153c13448a9c5acd69d80f8a01f333\nrelated-to-bug: 7459597\n"
    },
    {
      "commit": "d7086030fcf731e4bcef6c033cc6418cd04e6b91",
      "tree": "51f233eeff7c3e17e980d1fb0f41a2ba3f030b16",
      "parents": [
        "dca0ac2193e87c57d871dd208073107408c13c0a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Oct 10 12:11:16 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Oct 10 12:11:16 2012 -0700"
      },
      "message": "Support querying active record sources\n\nAdd support for querying whether there is currently a recording\n underway from the specified audio source.\n\nBug 7314859\n\nChange-Id: I986b231a10ffd368b08ec2f9c7f348d28eaeb892\n"
    },
    {
      "commit": "575a5361fc970476cd7979638ee3ac00cc6e5024",
      "tree": "4dfdda910405a6d40d50c52119c86d0853fd3587",
      "parents": [
        "8d16bbc5a354d302abfd912b8d88d9c7feb3948f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 03 10:16:58 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 03 10:16:58 2012 -0700"
      },
      "message": "Better power savings with wifi display code.\n\nNo more polling the encoder for work to do, the encoder instead notifies\nif there\u0027s activity.\n\nChange-Id: Ia707211b4f5c5a6e6b70d750233d204a2d6bb778\nrelated-to-bug: 7248248\n"
    },
    {
      "commit": "af5dd7753e62353411cf0daf3b513c38818e9662",
      "tree": "e935f45f925c4ce6d35d16764e2d40db69cc954a",
      "parents": [
        "0868deae404604b577892413c128d55a2bafc56e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 01 16:03:44 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 01 16:03:44 2012 -0700"
      },
      "message": "ALooper::GetNowUs() now relies on systemTime instead of gettimeofday.\n\nChange-Id: Ia31eb0940b02581327a8bf51af6df135f9ab6de3\nrelated-to-bug: 7266324\n"
    },
    {
      "commit": "0868deae404604b577892413c128d55a2bafc56e",
      "tree": "422a9db60612b598d2de89a854f26e3acf4f8b31",
      "parents": [
        "ad0d97c7cf620e96a0b088dd9461645a3f8900b7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 01 15:59:54 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 01 15:59:54 2012 -0700"
      },
      "message": "Optionally have SurfaceMediaSource return absolute timestamps\n\nbased on systemTime().\n\nChange-Id: I2eff15dd149a4b737d6e7473d1907cf0c80b6b38\nrelated-to-bug: 7266706\n"
    },
    {
      "commit": "0e1d71641624c641a0a1abe4098943f5a42c6f94",
      "tree": "676b461c207b032cb45f6e35cd4a4dc225c4fe7c",
      "parents": [
        "6360758ce2d171169d2a21e30266547ee4ac0fec"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 01 11:22:05 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Oct 01 11:24:04 2012 -0700"
      },
      "message": "Remove double negatives from SurfaceMediaSource\n\nensure mStarted actually reflects the state of SurfaceMediaSource\n\nChange-Id: I92557896993ad8da23fe6940e997402ad63b8cbc\nrelated-to-bug: 7258622\n"
    },
    {
      "commit": "d13df2463bd09d8c1fc5b20050d3262a4e89512d",
      "tree": "a684796ab498c092f7d98de69d105a2cfe3bf6e1",
      "parents": [
        "73bbd1f1c493835f191ea2b0b72439292496b40a",
        "003d9f71937070791418bf7efc1f7fe1e4c6b821"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Sep 30 11:48:10 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Sep 30 11:48:11 2012 -0700"
      },
      "message": "Merge \"Enable write side of MonoPipe to be shutdown\" into jb-mr1-dev"
    },
    {
      "commit": "0517e304d0cce25653a033e3cb00172d54ba251d",
      "tree": "4f4f1433c3a02eb25e84648c8a8d9f64eee10de0",
      "parents": [
        "bbe96f0f05a1f1a1b3cfec0d124cb0d63c1ebf2a"
      ],
      "author": {
        "name": "James Painter",
        "email": "jpainter@google.com",
        "time": "Fri Sep 28 00:09:12 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 28 17:26:55 2012 -0700"
      },
      "message": "DO NOT MERGE: Remove experimental parameters for burst mode\n\nBug: 7248756\nChange-Id: I3aaf2da4791b2a13e1e788b2914e4c51c529a75d\n"
    },
    {
      "commit": "003d9f71937070791418bf7efc1f7fe1e4c6b821",
      "tree": "bcf8cd292f899525639d95d833cd0488cf32cf03",
      "parents": [
        "e646b2d26459ca30667097e9600ee3f57ebfd228"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 28 12:22:52 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 28 16:30:52 2012 -0700"
      },
      "message": "Enable write side of MonoPipe to be shutdown\n\nBug: 7253033\nChange-Id: Iea8390763b59ffa7a8e2a6b77dd04ea23442698f\n"
    },
    {
      "commit": "96fc6cc65ca93009a759a3a874b82a35771b9714",
      "tree": "8084454da63f974ef6ccfe29e5e3760184ec185b",
      "parents": [
        "de799a74064a363d26f4c1bbc5a59d1b7127f49f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 28 10:23:51 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 28 10:23:51 2012 -0700"
      },
      "message": "Various improvements to a cleaner shutdown of the wifi display connection.\n\nChange-Id: Id029a89939e53c2bd1d20e572d3975ec2795c239\nrelated-to-bug: 7247918\n"
    },
    {
      "commit": "cc0f1cfb69ce8b8985fc2c0984847a06a13ad22d",
      "tree": "f3522fd1ad371d1e592c8c8cfd8d0ce1d98f80c2",
      "parents": [
        "d9aa7b4db46bea5966401f9fcfbecb3269ec55c7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 24 11:27:18 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 25 17:13:18 2012 -0700"
      },
      "message": "Implement android.media.AudioManager.getProperty()\n\nBug: 6635041\nChange-Id: I3386a4a6c226bc4eceaf65556119e4fb15f73224\n"
    },
    {
      "commit": "207e18540fefbaf530a4fdf506d266f34ddec84f",
      "tree": "d8e7d7db4c874aabfe35c5fdd4a5dcf7bf72047d",
      "parents": [
        "086f958a7e539acffb637b42f5a6998184544179"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 20 16:00:17 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 21 09:24:08 2012 -0700"
      },
      "message": "Remove legacy code and APIs in wifi display related code.\n\nChange-Id: Ia010e7a00534f9356b3247369d0ffd65591d91aa\n"
    },
    {
      "commit": "efbb781c15abf8e085f5ab8d39710bd58ea0b6e4",
      "tree": "a2f28698970fc1b62495cee5d617e1037a0a957d",
      "parents": [
        "74e58c55bc5259b957a51f1bb44a5911ad1f8400"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 18 10:36:32 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 19 09:28:08 2012 -0700"
      },
      "message": "HDCP module binderized\n\nChange-Id: I866768b1e3f3b232f1934a35b65f66befc12f3f6\n"
    },
    {
      "commit": "c92bed3a73c06e90217f8f199ca0b517aa7595d2",
      "tree": "c08fb0ec9bfef7a8d7493196a6892e8f754d5d43",
      "parents": [
        "bd08e2f93bafd02abf2c25d740e9fb8bce455a99"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 17 15:07:30 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 17 15:11:38 2012 -0700"
      },
      "message": "Now we only support a single client connection\n\nand it cannot be initiated from the local interface address for security\nreasons.\nAlso, there\u0027s at most one playback session active at any time, and when\nit dies we shutdown the client connection altogether and signal an error\nto the listener.\n\nrelated-to-bug: 7139784\nChange-Id: Ia8d02bc994ce9986936947ddda1f2a3dddbf5714\n"
    },
    {
      "commit": "2637cb172105939052d8a02f4eea693a90549518",
      "tree": "a95a7a5257094bd303e184a2ab35cb9add4b462f",
      "parents": [
        "d8421c54dc00d637e41689004edcb06caaa40b62",
        "8fa80e3be63ffde5ef029afa713877440856b663"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 14 10:05:51 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 14 10:05:52 2012 -0700"
      },
      "message": "Merge \"Allow OMXCodec to specify an output color format for OMX decoder component\" into jb-mr1-dev"
    },
    {
      "commit": "496238cc7551d414067dcbbb4fe3bd801f205f95",
      "tree": "90e4402e792c22804bf42f6f773c97e57d06e5dc",
      "parents": [
        "f4bca03d996b584030a80268f58cdb29dc7b7cde"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 13 16:43:51 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 13 16:43:51 2012 -0700"
      },
      "message": "Support IDR requests in wifi display, MediaCodec and ACodec.\n\nChange-Id: I596cf8dd61b63465437f78413186fad2be287244\n"
    },
    {
      "commit": "00f41327264fa2e59cc05abaa5c554b2a32938e1",
      "tree": "a728bfd765bbb9f840c0d814574affa62b9931a5",
      "parents": [
        "bdde5f884eaf270ab4b806849f3122a46cd872ce"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 12 12:08:55 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 13 09:21:02 2012 -0700"
      },
      "message": "Throttle SurfaceMediaSource.\n\nChange-Id: I214ce60f8d94df9c07041577e34ed1ad5e199fdb\n"
    },
    {
      "commit": "8fa80e3be63ffde5ef029afa713877440856b663",
      "tree": "2e04f6299435b089a2b8c45cfb2be756d27739c9",
      "parents": [
        "e148910dfb3f69cdf1a078066724cb32b18e7b8a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Sep 07 17:27:50 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 10 16:37:26 2012 -0700"
      },
      "message": "Allow OMXCodec to specify an output color format for OMX decoder component\n\nThe output color format is specified via the meta argument in OMXCodec::Create()\n\no related-to-bug: 7122195\n\nChange-Id: Id3247686b893af25cc190685201e53ad34b0399c\n"
    },
    {
      "commit": "c61b2aaab1846dea4b53555696739a3ba704f0ec",
      "tree": "376097acee05654a95c7bbd2de14dc4a1b8bab3e",
      "parents": [
        "fd48021dfc3278b048ba99ecffe7f996751fb440"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Sep 10 11:59:12 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Sep 10 11:59:12 2012 -0700"
      },
      "message": "Camera: Add HDR scene mode constants.\n\nChange-Id: I78b1f8ca3c1a03222ed363db26d9a09cf0b13528\n"
    },
    {
      "commit": "e538206d15282afbc5b168d60b1026a5dfcd13c0",
      "tree": "5126c4ce62340021498d68c43e0de7ddb11303e1",
      "parents": [
        "7ac783252ef682abddd083104ab06619d82ac52f"
      ],
      "author": {
        "name": "James Painter",
        "email": "jpainter@google.com",
        "time": "Wed Sep 05 18:02:32 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Sep 07 16:28:00 2012 -0700"
      },
      "message": "Camera2: Add a burst mode skeleton.\n\nBug: 6243944\nChange-Id: I7f496ca1051571c68fdd99a6f85bf6a908a4e29a\n"
    },
    {
      "commit": "2e5f22e85d177b34e790f832789d03aee438a7db",
      "tree": "1e41eb4b82919725fcab038d5c158189ef9abf63",
      "parents": [
        "c56857b4cd12cd4bc3361e375f5b7554277ce9d7"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Aug 24 14:47:25 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Sep 06 12:33:35 2012 -0700"
      },
      "message": "Add a small hook to support gapless in AAH.\n\nChange-Id: Ie07eca6b45142bdd83412ee0e38d732a4c355630\n"
    },
    {
      "commit": "49c74da132fe42dd4d2066131f8f0e2df301c1dd",
      "tree": "da319566144a2dfcc05d9551e1f889fa97c2f0bb",
      "parents": [
        "e148910dfb3f69cdf1a078066724cb32b18e7b8a",
        "455d02eca342d8159637af317a5d83219d267812"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Sep 06 10:15:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 06 10:15:31 2012 -0700"
      },
      "message": "Merge \"Update remote display API.\" into jb-mr1-dev"
    },
    {
      "commit": "455d02eca342d8159637af317a5d83219d267812",
      "tree": "2c8a516e25ac9866d681021cd138b582a9f76bba",
      "parents": [
        "0b73d4730202fcad53aefc4314a06e7b95f442f0"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 05 17:48:03 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Sep 05 17:48:03 2012 -0700"
      },
      "message": "Update remote display API.\n\nRenamed disconnect() to dispose() to emphasize the fact that\nthis method is intended to clean up the IRemoteDisplay\ncompletely, not just temporarily disconnect the current client\n(which might be useful someday).\n\nOther minor tweaks.\n\nChange-Id: I1209639eb0cd8af09c724206642d7e52aab48257\n"
    },
    {
      "commit": "9c6cb7a896f41cb8ad2f2ad63f8f6edfbb56ed4f",
      "tree": "6c8b0cf1e55f5f778ecfb92b78a7286e82881f02",
      "parents": [
        "0b73d4730202fcad53aefc4314a06e7b95f442f0",
        "56997121c5031598fbbba7b7c53980b7fd529c2d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 16:22:16 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 05 16:22:17 2012 -0700"
      },
      "message": "Merge \"Fragmented mp4 extractor\" into jb-mr1-dev"
    },
    {
      "commit": "56997121c5031598fbbba7b7c53980b7fd529c2d",
      "tree": "14e4e9aecfe88d071fce9255dc6be21f8b4c4a0c",
      "parents": [
        "6c75ad21705cde0a11f78c755dc70bdec76890e6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 28 15:09:49 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 05 14:22:07 2012 -0700"
      },
      "message": "Fragmented mp4 extractor\n\nStill experimental. Set property \"media.stagefright.use-fragmp4\" to true to\nenable.\n\nChange-Id: I210b9c5b5164b5c5eefc31309845ee881ac7db8e\n"
    },
    {
      "commit": "e104596061b219e9bce6d4db49a9d15242f8d2e5",
      "tree": "d28e83486d2079284c3e04e260fe6a8952d9599f",
      "parents": [
        "6c75ad21705cde0a11f78c755dc70bdec76890e6"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Sep 04 21:38:42 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 05 08:47:36 2012 -0700"
      },
      "message": "Implement remote display service stubs.\n\nChange-Id: I582ed000026bba6d116db8304e15a3c52f8a9a01\n"
    },
    {
      "commit": "66e72bc85fb762876baff60ef29de729da93cf26",
      "tree": "be694f1cbe0c554e4e4e351cdc7c80b177a864f2",
      "parents": [
        "fbe9d81ff5fbdc5aecdcdd13e4a5d7f019824f96"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 16:30:49 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Sep 04 16:47:21 2012 -0700"
      },
      "message": "Configure the SurfaceMediaSource to emit the same number of buffers\n\nas the video encoder allocates for its input. Do this before connecting\nthe bufferqueue through surface flinger.\n\nChange-Id: Ibc81db1359afe2d88fdb75b23fadae65c8a6f7cc\n"
    },
    {
      "commit": "cd89e8014368af1bbdfa08406d5d2eb0bbbfcca1",
      "tree": "372818c0898b8c0db85e0ebd482359e14ddba066",
      "parents": [
        "892020e46b97adfa012be7a9dd688a2d6d528de4",
        "da7ff5321539ac07ec76d0d03bd1b9b09a1823bf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 14:03:25 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 31 14:03:25 2012 -0700"
      },
      "message": "Merge \"Added an additional virtual method IStreamSource::flags().\" into jb-mr1-dev"
    },
    {
      "commit": "da7ff5321539ac07ec76d0d03bd1b9b09a1823bf",
      "tree": "dbbf951396f9dbae58a76bdeaa8d0bba9f9cebf6",
      "parents": [
        "dc91c885f267005e06f439a3bd592b3d8706bb50"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:40:12 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 31 13:40:12 2012 -0700"
      },
      "message": "Added an additional virtual method IStreamSource::flags().\n\nChange-Id: I89e62d84328e12f08c8f73cbfd53cfb42569de97\n"
    },
    {
      "commit": "c3ae93f21280859086ae371428ffd32f39e76d50",
      "tree": "542d16fac64eb1f6e40c32517d60c2da5078e900",
      "parents": [
        "c9936c72c128a4a9288424fb082d7e7fe4b9b91f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 30 10:59:30 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 30 15:31:00 2012 -0700"
      },
      "message": "Update audio comments\n\nChange-Id: Ie7504d0ddb252f7e4d4f99ed0b44cfc7b1049816\n"
    },
    {
      "commit": "5dcc2c988eefba1049fe64172bc5fc7e6ee27c8b",
      "tree": "843fcb9a1f79415d00cec48213dbf75b69b73e7a",
      "parents": [
        "b9cba9b731195d4387ee21b7e9ba1137a3cfda68",
        "bcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 15:12:29 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 30 15:12:30 2012 -0700"
      },
      "message": "Merge \"Only run the wifi display RTSP server on demand, and only on the wifi direct\" into jb-mr1-dev"
    },
    {
      "commit": "b9cba9b731195d4387ee21b7e9ba1137a3cfda68",
      "tree": "6ee03e2fc8309bd045aed42bac69d8107ac0c2fd",
      "parents": [
        "cba53fbdaa723322f7157a4890feab776beae13e",
        "2dd4bdd715f586d4d30cf90cc6fc2bbfbce60fe0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 30 15:05:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 30 15:05:01 2012 -0700"
      },
      "message": "Merge \"Move libnbaio out of AudioFlinger\" into jb-mr1-dev"
    },
    {
      "commit": "bcf09f8c995221e75c7cd328f25c7cc6d2b5f7c9",
      "tree": "12db95dcd0186648022458280b950cf4aa154849",
      "parents": [
        "86b1961a8d61086ef8d5475182f2a3cf4392b42c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 14:51:40 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 14:51:40 2012 -0700"
      },
      "message": "Only run the wifi display RTSP server on demand, and only on the wifi direct\n\ninterface.\n\nChange-Id: I7d3c44cb79cd40e73499f2d7ccf35c69b628e6d7\n"
    },
    {
      "commit": "082830f92373a1b9e512dbbfb940187ffa1c2c6f",
      "tree": "46124186416264ddfe73a0dfabe4974777ff0405",
      "parents": [
        "e05a679401c7baeb0f82ce105eb20ae1ec863cdf"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 10:56:14 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 30 10:56:14 2012 -0700"
      },
      "message": "Prepare for transmitting audio through AudioSource.\n\nAudioSource can now be configured to output buffers timestamped based\non looper time (absolute) instead of based on systemTime() relative to\nstart time.\n\nChange-Id: I8eca42648eb50033ac4aafbe5daac64a98a40690\n"
    },
    {
      "commit": "2dd4bdd715f586d4d30cf90cc6fc2bbfbce60fe0",
      "tree": "d0f594b402b6d2a4de89386c30c3db4adab89894",
      "parents": [
        "0a24726a64ba1c50aa6ee1610de2d80602d49fe6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 29 11:10:32 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 30 10:53:37 2012 -0700"
      },
      "message": "Move libnbaio out of AudioFlinger\n\nlibnbaio is now a separate shared library from AudioFlinger, rather\nthan a static library used only by AudioFlinger.\n\nAudioBufferProvider interface is now also independent of AudioFlinger,\nmoved to include/media/\n\nChange-Id: I9bb62ffbc38d42a38b0af76e66da5e9ab1e0e21b\n"
    },
    {
      "commit": "d8ee4e56f92eeb44ddc0997efe280b9f28ad814d",
      "tree": "8ae19d56b416a17a218c4c405939acad3fe8cb1e",
      "parents": [
        "f147b722ad2405c7f92ea8691f36b04a82d62bb1",
        "d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 15:29:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 29 15:29:11 2012 -0700"
      },
      "message": "Merge \"Initial checkin of support for acting as a wifi display source\" into jb-mr1-dev"
    },
    {
      "commit": "d7bee3a9d2ad76d073d91f0ee36d5ac5f9df480c",
      "tree": "3c4c7a83313d169b13c79c9660afeb804d27b975",
      "parents": [
        "eb941f9a0c8474324732a99387cc6d8cb4ab01ef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 11:41:50 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 15:06:57 2012 -0700"
      },
      "message": "Initial checkin of support for acting as a wifi display source\n\nChange-Id: I08f17efa0c7d007e17408feb7d4fbef0a19f531a\n"
    },
    {
      "commit": "1b19c9d120869c3182373a9b06a1ed98898df882",
      "tree": "f004f06f4d23698432b71da01873147a8da7c44e",
      "parents": [
        "eb941f9a0c8474324732a99387cc6d8cb4ab01ef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 11:34:22 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 29 11:34:22 2012 -0700"
      },
      "message": "Preliminary support for HDCP as a binder service for wifi display support.\n\nChange-Id: Ie0de1c086c629a668d1c7863992eef56fb94157c\n"
    },
    {
      "commit": "1c356d38527efbbee0894188c0a8f82074b0f441",
      "tree": "15a9f511a77a8817f02c558883052dd754298a2d",
      "parents": [
        "690921927f289da73556ea71c28981194af8ffcd",
        "aa8879d381918335c9d829fc279b76d53a15a550"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 27 10:14:23 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 27 10:14:23 2012 -0700"
      },
      "message": "Merge \"Fixed a native crash due to unexpected state at destroy time when encoder component\u0027s source fails to start\" into jb-mr1-dev"
    },
    {
      "commit": "a0ead0a2d2ce1d114ad3a17d755dddce831abb40",
      "tree": "0908865a805a13176c98f2a9a5ffb2c28380d75d",
      "parents": [
        "ff3f75c3e827c1c1f3e3a11b1de46b19444af197"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Aug 23 20:24:09 2012 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Aug 26 16:25:12 2012 -0700"
      },
      "message": "SurfaceMediaSource: a few fixes / cleanups\n\n- Remove the setting of mStopped to true in onBuffersReleased\n- Cleaned up a few function call logs\n- Removed the \u0027reset\u0027 method.\n\nChange-Id: I56bab1d5cb2f3e6d59d54698c2e045d796d1849f\n"
    },
    {
      "commit": "aa8879d381918335c9d829fc279b76d53a15a550",
      "tree": "0ec909da8db12815112ba15ba266d1093ff91de8",
      "parents": [
        "9a150640a28d3fa5507a590125a6c004681bb221"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 24 10:53:31 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 24 13:10:16 2012 -0700"
      },
      "message": "Fixed a native crash due to unexpected state at destroy time when encoder component\u0027s source fails to start\n\no Encoder component initializes to be in the state of EXECUTING before its source gets started, because we wanted to be able\n  to configure the source to use the advertised number of input buffers. However, if the source fails to start, then the encoder\n  ends up in the state of EXECUTING when OMXCodec object gets destroyed. As a result, the assertion on the expected state in\n  OMXCodec\u0027s constructor fails. The fix is to stop the video encoder component right way when its source fails to start so to\n  bring the state of the encoder component back to the expected state.\n\no related-to-bug: 7045494\n\nChange-Id: I6d4a221eb809d7137f53e58098a04816998f7a25\n"
    },
    {
      "commit": "dbcb4c17f16230dfc6af908f176681c49f61b13e",
      "tree": "bef549ee2c80ee54309207846ab36192b0124879",
      "parents": [
        "9a150640a28d3fa5507a590125a6c004681bb221"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 24 09:53:35 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 24 10:14:37 2012 -0700"
      },
      "message": "Allow directly setting a DataSource for NuMediaExtractor\n\nThis adds NuMediaExtractor::setDataSource(const sp\u003cDataSource\u003e \u0026source),\nwhich some new code under frameworks/av will use to let applications\nprovide a custom data source for extractors.\n\nChange-Id: I8fb743441d04b4eadbda3c2d76858c3d60e2a3b2\n"
    },
    {
      "commit": "9a150640a28d3fa5507a590125a6c004681bb221",
      "tree": "d45d6e643ac0fac5d0b80258b1ec38feccff4e9f",
      "parents": [
        "0c676cd04ff15cc7eacf6144b4aead6deaccf60c",
        "bf5b3b29e31b293313788d7464cfb258ac0da803"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 22 14:50:14 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 22 14:50:14 2012 -0700"
      },
      "message": "Merge \"Let getOriginalMimeType() take a fd passed from drm java applications\" into jb-mr1-dev"
    },
    {
      "commit": "6a8ea471a9f3b001bd0ffa3381eba12975dfc59f",
      "tree": "3590178bb20b7042efdaca9f7f87822f7ea1968a",
      "parents": [
        "3411fc2f3a44b22d69a359a3eb26f756d6116e4f",
        "a997e7a7c5aa2fc7e95316218316f8b7b98786ba"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Aug 20 15:46:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 20 15:46:07 2012 -0700"
      },
      "message": "Merge \"Revert \"Swap the order of creating IAudioTrack and thread\"\" into jb-mr1-dev"
    },
    {
      "commit": "8ec1f2a4f3c72fe7472f8b8fa227f6b7bbc9279b",
      "tree": "5a85d007f81c1d09f68f3894f8cbb0a950372250",
      "parents": [
        "44a7e42f0310831e6a846d1b6bb40bf3a399bf6d"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Aug 06 13:50:00 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Aug 13 09:48:56 2012 -0700"
      },
      "message": "Move the AAH RTP code out of framework and into vendor.\n\nRelocate the AAH RTP code from framework/av into\nvendor/google_devices/phantasm.  This change is the deletion, there\nwill be a separate CL which re-introduces on the vendor side of\nthings.\n\nChange-Id: Ibe7e6d4b633a3886b87a615691a2692f2382af6c\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "44a7e42f0310831e6a846d1b6bb40bf3a399bf6d",
      "tree": "aba58d779eb8a1d8fe4616d33b8eb6e1672d6f00",
      "parents": [
        "b3e12a4d15a329821979bf287c49a9630486e23f"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Jun 21 17:29:24 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Mon Aug 13 09:48:56 2012 -0700"
      },
      "message": "Add the ability to dynamicaly register MediaPlayer types.\n\nAdd the ability to dynamically register low level MediaPlayer\nfactories which will be probed at setDataSource time to determine the\nproper MediaPlayerBase to instantiate.\n\nThis change is in preparation for moving libaah_rtp out of\nframeworks/base and into phantasm platform directory.\n\nChange-Id: Icf8904db3ab9e3c85df6e780d5546d9988cb9076\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "bf5b3b29e31b293313788d7464cfb258ac0da803",
      "tree": "1e3e016a1f7268688be59047be835a17609977f8",
      "parents": [
        "b3e12a4d15a329821979bf287c49a9630486e23f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 30 17:57:39 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 10 17:38:19 2012 -0700"
      },
      "message": "Let getOriginalMimeType() take a fd passed from drm java applications\n\nThis patch enables the drm framework to avoid opening files directly.\nAs a result, the drm framework no longer needs the sdcard read permision.\n\no related-to-bug: 6426185\n\nChange-Id: Ib176c35ef4b1a1a405e8e954f19a7985266f2510\n"
    },
    {
      "commit": "b3e12a4d15a329821979bf287c49a9630486e23f",
      "tree": "b79b0ca57e79e2ee19f09b150f9a60e397af24d7",
      "parents": [
        "751fa786aa9599c694219085601f9f5ebe96a516",
        "3ca352c4cd01f6df3b691f835efc68a5771e724e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 15:34:06 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 15:34:06 2012 -0700"
      },
      "message": "am 3ca352c4: am 24893fef: Merge \"MPEG2TSWriter: Write a proper CRC in PAT and PMT\"\n\n* commit \u00273ca352c4cd01f6df3b691f835efc68a5771e724e\u0027:\n  MPEG2TSWriter: Write a proper CRC in PAT and PMT\n"
    },
    {
      "commit": "3ca352c4cd01f6df3b691f835efc68a5771e724e",
      "tree": "8cc59347af40bd76345e794b934e4b9ee0483751",
      "parents": [
        "31a593b901eeb924ae5214962c628397dd0197f2",
        "24893fef8e0f816a8a21749fa3eb9eed9173a0fd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 15:32:40 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 15:32:40 2012 -0700"
      },
      "message": "am 24893fef: Merge \"MPEG2TSWriter: Write a proper CRC in PAT and PMT\"\n\n* commit \u002724893fef8e0f816a8a21749fa3eb9eed9173a0fd\u0027:\n  MPEG2TSWriter: Write a proper CRC in PAT and PMT\n"
    },
    {
      "commit": "24893fef8e0f816a8a21749fa3eb9eed9173a0fd",
      "tree": "3a5b5cc9b025e90a8a077059937b6ea2e228a9ad",
      "parents": [
        "2001d2ac01e36c13c1abda5f73b6404cba2648e1",
        "983995747ed3adaf25035c433df1ccbaa056a898"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 15:26:43 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 15:26:44 2012 -0700"
      },
      "message": "Merge \"MPEG2TSWriter: Write a proper CRC in PAT and PMT\""
    },
    {
      "commit": "751fa786aa9599c694219085601f9f5ebe96a516",
      "tree": "6b8ea38fa25a0cce13ae5d00ded028be74307cc6",
      "parents": [
        "fcfc61da927e98d18cdcb53da8fa0a8a32ee1422",
        "31a593b901eeb924ae5214962c628397dd0197f2"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 12:44:04 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 12:44:04 2012 -0700"
      },
      "message": "am 31a593b9: am 2001d2ac: Merge \"MPEG2TSWriter: Write proper continuity counters for PAT and PMT\"\n\n* commit \u002731a593b901eeb924ae5214962c628397dd0197f2\u0027:\n  MPEG2TSWriter: Write proper continuity counters for PAT and PMT\n"
    },
    {
      "commit": "31a593b901eeb924ae5214962c628397dd0197f2",
      "tree": "34fb25043d531d318bd192a18adaef975ab725be",
      "parents": [
        "ff4c64d6b1b58494a1b15f1a664e5c421d095d15",
        "2001d2ac01e36c13c1abda5f73b6404cba2648e1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 09:26:41 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 10 09:26:41 2012 -0700"
      },
      "message": "am 2001d2ac: Merge \"MPEG2TSWriter: Write proper continuity counters for PAT and PMT\"\n\n* commit \u00272001d2ac01e36c13c1abda5f73b6404cba2648e1\u0027:\n  MPEG2TSWriter: Write proper continuity counters for PAT and PMT\n"
    },
    {
      "commit": "2001d2ac01e36c13c1abda5f73b6404cba2648e1",
      "tree": "86b30b2d16b17aa5129743633b9d5fbcc9b2dae3",
      "parents": [
        "c64a178711bf7bb9b71d65a47156b34083311392",
        "d4e5af6bc0a012e8d43975ca8b5627631333920d"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Aug 10 09:03:54 2012 -0700"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Aug 10 09:03:55 2012 -0700"
      },
      "message": "Merge \"MPEG2TSWriter: Write proper continuity counters for PAT and PMT\""
    },
    {
      "commit": "e983aa4ff4d80af7702888e230b9aaa93a7b7e57",
      "tree": "09e62e3a573248dd1a3c7b2dae082810f16dfe79",
      "parents": [
        "f6a3576006f3fbe7d87ab49c1ebf292be5ddaa24",
        "51af4af2414cdaaf0185b971a41fc0b4f8c0b7e4"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 14:08:28 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 14:08:28 2012 -0700"
      },
      "message": "am 51af4af2: am e28df5b9: Merge \"Store correct time stamps in recorded mp4 files\"\n\n* commit \u002751af4af2414cdaaf0185b971a41fc0b4f8c0b7e4\u0027:\n  Store correct time stamps in recorded mp4 files\n"
    },
    {
      "commit": "51af4af2414cdaaf0185b971a41fc0b4f8c0b7e4",
      "tree": "3e7a2ca1401597ed506a8725e8a0934a28404024",
      "parents": [
        "ef62009372d050b431939835d4e2c5ee77da8831",
        "e28df5b996af3480b457c7a9908dbb9d52ad8d7c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 14:04:18 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 14:04:18 2012 -0700"
      },
      "message": "am e28df5b9: Merge \"Store correct time stamps in recorded mp4 files\"\n\n* commit \u0027e28df5b996af3480b457c7a9908dbb9d52ad8d7c\u0027:\n  Store correct time stamps in recorded mp4 files\n"
    },
    {
      "commit": "a997e7a7c5aa2fc7e95316218316f8b7b98786ba",
      "tree": "4f98e352833c4de61728588cacc08d40d1d01778",
      "parents": [
        "8da4cd7d706d9f551bf2d08cd8b61907a10cd38d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 07 09:44:19 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 07 15:13:42 2012 -0700"
      },
      "message": "Revert \"Swap the order of creating IAudioTrack and thread\"\n\nThis reverts commit 5d464eb0b8cffb994a754ff108795e858a882414.\nIt caused the wrong thread ID -1 to be passed to IAudioFlinger::createTrack().\n\nChange-Id: Ic221d2bb4af572d3d2d752af19238c52f6728e3a\n"
    },
    {
      "commit": "e671207115fac3914134c61b336d5fa0242c68ca",
      "tree": "466cda101e1528b81bf72c228d7060c33788dedf",
      "parents": [
        "28620ee3e9926ef07f0b4cb3e22b156b812e2d7e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 26 10:56:14 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 07 13:08:15 2012 -0700"
      },
      "message": "Make sure codec names and corresponding quirks are returned together.\n\nPreviously they were returned in separate vectors and only one of them was sorted if\nsoftware codecs were preferred, leaving the quirks no longer matching the codec name\nat the same index.\n\nChange-Id: Id3f1e6f9f7f8c9cc4b6ebfb86a203b4d59de8604\nrelated-to-bug: 6737884\n"
    },
    {
      "commit": "a6ee7bc5f9524c220377e37f6525e2d46c69b75b",
      "tree": "a400db737ac5e0c2bb7961fef314bbb975656eef",
      "parents": [
        "8da4cd7d706d9f551bf2d08cd8b61907a10cd38d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 06 22:02:27 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 06 22:03:28 2012 -0700"
      },
      "message": "Remove obsolete hack for TI specific code\n\no related-to-bug: 6566886\n\nChange-Id: I39aad214cbf7b748a95a9d22db50cd8f421931e6\n"
    },
    {
      "commit": "a3b71fa5235b758d5f9ea00b9c58fbfd707fb9dd",
      "tree": "74897f534787e1da1855a4b87f6de0aa3de278ac",
      "parents": [
        "36cdfb185877a7f573621d19ed2b2e1cac13d62e",
        "840667883fd09d44015716d79bc3ac4d60edc0f0"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 03 14:16:33 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 03 14:16:33 2012 -0700"
      },
      "message": "Merge \"experimental support for fragmented mp4 playback in nuplayer\" into jb-mr1-dev"
    },
    {
      "commit": "840667883fd09d44015716d79bc3ac4d60edc0f0",
      "tree": "cb55492dbe3ca64b2ab9ba2f5a3bb6d0a0bcf650",
      "parents": [
        "9cb20d4a41eb84bfab7f9f0d0829393f378583f4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 09:34:26 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 03 13:57:32 2012 -0700"
      },
      "message": "experimental support for fragmented mp4 playback in nuplayer\n\ncherry picked from change 170999\n\nChange-Id: I407775f0290154ad4961134839a15c9f296424c0\n"
    },
    {
      "commit": "983cf231ab2d176a14595cdae46ff1b0c239af47",
      "tree": "01942a13a082e2116f8df5dbaca1a902ac52a299",
      "parents": [
        "15d7245ed2193e4956ea87998321cbc16a3b0a46"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 01 16:39:55 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 02 17:06:05 2012 -0700"
      },
      "message": "Dynamically configure the number of video buffers used by camera source, if supported\n\no related-to-bug: 6920805\n\nChange-Id: I413bb50954cc84e32ed40bcb713842dc7b58e2b6\n"
    },
    {
      "commit": "0dff606f42292b8a31b9eee842877f9875279dab",
      "tree": "84529f95eacfe525e3ecbc0d9a6f4b49fb0c737b",
      "parents": [
        "c9729ca1cb1760da836e293e3ed7a82f769f3e07"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 01 19:32:46 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 02 14:01:25 2012 -0700"
      },
      "message": "Allocate buffers before calling start on its source in OMXCodec::start() for encoder case\n\no This makes it possible to configure the source to use the same number of input buffers\n  as requested by the video encoder, before the source starts. As a result, hardcoded\n  number of video buffers for camera source, for instance, can be avoided.\n\no related-to-bug: 6920805\n\nChange-Id: I13d2c308dce34967768cd407f02988e92ef10a89\n"
    },
    {
      "commit": "c9729ca1cb1760da836e293e3ed7a82f769f3e07",
      "tree": "7e080db5914465b3f739f68ae9a21cef94646c9f",
      "parents": [
        "6472badc497a9e748411f8c8c9ed5d83ef335a85"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Jul 24 14:44:06 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Aug 02 11:56:07 2012 +0900"
      },
      "message": "Unifying TimedTextDriver\u0027s resume() and start().\n\n(cherry picked from gtv bb23a2b7e06c59f56e353fd4a2a66a9b8179d425)\n\nChange-Id: If5f14549fa315c34e32d6fed7c1ea09deabceb63\n"
    },
    {
      "commit": "bb6bc8491fe819f96e1902e56694715cb110ce94",
      "tree": "276e8c9aac3e7838ed61cdbda857ae27947975e9",
      "parents": [
        "2f0632f12cd02b0350918720443c888b48f4417b"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Jul 10 15:53:44 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Aug 02 11:56:07 2012 +0900"
      },
      "message": "Adds resume() function\n\no Revived resume() function to fix pause/resume bug. (Bug: 6663740)\no Mannually cherry-picked from GTV change.\n(commit: ad1197226d1c6745959f0e469f510ca06f99489f)\n\nChange-Id: I77ac90085fb1f1d2e7eb706642978a4fa4d28b49\n"
    },
    {
      "commit": "5a81ad893eada20c32596be53dabe203b99bec3c",
      "tree": "f499f67ddf2abb203f952c84c83f8d9cb017c415",
      "parents": [
        "25f0d7ba1987de61c75f8c68b19de48e0ad9736c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 31 14:41:35 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 31 14:46:38 2012 -0700"
      },
      "message": "Allows MediaMetadataRetriever to retrieve video rotation angle\n\no related-to-bug: 6872687\n\nChange-Id: I34e74b0756f8269edefdf3a25d8806c76fd1e2f8\n"
    },
    {
      "commit": "efcdf187baab9ec29e12adcf85e63fe3e6d5aa4d",
      "tree": "d85166122a684b6020e166d4e3bb005c5285db13",
      "parents": [
        "ffb829430ff20ccd6c13e6ed894f2373b2d93939"
      ],
      "author": {
        "name": "Johannes Carlsson",
        "email": "johannes.carlsson.x@sonymobile.com",
        "time": "Thu Mar 08 11:06:13 2012 +0100"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Mon Jul 30 14:52:08 2012 +0200"
      },
      "message": "Store correct time stamps in recorded mp4 files\n\nAccording to the specification (ISO_IEC_14496-12_2008 page 17, 19 and\n21) the time is \"in seconds since midnight, Jan. 1, 1904, in UTC time\"\nwhich is not the same as Unix epoch time. This is already correctly\nhandled in MPEG4Extractor.cpp when reading files.\n\nThe specification also supports 64 bit timestamps which would make\nit a bit more future proof, but unfortunately it seems like support\nfor this in players are poor (tested both Windows media player and\nQuicktime player).\n\nChange-Id: I102d728f098b8b0a21013956f017b0c4f2d69112\n"
    },
    {
      "commit": "5d464eb0b8cffb994a754ff108795e858a882414",
      "tree": "e5d78a91a03a1895cc03cfeb89c26aac49d15a9e",
      "parents": [
        "0ec23ce0d1ff79566c402bc30df3074f6e25a22b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 22 17:19:53 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 27 14:58:43 2012 -0700"
      },
      "message": "Swap the order of creating IAudioTrack and thread\n\nSimplifies the error recovery in case IAudioTrack fails.\n\nChange-Id: I6aee41a2ac747a5689fb4836b04174e6107bf32f\n"
    },
    {
      "commit": "0ec23ce0d1ff79566c402bc30df3074f6e25a22b",
      "tree": "8925eca2b9f4b9bccb7fa4d032ab80070179912d",
      "parents": [
        "e4e2a37dbe2a4d923232305549101f779a2e3638"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 10 12:56:08 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 27 14:54:48 2012 -0700"
      },
      "message": "Clean up start() parameters\n\nDocument where int is used instead of AudioSystem::sync_event_t\n  (probably because of a header file dependency).\nTrackBase::start() and RecordTrack::start() don\u0027t need default parameters.\n\nChange-Id: I82f4a4d078be900f3aa4bd926697e32f5ed68ec8\n"
    },
    {
      "commit": "58e5aa34f01d663654d8bafad65db1dda42161ff",
      "tree": "706a80113457f48feae3eab9f8720bcc3da2b397",
      "parents": [
        "1d491ff06f4b9c90ff24fe953b90d0843eaf1c04"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 20 14:08:14 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 25 14:43:19 2012 -0700"
      },
      "message": "effect_descriptor_t const correctness\n\nChange-Id: Iad008f20d35a18acf500f773900164552fd0c19e\n"
    },
    {
      "commit": "68ea6cab354a635ea848bc2b5cf172d7a215a057",
      "tree": "7493493a0cd877fbb77432e4ea8601286b1da020",
      "parents": [
        "e78d5c7bfda1e80223436df3faeb4a9e2e719bcf",
        "f6d9696bf1db133d16dd8981380e1bfbd2e0bc70"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Jul 20 18:40:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 20 18:40:30 2012 -0700"
      },
      "message": "Merge \"Camera: Add OPAQUE pixel format to CameraParameters\""
    },
    {
      "commit": "c374dae535b83d9b499dd9fe8f9dabdb8b0ac9fd",
      "tree": "9e854a53f611c1a6a08c7ac507037c9fcf49c3c9",
      "parents": [
        "33e6e35b03a726e35203e97550f32154c91d5f13"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 19 19:18:06 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 20 15:28:25 2012 -0700"
      },
      "message": "Added a callback to signal when the rendering of the video frame just occurred\n\nChange-Id: Ifbd78606ffc33483aecebf02cb18e0e52af9624d\nrelated-to-bug: 6851811\n"
    },
    {
      "commit": "f6d9696bf1db133d16dd8981380e1bfbd2e0bc70",
      "tree": "9599fa0f762f48aaffb17429f4b885236734d07b",
      "parents": [
        "ea682976030a3930f6ee49b33b7e21abfc68174a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 18 17:50:46 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Jul 18 17:53:39 2012 -0700"
      },
      "message": "Camera: Add OPAQUE pixel format to CameraParameters\n\nThis is only used to support recording with HAL 2 in the\nKEY_VIDEO_FRAME_FORMAT parameter, and is not exposed to applications.\n\nBug: 6243944\nChange-Id: I5976a748d199ae98189bd03af5bbd9e18cbd6bf0\n"
    },
    {
      "commit": "955e78180ac6111c54f50930b0c4c12395e86cf7",
      "tree": "b4c12804643f73e9acbbf1db58f5ffa7e0bd7bc7",
      "parents": [
        "ea682976030a3930f6ee49b33b7e21abfc68174a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 10:32:45 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 17 18:06:19 2012 -0700"
      },
      "message": "AudioRecord locking\n\nFix race conditions for EVENT_MARKER and EVENT_NEW_POS callbacks.\nMarker and new position update fields are protected by lock.\n\ngetSampleRate() doesn\u0027t need a lock because it reads from shared memory\ncontrol block.\n\nEnforce that the parameter passed with EVENT_MARKER and EVENT_NEW_POS\ncannot not be changed by the callback handler, and will not change during\nthe call by another thread.\n\nSession ID should never change; log if it does.\n\nChange-Id: Ia2c63cf1a71b10bb06c37981bd76437f83fffa91\n"
    },
    {
      "commit": "28b76b334f92a15a2be3cc9e2f7d229a3275d1ac",
      "tree": "c605d3e995f4b6be55dd4b10e1c998b059990d0d",
      "parents": [
        "fd4e20c226eca185fc789de761beae64855bfbbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 17:24:41 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 17 11:31:59 2012 -0700"
      },
      "message": "Use audio_channel_mask_t for channel mask\n\nChange-Id: I1c1896da48983aa9f1462a4b471f910498816f60\n"
    },
    {
      "commit": "dcda3b325f465aa6ec2be11db1c56c8a5e867f33",
      "tree": "0f7709ccea7f3c3cb5a63747adb7d5bfb82e194a",
      "parents": [
        "2bdb2f25861f3a3ac9cf3b7af561975fc9b9eead",
        "d64cd233eef39430561c1e1df423336a199cc5d7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 16 08:27:30 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 16 08:27:30 2012 -0700"
      },
      "message": "Merge \"AudioRecord::stop() return void\""
    },
    {
      "commit": "2bdb2f25861f3a3ac9cf3b7af561975fc9b9eead",
      "tree": "58b79b403e5ec36812aa8ef233cb404b2fcd7341",
      "parents": [
        "1ea6d23396118a9cfe912b7b8a4e6f231e318ea2",
        "190313ec68e81c10d200ff3c20ac152cf90760d6"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jul 13 17:54:32 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 13 17:54:32 2012 -0700"
      },
      "message": "am 190313ec: am 65e8d62a: Merge \"Fixed sample video corrupted in MediaCodec mode.\" into jb-dev\n\n* commit \u0027190313ec68e81c10d200ff3c20ac152cf90760d6\u0027:\n  Fixed sample video corrupted in MediaCodec mode.\n"
    },
    {
      "commit": "d64cd233eef39430561c1e1df423336a199cc5d7",
      "tree": "34f6adda18ee4c4f2d1dea9ea4dbf0c84c2d0bfe",
      "parents": [
        "68337edf595a0c345ba4b8adcd4f1e541a1d7eb7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 21 10:21:23 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 13 15:55:04 2012 -0700"
      },
      "message": "AudioRecord::stop() return void\n\nlike AudioTrack::stop()\n\nChange-Id: Iab62f4665151345f1ad5874c97a21d1a331f0154\n"
    },
    {
      "commit": "190313ec68e81c10d200ff3c20ac152cf90760d6",
      "tree": "7a0a8e099c9a90c42cb84b65d8462c7186e6b3cf",
      "parents": [
        "ffb829430ff20ccd6c13e6ed894f2373b2d93939",
        "65e8d62a5b243518795cdafa498df4a49baf6940"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jul 13 15:12:24 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 13 15:12:24 2012 -0700"
      },
      "message": "am 65e8d62a: Merge \"Fixed sample video corrupted in MediaCodec mode.\" into jb-dev\n\n* commit \u002765e8d62a5b243518795cdafa498df4a49baf6940\u0027:\n  Fixed sample video corrupted in MediaCodec mode.\n"
    },
    {
      "commit": "68337edf595a0c345ba4b8adcd4f1e541a1d7eb7",
      "tree": "121fce48f2765c8d13ecbc84dcf06c44d62096b4",
      "parents": [
        "9cca4c6d976d2d4127286e9eaa54d1b99880c25c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 09:05:58 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 13 14:49:12 2012 -0700"
      },
      "message": "AudioRecord client threading cleanup\n\nRename ClientRecordThread to AudioRecordThread to be more similar to\nAudioTrack naming.\n\nOnly create the thread once, and use resume() and pause() for start()\nand stop().  This will allow us to have a known client callback thread\ntid that we can pass to AudioFlinger before start().\n\nmActive:\nMade mActive a bool not int.\nmActive is protected by mLock; volatile is meaningless.\nFixed a few places where mActive was accessed without a lock:\n - stopped()\n - processAudioBuffer()\nThese aren\u0027t used internally, so no need for _l() versions.\n\nChange-Id: I4b8a5c90f3a22d3894b344564cb1c5aef4f1fda2\n"
    },
    {
      "commit": "fa2b8f243eb048fb2b8e5a14356190f69eb31a36",
      "tree": "d54232d4c61bf767677bcee2373069c4969301c1",
      "parents": [
        "4221e2813f7a307936036e62b6a63bbda23005ee"
      ],
      "author": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Tue Jul 10 20:01:13 2012 -0700"
      },
      "committer": {
        "name": "Edwin Wong",
        "email": "edwinwong@google.com",
        "time": "Fri Jul 13 13:05:56 2012 -0700"
      },
      "message": "Fixed sample video corrupted in MediaCodec mode.\n\nChange-Id: I50c5660072d40f6e297e58fd026ea04c89d6a70a\nrelated-to-bug: 6732061\n"
    },
    {
      "commit": "5f0033d27b75fead593ed7ca2b86f5b6f5adf6cc",
      "tree": "e12cae6d070d56571a5ce2160199b4a54edd0f7a",
      "parents": [
        "1879fff068422852c1483dcf8365c2ff0e2fadfc",
        "d4070955e28ae62aa4be1657f9d32acde104bb86"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 13 07:20:47 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 13 07:20:47 2012 -0700"
      },
      "message": "Merge \"Remove dead code in libmedia\""
    },
    {
      "commit": "1879fff068422852c1483dcf8365c2ff0e2fadfc",
      "tree": "f374fae563e2854ce20b4da16e9cae0d883aecd7",
      "parents": [
        "bf04a5d7f287fc712e0ed91849dc85c90c1e182d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 11 15:36:59 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 13:43:08 2012 -0700"
      },
      "message": "Add tid parameter to IAudioFlinger::openRecord\n\nNot yet implemented\n\nChange-Id: I35523fb15ad71727ecc9f4bb870f07e4b7397dc4\n"
    },
    {
      "commit": "d4070955e28ae62aa4be1657f9d32acde104bb86",
      "tree": "4e289a66bb82da52f8e0e1c1691b35f1309d9f35",
      "parents": [
        "39c54f68804c1ce5c85ec588f3c2c63447a807b4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 11:03:31 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 11:09:09 2012 -0700"
      },
      "message": "Remove dead code in libmedia\n\nChange-Id: I7d8201590cda29c9fa99662a4fdba222091febfe\n"
    },
    {
      "commit": "bf04a5d7f287fc712e0ed91849dc85c90c1e182d",
      "tree": "f9fd2ffd8df5a02c9c9373f5362da76204e5a676",
      "parents": [
        "39c54f68804c1ce5c85ec588f3c2c63447a807b4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 09:07:11 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 12 09:36:34 2012 -0700"
      },
      "message": "Simplify AudioRecord::getInputFramesLost()\n\nThis also fixes a benign race in reading mActive without a lock.\n\nChange-Id: I19e953d4f275e5c266ca1ca3fece7b6c02ad1707\n"
    },
    {
      "commit": "254af180475346b6186b49c297f340c9c4817511",
      "tree": "bee0e313aaa97645167e86f4678e513ab38d1c99",
      "parents": [
        "4d2132c866228eaef563e8141ebf06aa25ee9ff7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 14:59:05 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 10 10:05:31 2012 -0700"
      },
      "message": "Use audio_channel_mask_t more places\n\nUse it in AudioSystem::getOutput(), AudioSystem::getInput(),\nIAudioPolicyService::getOutput(), IAudioPolicyService::getInput(),\nand various other places in AudioFlinger.\n\nNot done: AudioTrack and OutputDescriptor.\n\nChange-Id: I70e83455820bd8f05dafd30c63d636c6a47cd172\n"
    },
    {
      "commit": "983995747ed3adaf25035c433df1ccbaa056a898",
      "tree": "560ae326126ee657e50d7ff36119760b1992936e",
      "parents": [
        "d4e5af6bc0a012e8d43975ca8b5627631333920d"
      ],
      "author": {
        "name": "Paul Fariello",
        "email": "fariello@archos.com",
        "time": "Mon Jan 23 17:21:33 2012 +0100"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Jul 10 13:36:14 2012 +0300"
      },
      "message": "MPEG2TSWriter: Write a proper CRC in PAT and PMT\n\nChange-Id: I6ec8039b176878da6f02691194d96b0a1e894055\n"
    },
    {
      "commit": "d4e5af6bc0a012e8d43975ca8b5627631333920d",
      "tree": "4fa273c0f4f7969c375f9ea0d9fe8b651a77cfd7",
      "parents": [
        "ffb829430ff20ccd6c13e6ed894f2373b2d93939"
      ],
      "author": {
        "name": "Paul Fariello",
        "email": "fariello@archos.com",
        "time": "Mon Jan 23 17:24:35 2012 +0100"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Tue Jul 10 13:34:15 2012 +0300"
      },
      "message": "MPEG2TSWriter: Write proper continuity counters for PAT and PMT\n\nChange-Id: If94e31e51c563867db6d2376ad771f9751416084\n"
    },
    {
      "commit": "dd8104cc5367262f0e5f13df4e79f131e8d560bb",
      "tree": "46c95f24576ec352d7d5d363606db9a46a44e9c3",
      "parents": [
        "f1da96d8cf60842538e00a9c950cc451f7da2c10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 02 12:42:44 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 10:24:45 2012 -0700"
      },
      "message": "Use audio_channel_mask_t more consistently\n\nIn IAudioFlinger::createTrack() and IAudioFlinger::openRecord(),\ndeclare input parameter to use correct type audio_channel_mask_t.\n\nIn IAudioFlinger::getInputBufferSize(), input parameter is now channel mask\ninstead of channel count.\n\nRemove unused IAudioFlinger::channelCount(audio_io_handle_t).\n\nIn AudioRecord::getMinFrameCount() and AudioSystem::getInputBufferSize(),\ninput parameter is channel mask instead of channel count.\n\nChange-Id: Ib2f1c29bea70f016b3cfce83942ba292190ac965\n"
    },
    {
      "commit": "0dc6d5ef45c0721c76f0e55354ff80371d795e5d",
      "tree": "bb761a26a5536983ae84a5b6f1e5defa6fd33a8e",
      "parents": [
        "9ee836fc8cf54d26e1e0819d1467d4d39bb9295c",
        "02e84eaff54414e9f10c0f605152728a682c6874"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 17:28:11 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 25 17:28:11 2012 -0700"
      },
      "message": "Merge \"AudioRecord comments\""
    },
    {
      "commit": "02e84eaff54414e9f10c0f605152728a682c6874",
      "tree": "9e9cfa5e54197ce0a2f60328b1fa17bf3c1d0271",
      "parents": [
        "624a7fcb377f2a40109c16de5109ae8ea1f67a69"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 13:45:12 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 15:42:37 2012 -0700"
      },
      "message": "AudioRecord comments\n\nGroup the private fields according to how they are used\n\nChange-Id: I7ce3d0939510c10f34bd91a55f6e03afc8e7d43c\n"
    },
    {
      "commit": "20010053daabfa43fcfe781bbf004473b4c08538",
      "tree": "f34948205baac68d57000467e9877a0041249d33",
      "parents": [
        "624a7fcb377f2a40109c16de5109ae8ea1f67a69"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 22 13:43:51 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 13:51:10 2012 -0700"
      },
      "message": "Remove acoustics from AudioSystem::getInput()\n\nChange-Id: I29fb3ee5664c1f0ee0409c1bb2be087ecca637db\n"
    },
    {
      "commit": "624a7fcb377f2a40109c16de5109ae8ea1f67a69",
      "tree": "9082c6373d7a8c904183ba745697938ca30fda68",
      "parents": [
        "70be725da4d8aafb94d47c1962e897ecd5fdf823"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 21 16:24:00 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 10:03:30 2012 -0700"
      },
      "message": "Use audio_channel_mask_t in AudioRecord\n\nChange-Id: I9e1b918b2635d961604a4a9d88eb1c7179a167a7\n"
    },
    {
      "commit": "70be725da4d8aafb94d47c1962e897ecd5fdf823",
      "tree": "ccd550d401bdc8f73f04c0f08cd128216ff713aa",
      "parents": [
        "868a6a357018e5872e064b7a13a9b891e2078962"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 21 16:24:14 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 25 09:47:01 2012 -0700"
      },
      "message": "Remove unused AudioRecord::channels()\n\nIt was declared but never implemented or called.\n\nChange-Id: If5846147fcbd7f6d4187971e2044dd6fd3252b42\n"
    }
  ],
  "next": "868a6a357018e5872e064b7a13a9b891e2078962"
}
