)]}'
{
  "log": [
    {
      "commit": "5bc087c573c70c84c6a39946457590b42d392a33",
      "tree": "a9326bfa5027a152a5a21dd9de86d228c7d92330",
      "parents": [
        "53df1a460bcfdd129ca2bc416dee2009e35c042e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 23 10:27:40 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 23 10:27:40 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit eaeaa2672d4e0a82891493b2bde8bdd0c0e79a1b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 23 10:26:48 2010 -0800\n\n    Remove lowest bandwidth stream if using the legacy player.\n\n    Change-Id: I2f885e26344996de9152f8fda9fd6bdef89bf953\n\ncommit 7d652972615b2750fd8f1c21b9fab0e136df2b82\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 23 10:14:36 2010 -0800\n\n    Don\u0027t clear the packet source\u0027s format for legacy discontinuities.\n\n    Change-Id: I9bd5a21b9bd28043ad38bd0658ccc8eda3c1079a\n\ncommit 2b18a45aac17cbfe1aa089d0f6510957d438dd64\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 23 10:13:55 2010 -0800\n\n    Use NuPlayer for HTTP live streaming based on runtime property.\n\n    adb shell setprop media.httplive.enable-nuplayer true\n\n    Change-Id: I22738df3403985dc8e6992b1ab5da5747309f773\n\ncommit 50d899fb7b9ea52c3994b0a58e993998d926aeed\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 16:25:22 2010 -0800\n\n    Make ACodec a lot less verbose.\n\n    Change-Id: I94c7e499b61032321ffaf999f5ad2c913cde6a48\n\ncommit b19e1740cb4d02990a56844654b5d019987c6405\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 16:22:22 2010 -0800\n\n    Wait until we have fresh codec-specific-data before instantiating the decoders\n\n    after a discontinuity involving a format change.\n\n    Change-Id: I7bcf9b5ae3319f08bf8978a117e8ee5220902e37\n\ncommit 06428c006906c9099e430aface3b439ff1d36ecc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 15:20:38 2010 -0800\n\n    Disable random seeks in the streaming tool for now.\n\n    Change-Id: Ie86fde422dcfc4b2c7a01be51a193fda9c88cd71\n\ncommit e19db68f3bea8a61c191f60f6940f30e3a0d5f1b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 15:20:27 2010 -0800\n\n    Tweak HTTP live parameters.\n\n    Change-Id: If4b71e12485facc523a8a43d8213d0feb190daab\n\ncommit 1e9942791538c2256b579d96c6c04264b0d8b087\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 14:48:23 2010 -0800\n\n    Enable http live streaming through NuPlayer for http URLs containing the string m3u8\n\n    Change-Id: I1691fe12ae8f1507fe3673313959cd50bc324624\n\ncommit 4c33f96a6e499ee0efe0e70b687094430cb7c1c0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 14:40:27 2010 -0800\n\n    Support for HTTP live streaming in NuPlayer.\n\n    Change-Id: Iacba1c3ebaeb8d3b972185deaf4cff18c8009c54\n\ncommit ddf705ce553708bc5b13d89a878484cf839bd674\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 13:42:47 2010 -0800\n\n    StreamingSource now a subclass of abstract NuPlayer::Source\n\n    Change-Id: Ia6c7c639628910b9d1f37decc55da48b07a70de3\n\ncommit 9e04a8406b1882a8e3fdeb7b4d52db5ae70b970a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 22 13:33:52 2010 -0800\n\n    Refactor media data sourcing to NuPlayer::Source.\n\n    Change-Id: I1db9fb08c4e527bf7b19c29978cf342c2b0a0bc9\n\nChange-Id: I9610a097481dda58f22142eacda3ac2dba0b63f9\n"
    },
    {
      "commit": "53df1a460bcfdd129ca2bc416dee2009e35c042e",
      "tree": "ab7d4a70f4a09211ba62f4725c7eb735ccf10587",
      "parents": [
        "df42f949c8bd05b81d94633767514fff88f52062"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 22 10:03:04 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 22 10:03:04 2010 -0800"
      },
      "message": "Distinguish discontinuities w/ a format change from those without.\n\nShutdown decoders as needed in anticipation of a format change, otherwise just flush.\n\nChange-Id: Ieb04f8aa8658569b091409c4903075fd496e5abb\n"
    },
    {
      "commit": "3831a066bcf1019864a94d2bc7b4c9241efc5c22",
      "tree": "13addfa6d2406f60574c3393a153f133d13690b9",
      "parents": [
        "54c02a58e5ad4b7b2668f63caa9d189e958f5544"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 21 10:22:33 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 21 10:22:33 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 63be8ceb8b2354fb997a277c0092abae015ecf10\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 17 13:45:34 2010 -0800\n\n    Enable handling of discontinuities that involve potential format changes.\n\n    Change-Id: I21848a113db8764abb54bdcf302b0923253eaf4d\n\ncommit d18a7f80ec09af382026809263dcbbfa9e7a9ec8\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 17 13:45:01 2010 -0800\n\n    Signal whether or not a format change occured as part of the discontinuity.\n\n    Change-Id: I06e64f542f4369549c9cebbb892dc612346ae43d\n\ncommit c400adbd5fdbd65cfef7aed9ec65bcaace4bb69b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 17 13:44:46 2010 -0800\n\n    A little more instrumentation of ACodec\n\n    Change-Id: I07f4aeccbbd15cdd9f80f48c3f92ee984ef6d92b\n\ncommit 1d802ee01f47b3cdc5b89502cec7fbb595e197a3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 17 13:43:58 2010 -0800\n\n    Only sync audio/video queues if both types of media are actually present.\n\n    Change-Id: Ic88edf9bb1ebd4034c08747cce9877a4e28e0d35\n\ncommit e402da39d9a4d8b75653a78f728e20a3ef0fb497\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Dec 17 13:42:24 2010 -0800\n\n    Disable the random seek for now.\n\n    Change-Id: Iddd597b546e2f229e88214f9bdd6452bb188105e\n\nChange-Id: I27c4d9ba916080be94ce6117dbb095e9022ed62b\n"
    },
    {
      "commit": "2d1e5d35be5e6d4b55ac8b39fbfcbeb60fcdd084",
      "tree": "dae53dfc5388babdcc78fbe02936094803b8dbd8",
      "parents": [
        "95289e216a300ddfadf2beec9c8f2c0af3d7e784"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Dec 20 11:39:38 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Dec 20 11:59:17 2010 -0800"
      },
      "message": "Backward-compatibility max file size support, ignoring 0 or negative file size limit\n\nbug - 3281011\n\nChange-Id: I2d3ae4565602e2374ca794c5e8d0837ad33cf0e8\n"
    },
    {
      "commit": "2c2814b900a61fa07ddfff860b143fbbe9c740e9",
      "tree": "6e87ef2fc13807b7553fb922c149c9e9810c92fd",
      "parents": [
        "e071b055cee301d71335519601474c62b10af411"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 15 17:18:20 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 16 10:08:26 2010 -0800"
      },
      "message": "Properly announce decoder output format changes, make sure AMessage::dup does.\n\nChange-Id: Ia77f6b6d5e5c5055583740dfe876b8a3c22be9b6\n"
    },
    {
      "commit": "f933441648ef6a71dee783d733aac17b9508b452",
      "tree": "240f8068edb362cbea579659a963bbb029a2bac0",
      "parents": [
        "60c5b57edd3c8f4bdf6b38cf5b8a193ba770bb72"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 15 15:17:42 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 15 15:18:26 2010 -0800"
      },
      "message": "Initial support for a true streaming player for mpeg2 transport streams.\n\nChange-Id: I153eec439d260a5524b21270e16d36940ec3161a\n"
    },
    {
      "commit": "ba29002c7aee13c068049037cd14bba6a244da6b",
      "tree": "ae5e61b21c24dbc6fa7fc592c17cbedbc70ed14f",
      "parents": [
        "151827eba283d97771aaa4494e5a1a6573dafcfb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 09 15:04:33 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 09 15:37:04 2010 -0800"
      },
      "message": "First step towards renabling Timelapse video recording\n\nChange-Id: I93836b066fb69d5152d3774546a9935057a1f12f\n"
    },
    {
      "commit": "ea7b485595f8cec6a66668b5c54c8f297d843f77",
      "tree": "05551d3bd3db0b0b971a4dfc5d345ea6e2381267",
      "parents": [
        "16afe2fb439cab6125bb46a07a8078d4ce1c1ea5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Dec 05 14:25:34 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Dec 05 16:08:30 2010 -0800"
      },
      "message": "Remove check if the target video resolution is not supported by CameraSource\nand clean up Camera is CameraSource could not created.\n\nbug - 3254411\n\nChange-Id: I43497c450e7007de5ce027e2912b1421119e8887\n"
    },
    {
      "commit": "16afe2fb439cab6125bb46a07a8078d4ce1c1ea5",
      "tree": "146e5ad9abfa370d35b2a8912a4887356764b1e2",
      "parents": [
        "1cc73922339a110d7ffc47e8842f958492dd85bf"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 02 17:42:08 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 03 15:32:47 2010 -0800"
      },
      "message": "Prepare for publishing MediaMetadataRetriever as public API\n\nstep one:\no replaced captureFrame with getFrameAtTime\no removed getMode\n\nbug - 2433195\n\nChange-Id: I38a8cecef29014692f0b08b8818326e3ebb40a12\n"
    },
    {
      "commit": "1cc73922339a110d7ffc47e8842f958492dd85bf",
      "tree": "ebca916029b5e609bd1528d1b004c15fe8661fda",
      "parents": [
        "3bac12183aa69cc83e1d19b49d4b06a75318d694"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 02 14:48:23 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 02 14:50:07 2010 -0800"
      },
      "message": "If camera source uses the metadata, we must use HW encoder\n Software video encoders are not able to deal with non-YUV metadata in the video buffer sent from camera\n\nbug - 3242213\n\nChange-Id: I97361ed88b2a687190e5129459011afff7f32c2d\n"
    },
    {
      "commit": "f6882a9c8144dc0fd07f3434bb870e5251f51275",
      "tree": "ce9c8a5f9de3fdc168a2fc70e85af81e130c9dde",
      "parents": [
        "14072e56ef34f6ea4b517d69c13b61ad5ec67337",
        "5c2ccf1a4ff8465c076689b6c2d74f2cd4498df2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 02 10:24:24 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 02 10:24:24 2010 -0800"
      },
      "message": "am 80639875: am d4c5478a: Merge \"Be conservative in estimating the file size limit.\" into gingerbread\n\n* commit \u0027806398755fdc63438b607856574e5b885ad98e6b\u0027:\n  Be conservative in estimating the file size limit.\n"
    },
    {
      "commit": "acd234bba9f048971d66890009eeff9a8db94be3",
      "tree": "e7cadaf62d1afeb15a5e776737c3985b08ad7fc1",
      "parents": [
        "03b55cc9d3529995925c8df0d4a35269e591188c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 30 18:18:08 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 30 18:18:08 2010 -0800"
      },
      "message": "Be conservative in estimating the file size limit.\n\nbug - 3045580\n\nChange-Id: Ifdffa354b9433639c3f246a0eb581ef14af1e797\n"
    },
    {
      "commit": "e2b1028852120bcfded33b8f06f66b780437fe92",
      "tree": "a524b579935df0a8773e780299e31b590d1bdb44",
      "parents": [
        "31d7235c79667f88002d9ad87207099ed438a197"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 23 11:41:34 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 23 14:46:13 2010 -0800"
      },
      "message": "Support streaming data across binder boundaries.\n\nChange-Id: Ifbac61406dcb81343765f99ccba08bd90f9274cc\n"
    },
    {
      "commit": "f5ab57c2d5e02af7483c94eddb177e4f5c9e9892",
      "tree": "0290c4064caaca875bfbca4cd3a8857a789d942c",
      "parents": [
        "d8f4d4a919fb4fa6bbd405d03dc91f079c3c2e37"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 22 13:06:35 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 22 14:05:21 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 0870f7bdd10a7cd36087d723d1957d8e1b967ca7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 12:57:04 2010 -0800\n\n    set_surface_crop doesn\u0027t seem to work right yet, stop using it in the SoftwareRenderer.\n\n    Change-Id: If0a24f78b7810a6cecaa82eb4f23d0f90c22cc42\n\ncommit 4767b52bee3a54ae117a8708d6832276a44e6a6a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 11:14:57 2010 -0800\n\n    info-\u003emMediaBuffer may still be NULL at this point...\n\n    Change-Id: I25a71569015b1bb87f1ea7efff7588958774426f\n\ncommit 0cef79874e1f1ddb10b7402177a87d3cffc7de92\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 10:55:12 2010 -0800\n\n    QCOM\u0027s YVU420 color format conversion has now been tested.\n\n    Change-Id: I7fef4b642a928af15d42f006f7cdc107d5ff1d67\n\ncommit 84fe05a6c969ede0ce8a85a530e110afca07c7a7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Nov 22 09:59:50 2010 -0800\n\n    Removed remaining traces of suspend/resume. Proper reporting of video dimensions based on cropping rectangle.\n\n    Change-Id: Ib238b80cbc1f19e7d312f2422eb5e9ab6b06b1bc\n\ncommit 50970cdc837c5c498bcf0cb61b436196ca9e2ef7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:11:06 2010 -0800\n\n    Revamped Software Renderer respects the crop rectangle.\n\n    Removed obsolete ADRENO support code.\n\n    Change-Id: I984cbc8a99c4d97e09e7d1b1292099c88b9ae535\n\ncommit 8abbc6a5608bff650f968540f24a2eab75f254ed\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:10:41 2010 -0800\n\n    The metadata retriever now respects the crop rectangle while capturing a video frame.\n\n    Change-Id: Id3377176060086d16717f62c77ce26fabe899050\n\ncommit 2d42e4466609d304e88bd2cdd6eb7b297340cc21\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 16:09:50 2010 -0800\n\n    Changed ColorConverter APIs to be more general.\n\n    Clients can now refer to crop rectangles in both source and destination.\n\n    Change-Id: Ief151d736818396d0389ec04e7df5650e3ad7c04\n\ncommit 273184303d54a54febd3e9c3dd4df30507ea78b5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 15:04:06 2010 -0800\n\n    The stagefright commandline tool now writes the extracted video frame to /sdcard/out.jpg\n\n    Change-Id: Ieb2ab3fda7a7cd9294beccb8db0eed75096eeef4\n\ncommit 2d43390328cadf4ba94c1c3c02e4fb30baa29690\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 14:36:55 2010 -0800\n\n    The AVC software decoder now properly advertises the cropping rectangle.\n\n    Change-Id: Idb7a8a7e2fde5740f0fc34b7e8c92eca2577104b\n\ncommit 9a7ed23c2fac8ce19dce7a34a603acee945a89f6\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 13:40:39 2010 -0800\n\n    OMXCodec now signals a format change if the cropping rectangle changes.\n\n    ...and puts the cropping info into its output format.\n\n    Change-Id: I3ffbd8e877ba286fe06a82c536ef20d92548d2e2\n\ncommit efe0323947029df1c502599ccc288c8d676dfd31\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Nov 19 11:29:39 2010 -0800\n\n    Stagefright\u0027s MetaData object now supports rectangle items.\n\n    Change-Id: I5667bb5ee6622c76104b99fb57f60abb802a8504\n\nChange-Id: I27cb78f2c5e0353f95fdfc5cb53991949ed75b70\n"
    },
    {
      "commit": "674ebd0b4e1143e38392a4e3bb38b4679a4577bc",
      "tree": "413ce9a380d7c35b935e475ea21fecf5cc5466e7",
      "parents": [
        "317ca79a49746dbd1b6bb83712e93e2dc5f6e4f0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 18 20:59:13 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 19 10:48:22 2010 -0800"
      },
      "message": "Removed uncessary FILE structure pointer for I/O\n\no also move the fd owner from caller to callee in the Writers\n\nChange-Id: I510ccfdd0fcc58f1777fea4ed1349fd251852c65\n"
    },
    {
      "commit": "0a5ca668c6f7d45706e9aec4a1dfec0aacc6d233",
      "tree": "d9a1933cf2af87ad563e9220818c8d752b3a0379",
      "parents": [
        "6f9f029f7fc625bb2a1b448ad30a80a6a6a73b20"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 16 13:05:53 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 16 13:05:53 2010 -0800"
      },
      "message": "Remove all traces of legacy renderer support in stagefright.\n\nChange-Id: I17b8e0dbf53fca37c96830c41131b4bc0c24ca6d\n"
    },
    {
      "commit": "30d713a1c18a5ff892a7f13b2524ba624b70890a",
      "tree": "372cbad6a783c5cb5d3c2091722cdc8943c7bc28",
      "parents": [
        "2d71233de5450f1b128c8149fdbdf39b937f3cb8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 10 18:42:40 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 15 08:36:42 2010 -0800"
      },
      "message": "Remove legacy PV stuff\n\nChange-Id: I60ffea7c65592df4b3a80c590c863f1f79b371fd\n"
    },
    {
      "commit": "393410a441b6d06daf286ed496470e9d6b2b6ca8",
      "tree": "b4827a533706176e7877f98ef79e9021b7c189b2",
      "parents": [
        "54f5501a61bfc13930f9f8d08cbd71a69924d4cc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 10 20:43:53 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 11 22:11:20 2010 -0800"
      },
      "message": "Separate the key for audio sampling rate and video frame rate in MetaData.h\n\nChange-Id: Ia33befaa7e6df8762703002d01aa79c04f15f040\n"
    },
    {
      "commit": "62db7db731c47a00ee1493e94f3e1d953c6e297a",
      "tree": "d769bfb945b68843de17f51031b632b0b2f3c418",
      "parents": [
        "4f4d72de3bcf2a670c2a1007fdb46d78f47ed173"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 10 12:26:58 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 10 14:07:13 2010 -0800"
      },
      "message": "Fix uninitialized variable\n\no This was missed while the rotation patch was hand merged.\n\nChange-Id: I4016f9fb9cd54c5e853da15bbaaa50b1d1dac8c8\n"
    },
    {
      "commit": "13f6284305e4b27395a23db7882d670bdb1bcae1",
      "tree": "d1d52048987dfa98e53e151a6820ae332e59d59a",
      "parents": [
        "30db2709395c73fb3b4ee334119ceba68c95ab13"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 09 11:15:47 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 09 11:48:29 2010 -0800"
      },
      "message": "Rotation support\n\n- We only support 0, 90, 180, and 270 degree clockwise rotation\n\n- Some players are known to ignore composition matrix in the MP4 file,\n  although this is part of the MP4 file standard.\n  Both QT and YT are supporting the rotation\n\nThe original patch (65a73f4e8c79d05c0d9001b660325748d4ecf37b) was not merged.\nThe only change I made is to reuse the same kKeyRotation in MetaData.h;\nand thus do not neeed to use kKeyRotationDegree.\n\nChange-Id: Ib328716d4842201c4adf57e4ddfe1f1ac1ae4d8a\n"
    },
    {
      "commit": "2cef2eff28fd5ba3eaa875dd2e22e74b6f464121",
      "tree": "fccc5363910bb749a95cecaa9d8a48b867a83693",
      "parents": [
        "858154e43f7646b767ef4c27af889c741fc5d9c2",
        "beda607a0b2775484b10d7e6a15eec1e956b3cec"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 19:25:41 2010 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 08 19:25:41 2010 -0800"
      },
      "message": "am c4a2ead2: am d2d62d04: Merge \"Support extracting thumbnail from rotated video tracks\" into gingerbread\n\n* commit \u0027c4a2ead2aa5ab4403553e4956ba71b44782f0c84\u0027:\n  Support extracting thumbnail from rotated video tracks\n"
    },
    {
      "commit": "ce0febae177d1816ee7a6750ed9fba52472b9a71",
      "tree": "6e6283e217fc18d53b63652e1d3fe9da2487919f",
      "parents": [
        "85d9b4225d024bb0d602b48bd6d5219cbebd7b8e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 16:04:27 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 08 16:52:59 2010 -0800"
      },
      "message": "Support extracting thumbnail from rotated video tracks\n\nChange-Id: Ife0a2536aaac5ff1efdf1035b9d2c892773ee16c\n"
    },
    {
      "commit": "aca1fe35480ae76dd6bae167ade40adc955e2d0d",
      "tree": "ed1cb95800d38e5937ae59d01dc60cbdf3803a3a",
      "parents": [
        "ff5bfcf19da45e6bb0136ef818b7c4bf8fd8db3d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 18:39:28 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 05 15:47:52 2010 -0700"
      },
      "message": "Rotation support\n\n- We only support 0, 90, 180, and 270 degree clockwise rotation\n\n- Some players are known to ignore composition matrix in the MP4 file,\n  although this is part of the MP4 file standard.\n  Both QT and YT are supporting the rotation\n\nChange-Id: I1b7f66a801e9d9c49d889c9b06dd6173fa7e76c4\n"
    },
    {
      "commit": "8480835b4bc1350646376aa7f3ae33742a7adeb1",
      "tree": "287195077d7d6e96d8a85228e2609bc8613af94b",
      "parents": [
        "a3d7a3174b600a0df3cf452b708c940e93bb651a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Nov 02 13:20:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 04 17:40:02 2010 -0700"
      },
      "message": "Use meta data in the media recording framework\n\no This patch allows us to do 720p video recording\n\nChange-Id: I2ea37e80a59630145396b08ebcdc6ee71df53333\n"
    },
    {
      "commit": "ff5bfcf19da45e6bb0136ef818b7c4bf8fd8db3d",
      "tree": "6570f16d47ea2bd28364eccb3dd0b08353eb125e",
      "parents": [
        "5b6edb79827a910d8e677e35e77bc12fdc7772b9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 19:22:47 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 19:22:47 2010 -0700"
      },
      "message": "Revert \"Support rotation in media recorder\"\n\nThis reverts commit f1febe470ac30f8992066cb263c10f58493c4c34.\n"
    },
    {
      "commit": "5b6edb79827a910d8e677e35e77bc12fdc7772b9",
      "tree": "1e6cc110b0ada374d30d740cc2facac87f59c137",
      "parents": [
        "63a0a11e8b3292253b3d3bf3a7f7dc733cf6762f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 17:27:58 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 03 17:49:55 2010 -0700"
      },
      "message": "Support rotation in media recorder\n\no needs to be tested with camera hal and camcorder application\n\nChange-Id: Ie343185c8ad3ec55da8850efbdcf19cf98993232\n"
    },
    {
      "commit": "05ea6434ed399395e2dbe9f68abb44f04b274cb0",
      "tree": "96fc95609b002fdf18ae1dff241d3c3a549f1673",
      "parents": [
        "c8ca26ed63edcf2731c4773b8ce3141930cc7245"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 29 12:00:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 29 13:20:06 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 0d5694ba2d399dd0869532a4d6256448185a1be0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:59:23 2010 -0700\n\n    suspend() and resume() methods on VideoView are back but don\u0027t do anything.\n\n    They need to be back because they were public before.\n\n    Change-Id: Iddfd1021ffcf341f26e8d55ba761fd33701e2425\n\ncommit 16192891ed7d349ee97e47d1729d20a2d0d247b8\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:47:05 2010 -0700\n\n    Revert \"New API on VideoView widget to suspend/resume a session. Do not release the MediaPlayer client for video suspending/resuming.\"\n\n    This reverts commit 2e1818a4d16c3309660f27286c77d8d1eee95a25.\n\n    Conflicts:\n\n    \tapi/current.xml\n\n    Change-Id: I68dd1d05871044faf3f832d0838aa40bc7f890e5\n\ncommit 8f934dc1a3ae4e60f0790fcf97671e063fa20fad\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:44:16 2010 -0700\n\n    Revert \"Release mediaplayer if the current state is not suspending. Fix for bug 2480093.\"\n\n    This reverts commit efb882cf75eef39ecaf9f8920ed302a019fa629f.\n\ncommit f2ed03550887986f39d36b5dabcd9e919949c7cf\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:44:08 2010 -0700\n\n    Revert \"Release MediaPlayer if suspend() returns false.\"\n\n    This reverts commit 047212fd4ea360675e94d3ce83c7f5544f65b268.\n\ncommit 441ecce678bd24e9660a72c8627b5bd94433ff8b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Oct 29 11:40:46 2010 -0700\n\n    manually.\n\n    Change-Id: I4fdd43c9f7c8b3eedddb31a196da4984e1c58e87\n\nChange-Id: I60d4b10e7a9e4ed8d9a796f1711618f557eb6e89\n"
    },
    {
      "commit": "635730831e08c32a5fe7c59125e0919b7e7899cd",
      "tree": "184de1c19477798888a2614d11c13004600fa8f4",
      "parents": [
        "e09591eff55fdff1868b32c3e046c62f800330fc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Oct 24 09:32:39 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 25 16:16:10 2010 -0700"
      },
      "message": "Don\u0027t change the video recording frame rate if it is not requested.\n\no set the default video frame rate to the current frame rate being used\no add check on whether the requested frame rate is supported\no fix an issue where the hardware video encoder setting was bypassed\no increases the max frame rate from 30 t0 120 frames per second\n  the actual frame rate will be clipped if the requested frame rate is too\n  high when recording starts by checking the hardware encoder capabilities\n\nChange-Id: I1b47671d74da0ebcb9601bdca390d430cc048fbc\n"
    },
    {
      "commit": "8ac0cb9dc8a46f9b2badabc91cb5f7871e2215a9",
      "tree": "5ba561315eff765e4a434ae56c55c3648defe5ec",
      "parents": [
        "3e00cc070090fa3eab16792da90aa33823cd6db1",
        "06fa2bcce5dd80b406a23f980d8c9fac1524ebfd"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 18 08:33:38 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Mon Oct 18 08:33:38 2010 -0700"
      },
      "message": "Merge fb474872 from gingerbread-plus-aosp\n\nChange-Id: I1bbb845a86a7b7df44ea175df3af22e5f47c44e3\n"
    },
    {
      "commit": "56cfa2376ae87cba730ea7ce4a9e0ca4f0d07627",
      "tree": "c5909cd90e35e198a801abf6cff6d924a73b8011",
      "parents": [
        "b10d28f233bb881cc12260c320892e5feb198e9a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:31:29 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 15 13:31:29 2010 -0700"
      },
      "message": "Include the framework copy of the OpenMAX headers instead of referencing external/opencore.\n\nChange-Id: I762f59acf5e1f770e4d7c2d89af362bfffebefa6\nrelated-to-bug: 3101573\n"
    },
    {
      "commit": "f9f083e2853740c97588f4db82c24645ae5880e4",
      "tree": "5d045dddcf9e85e4826286c28662050b9d4a935d",
      "parents": [
        "d6119356f45c9c57cac812357d969ecc3001087e",
        "e4edd632d48720b44f7878273f46d192d5703150"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 14 23:58:41 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Oct 14 23:58:41 2010 -0700"
      },
      "message": "resolved conflicts for merge of a127c07c to master\n\nChange-Id: Ifdfc6681cba00f36456eaf7a97f34a75b9d0c086\n"
    },
    {
      "commit": "59b7dc39ea8332d3418a599e51447d7edb612ac4",
      "tree": "30d77dd5cca3f58b3902df86e7df1dab42abc0f2",
      "parents": [
        "2bc940b4f961e588459c83862b2c6bea314a4027"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 12 14:17:45 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 12 16:05:23 2010 -0700"
      },
      "message": "Support for writing to MPEG2 transport stream files.\n\nChange-Id: If3b7a807bc224a4b1cb2236537c3ebdc5aee0d97\n"
    },
    {
      "commit": "9086ce254ac8769dbe90afd5146fce509a86418f",
      "tree": "839b677b53471d46e2d976aa21c64dd3083e4b3e",
      "parents": [
        "f0dee1c7bb5ed2b90b2207bde7552d0f9ce2c3b1",
        "abc40fd3f7effc025ccad91d05f5d6bb2a4c857c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Sun Oct 10 17:14:53 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 10 17:14:53 2010 -0700"
      },
      "message": "am 2b4f1f4c: am f72dd019: Merge \"Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\" into gingerbread\n\nMerge commit \u00272b4f1f4cb814f7a7df8d2cb9fcb5210bfe7999c7\u0027\n\n* commit \u00272b4f1f4cb814f7a7df8d2cb9fcb5210bfe7999c7\u0027:\n  Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\n"
    },
    {
      "commit": "2eeadf9ded4b5770a713496e9887d668889987bc",
      "tree": "94815ad41dce013a8d793d9e70d21f330573bd2b",
      "parents": [
        "0714c8262054cb6a532025feb082b21b502a128b",
        "74684081846ee6e68325fa5aba5c45b7447fd368"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Oct 10 16:06:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Oct 10 16:06:04 2010 -0700"
      },
      "message": "am 4f21e517: am b37fcbfd: Merge \"Added getter for session Id to AudioSink\" into gingerbread\n\nMerge commit \u00274f21e517d09b9d793d20d64547df330fba705b3c\u0027\n\n* commit \u00274f21e517d09b9d793d20d64547df330fba705b3c\u0027:\n  Added getter for session Id to AudioSink\n"
    },
    {
      "commit": "54ff19ac69ace7c05ea90d225e26dab3b133f487",
      "tree": "abf0b910f9a40a2409d7e725c99c6144238d0625",
      "parents": [
        "fa6a5d481474ba11517c8d0eb6431595d387b81e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 08 11:59:32 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Oct 08 18:32:43 2010 -0700"
      },
      "message": "Move Camera specific logic out from StagefrightRecorder to CameraSource\n\no updated comments and streamlined the logic in\n  checkVideoSize() and checkFrameRate() as suggested\n\nChange-Id: I49d04ac7998d4a215997aa63555dfb6e814e38d3\n"
    },
    {
      "commit": "6f3cba53efdd985ab13734c7ad90eb373ae9b9f7",
      "tree": "7cc426c49690a424cb2aa9dcbe9bfbe50e0c93a3",
      "parents": [
        "e6d26450e5a01be5b7f1343578e7237e68db7737",
        "70f521de2675ce6eedf4b22beed94ea1289b0f38"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 11:16:07 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 08 11:16:07 2010 -0700"
      },
      "message": "Merge \"Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\" into gingerbread"
    },
    {
      "commit": "70f521de2675ce6eedf4b22beed94ea1289b0f38",
      "tree": "fe477ecc5b9fbec01d41a458cc17bcf867f9809d",
      "parents": [
        "f4ea1f92bc56a8ffceddba0dbd3979fe0219b13c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:16:24 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 08 10:16:24 2010 -0700"
      },
      "message": "Disable 10secs forward/backward seeking for rtsp as seek is a very expensive operation there. Decouple the 10sec forward/backward button functionality from seekbar functionality.\n\nChange-Id: I016e79b688774f8ee91ac53216197b5fb9cb41b2\nrelated-to-bug: 3073955\n"
    },
    {
      "commit": "8c563ed9ca8a863a66965330b5d14bb4b4ab59d4",
      "tree": "b2d2e571aa8618456b27e1cb67a717ca80340e3e",
      "parents": [
        "2a4d22d79e927f2245537921e10fc5fda1c47a29"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 07 18:23:03 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 07 18:23:03 2010 -0700"
      },
      "message": "Added getter for session Id to AudioSink\n\nAdded a method to expose the audio session id at AudioSink interface\nso that the AudioPlayer in stagefright can retrieve it.\n\nAlso:\n- Fixed audio effect send level not being initialized in mediaplayer.\n- Fixed compilation error when LOGV is enabled in mediaplayer JNI\n\nChange-Id: I4bb55454fd63d646e0e677692d737c4843fb05fb\n"
    },
    {
      "commit": "5f4d93467a03b3a38320416f8cc2c2c2c94bf3fc",
      "tree": "096ebecff6d3483fe96bc504d584fb5837011c90",
      "parents": [
        "0d14c25355b7807b88fcdc76040ef986aa754815"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Oct 03 22:08:23 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Oct 04 13:14:22 2010 -0700"
      },
      "message": "Use setVideoSize API in StagefrightRecorder\n\nChange-Id: Ia7ddf5e8d2b931453d2cb801169906191349ca07\n"
    },
    {
      "commit": "51be6db7d0e802b3f5d067e39e543ae4f09ed01c",
      "tree": "987f654eda08d2e4be1832f4fae744aa4ce390d1",
      "parents": [
        "3a2f37f40cfceb181ee61ae53a7d6954ce9717cd",
        "2658b3f8736a378ad5956aefed069387808d8cd3"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Tue Sep 28 13:19:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 28 13:19:55 2010 -0700"
      },
      "message": "am 7dff9dfd: am 269dea1c: Merge \"Fix media.player dumpsys to output open/mapped files correctly. Bug 2866669. The dump function whitelists several directories as filters to the output. The mount point changed for SD card in Froyo, and we started filtering files that w\n\nMerge commit \u00277dff9dfd6176fad1318a27f16318561453a429f0\u0027\n\n* commit \u00277dff9dfd6176fad1318a27f16318561453a429f0\u0027:\n  Fix media.player dumpsys to output open/mapped files correctly. Bug 2866669.\n"
    },
    {
      "commit": "02fa834249a01144d6f23137951538600aa5d611",
      "tree": "8cfc2546431c46811d988c8976679fbc75143e0e",
      "parents": [
        "4a73f3da3501db6e95473a4a653d6319c6d618e2"
      ],
      "author": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Sep 27 16:55:18 2010 -0700"
      },
      "committer": {
        "name": "Dave Sparks",
        "email": "davidsparks@android.com",
        "time": "Mon Sep 27 17:04:05 2010 -0700"
      },
      "message": "Fix media.player dumpsys to output open/mapped files correctly. Bug 2866669.\nThe dump function whitelists several directories as filters to the output.\nThe mount point changed for SD card in Froyo, and we started filtering files\nthat were open on the SD card. This fix changes the filter for the SD card,\nand adds the directory for data files as well.\n\nChange-Id: I61b67c3d11d93dbd530e8b3566000e79bc037137\n"
    },
    {
      "commit": "78eff720c86eb6d4e3d45a144df60b2ca464d2d4",
      "tree": "74d93ba7c4ae2d3904d40ef69f614d257c596547",
      "parents": [
        "302a965f4bf5d179ccc68b7d853e2806941de020"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Sep 15 15:08:49 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 17 09:50:27 2010 -0700"
      },
      "message": "Implemented frequent read returns for quick stop in time lapse.\n\nIf the frame capture interval is large, read will block for a long time.\nDue to the way the mediaRecorder framework works, a stop() call from\nmediaRecorder waits until the read returns, causing a long wait for\nstop() to return. To avoid this, we return a copy of the last read\nframe with the same time stamp if a frame is not available quickly.\nThis keeps the read() call from blocking too long. This method is\ntriggered when startQuickReadReturns() is called on\nCameraSourceTimeLapse.\n\nIn the still camera case, also using waitRelative on Condition\ninstaed of sleeping, so that we can wake it up.\nAlso for the idle check instead of sleeping, we now wait on a\ncondition variable, which is woken up when the last takePicture\ncallback gets called.\n\nChange-Id: Ia74386e175536aee0f44ae2f8b114c353d3d72f5\n"
    },
    {
      "commit": "59d9e31c503e5c2f49448362a0d3a8f1150fb6c2",
      "tree": "89dad46179877bd15bd92127a36717c45d07cbcb",
      "parents": [
        "7bb20172891fdd27cc13208ac9e36b80309ab0e5"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Sep 13 18:52:55 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Sep 14 18:23:57 2010 -0700"
      },
      "message": "Checks for auxiliary video recording.\n\n- Check that time lapse mode is on when using auxiliary video recording.\n- Check that auxiliary video size is strictly less than the main video\n  size.\n\nChange-Id: Ic49d25e6ac30f6f885ce4f5fb38dbe0cc7bc1be1\n"
    },
    {
      "commit": "155e833a7a5fc3e193691324cf9326da1bc3289a",
      "tree": "bf8997c55b22617004836014389664dcb56ebf05",
      "parents": [
        "cfe88a20345dad981842b2c8092e4c704d3f98b4"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Sep 02 11:43:15 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Sep 03 17:09:36 2010 -0700"
      },
      "message": "Moving decision to use still camera to CameraSourceTimeLapse\n\nCameraSourceTimeLapse now decides whether to use still or video\ncamera automatically. It checks if the passed in size is a valid\npreview size and if it is, then uses the video camera else uses\nthe still camera.\n\nRemoved from StagefrightRecorder the support to set parameter\nuseStillCameraForTimeLapse.\n\nChange-Id: I71f5b0fc7080ca524792381efe918d22e41a7f36\n"
    },
    {
      "commit": "cfe88a20345dad981842b2c8092e4c704d3f98b4",
      "tree": "bb47e897bce701371e03b750838b852f9971f6d3",
      "parents": [
        "ad452ffadf0ced7449395585a55255c915734e17"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 15:35:44 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Sep 01 13:46:46 2010 -0700"
      },
      "message": "Support for auxiliary video parameters.\n\nAdded support for passing width, height and video bitrate\nfor the auxiliary video.\nAlso setting encoder level depending on the video size and bitrate.\n\nChange-Id: I4a90046853f67287c3e7e6babc75b4827f0c3e73\n"
    },
    {
      "commit": "5d6aca5d86e86af3f8f597be573d4563d69ceb85",
      "tree": "88eb64d7aa763ab24c7eda54b0817740781d4bea",
      "parents": [
        "9c075bca0b75093ca0514a3c8f74d73c8e9e83fd"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 17:20:53 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 10:38:49 2010 -0700"
      },
      "message": "Added setAuxiliaryOutputFile to MediaRecorder and JNI\n\nadded setAuxiliaryOutputFile to allow setting of an auxiliary output file.\nAlso added the JNI support.\n\nChange-Id: I8c3335192bd6f7fcbfdfc8552cfd0848f2ad2a5d\n"
    },
    {
      "commit": "9c075bca0b75093ca0514a3c8f74d73c8e9e83fd",
      "tree": "5669e5acd20c684e4ec8f28e68f883066c640600",
      "parents": [
        "6865ddb29fc7e7a14104d73c65b71074502bb6c7"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 26 17:05:18 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 31 10:38:49 2010 -0700"
      },
      "message": "Adding support for parallel recording sessions.\n\n- Added setOutputFileAuxiliary to pass the auxiliary file descriptor. The java\ninterface through JNI will be checked in next.\n\n- renamed setupCameraSource to setupCamera as the function just sets the camera.\n- Added setupCameraSource which sets up the camera source. This functionality\n  was in setupVideoEncoder before.\n- setupVideoEncoder now takes in a cameraSource instead of creating it on it\n  own.\n\n- Refactored startMPEG4Recording() to use setupMPEG4Recording,\n  setupMPEG4MetaData.\n    - setupMPEG4Recording() takes in file descriptor, bitrates to setup a mpeg4\n      writer. This function can be called multiple times to setup multiple\n      writers.\n    - Added setupMPEG4MetaData() for setting up the meta data for mpeg4 writer.\n  startMPEG4Recording() now calls setupMPEG4Recording, setupMPEG4MetaData for\n  each recording session.\n\nChange-Id: I07f5334a1ff8e12a36f58e94129fcfa6add2208b\n"
    },
    {
      "commit": "dd0f7a7127fdb04863b4ad66d2b846ee94358314",
      "tree": "e012a5e389d776605dad8edf62b50a4ba6dc2b4d",
      "parents": [
        "d3a3eaf5d0c88e13b8dc7154fcae8b15dcacc932",
        "e83fffc032654b819774e5d94d38842bb4190c22"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 13:30:35 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 13:30:35 2010 -0700"
      },
      "message": "am 9aa05ec2: am 681c5ff2: Merge \"Reverse the default setting of media.stagefright.enable-{rtsp,record} in preparation for building without opencore.\" into gingerbread\n\nMerge commit \u00279aa05ec2cd6bc592074c7bd08d22db46649c7f12\u0027\n\n* commit \u00279aa05ec2cd6bc592074c7bd08d22db46649c7f12\u0027:\n  Reverse the default setting of media.stagefright.enable-{rtsp,record} in preparation for building without opencore.\n"
    },
    {
      "commit": "a1ffe49c7d537bf2a16fc3eb32b0ecc6d72bdf8a",
      "tree": "8ea3ebaca6f9020bb8381260e61e6b7633ebb3ca",
      "parents": [
        "e56121bc4cb29c91d736eab181b1f51c4f125e78"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 12:46:12 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 30 12:46:12 2010 -0700"
      },
      "message": "Reverse the default setting of media.stagefright.enable-{rtsp,record} in preparation for building without opencore.\n\nChange-Id: I1ca6bd8faba0185f9694f9dc04d2b3e6a7ab5ac3\nrelated-to-bug: 2370115\n"
    },
    {
      "commit": "a8c88e810ea1b8e90fd6c250d4c0a87eb628d4d8",
      "tree": "a3320ff8cc939c23b6753178b3cbc81c6c8600a7",
      "parents": [
        "ef6c8c0324be75dfac3d6a4025ec3b3a7ca23826",
        "2dbffa8c6545255553239a5d65a3b21564078c4a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 11:20:40 2010 -0700"
      },
      "message": "am 28a92120: am 3f51fa78: Runtime dump support for MediaWriter\n\nMerge commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027\n\n* commit \u002728a92120a702289533a9c9d004bd60f83b2fd98b\u0027:\n  Runtime dump support for MediaWriter\n"
    },
    {
      "commit": "515c0a56b6fbcca18a08f0daac7be278dede46d0",
      "tree": "1f252b087c43ea53772e4189c9c9fea435b84977",
      "parents": [
        "ee7a5d9f5506b494ad45946690d1edc8afe8b4c4",
        "36d8ab8fdf183a2a025e93ba78aaed92c55d6586"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Aug 24 09:03:55 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Aug 24 09:03:55 2010 -0700"
      },
      "message": "am 701b710c: am 300b0b7e: Merge \"setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.\" into gingerbread\n\nMerge commit \u0027701b710c194181765616520f6d89d450b4b6c1f5\u0027\n\n* commit \u0027701b710c194181765616520f6d89d450b4b6c1f5\u0027:\n  setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.\n"
    },
    {
      "commit": "4b79168835965cf0fc41ebe2a367e22b4cb20d08",
      "tree": "d70a673d243fdc72171ecbcf51094554f947987a",
      "parents": [
        "82252a9a732c7325166c36589c1dfa9f2cb8ac04"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Aug 10 16:37:53 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Aug 23 14:31:30 2010 -0700"
      },
      "message": "Change the framework to use the new camera preview path.\n\nThis change makes the camera HAL interface take an ANativeWindow interface from\nwhich all the camera preview buffers will be allocated.  The framework code\nrunning in application processes now passes a Surface object rather than an\nISurface to the camera server via Binder when setting the preview surface.  The\ncamera server then forwards that Surface object (which implements the\nANativeWindow interface) to the camera HAL, which uses it to communicate with\nSurfaceFlinger to allocate the camera preview buffers.\n\nChange-Id: Ie438f721559cd7de5e4f848a26d96360dda07b5f\n"
    },
    {
      "commit": "f143cc1866737c2ac24f4b2d7e4b2e776be10d56",
      "tree": "fc2be7d35ea17dd324aa8b90a380ae897b16578c",
      "parents": [
        "011df6ab59853b5e2f5654031d842fb1231198c0",
        "5daeb129a2c2ba3d14ccd94af283b5f561c783ea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 23 12:31:59 2010 -0700"
      },
      "message": "Merge \"Squashed commit of the following:\""
    },
    {
      "commit": "5daeb129a2c2ba3d14ccd94af283b5f561c783ea",
      "tree": "c3e0f59fefcdb20b92e9a2fc5da59a7cf4b1464f",
      "parents": [
        "a0ced19fa96f26a25de708588a34ebfd452f250e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 16 08:49:37 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 23 12:30:24 2010 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit 35cc68814a9537c31fde146e171e7b0bbdfe211e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Aug 16 08:48:42 2010 -0700\n\n    Only enable support for yuv to yuv conversion on passion, where it\u0027s available, use the slower yuv-\u003ergb565 path everywhere else.\n\ncommit d8ac5a8814103e60d11d2acf61997fc31a1dc58d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 13:56:44 2010 -0700\n\n    The software renderer takes over all rendering, converting from yuv to yuv if possible and rgb565 otherwise.\n\ncommit 684972074b74318bdcb826ed9b5b0864d2d2e273\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Aug 13 09:34:35 2010 -0700\n\n    A first shot at supporting the new rendering APIs.\n\nChange-Id: Iea9b32856da46950501f1a700f616b5feac710fd\n"
    },
    {
      "commit": "dedf414d3fe2e79ee0aad0f1c82ca16ebd886ff6",
      "tree": "c9b53443c9b06bc42ad07d57c701bbf10137bcb7",
      "parents": [
        "482482401095d5fc98f89b4a3ce43d41c00fffd7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 18 03:32:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 23 10:34:05 2010 -0700"
      },
      "message": "Runtime dump support for MediaWriter\n\nChange-Id: I10b2c474de612ee4cef4b7c9eae2ee1dd8c2e895\n"
    },
    {
      "commit": "263ebfd8a17266eedc84eb879edb6a6a3395f760",
      "tree": "581c9e9b89f9b76e86d6186310d66c3aa588e654",
      "parents": [
        "9934d0cf66861d331adcad28dc4713874e607a76",
        "aa14af4897f556276b0835407ab867c8898ed2f5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Aug 21 09:43:41 2010 -0700"
      },
      "message": "am c8d2fa70: am cbd038fe: Merge \"Make MediaWriter stop and pause return errors if necessary\" into gingerbread\n\nMerge commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027\n\n* commit \u0027c8d2fa704abebdbf0bd8aac185216dc068950217\u0027:\n  Make MediaWriter stop and pause return errors if necessary\n"
    },
    {
      "commit": "be6fd201b9a04fe0f8fd409f10595ddb41832591",
      "tree": "d2f5b13ca7fde33c24c488d195fa2483c4d5a271",
      "parents": [
        "3eb2ff224a12b5670f4f62f07a47ffb2fde01548"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Aug 18 15:19:19 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Fri Aug 20 14:06:48 2010 -0700"
      },
      "message": "setParamMaxFileDurationUs should allow zero time input as per API of setMaxDuration.\n\naccording to MediaRecorder::setMaxDuration documentation we should disable duration limit\nwhen zero or negative time is passed. Currently setParamMaxFileDurationUs was treating\nzero/negative as an error case. Fixed that.\n\nChange-Id: I468c3bcc74cb5a34ee3e172cef5147550d6be096\n"
    },
    {
      "commit": "37187916a486504acaf83bea30147eb5fbf46ae5",
      "tree": "b011eba352b6e60ae459f88ef590b45b2e351110",
      "parents": [
        "34c9ad88d3d827cca0c7b5f2fb1b0d4a1a20a2d1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 18 19:10:39 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 19 13:33:13 2010 -0700"
      },
      "message": "Make MediaWriter stop and pause return errors if necessary\n\no Make the API consistent with SF framework, which the MediaSource\n  provides a return status for stop\n\no Also, helps to convey errors that occurred right when a\n  premature stop() is called, leading to a potentially\n  mal-formed output file.\n\nChange-Id: I52a932345f38570fdf8ea04d67d73dd94ccd30ef\n"
    },
    {
      "commit": "8206beb4953e42a727417286cdf9d52c35c2889d",
      "tree": "fcef34ddd74f27e692f3c2e2ea17802d5cdd3d11",
      "parents": [
        "790f640ac3b573efd574d346d1bb338d9724ed48",
        "e246a940426d418b99cf62c547c7a2093811f2fb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 15:19:29 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 16 15:19:29 2010 -0700"
      },
      "message": "am f54da15b: am eff30e3d: Change the default time scale for audio/video track during recording and reduce rounding errors in calculating the sample duration\n\nMerge commit \u0027f54da15b7c3fa55268451c485544e831832fdf15\u0027\n\n* commit \u0027f54da15b7c3fa55268451c485544e831832fdf15\u0027:\n  Change the default time scale for audio/video track during recording\n"
    },
    {
      "commit": "c059860c73678a202bfa33062723e8f82fb779d9",
      "tree": "94b5887059eabda7d8fabe686eba50f5c7963f94",
      "parents": [
        "e259531ce59ab1f31de5a23124b22536f6a5a767"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Aug 13 14:16:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Aug 16 10:38:35 2010 -0700"
      },
      "message": "Change the default time scale for audio/video track during recording\nand reduce rounding errors in calculating the sample duration\n\n- Default time scale for tracks other than audio is set to 90000.\n- Audio track by default uses the audio sampling rate as the time scale.\n- Default movie time scale remains to be 1000.\n- The default time scale values will be overwritten by a user-supplied value if exits.\n\nChange-Id: I81b40ed0626ea45e9fd24a89e21a2c5a4a2c3415\n"
    },
    {
      "commit": "2dac90da3ea5120b52844a6ee38c300301de5756",
      "tree": "e1f63e3ee3b057b935a9be9ebb4aaf985688821a",
      "parents": [
        "047be32ec88dd04a9aca23fa59773fe2eaccb8f8",
        "debd76c4a934c98a88850f0a50a30d3f01394eb7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Aug 12 09:32:18 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 12 09:32:18 2010 -0700"
      },
      "message": "am 0386d04b: am 581581fe: Merge \"Fix all fd leaks in authoring engine\" into gingerbread\n\nMerge commit \u00270386d04b19619b03b6bce830010e11d31d3f8a5c\u0027\n\n* commit \u00270386d04b19619b03b6bce830010e11d31d3f8a5c\u0027:\n  Fix all fd leaks in authoring engine\n"
    },
    {
      "commit": "25d83125cee222993673d3ba261ae1186bcad8c2",
      "tree": "ff9cb1abe9343695635b261a2c24906baba9794f",
      "parents": [
        "eaf0e0786c4c21d6c63d8f1f4515cb2a5311493b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 11 17:12:39 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 11 17:18:30 2010 -0700"
      },
      "message": "Fix all fd leaks in authoring engine\n\nChange-Id: I17798543f9dd41cc8bef6f6086e66932f9f97be8\n"
    },
    {
      "commit": "ca2fa61ef03cac008ea86e6fe16b2e5f9f1a2be3",
      "tree": "0f4554efaf3361307beae498463a8668739b0b2d",
      "parents": [
        "250a4cf8127a9ba572bae90de1e44437e0b78a94"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Aug 04 14:26:45 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Aug 05 21:30:08 2010 -0700"
      },
      "message": "When using still camera for time lapse capture, don\u0027t set preview.\n\nSince HD resolution may not be supported by the video camera,\ndon\u0027t set preivew using the HD size. The app should have set the\npreview already, just use that.\n\nChange-Id: I2f8e89bf2c7440f7bc8db7e4a228f4c8250d92b4\n"
    },
    {
      "commit": "982a93173bc84f005172152d823cbb59dfcbeb12",
      "tree": "2ef94049c4daadc6b4da5a3d6c93c04d99d08d05",
      "parents": [
        "aa68b49a53a874a1813e65752663f19d18149e2c",
        "347d3c1dabd7ae9c998a024c685de2001e0ff369"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 05 11:46:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 05 11:46:04 2010 -0700"
      },
      "message": "am 1f513d88: am c17f35dd: Merge \"Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\" into gingerbread\n\nMerge commit \u00271f513d8821670a33d6361ea521b6756163a3f9bf\u0027\n\n* commit \u00271f513d8821670a33d6361ea521b6756163a3f9bf\u0027:\n  Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\n"
    },
    {
      "commit": "39ddf8e0f18766f7ba1e3246b774aa6ebd93eea8",
      "tree": "87f5d0d68c1779f113843e939c41440ff6b00389",
      "parents": [
        "610959a52fe22a88e50d158f5f5f492fee4f1921"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 04 10:14:30 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 04 11:49:24 2010 -0700"
      },
      "message": "Support for Gtalk video, includes AMR/H.263 assembler and packetization support, extensions to MediaRecorder to stream via RTP over a pair of UDP sockets as well as various fixes to the RTP implementation.\n\nChange-Id: I95b8dd487061add9bade15749e563b01cd99d9a6\n"
    },
    {
      "commit": "e41f9ba4869a96f004c731d8d17939ae607143b9",
      "tree": "014a73260d60c41d6a07e3128663d95fda5435af",
      "parents": [
        "216e5df78e958a3349ba4785fb79c688e1ad39a5",
        "c0330ab7213be992099c83aa27c603707363a58d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 04 11:12:40 2010 -0700"
      },
      "message": "am d152c1c7: am d194f3d6: Merge \"Replace CHECK with a failure return value when mCamera-\u003esetParameters() fails if the camera is locked by someone else.\" into gingerbread\n\nMerge commit \u0027d152c1c7534a80b84f6b389efa8a410ea359b3eb\u0027\n\n* commit \u0027d152c1c7534a80b84f6b389efa8a410ea359b3eb\u0027:\n  Replace CHECK with a failure return value when mCamera-\u003esetParameters() fails\n"
    },
    {
      "commit": "48f6ce0e17297c575dcbb25671a7bee80ba13061",
      "tree": "b504aa0ba02ef80fd83ba7dba5e27eea72a10aeb",
      "parents": [
        "26ab7ab7f543a03b65735a41de8496c54d3e490e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 03 15:29:20 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Aug 03 15:29:20 2010 -0700"
      },
      "message": "Replace CHECK with a failure return value when mCamera-\u003esetParameters() fails\nif the camera is locked by someone else.\n\nbug - 2827892\n\nChange-Id: I217d4a00f04ebd57b557d3faef28787c14f23ea0\n"
    },
    {
      "commit": "f95ce6452d87316b8f5df6692537bd039377f349",
      "tree": "fc1d592d782178318a034d565ef087e74e159614",
      "parents": [
        "fd150a8e03cdd8462eafd68f4a4231aa52f0e5a1"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Aug 02 14:42:46 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Aug 02 14:42:46 2010 -0700"
      },
      "message": "Allowing useStillCameraForTimeLapse to be set through MediaRecorder.java\n\nThis will allow apps to make the decision of whether to use still image mode or\nvideo mode for time lapse capture.\n\n- setTimeLapseParameters now takes in a useStillCameraForTimeLapse parameter.\n- Added support in StagefrightRecorder for passing through this parameter.\n\nChange-Id: Iafbcb76f9a7903118ea5eb822c81008619630f03\n"
    },
    {
      "commit": "30e3eb619f02cf36e6d1d31be528d6be552bb3e2",
      "tree": "dea281b68cbb9b22f33b764fe7f46650b27223d9",
      "parents": [
        "3768ac8b7a7713c2dd1b7cdc70ddf760003d5e53",
        "6e5ea76da60c253dee7f07ecf3503ad43a0aff92"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 14:33:05 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 30 14:33:05 2010 -0700"
      },
      "message": "am e915b0ef: am d973a533: Merge \"Lower the lower bound for max file duration check\" into gingerbread\n\nMerge commit \u0027e915b0ef5d574022dfeffc9b2b61e21c1433c89c\u0027\n\n* commit \u0027e915b0ef5d574022dfeffc9b2b61e21c1433c89c\u0027:\n  Lower the lower bound for max file duration check\n"
    },
    {
      "commit": "489d78dcde35ef7ecaed5fac5b777fabfcd0525b",
      "tree": "a0a617a80f6eb19cb4f406dbdf3b26b5803f4b8a",
      "parents": [
        "9da2070b6d6d20550de7da61478c325f0928d020",
        "e4fc55de48241c5fb4c4b9d652fd2d4cd0b71138"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 14:28:26 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 30 14:28:26 2010 -0700"
      },
      "message": "Merge \"Lower the lower bound for max file duration check\" into gingerbread"
    },
    {
      "commit": "e4fc55de48241c5fb4c4b9d652fd2d4cd0b71138",
      "tree": "25ec9aaddfc632f3ccb86b889a1a647da4c6d1d1",
      "parents": [
        "5caff27f4683d5e444f327a5beec15d9b8c7f252"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 12:41:59 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 30 12:41:59 2010 -0700"
      },
      "message": "Lower the lower bound for max file duration check\n\n- This fixed a CTS test where 200 ms is being used\n\nChange-Id: Ib598b7b94be54e98a96703c58c5f244bc379cf7d\n"
    },
    {
      "commit": "9da2070b6d6d20550de7da61478c325f0928d020",
      "tree": "f1548891fab33ca03923f70cf25a2ffeab50be82",
      "parents": [
        "3be9523784cc4038f601e510faee595117cdacb3",
        "efe6039f71e9bac2138003b3287e94a7ab7e5c55"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Jul 30 12:08:31 2010 -0700"
      },
      "message": "resolved conflicts for merge of 27eecb70 to gingerbread\n\nChange-Id: If064f2f4950fc1a4ff38e6927fe2120af76b26f1\n"
    },
    {
      "commit": "bc286dce1af6670824fba4167e0750b631168d72",
      "tree": "f6d30ddc5cee2a6562bb510d7bacf20806b9f9bb",
      "parents": [
        "c4e47d1e81c4e4403663cb911e98dbf3ada9942c",
        "0319aaecb03aa83924ab4e3d9c9bc657c2e8bc06"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:54:42 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 17:54:42 2010 -0700"
      },
      "message": "am 0c51c98f: am 4506c62a: fix inaccurate copyrights\n\nMerge commit \u00270c51c98fd9edf0bdc8f2c567470fc332b5ae3adf\u0027\n\n* commit \u00270c51c98fd9edf0bdc8f2c567470fc332b5ae3adf\u0027:\n  fix inaccurate copyrights\n"
    },
    {
      "commit": "0319aaecb03aa83924ab4e3d9c9bc657c2e8bc06",
      "tree": "7c3ae3eecc16c50c794aff141a89b14942117364",
      "parents": [
        "0895d83cb62d269468e64a00e9e89fa7697f2f84",
        "01cff464978aa0f749f42650180b45ea56cb17de"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:52:09 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 29 17:52:09 2010 -0700"
      },
      "message": "am 4506c62a: fix inaccurate copyrights\n\nMerge commit \u00274506c62abd5767d6d42a97e8e87793a1b3bcb625\u0027 into gingerbread-plus-aosp\n\n* commit \u00274506c62abd5767d6d42a97e8e87793a1b3bcb625\u0027:\n  fix inaccurate copyrights\n"
    },
    {
      "commit": "68335fdd6e9c1d622384612605d6952503cb7fd0",
      "tree": "94e9982f93be7339bde4d8b9336f9968f5509efd",
      "parents": [
        "e32283b15bbd60179424bdc740a4e4932da4c61e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:41:35 2010 -0700"
      },
      "message": "fix inaccurate copyrights\n\nChange-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd\n"
    },
    {
      "commit": "01cff464978aa0f749f42650180b45ea56cb17de",
      "tree": "a31c8e61281d0bbcbec93d0ab05368f73ab85994",
      "parents": [
        "ccaa41429d2afc47f0fb828a0146a1b1936188fe"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jul 29 17:35:37 2010 -0700"
      },
      "message": "fix inaccurate copyrights\n\nChange-Id: I33b0f68f2da34ca4728211d83159cf32a127f6dd\n"
    },
    {
      "commit": "3722abe1a6ae53034b9dee6b12e8513804622fd5",
      "tree": "976d1a36aa3b20c864dab16448a82c70a2ca33ee",
      "parents": [
        "ed0de3c123aaa86147993721d4794648a65aab75",
        "e8b0071c1656e64bd941debd5dad2ac8b63bbafc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 28 12:02:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 28 12:02:59 2010 -0700"
      },
      "message": "am cb51115c: am 5587bb7e: Merge \"Interleave the audio and video by default - default interleave duration is set to 1 second\" into gingerbread\n\nMerge commit \u0027cb51115cca81ba47d00aa344f6ed16d1056b056b\u0027\n\n* commit \u0027cb51115cca81ba47d00aa344f6ed16d1056b056b\u0027:\n  Interleave the audio and video by default\n"
    },
    {
      "commit": "f01528f435e6b1f02d118fcd8305a148c27a89f1",
      "tree": "82d72c57f4f99358d361242029396ef133bd2062",
      "parents": [
        "542db5d438988360d491a5add1040a2df9aa90c9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 28 10:08:03 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 28 10:08:03 2010 -0700"
      },
      "message": "Interleave the audio and video by default\n- default interleave duration is set to 1 second\n\nThis can dramatically reduce the memory usage\nby the MP4 file writer.\n\nChange-Id: Ia3ff202cabfcd2d3f183065d31e4596617c2dded\n"
    },
    {
      "commit": "e4e0a6994d39c4a7cba09c5fff442b2dca1df8f8",
      "tree": "545e3cbc6bbd5c6b78a5adb2d00eeb5b16abb6a4",
      "parents": [
        "55cb2b8319e6b36e88658de121c534e95cd240b4"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 21:33:31 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 22 17:02:12 2010 -0700"
      },
      "message": "Allowing setting of time lapse parameters through MediaRecorder.java\n\nadded setTimeLapseParameters() to MediaRecorder.java and SetParameter support\nin StagefrightRecorder to allow enabling time lapse and setting the corresponding\nparameters.\n\nChange-Id: I509040aa71f8d3fc37337b0894a81d9c0fd7a40a\n"
    },
    {
      "commit": "71ff94cb52874e42dede3c6bc4b86757b72cf0b1",
      "tree": "dc47a5d309669d92854762df8fdc948668228ebf",
      "parents": [
        "932e0a11d74d5e236ccef9ee314442385c3d4e9d",
        "552f4053c194770a5c9b37825f222031548dc5a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 21 09:52:17 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 21 09:52:17 2010 -0700"
      },
      "message": "am 34161132: am 7070b365: Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n\nMerge commit \u002734161132030254bac7dd64c9713832e2f961a061\u0027\n\n* commit \u002734161132030254bac7dd64c9713832e2f961a061\u0027:\n  Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n"
    },
    {
      "commit": "2beeb50b1bba9e92f6cacfeca37fe9fa9d36ead1",
      "tree": "ce966d62f6fbb94178763ec53760f6961ffffd58",
      "parents": [
        "3108231d90e8aa324923fd8864ca2477948c5d25"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 16 07:43:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 21 06:28:01 2010 -0700"
      },
      "message": "Added support for auxiliary audio effects to AudioTrack and MediaPlayer.\n\nAdded methods to AudioTrack and MediaPlayer java classes to enable use of\nauxiliary audio effects. The effect can be attached and detached by specifying its\nID and the send level controlled.\n\nChange-Id: Ie74ff54a453096a742688476f612ce355543b6f3\n"
    },
    {
      "commit": "932e0a11d74d5e236ccef9ee314442385c3d4e9d",
      "tree": "5e9ed9f7bb7138c3ac78c52bc3c07336e5427412",
      "parents": [
        "d403f73c6db493a067d529e932d699ce461ae1d8",
        "65e334b9448689e12400bae6a739f0513f72d428"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 20 16:55:12 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 20 16:55:12 2010 -0700"
      },
      "message": "am 9049fe60: am d7514ec6: Merge \"Progress status notification\" into gingerbread\n\nMerge commit \u00279049fe60c20640bd606741c8f45f3f781a1684f5\u0027\n\n* commit \u00279049fe60c20640bd606741c8f45f3f781a1684f5\u0027:\n  Progress status notification\n"
    },
    {
      "commit": "7a42770f47225483a885b168d05e81b6a81189c0",
      "tree": "f1d340445f03640a15a61f259d6c63d06e0cd61b",
      "parents": [
        "385695764189477e963a749a5f107f6eaeb9c5f2"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 11:37:17 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Tue Jul 20 11:37:17 2010 -0700"
      },
      "message": "Use software encoder for time lapse capture.\n\nChange-Id: I7f60eb1af95590c84b0cd98134f5a5a8963338dd\n"
    },
    {
      "commit": "faed5cd124a54b8db3429f4c26b3220bbec4c8bb",
      "tree": "f0d4576711cdcc0af89e9f509d5a94eae995bdeb",
      "parents": [
        "59f566c4ec3dfc097ad8163523e522280b27e5c3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 15 19:08:20 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 20 08:39:57 2010 -0700"
      },
      "message": "Progress status notification\n\n- Keep track of per-track progress\n\nChange-Id: Ibd36f0e8c78581928c8aa2f5e23c5e7e0615c2cc\n"
    },
    {
      "commit": "65e7e6facda89927cb26594b3b65ae81b3235ebc",
      "tree": "89129cc7a87973b4218e3c899ec439a8ac48938b",
      "parents": [
        "6113efbd1e5f7495b80bf64f7ee90a571e3cf6a6"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Jul 12 09:17:14 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Mon Jul 19 18:22:56 2010 -0700"
      },
      "message": "Adding support for timelapse capture using still camera\u0027s takepicture.\nAlso moving entire implementation into a new class CameraSourceTimeLapse\nwhich inherits from CameraSource.\n\nFor timelapse capture using still camera, we start a thread which runs a\nloop in which it calls Camera::takePicture() and then sleeps until the next\nframe should be captured.\nThe function dataCallback() handles the callback from the camera with the\nraw image data. This function copies the data and creates an artificial\ntimestamp corresponding to one frame time ahead of the last encoded frame\u0027s\ntime stamp. It then calls dataCallbackTimestamp() of the base class which\nwill think that it recieved the frame from a video camera and proceed as usual.\n\nFor moving the implementation to the subclass CameraSourceTimeLapse, added a\nfew virtual functions to CameraSource, which do the current thing for the base\nclass, but specialized things for CameraSourceTimeLapse.\nE.g. startCameraRecording() in the base class just calls mCamera-\u003estartRecording(),\nwhile in CameraSourceTimeLapse it may start a thread for the still camera case.\n\nChange-Id: Ib787f24bd2e1f41681513f0257e1c4ca10a2b4de\n"
    },
    {
      "commit": "cbcc684555a8774b21ba04c09b2f5cee8c88453a",
      "tree": "e6ba409fcc9e9076650877112ae2806470267823",
      "parents": [
        "8065e2056073808716db32136d7acfd50eeab924",
        "b2975065465192dd46bc3eadabc00b9d855eb4e6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 15 11:54:10 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 15 11:54:10 2010 -0700"
      },
      "message": "am b068b47c: am d6a85a21: Merge \"Support user-supplied timescales for authoring\" into gingerbread\n\nMerge commit \u0027b068b47c6d0214256116a0c661740bddf7acc18c\u0027\n\n* commit \u0027b068b47c6d0214256116a0c661740bddf7acc18c\u0027:\n  Support user-supplied timescales for authoring\n"
    },
    {
      "commit": "8f5f2fcee5c12d08df71d17017410c50951fc2e3",
      "tree": "4cfeb1085495bacbc93775b43e0022fed69ca993",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 02 11:39:06 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 14 17:29:17 2010 -0700"
      },
      "message": "Support user-supplied timescales for authoring\n\n- also, change all the real time unit to microseconds in MPEG4Writer\n\nChange-Id: I260f512f2eb670ade7b8858a56335a5d639de756\n"
    },
    {
      "commit": "f6266bb1912255e92e590fcb6aedb719898545da",
      "tree": "1729da3d544c2429961cd734c5cfba5f750ca33f",
      "parents": [
        "4714b0766ecf48f09f39b4781a5c4deafc092d49",
        "4999e983c8f2f0060c14f2d7c5488e7f553985b4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 13 11:04:27 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jul 13 11:04:27 2010 -0700"
      },
      "message": "am f6bdc764: am 9d8bea11: Merge \"Initial checkin for software AVC encoder\" into gingerbread\n\nMerge commit \u0027f6bdc764b7a21f8037504e1dc4f81227ea2bedea\u0027\n\n* commit \u0027f6bdc764b7a21f8037504e1dc4f81227ea2bedea\u0027:\n  Initial checkin for software AVC encoder\n"
    },
    {
      "commit": "29a84457aed4c45bc900998b5e11c03023264208",
      "tree": "de114a11a9ec702c45a4a1683fa8c0024f49df8d",
      "parents": [
        "a480a6f7f204fa1712e1484a6ba9e6c8772fa110"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 02 17:44:44 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 13 10:58:20 2010 -0700"
      },
      "message": "Initial checkin for software AVC encoder\n\n- Since the software encoder assumes the input is YUV420 planar,\n  color conversion needs to be added when the input color format\n  does not meet the requirement. With this patch, I only added\n  a single color conversion from YUV420 semi planar to YUV420\n  planar. We can add more as we go.\n\nChange-Id: If8640c9e5a4f73d385ae9bb2022e57f7f62b91b9\n"
    },
    {
      "commit": "004a77836d1963847acd20ea684e2ffe48aa3f19",
      "tree": "e5f597eb2dcf444278314f556005186171ebcb46",
      "parents": [
        "7f53a190463274096155704276f3002c1620a364",
        "40ad2941b4dcc7410bbcc7a2a138983933915f98"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 09 09:20:03 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jul 09 09:20:03 2010 -0700"
      },
      "message": "am 4f440632: am 929642ee: Add runtime dumpsys support for media recorder client\n\nMerge commit \u00274f4406322dafd6e128b437edbc541327f0b38d04\u0027\n\n* commit \u00274f4406322dafd6e128b437edbc541327f0b38d04\u0027:\n  Add runtime dumpsys support for media recorder client\n"
    },
    {
      "commit": "b914122eb9cb54bbeae4ec03bfebb194aecdccbd",
      "tree": "92968131eb8b5cd486338c484f743d67d48ba2c5",
      "parents": [
        "cb28102ad3976339ec445afbcb4130f2991b38d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 08 11:16:11 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 08 21:25:55 2010 -0700"
      },
      "message": "Add runtime dumpsys support for media recorder client\n\nChange-Id: I4c8a81720f3be2db54678a7e84fe12849255046b\n"
    },
    {
      "commit": "6506bd2be256cdebc69324714c5b26c767981046",
      "tree": "68a4a39aafbe9aaa9d05d30735651c9a0087d10e",
      "parents": [
        "bf21177ccede8f01c0da0bd53392a289a5a84462",
        "14eb28444b40d76d490a184a27acbc0de95534b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 07 20:55:40 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 07 20:55:40 2010 -0700"
      },
      "message": "am b91881fd: am dacabf97: Merge \"Added Visualizer effect.\" into gingerbread\n\nMerge commit \u0027b91881fdd1608cc922f105ec552b5505da1fecb9\u0027\n\n* commit \u0027b91881fdd1608cc922f105ec552b5505da1fecb9\u0027:\n  Added Visualizer effect.\n"
    },
    {
      "commit": "6c5c25fae5aa68a52c6fa75649dd559a9ca98932",
      "tree": "825ab3a8deb612c3eb8daae783670d1273c64521",
      "parents": [
        "8cafde196d36ab207f35fed89b9c1b9d468abb58",
        "da7581b7b61b84f15e8d671c86fd117c322b009e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 07 16:23:30 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 07 16:23:30 2010 -0700"
      },
      "message": "Merge \"Added Visualizer effect.\" into gingerbread"
    },
    {
      "commit": "bf21177ccede8f01c0da0bd53392a289a5a84462",
      "tree": "2c949bac7ef2da54093fa8a47c66fd7c48921bbd",
      "parents": [
        "5bb4809a27ae962be32c67b705671cdada03be00",
        "c61334edce8bd000543fa2c8172b305a887b9124"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 07 15:00:28 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 07 15:00:28 2010 -0700"
      },
      "message": "am b3598832: am c4243342: Merge \"Allow application to set two more encoding paramters: video profile and level\" into gingerbread\n\nMerge commit \u0027b35988329ac1a574898db9226039e37e352c57a8\u0027\n\n* commit \u0027b35988329ac1a574898db9226039e37e352c57a8\u0027:\n  Allow application to set two more encoding paramters: video profile and level\n"
    },
    {
      "commit": "145bfe5eb3e08c9689c28f6bf3287a979438b04b",
      "tree": "ba140d50bbed7d0f8cb76fb3bd7920ecc5c4a6ce",
      "parents": [
        "91952e5221d2151e10738d7228575c4afe444f5e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 01 15:02:14 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jul 07 12:11:53 2010 -0700"
      },
      "message": "Allow application to set two more encoding paramters: video profile and level\n\nChange-Id: I673e681cefe184d5c556c612c54600a24a2143e5\n"
    },
    {
      "commit": "da7581b7b61b84f15e8d671c86fd117c322b009e",
      "tree": "61fb39ca1eaa0a5b8a71d70683f32d238a8e74e7",
      "parents": [
        "215381ea729086b8359b7f59bdc2bd7cf55a0c45"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 02 08:12:41 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 07 11:00:28 2010 -0700"
      },
      "message": "Added Visualizer effect.\n\nThe visualizer enables application to retrieve part of the currently playing audio for visualization purpose.\nIt is not an audio recording interface and only returns partial and low quality audio content as a waveform or\na frequency representation (FFT).\n\nRemoved temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method.\n\nThis commit also includes a change in AudioEffect class:\n - the enable()/disable() methods have been replaced bya more standard setEnabled() method.\n - some fixes in javadoc\n\nChange-Id: Id092a1340e9e38dae68646ade7be054e3a36980e\n"
    },
    {
      "commit": "fc20aab463f527ab3b0664986f0381a86b375884",
      "tree": "699a2eb0d208ebbe5d43e62fd4be162bb46440cf",
      "parents": [
        "633d8eadef0cd975c88e99ba7323f6414db09e3b"
      ],
      "author": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Wed Jun 30 18:51:31 2010 -0700"
      },
      "committer": {
        "name": "Nipun Kwatra",
        "email": "nkwatra@google.com",
        "time": "Thu Jul 01 14:54:36 2010 -0700"
      },
      "message": "Adding timelapse capture from videocamera.\n\nCurrent implementation looks at the timestamps of all incoming frames in\nCameraSource::dataCallbackTimestamp().\nIt drops all frames until enough time has elapsed to get the next time lapse frame.\nWhen enough time has passed to capture the next time lapse frame, the frame is no longer dropped\nand the timestamp of this frame is modified to be one frame time (1/framerate) ahead of the\nlast encoded frame\u0027s time stamp.\n\nChange-Id: I82b9d5e96113dffa6901aac3b8a8ef999ffc1d0b\n"
    },
    {
      "commit": "934da11c4cc598d3dd3b53726c362bcdcc0fd37f",
      "tree": "058428c8625d36f6cacb9259091819c785758d8d",
      "parents": [
        "1c8ed2e906576fd8d7fa03f577bdec518cbe13d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 30 12:41:16 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 01 10:28:38 2010 -0700"
      },
      "message": "Refactor Stagefright::StartMPEG4Recording()\n\n- Also, better error handling\n\nChange-Id: Ic18d08dc6489adf92c6a588efa4baca66429b175\n"
    },
    {
      "commit": "d329e21495eda9dbc531fdd0c26c77f1593ac3f4",
      "tree": "eea2f662a7089684c57020dd5f8313c978172470",
      "parents": [
        "e1e7b764b78f29b93bfe6123483e82381e4ed65d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 29 16:29:19 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 29 16:44:19 2010 -0700"
      },
      "message": "Added encoding parameters set up for H263 video encoder\n\nAlso:\n- Allowed start() call when encoder already starts and stop() call when encoder has not started yet\n- Handled default value for audio/video sources/encoders and file output format\n\nChange-Id: I03b2f7d3cf570baa0fd011a8c0ad200f2f2a5da1\n"
    },
    {
      "commit": "37047fceba836f341d0108beed0991b0f8dfc543",
      "tree": "6b60725c1d6af1ca91a46961bbecff9b996d07c2",
      "parents": [
        "93d6b102a13afa23bfa80d74c399d93d542e6ad6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 25 17:06:47 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 28 15:32:26 2010 -0700"
      },
      "message": "Separate MediaRecorderClient with MediaPlayerClient\n\n- An alternative would be to define a common base class that\n  both MediaRecorderClient and MediaPlayerClient can derive.\n  But since the common code, onTransact() and notify() uses\n  some Binder code, having a common base class may not gain\n  us too much in terms of code reuse.\n\nChange-Id: Ibc06720278ad173fceacff3d267b7060856c6316\n"
    }
  ],
  "next": "93d6b102a13afa23bfa80d74c399d93d542e6ad6"
}
