)]}'
{
  "log": [
    {
      "commit": "ae7ca4c32cb37ea82e77ad1462fbfcd4d6dfabd3",
      "tree": "e76e4f72db70f1d1291f6fa0ae334545906617c5",
      "parents": [
        "e339c5edbebedf446581f18ad70214007309bf4b"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat May 15 13:05:04 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat May 15 13:06:19 2010 +0800"
      },
      "message": "Fix build error.\n\nOriginal name INFINITY conflicts with the macro in math.h.\n\nChange-Id: I9845ed84fca17813dd971239a902cc1e0bad1e3e\n"
    },
    {
      "commit": "e339c5edbebedf446581f18ad70214007309bf4b",
      "tree": "7d03e881cb3e1300aef948eafb85396a58d38e1c",
      "parents": [
        "aef87aa90cf3a6cf9098477683b07994697c45fe"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 13 19:31:02 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat May 15 12:40:54 2010 +0800"
      },
      "message": "Add camera focus distances API.\n\nApplications can use this API to estimate the distance\nbetween the subject and the camera.\n\nbug:1955650\nChange-Id: Ie6c8ea4971759cab6c9bcdda2c5ceb5925791c27\n"
    },
    {
      "commit": "68510e60f9671ee08f3cc18bd93400cafb7703bb",
      "tree": "87e2862b5d039f0e6211b891527e50f561b9013f",
      "parents": [
        "9db798d0f07213071a65237e9ece758c9e8c7b99"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 11:48:00 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 11:48:00 2010 -0700"
      },
      "message": "Detect and handle premature termination of a recording session\n\nChange-Id: Ifb83b19f3e68580345b23efed5d5956fb81baeb8\n"
    },
    {
      "commit": "9db798d0f07213071a65237e9ece758c9e8c7b99",
      "tree": "958d31370beae905336906f7171047968dfc7d01",
      "parents": [
        "1824486e044f4f09640fbd7bef74a20e4efb35ae"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 11:47:36 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:51:12 2010 -0700"
      },
      "message": "Audio/video initial recording time synchronization\n\nChange-Id: Iac58b63d474fe09c1d36ba6ecde91dafbb7fef9a\n"
    },
    {
      "commit": "1824486e044f4f09640fbd7bef74a20e4efb35ae",
      "tree": "88f56b045e6ec380d4353797ab0fa758425fa53f",
      "parents": [
        "21a534d955c8d45c50dafaf05cf2afbb8cf3696c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 14:57:02 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 14 10:46:56 2010 -0700"
      },
      "message": "Handle recording file size and/or duration limit\n\nChange-Id: Ib9ed1f3ebd8fef550cc130a7ef11f2905fa9aedc\n"
    },
    {
      "commit": "b0a0147f344a2d26d86be2b1bdf5bfde50ef86c2",
      "tree": "8820f5f5979f699ef5903fe65f4fe3541bff5371",
      "parents": [
        "bfcbd9a9e1bc3a8d721e906e4c621f85104c7d93"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 14 05:45:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 14 05:45:46 2010 -0700"
      },
      "message": "AudioFlinger: rename variables to clarify reference to track channel count or channel mask\n\nSome variables and structure members should be renamed to reflect the fact that they contain the\nnumber of channels in a track (channel count) or the actual channels used by a track (channel mask).\nEspecially member \"channels\" of track control block (struct audio_track_cblk_t) is actually the\nnumber of channels (channels count).\n\nChange-Id: I220c8dede9fc00c8a5693389e790073b6ed307b8\n"
    },
    {
      "commit": "e292b3bc9c28e47bb8411728ad40efb84d0471e8",
      "tree": "cb51804b07a1e1744a6ecf7a8313f05406303348",
      "parents": [
        "fae47fd008974fb78f38ae4a6d539cd8246d3159"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 12:07:32 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 13 12:08:29 2010 -0700"
      },
      "message": "Remove dummy surface in CameraSource\n\nbug - 2680919\n\nChange-Id: Ia0308cf57fd67058b4dd0e042b3ce97f13df475f\n"
    },
    {
      "commit": "2f0e6753d6c0d67e0e133105bf3fdc8596749412",
      "tree": "b3733f32dd6d0cb954db0c17c8b6d17ad2460b61",
      "parents": [
        "6a70cb8a3813a60b92618892188bc4e2f9e0ab2c",
        "59751dbf7d8f12aeb5c4c07719b7dbbf1f9b5d4b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 17:36:46 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 12 17:36:46 2010 -0700"
      },
      "message": "Merge \"SharedBufferStack now can grow up to 16 buffers.\" into kraken"
    },
    {
      "commit": "59751dbf7d8f12aeb5c4c07719b7dbbf1f9b5d4b",
      "tree": "a1f1d7119a8109d06cfc2f24b26284ff7627de7a",
      "parents": [
        "9f2c4fd9a14ea79e4cbbd3ab8925794711a6411c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri May 07 15:58:44 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed May 12 17:28:20 2010 -0700"
      },
      "message": "SharedBufferStack now can grow up to 16 buffers.\n\nthere is a new resize() api, which currently only allows growing.\n\nChange-Id: Ia37b81b73be466d2491ffed7f3a23cd8e113c6fe\n"
    },
    {
      "commit": "e8621534db97070cc40f729d1eb8074f2e69df9d",
      "tree": "54b8857783ced454e0b05b185753a652d4899b37",
      "parents": [
        "2a2174a7bdd7a557d3e17b78876b6887a02ebf80",
        "68246dcec17c245a434dad70b778960dc5c84af1"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 12 14:54:42 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 12 14:54:42 2010 -0700"
      },
      "message": "Merge \"ZipUtilsRO rewrite based on Dalvik Zip rewrite\" into kraken"
    },
    {
      "commit": "11777d6fa27b368eee75c46aeb0da2c609943c9d",
      "tree": "d0295e5bb67c7ed2cdd9204b5a1844d0091f89d6",
      "parents": [
        "b076e6f3e03d146cc7e76e423077a2dfe901c898",
        "b003ad17bffeba7875b9708ffeef2300ef28c916"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 07:55:48 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:55:48 2010 -0700"
      },
      "message": "am b003ad17: am e0dc80f8: Merge \"Support for customizable socket-read timeouts through the HTTP response.\" into froyo\n\nMerge commit \u0027b003ad17bffeba7875b9708ffeef2300ef28c916\u0027 into kraken\n\n* commit \u0027b003ad17bffeba7875b9708ffeef2300ef28c916\u0027:\n  Support for customizable socket-read timeouts through the HTTP response.\n"
    },
    {
      "commit": "b3390135890800b9c5f0ab58ae3af80ab200dd8e",
      "tree": "8b150157548ef4b694037810a881142b8e1c85f9",
      "parents": [
        "2cd841d485968181eb362338b9e66067767bd2eb",
        "d8c33747afbe98e893e0569f3bf45b67a9e8e728"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed May 12 07:55:00 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:55:00 2010 -0700"
      },
      "message": "am d8c33747: am 78624e41: Add remove method in CameraParameters class.\n\nMerge commit \u0027d8c33747afbe98e893e0569f3bf45b67a9e8e728\u0027 into kraken\n\n* commit \u0027d8c33747afbe98e893e0569f3bf45b67a9e8e728\u0027:\n  Add remove method in CameraParameters class.\n"
    },
    {
      "commit": "b003ad17bffeba7875b9708ffeef2300ef28c916",
      "tree": "3445b9dc43c54c02b1a7278dc414fb10a65240ae",
      "parents": [
        "227e443a43d70b9463b2e685688f73cfb1b72096",
        "e0dc80f878b56ed744bd06d341716fcfff4e3acc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 12 07:49:39 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:49:39 2010 -0700"
      },
      "message": "am e0dc80f8: Merge \"Support for customizable socket-read timeouts through the HTTP response.\" into froyo\n\nMerge commit \u0027e0dc80f878b56ed744bd06d341716fcfff4e3acc\u0027 into froyo-plus-aosp\n\n* commit \u0027e0dc80f878b56ed744bd06d341716fcfff4e3acc\u0027:\n  Support for customizable socket-read timeouts through the HTTP response.\n"
    },
    {
      "commit": "d8c33747afbe98e893e0569f3bf45b67a9e8e728",
      "tree": "b1bc2ccdd689301479741bfbd97b212bcdb022ed",
      "parents": [
        "a8d8cb12b3dbe5e196a3ff2549f8594a704ecde4",
        "78624e41da166712aaa5ae47e4d3467337ac810a"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed May 12 07:48:41 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 12 07:48:41 2010 -0700"
      },
      "message": "am 78624e41: Add remove method in CameraParameters class.\n\nMerge commit \u002778624e41da166712aaa5ae47e4d3467337ac810a\u0027 into froyo-plus-aosp\n\n* commit \u002778624e41da166712aaa5ae47e4d3467337ac810a\u0027:\n  Add remove method in CameraParameters class.\n"
    },
    {
      "commit": "68246dcec17c245a434dad70b778960dc5c84af1",
      "tree": "00aaacdfd3147c87c0d0d4761817a797e7af346a",
      "parents": [
        "dc3e26071399789c5966b9cd67180437f44eb9dd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Apr 22 18:28:29 2010 -0700"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed May 12 05:07:48 2010 -0700"
      },
      "message": "ZipUtilsRO rewrite based on Dalvik Zip rewrite\n\nChange the way zip archives are handled.  This is necessary to deal with\nvery large (~1GB) APK files, for which our current approach of mapping\nthe entire file falls over.\n\nWe now do the classic scavenger hunt for the End Of Central Directory\nmagic on a buffer of data read from the file, instead of a memory-mapped\nsection.  We use what we find to create a map that covers the Central\nDirectory only.\n\nIf the caller is interested in unpacking the file contents, we have to\ndo an additional file read to discover the size of the Local File Header\nsection so we can skip past it.\n\nThis is based on Change I745fb15abb in the dalvik tree. Both\nimplementations share a common ancestry, but the cost of unifying them\noutweighs the benefits of wrapping C calls.\n\nChange-Id: Iddacb50fe913917c2845708a530872d65fdbe620\n"
    },
    {
      "commit": "25c2af99bfedf95f0c372cbfbad33984ce983896",
      "tree": "89a8163e35498e52033138253b029e2e916fca24",
      "parents": [
        "b5e742397d4129e191d65d51da55302b504f3c99",
        "505cef3330c422c52564011f31a795a6c6135b3f"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue May 11 12:25:31 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 11 12:25:31 2010 -0700"
      },
      "message": "Merge \"Add incStrong and decStrong methods to android_native_{window,buffer}_t.\" into kraken"
    },
    {
      "commit": "e67c1607ccab2702ea745f962b5354be8f45c733",
      "tree": "ff59eaa63cad74113ed83fd2f349cf8e8151be9e",
      "parents": [
        "78624e41da166712aaa5ae47e4d3467337ac810a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 11:10:21 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 11 11:10:21 2010 -0700"
      },
      "message": "Support for customizable socket-read timeouts through the HTTP response.\n\nSpecify a response header of \"X-SocketTimeout: 15\" to override the default timeout\nof 5 secs with a timeout of 15 seconds. Specify a negative value to disable the\ntimeout altogether.\n\nChange-Id: I545adf3d8b3f7efe5f8d081a641c6404440a77db\nrelated-to-bug: 2675721\n"
    },
    {
      "commit": "b5e742397d4129e191d65d51da55302b504f3c99",
      "tree": "fbeabeba127c0cbe013b49ddca8c2bbcfd2befa1",
      "parents": [
        "8528fcb1998d8be708a16a854293db95a87732d5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 07 10:26:24 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 11 10:36:43 2010 -0700"
      },
      "message": "Output streamable MP4 file during MP4 file recording\n\nWhen the reserved moov box space is not big enough,\nfall back to non-streamable MP4 file.\n\nChange-Id: I93382d037d657a3f3fe2af31e4ea26e1898b4d95\n"
    },
    {
      "commit": "78624e41da166712aaa5ae47e4d3467337ac810a",
      "tree": "b7e1e6c75b4837d34bf29180974052167ac5d3f0",
      "parents": [
        "be65399baf23855094596e27c25763ff92e9e027"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue May 11 12:11:56 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue May 11 12:54:14 2010 +0800"
      },
      "message": "Add remove method in CameraParameters class.\n\nbug:2672651\nChange-Id: I537c817b5ca6a3d925f22febe9a5769156354d00\n"
    },
    {
      "commit": "e1b2b3b0d23c964470badb7faa2569b0fa0f182e",
      "tree": "87b29cd56e384b392f0493fcb31b4ea3c98361d1",
      "parents": [
        "e88ae544e3e54958dfb6e866d4444f7f7b5d2d68",
        "ca099614841bc619f217dfa088da630a7eb1ab65"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 10 20:04:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 10 20:04:14 2010 -0700"
      },
      "message": "Merge \"Add continuous focus mode constant.\" into kraken"
    },
    {
      "commit": "505cef3330c422c52564011f31a795a6c6135b3f",
      "tree": "e9c3d729f19a937065fc35b2fa6b6bc830e8788f",
      "parents": [
        "82b027e90efc816f96783d47cff1c088d07c7b5a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon May 10 17:33:32 2010 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon May 10 17:33:32 2010 -0700"
      },
      "message": "Add incStrong and decStrong methods to android_native_{window,buffer}_t.\n\nThis change adds the methods necessary to use sp\u003c\u003e to handle refcounting\nandroid_native_window_t and android_native_buffer_t.  The new methods forward\nthe refcounting operations to the corresponding android_native_base_t\nfunctions.\n\nChange-Id: I7de8e262728e439bc1efdf69374a2a9f6f432ced\n"
    },
    {
      "commit": "248597ae6493ff68fc52db26b095de620a26924a",
      "tree": "c479e6f6e5b08260328820a64cac761dfded6df8",
      "parents": [
        "4cfc21ecd914ac89a3160e5b19105b768546853f",
        "1707851090e6512a77247b0c260dd673ef687589"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 10 09:49:24 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 09:49:24 2010 -0700"
      },
      "message": "am 17078510: am d13efb20: Merge \"A new OggExtractor/VorbisDecoder combo to support approximate seeking.\" into froyo\n\nMerge commit \u00271707851090e6512a77247b0c260dd673ef687589\u0027 into kraken\n\n* commit \u00271707851090e6512a77247b0c260dd673ef687589\u0027:\n  A new OggExtractor/VorbisDecoder combo to support approximate seeking.\n"
    },
    {
      "commit": "1707851090e6512a77247b0c260dd673ef687589",
      "tree": "f4a77a16e591377bffb9be2dcff38ac5d5c0f350",
      "parents": [
        "56aed6bde0c52658d2cb1207c0cfe8ba0a764c59",
        "d13efb20089e44e6958cb9704864c03821f19e1c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon May 10 09:43:26 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon May 10 09:43:26 2010 -0700"
      },
      "message": "am d13efb20: Merge \"A new OggExtractor/VorbisDecoder combo to support approximate seeking.\" into froyo\n\nMerge commit \u0027d13efb20089e44e6958cb9704864c03821f19e1c\u0027 into froyo-plus-aosp\n\n* commit \u0027d13efb20089e44e6958cb9704864c03821f19e1c\u0027:\n  A new OggExtractor/VorbisDecoder combo to support approximate seeking.\n"
    },
    {
      "commit": "ca099614841bc619f217dfa088da630a7eb1ab65",
      "tree": "7c804ef7da518a1193d481e325909e0240bff1c7",
      "parents": [
        "7768892c82f3b037c19c608c6d8309938fd5ca21"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu May 06 16:47:30 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon May 10 15:14:56 2010 +0800"
      },
      "message": "Add continuous focus mode constant.\n\nbug:2612447\nChange-Id: I9bc3f5a47ad50722a265d50b1d28fb82a2253dc9\n"
    },
    {
      "commit": "e25cc656392d8866e163f78b60c7791455d0fb44",
      "tree": "d264b1c05e9edb2851c5ddc21a662617ea1d4ebc",
      "parents": [
        "a0a126a060b6b9ba51bc99f82ff4d322f779325e"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu May 06 16:36:58 2010 +0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon May 10 11:21:14 2010 +0800"
      },
      "message": "Support multiple cameras in framework.\n\nChange-Id: I081f0fbdca4b633715ea7c3b3d42f8662d27598a\n"
    },
    {
      "commit": "388379f8b4cabe7bccf280d450a6db2c3149796b",
      "tree": "e874957c4767cce040920f7ed98602b872f7c447",
      "parents": [
        "75370e74629b4938c4472d6001eebf5e305dbc55"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 07 10:35:13 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri May 07 12:01:45 2010 -0700"
      },
      "message": "A new OggExtractor/VorbisDecoder combo to support approximate seeking.\n\nChange-Id: Id5d0c1c8b1adc62896bb5ed951f7b5cfda811e95\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "a269d195d41ced934d2153fd81fa69ffe7854740",
      "tree": "cbfe9a5b063aa4aa860f4c2e3e26f1acde99780b",
      "parents": [
        "94886d9774d11b8bc93e56103d2f0ab61458ada0",
        "ca48c88c3d5733c4405a2fc4f7d9bb7fbba3d43f"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 17:35:06 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 17:35:06 2010 -0700"
      },
      "message": "am ca48c88c: am 8a8658a5: Merge \"Make static versions of libutils and libbinder.\" into froyo\n\nMerge commit \u0027ca48c88c3d5733c4405a2fc4f7d9bb7fbba3d43f\u0027 into kraken\n\n* commit \u0027ca48c88c3d5733c4405a2fc4f7d9bb7fbba3d43f\u0027:\n  Make static versions of libutils and libbinder.\n"
    },
    {
      "commit": "ca48c88c3d5733c4405a2fc4f7d9bb7fbba3d43f",
      "tree": "ba82e7825548f05c8ac87f75adebcf6bf6a92bf9",
      "parents": [
        "ad2f9ff786d83851c5aaccf0e8d49f50e58fb7dd",
        "8a8658a5de261c2da72d431940877bd054bc9837"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 17:33:45 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 17:33:45 2010 -0700"
      },
      "message": "am 8a8658a5: Merge \"Make static versions of libutils and libbinder.\" into froyo\n\nMerge commit \u00278a8658a5de261c2da72d431940877bd054bc9837\u0027 into froyo-plus-aosp\n\n* commit \u00278a8658a5de261c2da72d431940877bd054bc9837\u0027:\n  Make static versions of libutils and libbinder.\n"
    },
    {
      "commit": "8a8658a5de261c2da72d431940877bd054bc9837",
      "tree": "2e86f445e23eb89049d528a29f4d313fae922e59",
      "parents": [
        "08e1b94c5c06dc27ad11393bc66c81c2ebc5ad27",
        "08b3d2e5ef01a5114424a871934dd9fc153352c0"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 17:31:48 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 06 17:31:48 2010 -0700"
      },
      "message": "Merge \"Make static versions of libutils and libbinder.\" into froyo"
    },
    {
      "commit": "8a1c0934b0622be6f7c451aa8773567e797ab397",
      "tree": "077ada5f08affa22e3c387dd6cc82d8d054ac869",
      "parents": [
        "799bc84d882e07cb1a3ba4d49c8ed955c583eadc",
        "71bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 12:43:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 12:43:59 2010 -0700"
      },
      "message": "am 71bd9fc8: am 100ef9be: Merge \"Disable vorbis seek when streaming from localhost.\" into froyo\n\nMerge commit \u002771bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c\u0027 into kraken\n\n* commit \u002771bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c\u0027:\n  Disable vorbis seek when streaming from localhost.\n"
    },
    {
      "commit": "71bd9fc81e3154b9cad22ca7ff2d9c6ed6fdbe6c",
      "tree": "ec9913964cd1f71a06350de63feac90fe33c9fa1",
      "parents": [
        "8b6ac78e7476251c8fc38c29a2b95f2dadfdbacc",
        "100ef9bee48c9beb83d885d233de6a42c64f55af"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 12:36:13 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 06 12:36:13 2010 -0700"
      },
      "message": "am 100ef9be: Merge \"Disable vorbis seek when streaming from localhost.\" into froyo\n\nMerge commit \u0027100ef9bee48c9beb83d885d233de6a42c64f55af\u0027 into froyo-plus-aosp\n\n* commit \u0027100ef9bee48c9beb83d885d233de6a42c64f55af\u0027:\n  Disable vorbis seek when streaming from localhost.\n"
    },
    {
      "commit": "62f7ffe106a7126ef31b199552c5cfc6599bc3d1",
      "tree": "7bd9fc2fe4a46740aec9862b7ff8f33630e8ab12",
      "parents": [
        "b5fa4dff0c4756ef7868926d4f373645ac0b00a9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 10:18:05 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 06 10:31:57 2010 -0700"
      },
      "message": "Disable vorbis seek when streaming from localhost.\n\nChange-Id: Icda523ae1c89e26482f1c1767fe3a8b9222bb30f\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "08b3d2e5ef01a5114424a871934dd9fc153352c0",
      "tree": "7768ecd2c0308f149cb8abb1746a0e7bc1bdae8b",
      "parents": [
        "df7ccbc8ff0d93a708a7fa1e57469d3f93ceda5c"
      ],
      "author": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 00:55:09 2010 -0700"
      },
      "committer": {
        "name": "Dan Egnor",
        "email": "egnor@google.com",
        "time": "Thu May 06 01:03:31 2010 -0700"
      },
      "message": "Make static versions of libutils and libbinder.\n\nFix some small static-initialization-order issues (and a static-\ninitializers-missing issue) that result from doing so.  The static\nlibraries don\u0027t actually get used for anything real at the moment --\nthey\u0027re used for perf tests of bug 2660235.\n\nBug: 2660235\nChange-Id: Iee2f38f79cc93b395e8d0a5a144ed92461f5ada0\n"
    },
    {
      "commit": "579e08e657a8dc9274b297b5dda95a4383cc3642",
      "tree": "0b1113f2c57867bd95b7cba17a315363845b389a",
      "parents": [
        "33232d26bb51bf015fdf7dbd7a34c2b67745d72a",
        "f78964490d8098387d51444c87bf520ad3f674e2"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 05 16:00:01 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed May 05 16:00:01 2010 -0700"
      },
      "message": "am f7896449: merge from open-source master\n\nMerge commit \u0027f78964490d8098387d51444c87bf520ad3f674e2\u0027 into kraken\n\n* commit \u0027f78964490d8098387d51444c87bf520ad3f674e2\u0027:\n  Add new keycodes for the convenience of Japanese IMEs\n  Call register_localized_collators() with the current locale.\n  Fixed deserialization problem in DatePicker.\n  Fix for bug 2467152 files with spaces fail to open.\n  Set alpha value for newly created dim surface.\n  telephony: Fix CID when CID is unknown\n"
    },
    {
      "commit": "f78964490d8098387d51444c87bf520ad3f674e2",
      "tree": "7384d69f165ea9a1d1a004a54b05155d29f1249e",
      "parents": [
        "fc12b5be2ee49ba2392274d413bd5d759c03c346",
        "1e936da287e1836502bf91b53468076726b7e1ee"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 05 15:57:42 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed May 05 15:57:42 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: Ia9e1f4e049f5870386ea29ddb6e3ef028ea918da\n"
    },
    {
      "commit": "b032bc037399110f41cfdb838a792b3c65756323",
      "tree": "c676df6b6fbb6e74c4dadcf0875556dc9ae5f396",
      "parents": [
        "f1fdf3c7e835c37a3137d5eed101f224d56f36ed"
      ],
      "author": {
        "name": "mogimo",
        "email": "mogimogio@gmail.com",
        "time": "Sat Oct 03 03:13:56 2009 +0900"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed May 05 13:37:21 2010 -0700"
      },
      "message": "Add new keycodes for the convenience of Japanese IMEs\n\nChange-Id: Ibd308cef11261147856258595f6ca0137e03e05c\n"
    },
    {
      "commit": "3300e9667e3daa374659b4a8b97dd92c4d34e501",
      "tree": "7fb447a7a23b8a992d929a5c30ca3a01cacefe18",
      "parents": [
        "51867f231355b82fd0a8804352403fec102cb0dc"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 21 16:14:15 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 05 11:34:43 2010 -0700"
      },
      "message": "Support audio and video track interleaving in the recorded mp4 file\n\nChange-Id: Ifa27eb23ee265f84fe06773b29b0eb2b0b075b60\n"
    },
    {
      "commit": "ce0bd71735532f53014cc299f684302f357c471a",
      "tree": "740a35865bd0697f3701d28e6d35237875d9a293",
      "parents": [
        "ebad36db56017000ce8b1eb813537d90248e3ad0",
        "8ea45aad100ee25067b2e83703454c71a968ba4f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 14:30:34 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 04 14:30:34 2010 -0700"
      },
      "message": "am 8ea45aad: am e083d0a2: Merge \"Support for Ogg Vorbis decoding in stagefright.\" into froyo\n\nMerge commit \u00278ea45aad100ee25067b2e83703454c71a968ba4f\u0027 into kraken\n\n* commit \u00278ea45aad100ee25067b2e83703454c71a968ba4f\u0027:\n  Support for Ogg Vorbis decoding in stagefright.\n"
    },
    {
      "commit": "8ea45aad100ee25067b2e83703454c71a968ba4f",
      "tree": "cfd4e90431c3afcbf119452c0170714e700a2a37",
      "parents": [
        "5c16039adfe3da2d9438b8814734f5c8d2570ad3",
        "e083d0a2f50906423ab548047d436c74648fc488"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 14:29:04 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue May 04 14:29:04 2010 -0700"
      },
      "message": "am e083d0a2: Merge \"Support for Ogg Vorbis decoding in stagefright.\" into froyo\n\nMerge commit \u0027e083d0a2f50906423ab548047d436c74648fc488\u0027 into froyo-plus-aosp\n\n* commit \u0027e083d0a2f50906423ab548047d436c74648fc488\u0027:\n  Support for Ogg Vorbis decoding in stagefright.\n"
    },
    {
      "commit": "eb5eef38198b38d97b573be550657ba64ccba299",
      "tree": "ab37f77be5d5bf436f50789a134e74d6c23fad0e",
      "parents": [
        "3bb5e4d322a6a7cda45e868dbe307c2dc3cf688e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 11:46:42 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue May 04 11:58:16 2010 -0700"
      },
      "message": "Support for Ogg Vorbis decoding in stagefright.\n\nSet the magic property media.stagefright.enable-vorbis to true to use the new implementation instead of the standalon vorbis player for file-based playback. HTTP streaming of vorbis content will always go through stagefright.\n\nChange-Id: Ie3843a99fadb22372f89540d0f8d65196e0c2af8\nrelated-to-bug: 2654400\n"
    },
    {
      "commit": "1bb8b670f99c1029def72ec408142077abd66cc4",
      "tree": "5417838dd9cbf4b7fd21a4af4f06e1e18ad8b7e5",
      "parents": [
        "b205dabaa73843e1de8f4a27d15736a8dcd7cb2b",
        "bfe7f0b12165a1ad4a73b6d8f013cb9e115a3c60"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Apr 30 12:58:11 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 30 12:58:11 2010 -0700"
      },
      "message": "Merge \"Add support for enqueuing buffers in arbitrary order\" into kraken"
    },
    {
      "commit": "daedd81f089c296ac7355e9be47f1e4c6d645b04",
      "tree": "e8e1c014f2bbb43346478e006dedb89c02aabf94",
      "parents": [
        "1d0fa397ce6c7f654fc3086e6267e1c611dd19ea",
        "f590f702c8142fa5225a6d2ea6649515c1a2961f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 29 14:17:12 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 29 14:17:12 2010 -0700"
      },
      "message": "Merge \"cleanup. waitForCondition() now uses polymorphsim instead of templtes\" into kraken"
    },
    {
      "commit": "1d0fa397ce6c7f654fc3086e6267e1c611dd19ea",
      "tree": "39cd07fb59f20ecd68af68c64326b56325c56f13",
      "parents": [
        "9eef63113652dc0f0df92295a9fb0b0c71b92934",
        "c54c12713b98f308f848d2eb9ed7ef28ecc62c55"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 29 14:16:14 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 29 14:16:14 2010 -0700"
      },
      "message": "Merge \"fix a race condition in undoDequeue(), where \u0027tail\u0027 could be computed incorrectly.\" into kraken"
    },
    {
      "commit": "14cee9f688c32d63d8521188e7422811629bb7c2",
      "tree": "16c2f2356519a2552bb3b7e2b1de6735793c4b1a",
      "parents": [
        "3fd6419fe542c4ecb8e838d1754a83ce8591b288"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Apr 23 17:51:26 2010 -0700"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Wed Apr 28 16:51:52 2010 -0700"
      },
      "message": "New xlarge screen size.\n\nNot complete, only for experimentation at this point.\n\nThis includes a reworking of how screen size configurations are matched,\nso that if you are on a larger screen we can select configurations for\nsmaller screens if there aren\u0027t any exactly matching the current screen.\n\nThe screen size at which we switch to xlarge has been arbitrarily\nchosen; the compatibility behavior has not yet been defined.\n\nChange-Id: I1a33b3818eeb51a68fb72397568c39ab040a07f5\n"
    },
    {
      "commit": "bfe7f0b12165a1ad4a73b6d8f013cb9e115a3c60",
      "tree": "0d55794a9fa47b81998aae8c2abb6c7f0af8ee76",
      "parents": [
        "f590f702c8142fa5225a6d2ea6649515c1a2961f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 27 21:08:20 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 28 16:12:54 2010 -0700"
      },
      "message": "Add support for enqueuing buffers in arbitrary order\n\nAlso added a very simple SharedBufferStack unit test.\n\nChange-Id: I253dbbe98a53c966b78d22d4d6dd59f8aefc8c40\n"
    },
    {
      "commit": "f590f702c8142fa5225a6d2ea6649515c1a2961f",
      "tree": "5165d6b04f34f8b90d36bbec3cc9949aa69f2fd6",
      "parents": [
        "c54c12713b98f308f848d2eb9ed7ef28ecc62c55"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 27 16:41:19 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 28 16:12:54 2010 -0700"
      },
      "message": "cleanup. waitForCondition() now uses polymorphsim instead of templtes\n\nthe reason for the above change is that waitForCondition() had become\nlarge over time, mainly to handle error cases, using inlines to\nevaluate the condition doesn\u0027t buys us much anymore while it increases\ncode size.\n\nChange-Id: I2595d850832628954b900ab8bb1796c863447bc7\n"
    },
    {
      "commit": "c54c12713b98f308f848d2eb9ed7ef28ecc62c55",
      "tree": "cee4c74a6421cd6b128ed3c2538c836469c6ba06",
      "parents": [
        "3fd6419fe542c4ecb8e838d1754a83ce8591b288"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 27 16:11:38 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 28 16:12:54 2010 -0700"
      },
      "message": "fix a race condition in undoDequeue(), where \u0027tail\u0027 could be computed incorrectly.\n\nin the undoDequeue() case, \u0027tail\u0027 was recalculated from \u0027available\u0027 and \u0027head\u0027\nhowever there was a race between this and retireAndLock(), which could cause\n\u0027tail\u0027 to be recalculated wrongly.\n\nthe interesting thing though is that retireAndLock() shouldn\u0027t have any impact\non the value of \u0027tail\u0027, which is client-side only attribute.\nwe fix the race by saving the value of \u0027tail\u0027 before dequeue() and restore it\nin the case of undoDequeue(), since we know it doesn\u0027t depend on retireAndLock().\n\nChange-Id: I4bcc4d16b6bc4dd93717ee739c603040b18295a0\n"
    },
    {
      "commit": "b00e246669a1da84b1dd7e3f014eedc21747562f",
      "tree": "e7c4b1f8785ef9c97f49d24850f4461376e8dc31",
      "parents": [
        "55fb51aa411b574646cc3068ce36e73789b81616"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Apr 26 17:48:26 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Apr 28 11:55:47 2010 -0700"
      },
      "message": "Use timestamp from camera driver for CameraSource\n\nChange-Id: I09ddec69997c43b8f17fdd21304c76cb4c5ab8cf\n"
    },
    {
      "commit": "a8a0aa8b922c45fb4633f51610f264a19f9bd825",
      "tree": "367c5b004195a5dbdca46e5f4049b029d3e570c9",
      "parents": [
        "a8624186a6f7a29697bf5a112e46a80ca796c9c5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 21 15:24:11 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 21 22:25:35 2010 -0700"
      },
      "message": "better fix for [2420565] Surface.lockCanvas() updates the dirty region too often\n\nChange-Id: I83438b40effd21538f1c74396dc665254b9d5ab6\n"
    },
    {
      "commit": "d29eafdba5ca887631648a470dbec30b82cfd9dc",
      "tree": "441b454713ae4315768545a2740c85f49edfc986",
      "parents": [
        "e1d851d36d0260f3e02e5ae7f372f8ab42494f8b",
        "f021d12f6f7116e9275cd3553a349ce5cb8aab14"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 21 09:15:15 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 21 09:15:15 2010 -0700"
      },
      "message": "am f021d12f: merge from open-source master\n\nMerge commit \u0027f021d12f6f7116e9275cd3553a349ce5cb8aab14\u0027 into kraken\n\n* commit \u0027f021d12f6f7116e9275cd3553a349ce5cb8aab14\u0027:\n  Allow META* macros outside of the framework\n  Fix printing order of phone objects creation\n"
    },
    {
      "commit": "f021d12f6f7116e9275cd3553a349ce5cb8aab14",
      "tree": "94cb2b13e3f75ad18ab56605781d1eb74698d07e",
      "parents": [
        "172673cd5b21dee6e175ab67235aa19bc2689868",
        "5a870fee53ca94c7575503c72574ca0f068d52c7"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 21 09:10:43 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Wed Apr 21 09:10:43 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I08f1feae65b1dfc3f740d78654c267f2e3ae5e85\n"
    },
    {
      "commit": "5a870fee53ca94c7575503c72574ca0f068d52c7",
      "tree": "7c9746028570b87eb4f12a1e3f5c64f5004da89f",
      "parents": [
        "2aba0ec873e269b3ce5d044fe5f1f12b6b28228d"
      ],
      "author": {
        "name": "Michael Richardson",
        "email": "mcr@credil.org",
        "time": "Tue Nov 03 17:01:28 2009 -0500"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Apr 20 14:14:30 2010 -0700"
      },
      "message": "Allow META* macros outside of the framework\n\nThe META* macros are useful outside of the framework\nfor other systems implementing Binder interfaces, but\nthey depend upon the android namespace. This includes\nthe appropriate namespace operations, which should be\nsane even in that android namespace.\n\nChange-Id: If600156c65191f51f487d0ee301d9f9f532b263d\n"
    },
    {
      "commit": "16a86ee30b70aea8c254b836c708f54a608d25f3",
      "tree": "9e30bb72015eeaedcc5c7d9f8303cebd2cc3e07f",
      "parents": [
        "6bb5ebaa0305a30b5037f6533b3b989e0437d26c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 15 18:48:26 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 20 13:36:29 2010 -0700"
      },
      "message": "added setCrop() to android_native_window_t\n\nhooked up the new method up to Surface.cpp\nthe actual crop is not implemented in SF yet\n\nChange-Id: Ic6e313c98fd880f127a051a0ccc71808bd689751\n"
    },
    {
      "commit": "6bb5ebaa0305a30b5037f6533b3b989e0437d26c",
      "tree": "68048832ea2c2560a94bf506647e9fee0357f548",
      "parents": [
        "796c5fc6abf01b1864223156d578288657fe9923"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "pixelflinger@google.com",
        "time": "Mon Apr 05 16:21:53 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Apr 20 13:36:29 2010 -0700"
      },
      "message": "add support for up to 16 buffers per surface\n\nalso increase the dirtyregion size from 1 to 6 rectangles.\nOverall we now need 27KiB process instead of 4KiB\n\nChange-Id: Iebda5565015158f49d9ca8dbcf55e6ad04855be3\n"
    },
    {
      "commit": "732c73e1e76fef4f3857a1649b03021305639c3c",
      "tree": "36df82e874b7ab5ad4a3b1ca82e25dc3dec7831e",
      "parents": [
        "15d484a7ef1e8f418281af3f6a393ff97729a1f5",
        "26f6163557980062dbb203388b3d0794ee0d06f7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 19 19:29:22 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 19 19:29:22 2010 -0700"
      },
      "message": "am 26f61635: am 0a4ab1b9: Merge \"fix [2599939] \"cannot play video\" after open/close a video player a dozen of times\" into froyo\n\nMerge commit \u002726f6163557980062dbb203388b3d0794ee0d06f7\u0027 into kraken\n\n* commit \u002726f6163557980062dbb203388b3d0794ee0d06f7\u0027:\n  fix [2599939] \"cannot play video\" after open/close a video player a dozen of times\n"
    },
    {
      "commit": "26f6163557980062dbb203388b3d0794ee0d06f7",
      "tree": "315ed8f9b1a5688854e16eeef72dcd86b10f8e2e",
      "parents": [
        "0679876997a5523a7539b8fe2c74a39434b17820",
        "0a4ab1b9b4c7b891c1ecb67eed99e9c9b30c93aa"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 19 19:26:31 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 19 19:26:31 2010 -0700"
      },
      "message": "am 0a4ab1b9: Merge \"fix [2599939] \"cannot play video\" after open/close a video player a dozen of times\" into froyo\n\nMerge commit \u00270a4ab1b9b4c7b891c1ecb67eed99e9c9b30c93aa\u0027 into froyo-plus-aosp\n\n* commit \u00270a4ab1b9b4c7b891c1ecb67eed99e9c9b30c93aa\u0027:\n  fix [2599939] \"cannot play video\" after open/close a video player a dozen of times\n"
    },
    {
      "commit": "92c3b393275e967f37162b40b3438c5616328372",
      "tree": "14f077c0233038875cc90dd8eb107decb117b667",
      "parents": [
        "e80c6f49d5055e299b7ada91b5967feab66e467b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 19 19:09:03 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 19 19:09:03 2010 -0700"
      },
      "message": "fix [2599939] \"cannot play video\" after open/close a video player a dozen of times\n\nget rid off the MAP_ONCE flag is MemoryHeapBase (as well as it\u0027s functionality),\nthis feature should not be used anymore.\n\nthe software renderer was incorrectly using the default ctor which set MAP_ONCE,\ncausing the leak. the software renderer itself is incorrectly used while coming\nback from sleep.\n\nChange-Id: I123621f8d140550b864f352bbcd8a5729db12b57\n"
    },
    {
      "commit": "67bbac844d3fda5c693464deddf349b80c5190a0",
      "tree": "fed9489b30dba324237db50733c85f85c7633878",
      "parents": [
        "ccb87e11da5ff4508ede1e4582a5d617fbe78a97"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 15 14:57:39 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 15 15:23:25 2010 -0700"
      },
      "message": "when a zero dimension buffer is allocated, turn the allocation into\na 1x1 buffer instead of Nx1 (or 1xN)\n\nChange-Id: I27eeb15e83e13002dd9405f4e52b54f7dffc0fe7\n"
    },
    {
      "commit": "445a97855480acecaa53c648be47337d19b4297d",
      "tree": "26b95789363a97eccf4281f03fe428693aacbd09",
      "parents": [
        "7853c8988fe30d1a150dcf62887506f36ea75242",
        "8b138323d54e36fd66b22a634494648e20c53373"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 12 18:59:49 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 18:59:49 2010 -0700"
      },
      "message": "Merge \"don\u0027t hardcode \"mSurface\" throughout our source code\" into kraken"
    },
    {
      "commit": "7853c8988fe30d1a150dcf62887506f36ea75242",
      "tree": "5a8e9d8e028613a0dcbe08647a028a5f4e4a8fa6",
      "parents": [
        "5c7a69c3d6f41f60f4bfc3f7e3123941d382f3a7",
        "248ea4a9f773210a7b7dbd7892e6b865a0f7add3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 17:21:33 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 12 17:21:33 2010 -0700"
      },
      "message": "am 248ea4a9: am 5baa5e19: Merge \"Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\\\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\" into froyo\n\nMerge commit \u0027248ea4a9f773210a7b7dbd7892e6b865a0f7add3\u0027 into kraken\n\n* commit \u0027248ea4a9f773210a7b7dbd7892e6b865a0f7add3\u0027:\n  Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\n"
    },
    {
      "commit": "248ea4a9f773210a7b7dbd7892e6b865a0f7add3",
      "tree": "dd23104bd537f745abb6eb7db4225298592d32e7",
      "parents": [
        "6a75d6850c77fb48daba7700621856605ab60569",
        "5baa5e1917ba4a212fa280b8b6cc3bbbf9382194"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 17:18:43 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Apr 12 17:18:43 2010 -0700"
      },
      "message": "am 5baa5e19: Merge \"Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\\\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\" into froyo\n\nMerge commit \u00275baa5e1917ba4a212fa280b8b6cc3bbbf9382194\u0027 into froyo-plus-aosp\n\n* commit \u00275baa5e1917ba4a212fa280b8b6cc3bbbf9382194\u0027:\n  Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\n"
    },
    {
      "commit": "8b138323d54e36fd66b22a634494648e20c53373",
      "tree": "e403ffb6131b32a5156e5f9868e0ae1408c96128",
      "parents": [
        "5c7a69c3d6f41f60f4bfc3f7e3123941d382f3a7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 12 16:22:15 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 12 16:29:36 2010 -0700"
      },
      "message": "don\u0027t hardcode \"mSurface\" throughout our source code\n\nthis is used in a few places to get access to the android.view.Surface\nnative surface. use a macro instead. Also rename the field to mNativeSurface.\n\nChange-Id: I1c6dea14abd6b8b1392c7f97b304115999355094\n"
    },
    {
      "commit": "d0332ad8d212d87fbf909fc780e6378b4d2c20c1",
      "tree": "4c3f46a88f8c749010fdbb40fbfb64e56a103e8c",
      "parents": [
        "6dbf80d086d03d95c5f6331719edd6dd6dac0361"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 16:05:57 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 16:05:57 2010 -0700"
      },
      "message": "Distinguish QCELP audio from mpeg4 audio, ignore QCELP audio tracks since we don\u0027t have a decoder for it, ignore potentially malformed metadata for AMR NB and WB tracks.\n\nChange-Id: Ic9a9198413431db4ea40bb63b9de91aa8a7183af\nrelated-to-bug: 2587341\n"
    },
    {
      "commit": "4501f62d7acb2fc754b89e77e4cec2e6c5b46037",
      "tree": "c93634d671c6a7d0ada06023558fce8055484b78",
      "parents": [
        "a7f57ef707077a005a65b025bebda2a5459d81bd",
        "e2018ca9ff9234876bb5ba63d2f51b72396c5fca"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Apr 12 11:05:09 2010 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 12 11:05:09 2010 -0700"
      },
      "message": "Merge \"Remove unnecessary lock from AMRWriter.\" into kraken"
    },
    {
      "commit": "08caa704ae6c1dd8434186fa2dc22b1d7f8a5f9c",
      "tree": "4fed99924b11236a3ac616b84bfa12071626a0a6",
      "parents": [
        "67d6590d242397acbb95814139301d2e6efd3631",
        "c58b42327df5fbc826e2fcc2674ab6db0edfcd92"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Apr 10 11:42:15 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Apr 10 11:42:15 2010 -0700"
      },
      "message": "am c58b4232: Add SCENE_MODE_BARCODE and FOCUS_MODE_EDOF.\n\nMerge commit \u0027c58b42327df5fbc826e2fcc2674ab6db0edfcd92\u0027 into froyo-plus-aosp\n\n* commit \u0027c58b42327df5fbc826e2fcc2674ab6db0edfcd92\u0027:\n  Add SCENE_MODE_BARCODE and FOCUS_MODE_EDOF.\n"
    },
    {
      "commit": "c58b42327df5fbc826e2fcc2674ab6db0edfcd92",
      "tree": "531babba66efab35a2a78be5b0fc5116d0dc3945",
      "parents": [
        "2a547829fe162c52ea1b1168f47d25fb1b40497d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 29 17:21:28 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Apr 10 09:33:15 2010 +0800"
      },
      "message": "Add SCENE_MODE_BARCODE and FOCUS_MODE_EDOF.\n\nbug:2544367\nChange-Id: If122a7745e080f9e4bffb15dc4930d71f0421867\n"
    },
    {
      "commit": "e2018ca9ff9234876bb5ba63d2f51b72396c5fca",
      "tree": "368d58b24d856545880ea0281add15ce00b2bce3",
      "parents": [
        "71c27d991ad9f07cc7e28545bf6cd2b133668cd5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 23 14:33:02 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 09 13:49:39 2010 -0700"
      },
      "message": "Remove unnecessary lock from AMRWriter.\n\nChange-Id: Ia02966d936dd8cbb31e92051578a3fa816885710\n"
    },
    {
      "commit": "b52e9f748cefaad01fc66a73ddfa707f2446895c",
      "tree": "f4d66d6bb3c4addd85445f8a4eec2756b7c2519e",
      "parents": [
        "6f72a313a042fdf0a5345f83eda74c5970b7db05",
        "eb12e45f7a92fd424988451256c82605d086245d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 12:45:59 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Apr 08 12:45:59 2010 -0700"
      },
      "message": "am eb12e45f: Merge \"Refactor connection/redirection code, support redirects on reconnection.\" into froyo\n\nMerge commit \u0027eb12e45f7a92fd424988451256c82605d086245d\u0027 into froyo-plus-aosp\n\n* commit \u0027eb12e45f7a92fd424988451256c82605d086245d\u0027:\n  Refactor connection/redirection code, support redirects on reconnection.\n"
    },
    {
      "commit": "65369424cbfbf165b4324bdcb6f138435462a196",
      "tree": "8cf8a4dcd3f139386bb20d2a610cfc903a5cb0d9",
      "parents": [
        "6b04d5c735df7fa05c705f979eff8821989ab73d",
        "4fedd80c1d3997d62073518973b1fe09862ebaa5"
      ],
      "author": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 08 11:27:55 2010 -0700"
      },
      "committer": {
        "name": "The Android Open Source Project",
        "email": "initial-contribution@android.com",
        "time": "Thu Apr 08 11:27:55 2010 -0700"
      },
      "message": "merge from open-source master\n\nChange-Id: I975030d9572463bc69245bcffa25c47d7acb2b51\n"
    },
    {
      "commit": "aba965fdd86dfe4c817f4d272deb24fd1fcc1446",
      "tree": "90fd2e58ae3f6392790a17460b368264083da1b7",
      "parents": [
        "a51250bdc753c02b0cae1dd83750ae6e2c1036c7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 09:17:01 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 10:09:35 2010 -0700"
      },
      "message": "Refactor connection/redirection code, support redirects on reconnection.\n\nChange-Id: Id2517568000e028b01553c06a4893813a6883168\nrelated-to-bug: 2580785\n"
    },
    {
      "commit": "a51250bdc753c02b0cae1dd83750ae6e2c1036c7",
      "tree": "37766c5d7912f6ad6296ec9ff1f53b363da61f00",
      "parents": [
        "98e26575373461dc16c749d1f756403e46a909d4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 07:51:20 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Apr 08 07:51:20 2010 -0700"
      },
      "message": "Increase the size of the pages used in CachingDataSource (total amount of memory used remains the same) to compensate for reduced locality of audio/video data requests. Also fixes a mistaken trailing \"\\r\\n\" in the range header and better error handling on http connection.\n\nChange-Id: Ic9a6ef204362bc9afdc61e081c76bc62e5ef92ad\nrelated-to-bug: 2580785\n"
    },
    {
      "commit": "4fedd80c1d3997d62073518973b1fe09862ebaa5",
      "tree": "f2fd4ba7050efc348b5bd3789c34af21b0dbaa0d",
      "parents": [
        "ef9d148ad63e79b7ea1ecad49163f33a7d37aea1"
      ],
      "author": {
        "name": "Chih-Wei Huang",
        "email": "cwhuang@linux.org.tw",
        "time": "Wed May 27 15:52:50 2009 +0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Fri Apr 02 14:39:20 2010 -0700"
      },
      "message": "Add keycodes PageUp and PageDown\n\nThis is useful for applications like web browser.\n\nChange-Id: Ie9262d5b75de87ecd0971407a7c3ce9aa6e4998e\n"
    },
    {
      "commit": "a4357addf609c4a88867c93db135d531b2c40352",
      "tree": "98c7ac87bf0ce88999a044ffcbfd848690733471",
      "parents": [
        "d9c16c37ea28933973f32cb434f770226266b675"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:49:54 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Apr 02 12:55:31 2010 -0700"
      },
      "message": "Coalesce multiple encoded AAC frames into a single input buffer on this particular OMX codec to increase throughput significantly.\n\nChange-Id: I90c7db6656a53339c5d454336548c4f00d0d9064\nrelated-to-bug: 2548426\n"
    },
    {
      "commit": "e64d9a236e4704abf53d3b7eea2eb066f23cf402",
      "tree": "b2d8d4d7685d5ffb2532fc79842b90943802edfb",
      "parents": [
        "3fe1708d9d204fa63e8abe6e434378d89e963752"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 31 13:56:29 2010 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Apr 01 00:12:20 2010 -0700"
      },
      "message": "Public API changes for CameraProfile and CamcorderProfile classes\n\n1. CamcorderProfile: “@see” links are broken; Remove m prefix from fields; remove “final”\n2. CamcorderProfile.Quality: use an int rather than an enum\n3. Add API on MediaRecorder to pass in a CamcorderProfile\n4. CameraProfile.getImageEncodingQualityLevels @hide or make it consistent with CamcorderProfile\n5. Remove a convenient method and instead let the (mms) app do that task\n\nbug - 2553862\n\nChange-Id: I759215c7892f772aeddf3651d17038489c6fbc50\n"
    },
    {
      "commit": "dc5ce9c548533e0c149e7a5b2a0597f321905bef",
      "tree": "4f52e51d520c96393d1ebad1f8a021caa012f9ac",
      "parents": [
        "b80d49d33831ad95e6cddd2aa0903a25cd838f93"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 25 14:34:49 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 25 14:34:49 2010 -0700"
      },
      "message": "fix [2545826] calling into gralloc with external lock held\n\nChange-Id: I2d0e017382404c684c768a0dd0423d574213f10a\n"
    },
    {
      "commit": "a729f97e8bfba67a94b1cde26d0d78d84528de85",
      "tree": "348c44f823825856df69b8b8e640bc86146a438f",
      "parents": [
        "078fd47e91d495175927d1a4a8b9aad039a7ba4e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:14:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:16:43 2010 -0700"
      },
      "message": "libutils Condition are now PRIVATE by default\n\nCondition must be initialized with SHARED for the old behavior, where\nthey can be used accross processes.\n\nUpdated the two places android that require SHARED conditions.\n\nPRIVATE conditions (and mutexes) use more efficient syscalls.\n\nChange-Id: I9a281a4b88206e92ac559c66554e886b9c62db3a\n"
    },
    {
      "commit": "900e0d095442d7111e77a2f2e9467a39b164bb73",
      "tree": "011b41b7684f27c49aeb9b4bfbc67e85e78d661e",
      "parents": [
        "2fbc10f3559b85f6550dd34b8779e9ee94e4c73c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:07:45 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:52:41 2010 -0700"
      },
      "message": "Update TTS plugin interface to receive engine configuration data\ncoming from the plugin helper code (handling config and preferences).\n\nChange-Id: Ibc1d229463f11f8977552d74d1fd2aa6a6cab88e\n"
    },
    {
      "commit": "878342993276a1a98f35f3ccda24c675ed09b7eb",
      "tree": "43825eb98a236d4891db14a2d592e3839d961f46",
      "parents": [
        "d246ca811575eee9122070648e93b7484f6edd81"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 17 16:38:30 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 17 16:38:30 2010 -0700"
      },
      "message": "While streaming media data, upon a socket-read error, try reconnecting to the server and attempt to re-read for at most 3 times.\n\nChange-Id: I7534905e07a6456d18b26d5d60fa8915f25ae99e\nrelated-to-bug: 2492187\n"
    },
    {
      "commit": "2a09c7e042d6a3ae600b25f606d584368a6e3f3a",
      "tree": "ca27a6e6d07e40655558d3a65044559a579f5bac",
      "parents": [
        "d489240362d24461e22346bc98a49347dfd4311d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 11:44:07 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 11:44:07 2010 -0700"
      },
      "message": "Properly handle errors during the codec configuration phase, attempt to revert to next available (likely software-) codec if configuration fails.\n\nChange-Id: Id1c699711e30139c9cc29df972254b5ba026e6fb\nrelated-to-bug: 2517098\n"
    },
    {
      "commit": "e3452d3fe1da014a6db9a326df08230e0d5339ec",
      "tree": "1100aa650a815c221bb88c2f75b59d8d4422267d",
      "parents": [
        "34ec95de2f96a5f85d5e4e0f99252b99c0aca14f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 15:08:52 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 15:08:52 2010 -0800"
      },
      "message": "Fix the media metadata retriever (tests). The native constants must match those published at the java layer.\n\nChange-Id: Ic1efed709e4d93c61913b231a8cd3ef1074f8ca0\n"
    },
    {
      "commit": "34ec95de2f96a5f85d5e4e0f99252b99c0aca14f",
      "tree": "cb9c2c5339a7c5c7bbd2759060b449b9611419f6",
      "parents": [
        "45be271b5f3413c6815e18331d2ffa07d88fd3f6",
        "edbb4d8f398dfbce7b766d4bd207685dab582847"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 09:39:33 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 09:39:33 2010 -0800"
      },
      "message": "Merge \"HTTPStream and HTTPDataSource now support cancellation of the connection process, AwesomePlayer takes advantage of this in cases where ::reset() or ::suspend() is called while in the preparation phase to bail out early. Also fixes in issue where the audio codec was not properly stopped if no audio player object ever took ownership.\""
    },
    {
      "commit": "edbb4d8f398dfbce7b766d4bd207685dab582847",
      "tree": "97424243885172334a9905a99eb00fce3b90016e",
      "parents": [
        "84eb8d2a7de0a2cec02516b9fb2a61fde536b59c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 08:59:22 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 09:05:10 2010 -0800"
      },
      "message": "HTTPStream and HTTPDataSource now support cancellation of the connection process, AwesomePlayer takes advantage of this in cases where ::reset() or ::suspend() is called while in the preparation phase to bail out early. Also fixes in issue where the audio codec was not properly stopped if no audio player object ever took ownership.\n\nChange-Id: I6d73defe6d276693853a469db267bb2668d07af5\nrelated-to-bugs: 2475845,2414536\n"
    },
    {
      "commit": "2f7540e78f2a0952ddbbd9b953e186b90f401734",
      "tree": "a507541a85465b755372d2e8e638dc0fe3a5bb92",
      "parents": [
        "f6331a497455fdb6618bf4c634c9326695304c24"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:06:54 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:06:54 2010 -0800"
      },
      "message": "implement connect/disconnect in our native_window_t implementations\n\nthe framebuffer implementation doesn\u0027t do anything special with this\nbut the surfaceflinger implementation makes sure the surface is not used\nby two APIs simultaneously.\n\nChange-Id: Id4ca8ef7093d68846abc2ac814327cc40a64b66b\n"
    },
    {
      "commit": "f6331a497455fdb6618bf4c634c9326695304c24",
      "tree": "0aa52617d2335814b2f5d3df04b86e4e89c50b56",
      "parents": [
        "05212067451f5f4e94e2a548eaf5be8d4283a8ee"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:05:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:05:52 2010 -0800"
      },
      "message": "Add a new connect/disconnect API to android_native_window_t\n\nit\u0027s used to keep track of which API owns the surface.\n\nChange-Id: I1021c5905c020efc3c428e561b38189377168b22\n"
    },
    {
      "commit": "fb1eb6fbc90f130365a978fa883209b25928870a",
      "tree": "bfa92ebc2f055e15371e3582dd7b12678d1d0ab3",
      "parents": [
        "3802141d17631183b6638d8e66630750f75daf38"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 16:59:28 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 17:12:01 2010 -0800"
      },
      "message": "Reduce buffer sizes related to HTTP media data transfer in order to reduce the probability of a connection timeout/reset due to long periods of time between socket activity.\n\nChange-Id: I799ce1d58d56a31088a89603d8a18d24780f5b57\nrelated-to-bug: 2492187\n"
    },
    {
      "commit": "b94b52b94e63a77a20a7ea907bea49485091bbf7",
      "tree": "a57745bdf6d777669ade11d7184a7384c482ac38",
      "parents": [
        "8da2650df87d5166fc940482c25632b034e16656",
        "1ce986767ae5998ece6810c2933d0b274c529744"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 11:12:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 11:12:56 2010 -0800"
      },
      "message": "Merge \"Instead of instantiating StagefrightMetadataRetriever directly, instantiate a MediaMetadataRetriever which will do-the-right-thing(tm) even for .wma/.wmv/.asf files.\""
    },
    {
      "commit": "1ce986767ae5998ece6810c2933d0b274c529744",
      "tree": "6458609eb8489dbe0f656783e4e65bc84290fff2",
      "parents": [
        "f53774bce6f31ac0ae3dd21ab41aa607e548e703"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 10:55:35 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 10:55:35 2010 -0800"
      },
      "message": "Instead of instantiating StagefrightMetadataRetriever directly, instantiate a MediaMetadataRetriever which will do-the-right-thing(tm) even for .wma/.wmv/.asf files.\n\nChange-Id: Ibda4b5268514934f14a3d49a564902bc670f4384\nrelated-to-bug: 2074137\n"
    },
    {
      "commit": "cf244ada58539ce857ec041d7288d0271204fbb6",
      "tree": "ec16084d19a3b0c0e43e11dd276fbe7c6a6813c5",
      "parents": [
        "ae58f6d7473c67d76b6c6373794fd1a77543ddb4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 15:00:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 17:18:05 2010 -0800"
      },
      "message": "Add ability for some manifest attributes to reference resources.\n\nThis loosens our restriction on many manifest attributes requiring\nliteral string values, to allow various ones to use values from\nresources.  This is only allowed if the resource value does not change\nfrom configuration changes, and the restriction is still in place\nfor attributes that are core to security (requesting permissions) or\nmarket operation (used libraries and features etc).\n\nChange-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8\n"
    },
    {
      "commit": "27dd40bc27815a2929a7791d17bd945f3c9a868c",
      "tree": "99b484e69449643c7ef180aef8a912bb694ecd09",
      "parents": [
        "147113ee54e18094d3a8829c37a1041ec0e9dd7c",
        "d9ef5d7f13be0e5e0f9cf0ea768742fd91636c8d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 08 16:31:57 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 16:31:57 2010 -0800"
      },
      "message": "Merge \"Add camera parameter string constant for \"true\".\""
    },
    {
      "commit": "dc9927d4641066fc966c9c69856167b8410abf90",
      "tree": "da1bb32d3a0276e563aeb5409966e5dbaf0fc6b8",
      "parents": [
        "b3871fad556084932b6d17d07972cd2d8250fb5c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 08 15:46:13 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 08 15:46:13 2010 -0800"
      },
      "message": "The audio track was accidentally not participating in the prefetch since it wasn\u0027t started at the time prepare() was called. Also, properly report the cached duration even near the end when the source has no more data to fetch.\n\nChange-Id: I66a92fec24c9bfb25f1c186f1c877127bae2b4f9\nrelated-to-bug: 2444425\n"
    },
    {
      "commit": "d9ef5d7f13be0e5e0f9cf0ea768742fd91636c8d",
      "tree": "c2e877fe017d78941623345a2a2a99ddc395b3f2",
      "parents": [
        "796325b619a467eade0d6303c05b94a791a9c241"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 08 15:28:48 2010 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 08 15:28:48 2010 -0800"
      },
      "message": "Add camera parameter string constant for \"true\".\n\nbug:2458926\nChange-Id: I11eaae8ff031765e23f2627ded5873eabc09cead\n"
    },
    {
      "commit": "7299c41630935a2b106e73e5603579a7747f7535",
      "tree": "933c4bc5c991c8d9334b7b78fbc71ad73e93d077",
      "parents": [
        "6d141b0a9beb71e59ba850b7be13c4f0344ddc77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "055c986ab841f8f758398841730f1e90313b132a",
      "tree": "6f1aeb48706161c57a657b12a9fab102345e9bbf",
      "parents": [
        "3f5144b8a4b45a05cf7c1b0bd0422d0bd9ecb59b"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Tue Feb 23 10:45:42 2010 +0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Fri Mar 05 03:03:48 2010 +0800"
      },
      "message": "Add location provider name to gps-processing-method in EXIF header.\n"
    },
    {
      "commit": "47d0a9264fa5297db6333697ad750e6bc06822aa",
      "tree": "2b688202179ab906b44a413b8b27fd1a0ae9f75a",
      "parents": [
        "04218254ec1129e329cac71479b309cfb8a28d88"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 26 02:47:27 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 02 08:20:13 2010 -0800"
      },
      "message": "Issue 2071329: audio track is shorter than video track for video capture on sholes\n\nAdd API to retrieve number of frames dropped by audio input kernel driver.\n\nSubmitted on behalf of Masaki Sato \u003cmasaki.sato@motorola.com\u003e\n"
    },
    {
      "commit": "ef05e076ced1a32c5c0aaee28403779834adb2ba",
      "tree": "20dcf607adf508481d57610937ceab6ef2c6aee2",
      "parents": [
        "883dbacb12a003f8f46c3faab26b744fdef649a1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 17:43:39 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 20:42:14 2010 -0800"
      },
      "message": "Fix issue #2448075: aapt doesn\u0027t fix up activity-alias android:targetActivity links\n\nAnd related:\n\n- The aapt tool now sets a resource configurations sdk level to match any configs\n  that have been set (for example if you specify density your sdk level will be\n  at least 4).\n- New option to modify the targetPackage attribute of instrumentation.\n- Clean up of aapt options help.\n- Fix of UI type values to leave 0 for \"unspecified\".\n- Make the UI mode config APIs public.\n"
    },
    {
      "commit": "5d26c1e38dabb3ad8b4b6e1000375f3b1a6b7693",
      "tree": "6ba3c3a0a6a5de37d65c07690de84080a91db3b3",
      "parents": [
        "69f22feb8540576d2a2e9d32f9c86ebbbf309409"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 16:09:43 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 18:34:50 2010 -0800"
      },
      "message": "Added a name to Surface created by SurfaceFlinger\n\nUpdated the window manager to use this new facility.\nSurfaces name are now printed by \"dumpsys\".\n"
    },
    {
      "commit": "8cbb8f5e1f939b03515cb4d5942c3fcb226efb9e",
      "tree": "82706f029d7d318cb034993cc19625f47ce28903",
      "parents": [
        "7714d7132e4059a1256581b3599a5808b6a6f294"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Feb 28 23:19:55 2010 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 01 15:32:33 2010 -0800"
      },
      "message": "Unhide zoom API.\n\nbug:2458926\n"
    },
    {
      "commit": "24b326a8978bf78e3e560723dde221792784325b",
      "tree": "a675e74ca0e7f430cf4f1386032154fc8895fd96",
      "parents": [
        "4d98579f43026a8213b0570e7836648902741005"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Feb 20 17:47:04 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Feb 26 14:04:43 2010 +0800"
      },
      "message": "Unhide exposure compensation API.\n\nbug:2375993\n"
    },
    {
      "commit": "b93003649d0d58e6824b54d6e9e1386912c34448",
      "tree": "9a23e503e60dcfa756211dda05461c53109a2d40",
      "parents": [
        "a4b1fe6b2651ab8f77d5a3ce1a607945f6427b02",
        "9b433f0b654d32530b0b48a7a653216ae0bb94d8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 25 15:11:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 15:11:29 2010 -0800"
      },
      "message": "Merge \"Image encoding settings java API through xml configuration file\""
    },
    {
      "commit": "9b433f0b654d32530b0b48a7a653216ae0bb94d8",
      "tree": "164555367b9006e2212e0b63f608fc228b711417",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 23 17:21:44 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 24 18:10:12 2010 -0800"
      },
      "message": "Image encoding settings java API through xml configuration file\n\n- I decided to completely remove jpeg decoding related stuff from this change\n  I think that setting is better off if it is specified by the system properties.\n  We don\u0027t have to include MediaProfiles.h header in skia files\n"
    }
  ],
  "next": "9ff1f96fdf1c88c55c45e0876b10a3a9686dc28a"
}
