)]}'
{
  "log": [
    {
      "commit": "936a981ba15d528a023311aa32f46446813551d9",
      "tree": "324a081cdeffe2566802e2224dfa9b9798182c05",
      "parents": [
        "e1a8a719c7c62fdb337b71f68844ae20042c2b79",
        "3901e5d87573447db33fb9930871a1f5266a9b2c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 08 08:48:31 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 08:48:31 2011 -0800"
      },
      "message": "Merge \"Remove surface legacy APIs and code.\" into ics-mr1"
    },
    {
      "commit": "09ebde724b2cd224968d1fdba4f5afd81c998c6a",
      "tree": "ee8ffa76bc6c45e6468645ed65edc4e7565001ba",
      "parents": [
        "841fa37451fb74f3d5978a15aab606bbb67e8c39",
        "2cf981a8e3dcc815e422f21ae4f09e17934906e1"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Nov 01 04:05:45 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 01 04:05:45 2011 +0000"
      },
      "message": "am 4b6353ea: Merge \"Update camera continuous autofocus javadoc.\" into ics-mr0\n\n* commit \u00274b6353ea0265bfed52d0637abd1b17596ce25ff0\u0027:\n  Update camera continuous autofocus javadoc.\n"
    },
    {
      "commit": "2cf981a8e3dcc815e422f21ae4f09e17934906e1",
      "tree": "755ba59d0a2418ff3257fab9de6963dbd88bec46",
      "parents": [
        "7dae00baa6e8957be15523c46bb948bd1dde64c3",
        "597f405273ce21b7e67984084c428d84c3365bd9"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Oct 31 21:04:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 31 21:04:01 2011 -0700"
      },
      "message": "Merge \"Update camera continuous autofocus javadoc.\" into ics-mr0"
    },
    {
      "commit": "3901e5d87573447db33fb9930871a1f5266a9b2c",
      "tree": "2ed377c9705a41c95cbc6ea29d683cd646ff2dc8",
      "parents": [
        "841fa37451fb74f3d5978a15aab606bbb67e8c39"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 25 13:45:00 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 28 09:39:23 2011 -0700"
      },
      "message": "Remove surface legacy APIs and code.\n\nAll surfaces are now supported through surface textures.\n\nChange-Id: I95dd823e7099c0c32a48a1121624149dcc29d9c6\n"
    },
    {
      "commit": "262620399c228b3b201c2c4b39c87508d3047d74",
      "tree": "96e7fd612606424311873d34492def7da58bd6d8",
      "parents": [
        "be1480bade58688d201335860247734aec6b11cb",
        "7dae00baa6e8957be15523c46bb948bd1dde64c3"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Oct 28 02:14:01 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 28 02:14:01 2011 +0000"
      },
      "message": "am 08479cee: Merge \"Stagefright: ANW::connect in MediaPlayerService\" into ics-mr0\n\n* commit \u002708479ceeba56c460fb52f60a24df27776f1936c3\u0027:\n  Stagefright: ANW::connect in MediaPlayerService\n"
    },
    {
      "commit": "597f405273ce21b7e67984084c428d84c3365bd9",
      "tree": "69a0a2f098e37d684514980d686fb1ec28106828",
      "parents": [
        "55f4bc5c3d1acfaa735b8b19cf34b6b68f6cfcca"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Oct 27 18:07:01 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Oct 28 00:38:02 2011 +0800"
      },
      "message": "Update camera continuous autofocus javadoc.\n\nSuppose applications call autoFocus in CAF picture mode. If\nCAF is in the middle of scanning, the picture is very likely to\nbe blurry. Change focus callback to return when the scanning\nfinishes.\n\nbug:5514415\nChange-Id: Ibcb8f92a5263d7dbd7cce54df3617fb21c6255d4\n"
    },
    {
      "commit": "7dae00baa6e8957be15523c46bb948bd1dde64c3",
      "tree": "195997b2a0541d250d8ad61ae08232046bbd62bd",
      "parents": [
        "1765d6e0c962d2b89897c0278f969084f632d181"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 26 18:36:31 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 26 18:40:00 2011 -0700"
      },
      "message": "Stagefright: ANW::connect in MediaPlayerService\n\nThis change moves the ANativeWindow connect and disconnect logic from\nMediaPlayer to MediaPlayerService::Client.\n\nBug: 5502654\nChange-Id: Ifc43b98b01ad8f35d62d7ece43110724ec7fda3d\n"
    },
    {
      "commit": "71adab54edf9d0e2c89473d3be12edb6b9dc4549",
      "tree": "bb97c3a8e32c085d22043754457555d14dedbe27",
      "parents": [
        "1d2acaffde56ad79e6e96f228d7857863462397c",
        "1765d6e0c962d2b89897c0278f969084f632d181"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 26 20:34:38 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 26 20:34:38 2011 +0000"
      },
      "message": "am b7b4eaaa: Merge \"Stagefright: push blank buffers when tearing down\" into ics-mr0\n\n* commit \u0027b7b4eaaa05284634d50d581d924a250f1194f66d\u0027:\n  Stagefright: push blank buffers when tearing down\n"
    },
    {
      "commit": "1765d6e0c962d2b89897c0278f969084f632d181",
      "tree": "236c1712a02b293093d658a3248804ebaf4f3786",
      "parents": [
        "55f4bc5c3d1acfaa735b8b19cf34b6b68f6cfcca"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Oct 25 14:50:16 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Oct 25 18:35:02 2011 -0700"
      },
      "message": "Stagefright: push blank buffers when tearing down\n\nThis change makes OMXCodec push RGB 565 buffers filled with black to an\nANativeWindow when tearing down after decoding to protected gralloc\nbuffers.  This allows the OMX tear down to zero out any protected\nbuffers that were used without the possibility that the buffer is still\nbeing used by SurfaceFlinger or HWComposer.\n\nBug: 5483222\nChange-Id: I8acedd81a7bb67dfdc2fd15733e3375b6ce8d560\n"
    },
    {
      "commit": "1d2acaffde56ad79e6e96f228d7857863462397c",
      "tree": "e5e05f30fbca34668d58ff6e6b3199a4ab947e3b",
      "parents": [
        "e6a823c276302b0c499d7a39956c1b731f23dd4c",
        "55f4bc5c3d1acfaa735b8b19cf34b6b68f6cfcca"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Wed Oct 19 22:38:45 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 19 22:38:45 2011 -0700"
      },
      "message": "am 23d64420: Merge \"Stagefright: idle OMX after ANW errors\" into ics-mr0\n\n* commit \u002723d644202a44383bf008ff86f6faa3ea7e447290\u0027:\n  Stagefright: idle OMX after ANW errors\n"
    },
    {
      "commit": "b1d666f5cb555d135eb69e005e88a03330bbb54c",
      "tree": "573c9d484c210cfc7104d94f2f630cae0b70bb01",
      "parents": [
        "3c57859f03ce9257128e3b2cd29a906b8f9a6aa5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 19 21:14:13 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 19 21:22:19 2011 -0700"
      },
      "message": "Stagefright: idle OMX after ANW errors\n\nThis change fixes an issue in Stagefright where the state of an OMXCodec\nobject can get out of sync with the state of the OMX component.  In\nparticular, if one of the ANativeWindow functions failed and put the\nOMXCodec into the ERROR state, this would cause Stagefright to skip\ndoing the Executing -\u003e Idle transition.  Without this transition the\nfreeBuffersOnPort call would never be made, and the MediaBuffers would\nend up being leaked (which would also leak the Gralloc buffers they\nreference).\n\nBug: 5333695\nChange-Id: I85ea0cf92d18e7ef6d35c7d1e2a7b4e2c9745d34\n"
    },
    {
      "commit": "f337772630b0a1b48d7828647d1079ebdc22919d",
      "tree": "659620c47a7c8d137c304ef3d6e70553149db506",
      "parents": [
        "0cc79c66329b9ffa7d7bdfafa5d245a11fd3660d",
        "2944eca607304a095ea43ba2b8f0b9de61249f9f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Oct 13 10:03:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 13 10:03:26 2011 -0700"
      },
      "message": "Merge \"Support for an MPEG2 Program Stream extractor.\""
    },
    {
      "commit": "bbdb412041a1e593c95c29c84d5ddbb8906787e4",
      "tree": "d989aa9cca0f5224625f34b7b63938a4c6efb0e0",
      "parents": [
        "a808bcba75af9f3a6160c24fc9a8968bac2bbd7f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Oct 12 19:43:51 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Oct 13 12:04:05 2011 +0800"
      },
      "message": "Improve camera javadoc and fix some errors.\n\nbug:5169599\nChange-Id: Ic2205770753ff462135f884fee0a888ca8ec832d\n"
    },
    {
      "commit": "7019d2247e644470a0e8eb99b02b8b2d656fd9fb",
      "tree": "b84a2becf9f55cf194a111132e4733fed32d246c",
      "parents": [
        "49c59815369616b0fd5451ccabd377e8fe1dc3fa"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Oct 11 12:41:58 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Oct 12 10:34:10 2011 -0700"
      },
      "message": "Add video stabilization control to Camera parameters.\n\nHardware video stabilization reduces camera shake in preview\nand in recorded videos. It has no effect on still image capture.\n\nConvenience accessor methods hidden for now.\n\nChange-Id: Ie18450bff662b2ef98b85d19719beefc180975fc\n"
    },
    {
      "commit": "d20bf0676d6db8f12edcd2307f82409c076c7015",
      "tree": "f8d91ec301e522a273fae3bf85cf8e6483cb66ed",
      "parents": [
        "d3523f89a867afa111bb332887bf006ec3ae93e6"
      ],
      "author": {
        "name": "Lakshman Gowda",
        "email": "lakshman79@ti.com",
        "time": "Thu Sep 29 17:47:35 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Oct 05 10:29:27 2011 -0700"
      },
      "message": "Set crop params to ANative Window during Initialization.\n\nThe native_window_set_crop() is called when port reconfig event callback comes from decoder\u0027s and\ncrop parameters are changed from default getconfig() OMX_IndexConfigCommonOutputCrop values.\nSince the default crop params are same as port reconfig crop params, the native_window_set_crop()\nis not called, hence resulting in displaying the whole frame(paddedWidth x paddedHeight).\nBy calling native_window_set_crop() during initilaization of output port of decoder ensures\nin setting up ANative window to crop region.\n\nChange-Id: I68926464a1f5c7e6053804615c8b9bd32ea85688\nSigned-off-by: Lakshman Gowda \u003clakshman79@ti.com\u003e\n"
    },
    {
      "commit": "2944eca607304a095ea43ba2b8f0b9de61249f9f",
      "tree": "f3dbe4e61cc94ec086b098c7387034f226a2ac14",
      "parents": [
        "d3523f89a867afa111bb332887bf006ec3ae93e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Sep 08 14:12:44 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 30 15:26:31 2011 -0700"
      },
      "message": "Support for an MPEG2 Program Stream extractor.\n\nChange-Id: I606d87c278f72b22a5b6d7ee57bce6b02e280d41\n"
    },
    {
      "commit": "d3523f89a867afa111bb332887bf006ec3ae93e6",
      "tree": "569a59483ca970991541c7508172df425b6396e0",
      "parents": [
        "fea8f6217455d8cfc957e5b30f4eb2349859518f"
      ],
      "author": {
        "name": "Gilles-Arnaud Bleu-Laine",
        "email": "gilles@ti.com",
        "time": "Thu Sep 15 21:30:13 2011 -0500"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Sep 30 10:46:12 2011 -0700"
      },
      "message": "Gracefuly return on detecting wrong AAC format from corrupted files\n\nReturn BAD_VALUE error upon detection of wrongly formatted files.\nThe client should abort the initialization upon error detection.\n\nThe current CHECK() interrupts the configurecodec() preventing a graceful\nexit.\n\nChange-Id: Ic79313fa76a63284897df5d91635de87d06f3100\nSigned-off-by: Gilles-Arnaud Bleu-Laine \u003cgilles@ti.com\u003e\n"
    },
    {
      "commit": "729de186450f78c099637e1fce743fe531862c52",
      "tree": "bf05611a1943104189abce2f9b09514f2ec2adeb",
      "parents": [
        "ac4d4d3698e920b9f5c648a781df5b6af8bcfdf0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 28 12:37:36 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Sep 28 12:37:36 2011 -0700"
      },
      "message": "Support AMR, G.711 and vorbis audio in ACodec and friends.\n\nChange-Id: I08c03219bf2d60fc5c6e89957bd4b4c615570983\n"
    },
    {
      "commit": "dc9bacd838442a524585887e6ea6696836be2eda",
      "tree": "230135b6bc20bff2be5a8292e91c0fac86201039",
      "parents": [
        "ece731de0c0af30917316d55313f25c56f91960d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 10:53:29 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 26 10:53:29 2011 -0700"
      },
      "message": "Propagate error signalled by the source all the way to the output EOS notification.\n\nChange-Id: I30e959a6d669f09745c59fbdebee08f869511cf7\nrelated-to-bug: 5372901\n"
    },
    {
      "commit": "ca1d5399c5d6d23d16554be7c702fdf5232e55bd",
      "tree": "265d58933143412e49c38966e5c9b06ba009c359",
      "parents": [
        "669012d77b00a2aacb6fd12837f2870f9ec17865"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 22 11:43:28 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 22 18:19:02 2011 +0800"
      },
      "message": "Update camera javadoc about AE and AWB lock.\n\n- Autofocus does not lock AE and AWB.\n- stopPreview and takePicture do not clear AE and AWB locks.\n\nbug:5356404\n\nChange-Id: I55d9b35f4ff746ecd2bff112c2674f1aa2543aca\n"
    },
    {
      "commit": "669012d77b00a2aacb6fd12837f2870f9ec17865",
      "tree": "97a5d285ac5092a13ea54a818de5242798b5f96b",
      "parents": [
        "5dc2812abddde309234edc786a541d251c4f820a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 19 16:27:31 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 19 19:32:26 2011 -0700"
      },
      "message": "Add QVGA resolution to CamcorderProfile\n\nChange-Id: Icebbafb68d8164370f98a2c36699845d10ef081b\nrelated-to-bug: 5145483\n"
    },
    {
      "commit": "5dc2812abddde309234edc786a541d251c4f820a",
      "tree": "f4c077a42c5577d4fc9b098583a021f67382ba3e",
      "parents": [
        "6de6b48237423a65ec041288c90e3f78fd3fce48",
        "9a5e04438df742c297c5dbcdb60e6fd4d8f8321d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Sep 14 17:42:22 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 14 17:42:22 2011 -0700"
      },
      "message": "Merge \"Change an assert failure due to unsupported level by HW AVC decoder and report the error to applications\""
    },
    {
      "commit": "6de6b48237423a65ec041288c90e3f78fd3fce48",
      "tree": "0a0b9ca39948d670140233001a2b3bb7d0e6e8ac",
      "parents": [
        "3a1dccab5f3be394572445f418a2f17f005db25e",
        "cfe2ba6b01a258e39f9c215ffc7b750e0b68f708"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 17:50:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Sep 13 17:50:31 2011 -0700"
      },
      "message": "Merge \"Issue 5298399: Lost speech after a crash in gTalk.\""
    },
    {
      "commit": "cfe2ba6b01a258e39f9c215ffc7b750e0b68f708",
      "tree": "c4a213cfc30955cc61a8c9673e032caff41a0947",
      "parents": [
        "98afd841e8f0803a00d1970e4a28ea8999e9c498"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 15:04:17 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 13 17:33:29 2011 -0700"
      },
      "message": "Issue 5298399: Lost speech after a crash in gTalk.\n\nFixed problem in AudioTrack::restoreTrack_l() causing a permanent\nfailure if the IAudioTrack interface to AudioFlinger could not be\nrestored at the first attempt.\n\nChange-Id: I039d4fe2dca8d3baf71f1a6c51119f27a67b6611\n"
    },
    {
      "commit": "9a5e04438df742c297c5dbcdb60e6fd4d8f8321d",
      "tree": "8c9ae8e852283e296194f4b06f3a2ca41d046113",
      "parents": [
        "9215ea4cd8bc5f9c9770c5c34a009dc7c6068f86"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Sep 12 19:56:23 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Sep 13 11:00:17 2011 -0700"
      },
      "message": "Change an assert failure due to unsupported level by HW AVC decoder and report the error to applications\n\nChange-Id: I522a994981d86329ccc86c3b536b561dc6e40eeb\nrelated-to-bug: 5300618\n"
    },
    {
      "commit": "cc54fbaa69c0b69929467449d2c19192f15b5039",
      "tree": "d0f0aaade0935a827e7dca1ba5659afd64c68417",
      "parents": [
        "fb6f03425a791dcc4188462c860becf6ca6be4ea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 14:14:08 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Sep 12 14:14:08 2011 -0700"
      },
      "message": "Turn an another assertion into a runtime error in ACodec\u0027s implementation\n\nChange-Id: I6779b29f200b90d088273ab3204724ef3d8d59bd\nrelated-to-bug: 5284760\n"
    },
    {
      "commit": "fb6f03425a791dcc4188462c860becf6ca6be4ea",
      "tree": "e21afb360622f19748a874f609d8c09a3804d809",
      "parents": [
        "618b58c4237359328b06371d9d6e855d2e6ac42c"
      ],
      "author": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Wed Sep 07 23:55:27 2011 -0700"
      },
      "committer": {
        "name": "Guang Zhu",
        "email": "guangzhu@google.com",
        "time": "Fri Sep 09 15:36:42 2011 -0700"
      },
      "message": "Make MediaScanner skip certain directories\n\nThe list of directories to skip are configurable via setprop.\nThe main motivation is that some test data folder takes long time\nto scan, and media scanner may compete for CPU time against perf\ntests therefore skewing the results.\n\nBug: 5263115\nChange-Id: I568213e2a4babf6033021c1d336ef0347c0e3315\n"
    },
    {
      "commit": "d681bbb1767bed09415e050ba78975df214bcd68",
      "tree": "2030c617c61bbf7b6cd8c6bafab601a99b1ac83d",
      "parents": [
        "d942202ee0c92608c648735c3ad0f1bab4312420"
      ],
      "author": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Tue Aug 30 14:39:17 2011 +0100"
      },
      "committer": {
        "name": "Dave Burke",
        "email": "daveburke@google.com",
        "time": "Fri Sep 02 11:26:59 2011 +0100"
      },
      "message": "Require INTERNET permission for network-based content.\nBug #1870981\n\nChange-Id: Ia3ad166390c4d60cea19c3783895b078a2c4c15f\n"
    },
    {
      "commit": "a8e409f8f9b40737d0b03355894b5e141d0aff6b",
      "tree": "8799a5eecc61038ccf054d905ca3f4492ae18f30",
      "parents": [
        "77d2e08add3ba24fdc527809408028efe3e06b6b"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 30 21:33:10 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Sep 01 13:37:14 2011 +0800"
      },
      "message": "Add video snapshot camera parameter.\n\nThe API is still hidden.\n\nbug:5187868\n\nChange-Id: I59e1b5774ca32be049723d1a0887faa90d8884bb\n"
    },
    {
      "commit": "77d2e08add3ba24fdc527809408028efe3e06b6b",
      "tree": "2d6f5f9ee01d04bce87cea84bf83e22da9d2c759",
      "parents": [
        "aec548b979f3d64712e8aa84cffdc4b7f094a798",
        "ed362eccc7eabc669f9f39169e26662a7215d198"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 22:00:35 2011 -0700"
      },
      "message": "Merge \"Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\""
    },
    {
      "commit": "ed362eccc7eabc669f9f39169e26662a7215d198",
      "tree": "c62947ab463db709bd3dde9c1fd3eb2f42cc13a1",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Mon Aug 29 19:53:51 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 31 17:43:24 2011 -0700"
      },
      "message": "Incr. MIN_UNDEQUEUED_BUFFERS in SurfaceMediaSource\n\nThe buffers in SurfaceMediaSource were 4 earlier, whereas\nwe need 5 for one of the devices.\n\nChange-Id: I87bf5e28bbb0f7c9661dc01b040baa903d95d2c2\n"
    },
    {
      "commit": "af6764da53c022768290e735bbcc3088bec333d8",
      "tree": "9b98de8360b386d35e90f14fb256875aac963361",
      "parents": [
        "e31f4f78729f66b3a90f51671ad557b551ed0bea",
        "df4a59c61103e7e0e9332e167a0be67da5d82ff3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 31 13:41:06 2011 -0700"
      },
      "message": "Merge \"Fix SurfaceMediaSource timestamp handling.\""
    },
    {
      "commit": "c3d8f74cda26197ec9066374fe31abe9ee77c1b1",
      "tree": "3ae10f50402ac74a72001880131a7a0e40b66905",
      "parents": [
        "b76e90de3c64626fe07a68469d0a59a31c8efb6b",
        "8343f2c317b48f9b9827781b16a5c9fd31743826"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 19:24:04 2011 -0700"
      },
      "message": "Merge \"fix Surface positions are not floats\""
    },
    {
      "commit": "8343f2c317b48f9b9827781b16a5c9fd31743826",
      "tree": "dcc878af2cf5c119c029b6f51b6c68fa431e3b85",
      "parents": [
        "63970b42f101c87db7cfd26d43b0d300260b1582"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 30 18:51:54 2011 -0700"
      },
      "message": "fix Surface positions are not floats\n\nAdded Surface.setPosition(float, float) which allows to set a surface\u0027s\nposition in float.\n\nBug: 5239859\nChange-Id: I903aef4ad5b5999142202fb8ea30fe216d805711\n"
    },
    {
      "commit": "b76e90de3c64626fe07a68469d0a59a31c8efb6b",
      "tree": "b8ced112fa7e83a34898679552a26744610ce0e1",
      "parents": [
        "1619f3d3428e9d502dc477d31e0681fe1cd12b89",
        "9f6530f53ae9eda43f4e7c1cb30d2379db00aa00"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 30 10:51:54 2011 -0700"
      },
      "message": "Merge \"226483: A2DP connected, but music out to speaker\""
    },
    {
      "commit": "df4a59c61103e7e0e9332e167a0be67da5d82ff3",
      "tree": "2f87a701a3c76fc553c4383d1c913ba867d0bcfa",
      "parents": [
        "1b5a697dc5435c76447eb5a2de373f5acdda119e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Aug 29 18:16:03 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Aug 30 10:49:15 2011 -0700"
      },
      "message": "Fix SurfaceMediaSource timestamp handling.\n\nWas not basing timestamps on startTimeUs.\nNow synchronizes properly with audio.\n\nBug: 4510826\nChange-Id: I613db0aa91e51fc75d120e65540e742d8ab2ae43\n"
    },
    {
      "commit": "9f6530f53ae9eda43f4e7c1cb30d2379db00aa00",
      "tree": "663430f29fec8c038ad2770e2640c9480c0e2251",
      "parents": [
        "d2824a9a392e02a09929a34f0a3dad41ac1faacf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:18:54 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 30 10:19:38 2011 -0700"
      },
      "message": "226483: A2DP connected, but music out to speaker\n\nWhen the A2DP headset is connected, there is a possible\nrace condition when the audio tracks are moved from\nthe mixer thread attached to the speaker output to the thread\nattached to A2DP output.\nAs the request to clear the stream type to output mapping cache in\nthe client process is asynchronous, it is possible that the flag\nindicating to the client audio track to re-create the IAudioTrack\non the new thread is processed before the cache is invalidated.\nIn this case, the track will be attached to the old thread and\nmusic will continue playing over the device speaker instead of being\nredirected to A2DP headset.\n\nChange-Id: Ib2ce1eb5320eaff83287b93779061bf4e7a330df\n"
    },
    {
      "commit": "6004f2dc9af4088e34cc72b1ac3c4a3c5cd4ae14",
      "tree": "a46bbb26c3283307ff30d7715b21b2d22e758693",
      "parents": [
        "f4b25b1dca4f1798c6f3f989be0738258d6504de",
        "790332a3170f967d58cee5d89cc92be8205d9aa3"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 20:05:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 20:05:58 2011 -0700"
      },
      "message": "Merge \"Modify enum value of OMX_COLOR_FormatAndroidOpaque\""
    },
    {
      "commit": "790332a3170f967d58cee5d89cc92be8205d9aa3",
      "tree": "738c602c4d2bb7f3576bd113d6c22913196cfc26",
      "parents": [
        "0b293e76c8fe4e973ccd8a872bc5320ba28d49cc"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:34:49 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Aug 26 19:38:13 2011 -0700"
      },
      "message": "Modify enum value of OMX_COLOR_FormatAndroidOpaque\n\nThe enum value chosen earlier had a conflict with one of the vendors.\n\nChange-Id: I47832dd1157447f89324d56e8ab146260cd7927c\n"
    },
    {
      "commit": "d2824a9a392e02a09929a34f0a3dad41ac1faacf",
      "tree": "ded4154b1d5b77344a9be3ed6b31433f12d71b06",
      "parents": [
        "0b293e76c8fe4e973ccd8a872bc5320ba28d49cc",
        "5df775d2f509c76e76a46615fca83dba95299f6e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Aug 26 13:47:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 26 13:47:26 2011 -0700"
      },
      "message": "Merge \"Support for posting messages and synchronously waiting for a response.\""
    },
    {
      "commit": "cd07594333cbe8b2c86c6609cce01a74d6cc33f8",
      "tree": "70b1b94cb811f564e8fe0c6ec348469adaae5f3c",
      "parents": [
        "539a735a82fefb1944aa6135df73dfe9f541566c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 25 16:47:23 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Aug 25 17:33:49 2011 -0700"
      },
      "message": "Bug 4364249 Play position is 0 after flushing AudioTrack\n\nAudioTrack::stop() is not synchronous, so a stop() followed\n by flush(), which is synchronous, will not always report\n a playhead position of 0 after being called.\nThis CL adds a flag to mark a track as flushed, and report the\n correct playhead position in this state.\nBug 5217011 has been created to address the real issue in the\n future, where flush could be made synchronous, to properly\n address bug 4364249.\n\nChange-Id: Icf989d41a6bcd5985bb87764c287f3edb7e26d12\n"
    },
    {
      "commit": "5df775d2f509c76e76a46615fca83dba95299f6e",
      "tree": "1062b747ad85433dec6dca2093fafb8d2a6d89a7",
      "parents": [
        "24245683b9285b0b53c8900f088cf146000501c4"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 16:09:06 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 25 16:28:18 2011 -0700"
      },
      "message": "Support for posting messages and synchronously waiting for a response.\n\nChange-Id: Id6c7a08c34fd5cb6c4632f78ece9e7898b29e52c\n"
    },
    {
      "commit": "0c5c7d2b119d2350c186ae9902919bcf28c3e277",
      "tree": "c9d61e6ca1f259cb873289ed92d838b9d335d6b5",
      "parents": [
        "ed422aa0dfab77312d25d52e7f204744ba16dc27"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Aug 18 21:53:02 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Wed Aug 24 13:57:46 2011 -0700"
      },
      "message": "Testing the GL/ CPU encoding w/ Gralloc buffers\n\nThis is the test for Gralloc buffers based encoding.\ncontains a combination of two main changes:\n\n1. GL based encoding tests added to SurfaceMediaSource_test\n\n2. SurfaceMediaSource ::read() colorformat\n\nThe SurfaceMediaSource::getformat() sets it to OMX_COLOR_FormatAndroidOpaque.\nThe omx encoder needs to interpret that colorformat and reads the format\nfrom the Gralloc buffers directly\n\nChange-Id: Iee2fe8901384109a4952e1d6c528c59eb01eb5b1\n"
    },
    {
      "commit": "8f74b712fbf5c24de8bc799b7129dc802747a6f4",
      "tree": "2f668bac8f044d68362ab040a099407b12cb2f73",
      "parents": [
        "67f43688334bcd72ae7c3b5b386c1b6a34711f4f"
      ],
      "author": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Fri Aug 12 16:43:37 2011 -0700"
      },
      "committer": {
        "name": "Rajneesh Chowdury",
        "email": "rajneeshc@google.com",
        "time": "Fri Aug 19 14:34:47 2011 -0700"
      },
      "message": "Fix for 4142219 Don\u0027t hard code platform-specific limitations (Jni/ Java)\n\nAlso fixes 5118207 add other video codec support for video editor export.\n\nChange-Id: If72427173bd8ff684af07ba00f4425c1deef29c6\n"
    },
    {
      "commit": "a17b835f5b0bf42f4855fe57aef42799f28f3915",
      "tree": "2a0e275756f173efb4a790d4bfe666d06a6a3569",
      "parents": [
        "ee0846f97cf07f5f18d19161526743330aabb44e",
        "ab3f1388c71aed957f94ddab976faa77ab77e67f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Aug 17 22:24:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 17 22:24:53 2011 -0700"
      },
      "message": "Merge \"Add new camera focus mode FOCUS_MODE_CONTINUOUS_PICTURE.\""
    },
    {
      "commit": "ab3f1388c71aed957f94ddab976faa77ab77e67f",
      "tree": "8187b7aa433b95bfbc53f3d9e209839662bf4889",
      "parents": [
        "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 16 21:14:16 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 18 00:15:40 2011 +0800"
      },
      "message": "Add new camera focus mode FOCUS_MODE_CONTINUOUS_PICTURE.\n\nThe API is still hidden.\n\nbug:5086125\nChange-Id: I69268a95ad6aae249771d3a8dfb423ffe2d87081\n"
    },
    {
      "commit": "c92fd24c10a6bf80b346d7e261325434d9c6964b",
      "tree": "073315512c82b4a50de81e1fdfcb5b35db0ad1a1",
      "parents": [
        "a5cc7cce9b8aee73b08f6532710e186c02fdd1c0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 13:48:44 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Aug 16 13:48:44 2011 -0700"
      },
      "message": "Error handling in ACodec and Nuplayer.\n\nCodec errors (and codec not found errors) now trigger a controlled shutdown\nof playback and signal errors to the MediaPlayer client.\n\nChange-Id: I2ee23ff2a1422d05a1a21e50ecb87d7c7ab958cc\n"
    },
    {
      "commit": "db7c079f284f6e91266f6653ae0ec198b1c5006e",
      "tree": "08c3569af421bc760cb7b81f611ee0959c4b7b9d",
      "parents": [
        "8adb83ba4837b3c9de1a4221a5ca4c371a62e38c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 10 10:37:50 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 11 14:33:45 2011 -0700"
      },
      "message": "Audio effects: track CPU and memory use separately\n\nBefore this change, CPU and memory usage for an audio effect were\nregistered and checked against the limit by audio policy manager\nupon effect instantiation. Even if an effect was not enabled\nit would prevent another effect to be created if the CPU load budget\nwas exceeded, which was too restrictive.\n\nThis change adds a method to register/unregister CPU load only when\nan effect is enabled or disabled.\nIt also adds a mechanism to place all effects on the global output mix\nin suspend state (disabled) when an effect is enabled on a specific session.\nThis will allow applications using session effects to have the priority\nover others using global effects.\n\nAlso fixes some issues with suspend/restore mechanism:\n- avoid taking actions when an effect is disconnected and was not enabled.\n- do not remove a session from the suspended sessions list when corresponding\neffect chain is destroyed.\n\nChange-Id: I5225278aba1ae13d0d0997bfe26a0c9fb46b17d3\n"
    },
    {
      "commit": "17741baf43818ca66c2a88db6b6e252d7abfff49",
      "tree": "e169f4f0e98a1bd9056b9e20d1793e90fa76474d",
      "parents": [
        "f12d5faa1986384f2c899b50057142a6a2e40eec"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 10 12:45:24 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Aug 10 12:45:24 2011 -0700"
      },
      "message": "Revert \"Notify the OMX component that it\u0027s going to be used in \"secure\" mode.\"\n\nThis reverts commit 7616178271e95f009452a21ea45e7225997dc27a.\n"
    },
    {
      "commit": "129a94a569c927d4c8906a12f3de74ca0585d3f2",
      "tree": "7fecf03d81e157e82d0d6c0a633df92caeff9d91",
      "parents": [
        "beccb75d0c511950fb59500b05a591942d5c4751",
        "820a509687599edb8ff1a7577de8b9295f416263"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 09 15:23:19 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 09 15:23:19 2011 -0700"
      },
      "message": "Merge changes Ie06e73e5,I7ac6b5b0\n\n* changes:\n  free all buffers when ANativeWindow::disconnect is called\n  return correct value from query after connecting a surface\n"
    },
    {
      "commit": "3a34befc6fb04a4945a849e8bda8b84e4bf973fe",
      "tree": "80dee67385fb78763b2c25f6dce9ed122bfd9aee",
      "parents": [
        "a1f10e8959cd4656aedb2613e855342102e59555"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 02 13:33:41 2011 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 09 10:21:10 2011 -0700"
      },
      "message": "Keep effects sessions active when the caller dies.\n\nDon\u0027t remove effects until the session they are in goes away or all\nAudioEffects have been explicitly released. This allows the control\npanel process to die without stopping the effects.\n\nChange-Id: I4496e5df080230ca1af149dec95c1309ab8ea888\n"
    },
    {
      "commit": "820a509687599edb8ff1a7577de8b9295f416263",
      "tree": "046e39ca32a267f7c958327058db4b3f4308ca16",
      "parents": [
        "a1f10e8959cd4656aedb2613e855342102e59555"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 08 19:14:03 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Aug 08 20:25:44 2011 -0700"
      },
      "message": "return correct value from query after connecting a surface\n\nthe first time a surface was connected, the values returned\nby query NATIVE_WINDOW_DEFAULT_{WIDTH|HEIGHT} and\nNATIVE_WINDOW_TRANSFORM_HINT were wrong until a call\nto queueBuffer was performed.\n\nBug: 5137366, 5121607\nChange-Id: I7ac6b5b0daa876638f6bed7c20f286a6e6d984f6\n"
    },
    {
      "commit": "a1f10e8959cd4656aedb2613e855342102e59555",
      "tree": "287ad01c9d73119bcb5368c3341741384d2a00a9",
      "parents": [
        "c3e6572e0ff535932b1f6ffb7bcf5acd891675fb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 08 15:28:21 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Aug 08 15:28:21 2011 -0700"
      },
      "message": "Notify the OMX component that it\u0027s going to be used in \"secure\" mode.\n\nChange-Id: Id87c4b295eb38f7d24045918e73df298d7b842f9\nrelated-to-bug: 5137212\n"
    },
    {
      "commit": "f89d780df70b7fbb8465bce4913c46cca019721f",
      "tree": "56d00af18e567c8df2ecb9f41d596ad0d80cdf2d",
      "parents": [
        "6801b4dbd00b485ecdcd31b517ed885a8fa21c63"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 04 15:05:17 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Aug 04 15:05:17 2011 -0700"
      },
      "message": "Eliminate superfluous memcpys by wrapping an ABuffer in a MediaBuffer\n\nChange-Id: I1313f117cd7cdfaf7d6ec25413a0b4b8ea495037\nrelated-to-bug: 5122973\n"
    },
    {
      "commit": "79e2ab42c38d1099bcd7c8840caa5a85c9fcb104",
      "tree": "09d1f199f95d265b1536de3b5416b481644b6f03",
      "parents": [
        "57c86189bc07d9ccb0fd044e66df736d0bf19639"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 17:49:50 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Aug 04 16:40:28 2011 +0800"
      },
      "message": "Add camera bayer image format.\n\nThe API are hidden.\n\nbug:5086073\n\nChange-Id: Ic9a53e5d5007ad3f12a28406ee25098227f14cbc\n"
    },
    {
      "commit": "57c86189bc07d9ccb0fd044e66df736d0bf19639",
      "tree": "850a15dd5d48eb35aa993ceb27f3551a25622803",
      "parents": [
        "40cdc56efa47580d89a93750cefecb8ccbaf9a72"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Jul 30 05:00:37 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 15:48:41 2011 +0800"
      },
      "message": "Pass camera frame metadata from camera service to Java.\n\nbug:4460717\nChange-Id: I2fae6e1dfca6b8f3a5ee5716fc7817f5417bf657\n"
    },
    {
      "commit": "40cdc56efa47580d89a93750cefecb8ccbaf9a72",
      "tree": "ffa29768c5a9207340027ca44cbacdc3e3b40750",
      "parents": [
        "2f53a63142801e174e6ebf79cfbcd9055d8c538b"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 13:20:36 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Aug 02 14:27:58 2011 +0800"
      },
      "message": "Add camera recording hint parameter.\n\nThe API is still hidden.\n\nbug:4266229\nChange-Id: I5e4c24e9e2808582aecb55ac4f1d5be3ed7e36a2\n"
    },
    {
      "commit": "cd25fed09742235fac10953b9d4b77268c695063",
      "tree": "4495bebf5ca8342877e52b5b7db78a24e47db78e",
      "parents": [
        "7fc25dd82dec8474139315b8e905f103c13406f5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 25 09:26:22 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 27 10:21:09 2011 -0700"
      },
      "message": "Bug 4599730 Get audio channel count on MediaPlayer\n\nRelated changes:\n - Fix bug in get/setParameter* to recycle Parcels when done with them.\n\nChange-Id: Iaff05e91bbd99a14fccb79d816dd873359b6ae65\n"
    },
    {
      "commit": "7fc25dd82dec8474139315b8e905f103c13406f5",
      "tree": "9c03327dbcab2d396e481deca4098924571c6f4c",
      "parents": [
        "288b66b60c9b3af3d84408885d0a4030c45eea9a"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Jul 22 02:37:11 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Jul 27 05:25:35 2011 +0800"
      },
      "message": "Add camera face detection API.\n\nAPI are still hidden.\n\nbug:4460717\nChange-Id: I1a515061f141a89bd61c875257712789fb15d2d4\n"
    },
    {
      "commit": "b283ac1ac6758aba907bfe56713d279e8aafd38b",
      "tree": "457d913edc5336c480f46f7484c24536e5a9af4f",
      "parents": [
        "6e6e8a6cc9ab99ab299929fa0246e6ced64f8ce3",
        "a361483bb5dbd3bbf132c5b99b2df7d197c3fc50"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Mon Jul 25 15:00:16 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 15:00:16 2011 -0700"
      },
      "message": "Merge \"Adding Metadata mode to SurfaceMediaSource\""
    },
    {
      "commit": "6e6e8a6cc9ab99ab299929fa0246e6ced64f8ce3",
      "tree": "86c78dd408d72d6debb226c614b320ff0a65bf05",
      "parents": [
        "a4635b0cde4a4b7bf0f9aed6aaade60d88eb2fe6",
        "57dae99c9fcd6becd2b5ed0c53f277ba4d7dbcfc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 14:43:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 14:43:05 2011 -0700"
      },
      "message": "Merge \"Added APIs for audio preprocessing\""
    },
    {
      "commit": "57dae99c9fcd6becd2b5ed0c53f277ba4d7dbcfc",
      "tree": "be3ce6819f6a374f914e2c0ec5a837abfe54da5f",
      "parents": [
        "6d240dc8c5e0bc1ba43a2f5e2f4fc3b5f4ae88db"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 24 13:36:09 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 14:39:00 2011 -0700"
      },
      "message": "Added APIs for audio preprocessing\n\nAdded APIs to control pre processes applied on captured audio.\nThose APIs are still hidden until reviewed by API council.\n\nThree types of standard pre processes are supported:\n- Automatic Gain Control (AGC) by AutomaticGainControl class\n- Acoustic Echo Cancellation (AEC) by AcousticEchoCanceler class\n- Noise Suppression (NS) by NoiseSuppressor class\n\nA method is added to AudioEffect class to query audio pre processings\napplied by default by the platform on a given AudioRecord session ID.\n\nChange-Id: I0b9fceeb8c704dd06319c3b52b85c96fe871d51d\n"
    },
    {
      "commit": "a4635b0cde4a4b7bf0f9aed6aaade60d88eb2fe6",
      "tree": "582ec67587782f7f996bb9e874bf46e57469ac6b",
      "parents": [
        "6d240dc8c5e0bc1ba43a2f5e2f4fc3b5f4ae88db",
        "3cecf640c4daf2df616b278bd9986018c8182908"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 25 14:21:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 14:21:14 2011 -0700"
      },
      "message": "Merge \"Do not support still image capture mode for timelapse video recording\""
    },
    {
      "commit": "be1cc822304d3a29c106ad5b6f330aed3e8c5658",
      "tree": "cca08baf5327fd30c0f257738d2871484fa39f87",
      "parents": [
        "726e4527b7a750e688fec4c1e7c5f7b9a33d1623",
        "a57a9a491272aa884494b2ec7854960827a73742"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Jul 24 14:40:08 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 24 14:40:08 2011 -0700"
      },
      "message": "Merge \"Do not wait forever for output buffers in OMXCodec.cpp and error out in case time out happens\""
    },
    {
      "commit": "726e4527b7a750e688fec4c1e7c5f7b9a33d1623",
      "tree": "06c12073a7c0919361b092d1f9a5537982077d4c",
      "parents": [
        "348a3aca420da133b2283ee12216e8e0f939e88d",
        "d35924d9928f29dcee6f5666b5bbd084640c7b34"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 24 12:59:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Jul 24 12:59:35 2011 -0700"
      },
      "message": "Merge \"QueryCodecs() signature change\""
    },
    {
      "commit": "3cecf640c4daf2df616b278bd9986018c8182908",
      "tree": "0a9a7306e8a13af5a7149471569ca73827449aee",
      "parents": [
        "77882a8deb5167235ae591e49c9dcff9abb373c1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 29 16:56:52 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Jul 24 10:33:54 2011 -0700"
      },
      "message": "Do not support still image capture mode for timelapse video recording\n\nrelated-to-bug: 4973779\n\nChange-Id: Ica665217ab10247b2242acc4e93d4fe9f83e3f45\n"
    },
    {
      "commit": "a361483bb5dbd3bbf132c5b99b2df7d197c3fc50",
      "tree": "412284fb2abbc8afd9255cd01d218cb63fe60e4c",
      "parents": [
        "b33f3407bab0970a7f9241680723a1140b177c50"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Jul 14 14:37:47 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jul 22 19:33:55 2011 -0700"
      },
      "message": "Adding Metadata mode to SurfaceMediaSource\n\nSurfaceMediaSource operates in metadata mode only, i.e. just the\nmetadata is stored in videobuffers. SurfaceMediaSource passes the Gralloc\nbuffer handle along with a 4 byte \u0027type\u0027 (indicating that the metadata\nis of type GrallocSource) to the encoder as opposed to the\nGrallocBuffer itself.\n\nRelated to bug id: 4529323\n\nChange-Id: I83aebc0dd10f317658cdf70be5802dfc35a1e72d\n"
    },
    {
      "commit": "77882a8deb5167235ae591e49c9dcff9abb373c1",
      "tree": "92f1198bc7488f47b2160d10e772c3823ed7fb40",
      "parents": [
        "29a142c7237821b6dc7bd1e8b56bb1efdc56767b",
        "b33f3407bab0970a7f9241680723a1140b177c50"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jul 22 16:42:41 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 22 16:42:41 2011 -0700"
      },
      "message": "Merge \"Connect MediaRecorder Native to SurfaceMediaSource\""
    },
    {
      "commit": "d35924d9928f29dcee6f5666b5bbd084640c7b34",
      "tree": "a9aee28b7cb355ec52034e1212794e896a18767f",
      "parents": [
        "7dff060f29858d6db2464845bb9097ac5960bbe6"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jul 22 09:52:39 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jul 22 14:51:51 2011 -0700"
      },
      "message": "QueryCodecs() signature change\n\nRestore QueryCodecs() signature exactly as used by third-party libs.\nAdd an alternative function to select HW only codecs.\n\nChange-Id: Ibb2cb4dd36fc0c6599eb93aa5751c216397e3b6f\n"
    },
    {
      "commit": "29a142c7237821b6dc7bd1e8b56bb1efdc56767b",
      "tree": "93907731b48b396bbacad20b8be96aa67c0f83b8",
      "parents": [
        "85eafc680a0bf5e0253cf611ac525769fc9bef3e"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 19 12:08:33 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 22 14:20:41 2011 -0700"
      },
      "message": "SurfaceTexture: add the abandon method.\n\nThis change adds the \u0027abandon\u0027 method to the SurfaceTexture C++ class.\nThis method may be used to put the SurfaceTexture in an abandoned state,\ncausing all ISurfaceTexture methods to fail.\n\nChange-Id: Ibd261f7b73f44e2bec36a8508bf92113cfb7cf95\n"
    },
    {
      "commit": "b33f3407bab0970a7f9241680723a1140b177c50",
      "tree": "8c49b51867769176b088f5ee2dbecd69c188464f",
      "parents": [
        "fe388eedca9f46ed3fee9579258acecd93e88641"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jul 01 17:39:39 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jul 22 14:17:25 2011 -0700"
      },
      "message": "Connect MediaRecorder Native to SurfaceMediaSource\n\nMaking a connection from MediaRecorder Native layer to the\nSurfaceMediaSource for the purpose of encoding GL Frames. This will be\ncalled from the java side inside the Mobile Filter Framework.\n\nThe mediarecorder native layer (client), when set the videosource to\noption VIDEO_SOURCE_FRAMES, asks the StageFrightRecorder on the mediaserver\nside to create a SurfaceMediaSource object and pass it back as a\nsp\u003cISurfaceTexture\u003e object. Using that, the client side will dequeue and\nqueue buffers. Connecting the GL Frames to the obtained\nsp\u003cISurfaceTexture\u003e is not part of this CL.\n\nRelated to bug id: 4529323\n\nChange-Id: I651bec718dd5b935779e7d7a050b841c2d0b0fcd\n"
    },
    {
      "commit": "85eafc680a0bf5e0253cf611ac525769fc9bef3e",
      "tree": "c5e69ab10dd15be3b464db81b8f4e9382d8ea8e8",
      "parents": [
        "fe388eedca9f46ed3fee9579258acecd93e88641"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 22 14:00:37 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 22 14:02:09 2011 -0700"
      },
      "message": "SurfaceMediaSource: remove getAllocator method\n\nThis change removes the getAllocator method from SurfaceMediaSource\nbecause that method is no longer a part of the ISurfaceTexture\ninterface.\n\nChange-Id: I0e2f0bc3bc1c8cd3c1b4b14246f07b9b4e3066c3\n"
    },
    {
      "commit": "fe388eedca9f46ed3fee9579258acecd93e88641",
      "tree": "cf42a7744c9f75c78ab382a210a9217204e3d4d0",
      "parents": [
        "10b7197cf9016093bdff20b6f7768543fd1c5720",
        "1a2fafbaa36390a06cc9a066fcbe147c8c47ea77"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jul 22 11:49:36 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 22 11:49:36 2011 -0700"
      },
      "message": "Merge \"Renaming SurfaceEncoder to SurfaceMediaSource\""
    },
    {
      "commit": "10b7197cf9016093bdff20b6f7768543fd1c5720",
      "tree": "1e2a7d50f8b2dc8638ab5c5852e0c19d1e20b472",
      "parents": [
        "10681df94d517bb7186fff927f345fa2e01de8e1",
        "3399b7267185646c69b04352211fca4fad9d7547"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jul 22 11:49:21 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 22 11:49:21 2011 -0700"
      },
      "message": "Merge \"Adding SurfaceEncoder for encoding FilterFrames\""
    },
    {
      "commit": "0683eba6b35c396c21f10e926709f2f8fc05f090",
      "tree": "2cb1f37218e73941c6f7bb575bb972696e362ef4",
      "parents": [
        "59d49c0b3b56b24c5b6d98cdfdcd75c537322f2e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jul 18 13:47:55 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 22 08:17:41 2011 -0700"
      },
      "message": "Retry datasource fetches a few times before giving up (NuCachedSource2).\n\nChange-Id: I147fc18ef55bc89d2e2fee69b7869c45abbfdd6b\nrelated-to-bug: 3405354\n"
    },
    {
      "commit": "1a2fafbaa36390a06cc9a066fcbe147c8c47ea77",
      "tree": "abbaad7cc458df1a1adf0e63d47ce0e9b4de63fa",
      "parents": [
        "3399b7267185646c69b04352211fca4fad9d7547"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Jun 30 15:30:03 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Jul 21 17:12:50 2011 -0700"
      },
      "message": "Renaming SurfaceEncoder to SurfaceMediaSource\n\nRelated to bug id: 4529323\n\nChange-Id: Id820d45a536bd2c65e0a59def564eb5b3ea4a71c\n"
    },
    {
      "commit": "3399b7267185646c69b04352211fca4fad9d7547",
      "tree": "eb0509a8f964517d9d75b6c534bdf84955a61393",
      "parents": [
        "59d49c0b3b56b24c5b6d98cdfdcd75c537322f2e"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jun 10 18:30:30 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Jul 21 17:12:50 2011 -0700"
      },
      "message": "Adding SurfaceEncoder for encoding FilterFrames\n\nAdding SurfaceEncoder which can be used to encode\ncustom frame data. In a sense, it is reverse\nof what SurfaceTexture does.\n\nSurfaceEncoder takes in frames from a native window and\npasses them to an encoder, thus acting like a MediaSource.\nIt uses GRAlloc buffers underneath for passing data.\nThe client side sets the geometry, format in the beginning,\nwhich cannot be changed while the recording is going on.\n\nCurrently, there is no common pixel format that both\nGRAlloc and HAL understand.\nAlso, the encoder cannot encode using the data from the GRAlloc\nbuffers.\n\nThe SurfaceEncoder_test examines mainly the buffer passage\nsince true encoding cannot be done at this point.\nSimpleDummyRecorder \u0027reads\u0027 the frames in the same thread\nas the start(), whereas DummyRecorder \u0027reads\u0027 in a separate\nthread much like the MPEG4Writer. The test with DummyRecorder\nis much closer to the real encoding implementation.\n\nRelated to bug id: 4529323\n\nChange-Id: I58ec19a150f8fe4d6195196dc44f55002b46c7c8\n"
    },
    {
      "commit": "59d49c0b3b56b24c5b6d98cdfdcd75c537322f2e",
      "tree": "db0e1d5a346345060677f1cb3cf659ed1ae3011a",
      "parents": [
        "a1d92359056176b6f6646efc918e0587e3de2b6f"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Tue Jul 19 17:14:53 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Jul 21 17:12:49 2011 -0700"
      },
      "message": "Adding AndoirdOpaque Colorformat to OMX\n\nAdding an enum to indicate an android opaque OMX\ncolorformat. This will inform the encoder that\nthe actual colorformat will be relayed by the\nFrames read from the GRAlloc Buffers\n\nRelated to bug id: 4529323\n\nChange-Id: Iddc5bd1ce8ca2b2506a57aadf5fc91ff0c7b78ef\n"
    },
    {
      "commit": "a1d92359056176b6f6646efc918e0587e3de2b6f",
      "tree": "cafa074b61ede4038193aa40392257665e64259f",
      "parents": [
        "3a1f8a404b38aaa82d57c77cb83e48665e66e553",
        "cabd5f867ec69c0dfe8333cba46323cb58917402"
      ],
      "author": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Thu Jul 21 11:13:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 21 11:13:43 2011 -0700"
      },
      "message": "Merge \"fix for issue  4142219 Don\u0027t hard code platform-specific limitations-jni/java part\""
    },
    {
      "commit": "3a1f8a404b38aaa82d57c77cb83e48665e66e553",
      "tree": "9e514035df9287a884ea0e8fdb8e1f00d3786052",
      "parents": [
        "0cd7889d37cc60300dceaa975dab041fd35e34fd",
        "7188e55f54a43c55fd6b96454720c447f1dc454e"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 20 18:03:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 20 18:03:47 2011 -0700"
      },
      "message": "Merge \"Untangle MediaScanner error handling. Bug: 5056917\""
    },
    {
      "commit": "0cd7889d37cc60300dceaa975dab041fd35e34fd",
      "tree": "0ba39dc6cb61ae91775f6f9c8b6bc2bf3561b018",
      "parents": [
        "afa9771b5abe7646077a8353f8bf710506803f7a",
        "7c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 20 17:45:37 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 20 17:45:37 2011 -0700"
      },
      "message": "Merge \"Audio framework: support for audio pre processing\""
    },
    {
      "commit": "7188e55f54a43c55fd6b96454720c447f1dc454e",
      "tree": "ce77a06ad12fc66ce180fdbf882c011393d472d9",
      "parents": [
        "50d42da58a88dcdb082cff079766af71c0871470"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 20 16:38:43 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 20 17:33:13 2011 -0700"
      },
      "message": "Untangle MediaScanner error handling.\nBug: 5056917\n\nChange-Id: I1a7a73579e3ba4e9709459329fc1901a28b0f4b1\n"
    },
    {
      "commit": "cabd5f867ec69c0dfe8333cba46323cb58917402",
      "tree": "d6501c73c3f5eef40c5232b6f2bef7afeadb7dea",
      "parents": [
        "7dff060f29858d6db2464845bb9097ac5960bbe6"
      ],
      "author": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Wed Jul 06 18:33:09 2011 -0700"
      },
      "committer": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Wed Jul 20 16:51:39 2011 -0700"
      },
      "message": "fix for issue  4142219\nDon\u0027t hard code platform-specific limitations-jni/java part\n\nChange-Id: Icde261b1caf29a8cf552884c97f3c9d0b41741a3\n"
    },
    {
      "commit": "4a621e6d3438876eb1d9001719c688a2329ee675",
      "tree": "10398f8db30ff9b7debc46edfb713037318669a6",
      "parents": [
        "5f05b87b673093064e64bb5ac532555f881f0ddc",
        "61c7ef5bde2c7ed94a078396aa65da67b47e5402"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 18 15:18:43 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 18 15:18:43 2011 -0700"
      },
      "message": "Merge \"MediaPlayer: add ANativeWindow (dis)connect calls\""
    },
    {
      "commit": "db4d3717b4677b3239546a248dc0a7d82db4ba50",
      "tree": "31666bc44c0df4ae95bf212299c571eb3be1ed09",
      "parents": [
        "67a124dcac0578aed94aebf451675a5f4c8a1e4e",
        "df57a0d6d3b0609e69ff79afa63fe44dfa91f6f5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 18 11:07:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 18 11:07:47 2011 -0700"
      },
      "message": "Merge \"Add option to query hardware decoders only\""
    },
    {
      "commit": "df57a0d6d3b0609e69ff79afa63fe44dfa91f6f5",
      "tree": "03f9b598a4e9b41242f8a6fed36a2c5a0f994d03",
      "parents": [
        "350d9162155e1f3eab1821f5eeed762faa01f0cc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 17 16:35:11 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jul 18 10:57:50 2011 -0700"
      },
      "message": "Add option to query hardware decoders only\n\nAdd an option to OMXCodec::QueryCodecs() to filter out\n software codecs.\n\nUpdate stagefright command line tool to list the roles of codecs.\n\nChange-Id: Icddb79118c30fe13cc3aea20f340174cc082c4e0\n"
    },
    {
      "commit": "7c7f10bd4fda9a084e5e7f0eb3a040dfcbf01745",
      "tree": "eb67cd14e679d97a9b866a0410d8e582f4639274",
      "parents": [
        "67a124dcac0578aed94aebf451675a5f4c8a1e4e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 17 21:29:58 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 18 09:42:57 2011 -0700"
      },
      "message": "Audio framework: support for audio pre processing\n\nAudio effect framework is extended to suport effects on\noutput and input audio path.\n\nAudioFlinger: Support for audio effects and effect chains is\nmoved from PlaybackThread class to ThreadBase class so that\nRecordThread can manage effects.\nEffects of type pre processing are allowed on record thread\nonly. When a pre processing is enabled, the effect interface handle is\npassed down to the input stream so that the audio HAL can call the\nprocess function. The record thread loop calls the effect chain process\nfunction that will only manage the effect state and commands and skip the\nprocess function.\n\nAudioRecord: The audio session is allocated before calling getInput() into\naudio policy serice so that the session is known before the input theead is\ncreated and pre processings can be created on the correct session.\n\nAudioPolicyService: default pre processing for a given input source are\nloaded from audio_effects.conf file.\nWhen an input is created, corresponding effects are created and enabled.\n\nChange-Id: Id17119e0979b4dcf189b5c7957fec30dc3478790\n"
    },
    {
      "commit": "a57a9a491272aa884494b2ec7854960827a73742",
      "tree": "f3a37638b79d9083ecd09dce607086155c84cdf8",
      "parents": [
        "4378ace44b9de477608a6c2fbf7134bc0345555f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 15 15:25:36 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 15 15:32:21 2011 -0700"
      },
      "message": "Do not wait forever for output buffers in OMXCodec.cpp and error out in case time out happens\n\no Deal with vendor codec hang bug\n\nChange-Id: Ic8449afd43045f09a9e0bd3d1be9a320e59ccabe\n"
    },
    {
      "commit": "61c7ef5bde2c7ed94a078396aa65da67b47e5402",
      "tree": "7122054e8136934061ff3b27981168f903db4c7f",
      "parents": [
        "9b88b72ee2c3fd01fb46e77b7e6d80f3bd52e958"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jul 13 12:59:34 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jul 14 17:48:33 2011 -0700"
      },
      "message": "MediaPlayer: add ANativeWindow (dis)connect calls\n\nThis change makes MediaPlayer connect to the ANativeWindow to which it\nis going to render video frames and disconnect when it is done.\n\nChange-Id: I88ab5c2fe62493aabdc84a283ff31634f795d415\n"
    },
    {
      "commit": "15825c7b6f6b19092a5949b4e46aea4fa229932c",
      "tree": "d9f7ac9876c2dde68c6cc962109a28d1c24231a6",
      "parents": [
        "2864c9a3a29311beb5ef96d8fc3c7745df2dd2cd",
        "457116d3a01618acf9a875020ca5860551ba03a6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jul 14 09:59:24 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 14 09:59:24 2011 -0700"
      },
      "message": "Merge \"Support profile and level query for SW video decoders\""
    },
    {
      "commit": "49c8340bd83cc5d64b1fcaed4afbda5fd4d74a3e",
      "tree": "6a24d306f6b16e2e70ebc7318bad26a616983c42",
      "parents": [
        "0ee92ffd74ac8594b68aa3c73b341dc0c6330b3f",
        "dab718bba3945332dc75e268e1e7f0fe2eb91c4a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jul 14 09:09:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 14 09:09:07 2011 -0700"
      },
      "message": "Merge \"Remove legacy http support from stagefright, chromium is the new hotness.\""
    },
    {
      "commit": "81eedd1746be590d5d506dfb9ff23619f9d9898f",
      "tree": "caeac020149ff784bea22015b30232543a35c791",
      "parents": [
        "9d35d0c4a1371d52c4ce4d34575967026d9135af"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 13 11:06:57 2011 -0400"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Wed Jul 13 19:45:44 2011 -0400"
      },
      "message": "Remove some #ifdef HAVE_ANDROID_OS that were needed for the simulator build\n\nChange-Id: I13d9f251f86c05ae5405f37adbf6b8e9660935ba\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "dab718bba3945332dc75e268e1e7f0fe2eb91c4a",
      "tree": "a1c5582fc94961c13093197f5f728ae7194c931e",
      "parents": [
        "42e549e4ab54802d788c43e3a04a85b7a1a95e97"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 15:45:01 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 15:45:01 2011 -0700"
      },
      "message": "Remove legacy http support from stagefright, chromium is the new hotness.\n\nChange-Id: I6725d42d38b91e6a1cbca43174870f445aeb3d99\n"
    },
    {
      "commit": "42e549e4ab54802d788c43e3a04a85b7a1a95e97",
      "tree": "6bf620f639533f345089df3902a93109028bed4e",
      "parents": [
        "9cded98816c40fd55053b1e38fc7fd8a68da8866"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 09:36:11 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jul 13 09:47:09 2011 -0700"
      },
      "message": "Enable signalling of a stream discontinuity involving a format-change\n\nthrough IStreamListener.\n\nChange-Id: Ic0409cdc4891ad26b61f2f98bdda3c7fb2e2de6a\nrelated-to-bug: 5022434\n"
    },
    {
      "commit": "5a5f9d636ed6c116993c6cad5abdad7a734992e8",
      "tree": "5810d32bd5d743162b37f021571c24cd3124c007",
      "parents": [
        "a5a0cea84cdf116f4de4f812c26be73e70a260e6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 12 09:28:17 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jul 12 09:35:40 2011 -0700"
      },
      "message": "Make MetadataBufferType.h C-friendly\n\nChange-Id: I4388d8f6cf30f08858aec73aa971647feae4a5e3\n"
    },
    {
      "commit": "3623b481fa2734b95d4553dafabca931e5d0502a",
      "tree": "118a1efa62a0f4235276db5be5f310737ec55bd0",
      "parents": [
        "fcf0efd3919435cb27091a8af6db3de35b6899ba",
        "411ba422e3635d534928ffd81abf54f4f291c739"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 11 12:56:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 11 12:56:11 2011 -0700"
      },
      "message": "Merge \"Do not wait for unlaunched threads in stop()\""
    },
    {
      "commit": "411ba422e3635d534928ffd81abf54f4f291c739",
      "tree": "f3dbe434a44ee5c5d810b0ceb59f0382481cf9a7",
      "parents": [
        "9b186a44051d0ef7f4ca67150f204299b15a448e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 08 16:51:16 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 11 12:51:21 2011 -0700"
      },
      "message": "Do not wait for unlaunched threads in stop()\n\nChange-Id: If681749753bb96ee98c1539658cfd919eeb0cb65\n"
    },
    {
      "commit": "457116d3a01618acf9a875020ca5860551ba03a6",
      "tree": "16ea85295b56ef3cc8885c7507841505a9a744e7",
      "parents": [
        "9b186a44051d0ef7f4ca67150f204299b15a448e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 11 12:29:10 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jul 11 12:29:10 2011 -0700"
      },
      "message": "Support profile and level query for SW video decoders\n\nChange-Id: I9c20db128be96cd36cf2083e08e8c21f5e6d1fdf\n"
    },
    {
      "commit": "ae4c1ac6401185539c03ce0819e174fd1b04b136",
      "tree": "ae4becf79ad28f3f47136894468fa090bc893d79",
      "parents": [
        "9b186a44051d0ef7f4ca67150f204299b15a448e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 08 17:59:29 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Jul 10 14:19:26 2011 -0700"
      },
      "message": "Release camera if CameraSource::start() has not been called\n\nChange-Id: I2f7e4b8501db3d80b9aa6f99d896d778bec29e8c\n"
    },
    {
      "commit": "6d8b694d999e9be7d5dcc336535832a80fb6f61f",
      "tree": "4fcdbf4a7f7fa24a16d7bf27816922031870102f",
      "parents": [
        "5895e970ae119210773a5184c019178e2516b132"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 24 07:01:31 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 15:25:51 2011 -0700"
      },
      "message": "Moved and renamed effect API header files\n\nMoved specific effect header files to\nsystem/media/audio_effects/include/audio_effects\nand renamed to lower case (effect_xxx.h).\n\nChange-Id: Icfc2264bfd013cab0395d7e310ada636b9fe3621\n"
    }
  ],
  "next": "5895e970ae119210773a5184c019178e2516b132"
}
