)]}'
{
  "log": [
    {
      "commit": "d8d3276a29aab91855a5a5e88042abbfd40124a3",
      "tree": "e1eb8d239b66e8babf273c2bff3be7256e3eeb37",
      "parents": [
        "e25e51f5fc279da619f6882b388316dcc5c39a9d",
        "6dbdc40e9a317488fc5f6e14cf9e699bce9a9387"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 27 09:02:47 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 27 09:02:47 2011 -0700"
      },
      "message": "Merge \"Fix issue 4604090: notification sound interrupted.\""
    },
    {
      "commit": "4c2292efbbfe7338138a9a0e8eefeaabdef1a0b4",
      "tree": "65e88242ebf7961310a9405ba18a1c470c6a5aa5",
      "parents": [
        "83f463f6f8e5a469a27c0620985022548aa64ade"
      ],
      "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": "686200cb5f3e80c0b0519ec14cc54b280a560863",
      "tree": "c15a2e68f60ad61bf2b3cae397bedb779c36de4f",
      "parents": [
        "070ce94b9fd91d1bb22161a85178440cb46d8ece",
        "f3503c2c30dc0b7eb7603998469f437136497c5c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 26 12:08:07 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 26 12:08:07 2011 -0700"
      },
      "message": "Merge \"remove dead code and member variables.\""
    },
    {
      "commit": "f3503c2c30dc0b7eb7603998469f437136497c5c",
      "tree": "934ebd5f0c8da99a02cb7a4df77d908c54d34f02",
      "parents": [
        "9a817a35f11cb118209a3238451603258ae7f105"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 25 19:56:08 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 25 20:03:43 2011 -0700"
      },
      "message": "remove dead code and member variables.\n\nalso fix some comments and improve debugging logs.\n\nChange-Id: I83e55309f306332b59e1ec46104c4a7fffbf3c97\n"
    },
    {
      "commit": "6dbdc40e9a317488fc5f6e14cf9e699bce9a9387",
      "tree": "eed576356d64812249d1b021eff7f88e24bde25a",
      "parents": [
        "6c454c3225fd47422024af915fa28d5210d1e82e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 22 09:04:31 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 18:41:12 2011 -0700"
      },
      "message": "Fix issue 4604090: notification sound interrupted.\n\nThe problem is that the audio HAL fails to acquire the wake lock when playing the notification.\nThis is because of a change that removed the mediaserver process form the system group for honeycomb.\n\nThe fix consists in requesting the wake lock from PowerManagerService when AudioFlinger mixer\nwakes up.\n\nA consequence of this change is that audio HALs or pcm drivers do not have to hold wake locks\nanymore as in the past.\n\nChange-Id: I4fb3cc84816c9c408ab7fec75886baf801e1ecb5\n"
    },
    {
      "commit": "19f773bc96c141227fab3af68d9fcdf9a3c087cb",
      "tree": "dfd5e8a936eba7c270b917fcc3574ad52d38a1c3",
      "parents": [
        "c854b9c05eafdaeb7e33c8e8bbcbce3668ac7ec6",
        "b1f8c266e47554bc45632f021c9e409399e907e7"
      ],
      "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": "234cef81299688db75edb6572e37374a67f79bbc",
      "tree": "3fa3964aa740ef9c81204f995fd780dcfe6244e6",
      "parents": [
        "fb526513056eb275a8ad7ff7998e2e56be8fd467",
        "0f7f4ece1b6b73caf608d533d833a8cdc11c8131"
      ],
      "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": "0f7f4ece1b6b73caf608d533d833a8cdc11c8131",
      "tree": "0f8a57676ec5ac53b22594b5f754a6216c720651",
      "parents": [
        "84e35d995f0b804a322e9e07fd1a0341658763ef"
      ],
      "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": "fb526513056eb275a8ad7ff7998e2e56be8fd467",
      "tree": "97f56fa60700a32258b9fe466403fb4dafb950c9",
      "parents": [
        "84e35d995f0b804a322e9e07fd1a0341658763ef",
        "83dd43f45aa3212239acfb35d799216e840c9e2f"
      ],
      "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": "d50aef50f640723e95ca270441161dfb042115d0",
      "tree": "8acec272063a9d3fa95f2a39320aebe2478bb93d",
      "parents": [
        "0d1d96272025f30f40c49c387f2fe9daaf6133c9",
        "ecfa1d3a7941a4f1a9c381c9c7419ecd0bd86967"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 25 11:46:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 11:46:51 2011 -0700"
      },
      "message": "Merge \"SurfaceTexture: enable RGB external textures\""
    },
    {
      "commit": "5518dd92d38edd5902482841413722aa654cc2e7",
      "tree": "8fed33fc854d72b0000c8ad99565f8377c7e6607",
      "parents": [
        "63d050034df5eedc9586e393d56444cd34681bd1",
        "0de171b0d490a5928d54d2fb67c912d140aac643"
      ],
      "author": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Mon Jul 25 10:24:30 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 25 10:24:30 2011 -0700"
      },
      "message": "Merge \"Add support for creating a Surface from a a SurfaceTexture.\""
    },
    {
      "commit": "e432a0005180ba9ac2c1d7822c4761b475fddc51",
      "tree": "88ed405f2e6d39e93fc332536319836562321f27",
      "parents": [
        "d40e2c67ed6423355aeb1292b33c2f8a20b3c84d",
        "d9ac621f590c51bdc38b46d5aabba2dbc84cbd58"
      ],
      "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": "d40e2c67ed6423355aeb1292b33c2f8a20b3c84d",
      "tree": "673b5cb61a68f3a85bccdee1e6aa0f79b180c100",
      "parents": [
        "da6e4a7d9dd8100f62de018159c4b05c17f665e3",
        "a05f099301ca9d5efd4db549295401ee00b439a0"
      ],
      "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": "83dd43f45aa3212239acfb35d799216e840c9e2f",
      "tree": "8ba247f848114bca7e71e2a41f5b9fec74e2b1b8",
      "parents": [
        "895de9269fa125bf3903c21faf5e8d2750bfb000"
      ],
      "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": "b1f8c266e47554bc45632f021c9e409399e907e7",
      "tree": "5d0633fe15e687d9946195352fa106e4f3fe3ce5",
      "parents": [
        "897e27bc75886e44d2f9f09155127f401c4173ea"
      ],
      "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": "65cdc2b7b6759c3d13f78b2a00ed1c11f840db4f",
      "tree": "6d1a094cc63dfe6c958bbf6036bfa81e99c94bda",
      "parents": [
        "bbb85c8e4e4e67f4fa018694b587fd3228b0d1b2",
        "897e27bc75886e44d2f9f09155127f401c4173ea"
      ],
      "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": "0de171b0d490a5928d54d2fb67c912d140aac643",
      "tree": "abba5dd93cbdc076224ea3da2a92254c553a8112",
      "parents": [
        "7699c18a079d232280c2701fb20d36f75d379e03"
      ],
      "author": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Fri Jul 15 15:10:10 2011 -0700"
      },
      "committer": {
        "name": "Ted Bonkenburg",
        "email": "tedbo@google.com",
        "time": "Fri Jul 22 16:36:44 2011 -0700"
      },
      "message": "Add support for creating a Surface from a a SurfaceTexture.\n\nThe Surface is already using SurfaceTexture internally and it is parcelable. This\nis intended to replace and phase out ParcelSurfaceTexture in favor of creating a\nnew Surface.java object from an existing SurfaceTexture.\n\nChange-Id: I8e2dd86614523da6abed6403e1d705a68fa19fdf\n"
    },
    {
      "commit": "ecfa1d3a7941a4f1a9c381c9c7419ecd0bd86967",
      "tree": "6e23317bd8e8ac08a9e4e5ae1d553bb97319cb60",
      "parents": [
        "95b404228547eb771700e6cbb927adc282aebccd"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 19 17:58:43 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 22 15:45:18 2011 -0700"
      },
      "message": "SurfaceTexture: enable RGB external textures\n\nThis change removes support for conditionally using the GL_TEXTURE_2D\ntarget for SurfaceTexture textures with RGB buffers.  It also enables\nand fixes the RGB-based SurfaceTexture tests.\n\nChange-Id: I9a251a981cf66af6b048b2e4c3fe7231e4774f4d\n"
    },
    {
      "commit": "a05f099301ca9d5efd4db549295401ee00b439a0",
      "tree": "3e9b1bf6ce6b55d72b88662b7363826258ea13dc",
      "parents": [
        "47d4caf41b052ab88f747ccc789754be5f44f8af"
      ],
      "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": "5ef59bc764d6bcd0ccf0a266d7d9ab792668a3e9",
      "tree": "aa5b98091b69c5f5d65618acd90b0e6ebf543ec3",
      "parents": [
        "b71a4beb1afb3f91201cd416e8e56733ba17913e"
      ],
      "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": "897e27bc75886e44d2f9f09155127f401c4173ea",
      "tree": "d352d82d32c65c1872c7020e18894c32411ca89e",
      "parents": [
        "95b404228547eb771700e6cbb927adc282aebccd"
      ],
      "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": "e333d3c8243e11b094cec816cb9b41e2b8504582",
      "tree": "2e5e0ffa49a92f208326de9423c4592d41f183e6",
      "parents": [
        "95b404228547eb771700e6cbb927adc282aebccd"
      ],
      "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": "95b404228547eb771700e6cbb927adc282aebccd",
      "tree": "62d76526ca0de57fa4b524eb7bf818e4f7168478",
      "parents": [
        "6dcf2d77767f73608caa316db534a1df64a2b272",
        "075db95875db320d4e2ed05be0301ff3cc6023e1"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 22 13:34:57 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 22 13:34:57 2011 -0700"
      },
      "message": "Merge changes I799532f7,I5cffa6eb\n\n* changes:\n  SurfaceTexture: fix a comment\n  SurfaceTexture: remove getAllocator\n"
    },
    {
      "commit": "38eea1b800c7374382f83f30fec85d0f6b415f13",
      "tree": "372dece9fb3253b7bfe0e533fc821cb2cdf18217",
      "parents": [
        "67d7704bd2e4a7640d12a9d06ad5971b23b51ad5",
        "f48987db6711512173327bc6ec8d253ba914dab1"
      ],
      "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": "67d7704bd2e4a7640d12a9d06ad5971b23b51ad5",
      "tree": "f90255388a3a49797f88e5243689d6597f40f743",
      "parents": [
        "dce720f194c4a12bcd838a92b3592d733bfcdc0a",
        "26a197120c1bad8797f35e9b43482f5466280f8c"
      ],
      "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": "178e8eb5ddb06dca2f225df6f8df662ad0d15d26",
      "tree": "281290488e0242f85d9e9c441bb69564724a3912",
      "parents": [
        "3263f02b3e4b9c37bf8ec4e00b3cec32ede42ad8"
      ],
      "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": "f48987db6711512173327bc6ec8d253ba914dab1",
      "tree": "1034fb9dc3af92f8b7c10358ae12c404155be20f",
      "parents": [
        "26a197120c1bad8797f35e9b43482f5466280f8c"
      ],
      "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": "26a197120c1bad8797f35e9b43482f5466280f8c",
      "tree": "dc80a01eea7c05ee40f4e88885feab5eef55b013",
      "parents": [
        "348c45bd963389dfd3038c57bd7728608cb31fa4"
      ],
      "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": "348c45bd963389dfd3038c57bd7728608cb31fa4",
      "tree": "75b52ff0cfbd13f978033230ea76a47390614aa8",
      "parents": [
        "1352531dc73667bbfd9fa9fcf6db47101e56133c"
      ],
      "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": "075db95875db320d4e2ed05be0301ff3cc6023e1",
      "tree": "dc92b0c44b78b5561916a0d9bd3d0ac08f7d582f",
      "parents": [
        "5c23a2c72d1c3d2c423355ae301e0822e1662b9f"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 19 12:11:52 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jul 21 14:32:56 2011 -0700"
      },
      "message": "SurfaceTexture: fix a comment\n\nChange-Id: I799532f77f8fbb6b8ee6888fdd8852b6f28e8c33\n"
    },
    {
      "commit": "5c23a2c72d1c3d2c423355ae301e0822e1662b9f",
      "tree": "401a131a26ad11e7fdc9b91cfbaf699675c4b481",
      "parents": [
        "d7a374f6f8f52a88d7e9a4660d9bf9037cf0b659"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jul 19 14:32:36 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jul 21 14:32:56 2011 -0700"
      },
      "message": "SurfaceTexture: remove getAllocator\n\nThis change removes the SurfaceTexture::getAllocator method, as it\u0027s no\nlonger needed.  Proper refcounting of the Gralloc buffers is now handled\nby the IGraphicBufferAlloc binder marshalling code.\n\nChange-Id: I5cffa6ebfc1bc5828fb7ce0e0a5b2f55cd8479da\n"
    },
    {
      "commit": "432fb8ecbed402b06f7f92d829be544b317059be",
      "tree": "c7bb3ab93ee06af3106ec6feede6c002092280ee",
      "parents": [
        "598b6fe86b213d65668928f575a9688ac7c6061b",
        "600acf14ff12eaf139f0ac644fb7e17849af65fa"
      ],
      "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": "f5a4dd386fcbe200ad9c5d06ecf66d31ba8d4e30",
      "tree": "c10677e45645052e7632fb17c69c420085a6370a",
      "parents": [
        "48724c0c61c18ab23f3b8418d0bb0db511a7cccc",
        "50c24a2000c785f8be2367e1fc7938a5eda5c9e8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 20 18:52:51 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 20 18:52:51 2011 -0700"
      },
      "message": "Merge \"clean-up. get rid ofunused code and members in Surface[Control].cpp\""
    },
    {
      "commit": "5da67f4f6918fccc4a89d4facd8642164c630c57",
      "tree": "9aa2121824836658cea16fa0f7f336ef30812ecd",
      "parents": [
        "5be70a8ec028947e4043544bac990c92cfcafc10",
        "2c70d4a372a8ce83163f19bbd6ae82483ffbe46b"
      ],
      "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": "ae7c0926499491999fa5964d75fd05a1b5f4480d",
      "tree": "2d13006423e3b19b6d5e85161290cd213a9675c8",
      "parents": [
        "95661d5ece0bd3646581edad62f18e3e4468ab5c",
        "464d5b3da21c84ba13dc69c611d40f6bed49badb"
      ],
      "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": "2c70d4a372a8ce83163f19bbd6ae82483ffbe46b",
      "tree": "a0ce5a726ee27ce434e925ff2d8963d8a2f47580",
      "parents": [
        "cf4cfc6fc88f204e2e496e37337f7e70809bbf6f"
      ],
      "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": "50c24a2000c785f8be2367e1fc7938a5eda5c9e8",
      "tree": "4f6b33dae6fad115e014290b2535c0b931c9d0a1",
      "parents": [
        "f07b8a3f691be39083fb5163f9456bcfa566f93f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 20 16:46:11 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 20 16:53:13 2011 -0700"
      },
      "message": "clean-up. get rid ofunused code and members in Surface[Control].cpp\n\nChange-Id: Ia7790ae28af2c2ac99eae01c2c5044ace4a490a4\n"
    },
    {
      "commit": "600acf14ff12eaf139f0ac644fb7e17849af65fa",
      "tree": "ca6c6d083c575d3ba2240c3398a8163017e21ac2",
      "parents": [
        "caed51bcc23303182ffffb8b2db04647845bc1f5"
      ],
      "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": "ac386073df2514b79a2ca169f4a89f129733002f",
      "tree": "a3ac8faca1a1f1dc118403b019bd05f652de52a8",
      "parents": [
        "cf4cfc6fc88f204e2e496e37337f7e70809bbf6f"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 20 15:19:50 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Wed Jul 20 15:19:50 2011 -0700"
      },
      "message": "Remove unimplemented memory pool.\n\ndlmalloc does such a great job that we don\u0027t need a pool anyways.\n\nChange-Id: I105b28c4a5c491543959190c7c0a9de75a5b8052\n"
    },
    {
      "commit": "f07b8a3f691be39083fb5163f9456bcfa566f93f",
      "tree": "885f9fcbb020c630c2b0ea20b13ca2ee850e5f3b",
      "parents": [
        "ff86f37b95327538b97b6b8ef5d3c6ed0cd7f902"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 19 15:24:46 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 19 15:24:46 2011 -0700"
      },
      "message": "implement: \"Add an ANativeWindow API for SurfaceFlinger to suggest an optimal buffer orientation\"\n\nBug: 4487161\nChange-Id: I883f34efe542c2a566d04966f873374f40c50092\n"
    },
    {
      "commit": "09d7ed7b395d66be97c6bcb052039f5c0dce646c",
      "tree": "f707f6e46bd9a0edeaac9b33bffe054a64e3062c",
      "parents": [
        "9d29d155c51a26d789cce2c4c24c659487c63554"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 13 15:24:42 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jul 19 13:05:11 2011 -0700"
      },
      "message": "Add set_scaling_mode() to ANativeWindow.\n\nThis allows to specify the scaling mode independently from\nthe buffer size.\n\nChange-Id: Iaa2baa660445531a97d3fac192e580f4929c5d3b\n"
    },
    {
      "commit": "5a4ab16eba0a3c9749e0179b005475dfaaafacb5",
      "tree": "e384557fa652857cc4f3dd675e54df52215f0f8b",
      "parents": [
        "682dbafc8f6c90281303e225c5d58d4e5f74fc09",
        "c85ca5d6b573e1a663a10950578220b4580c285c"
      ],
      "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": "10e6f34a67b77c17286e2438485bac5f63776116",
      "tree": "782eae6176d843c3483c44e65e644791abc36386",
      "parents": [
        "49840e255beed794c1240b230b4d824520933fa1",
        "949be32b671304d5281ac0abbf30dcf4ebaa9eaf"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jul 18 14:55:58 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 18 14:55:58 2011 -0700"
      },
      "message": "Merge \"move lock/unlock implementaion outside of Surface into SurfaceTextureClient\""
    },
    {
      "commit": "211f5af3bb47ba44c9714abbef0dec1b1a0ada51",
      "tree": "6ff69c8a47bf934c5df3b7aca109281167020fcf",
      "parents": [
        "55421aa80edbc5fdd9ce43029845ca0bd6ecc4c6",
        "56a37b052912d09c310f43ab1215ccc93f2dbda5"
      ],
      "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": "56a37b052912d09c310f43ab1215ccc93f2dbda5",
      "tree": "ce525d6fa573cdda87019003e72d8326d05ef464",
      "parents": [
        "a6c53c79390e719ae425d38d6d80587e0d017ef3"
      ],
      "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": "464d5b3da21c84ba13dc69c611d40f6bed49badb",
      "tree": "077449115c49bf62ad94e7328f4ac57729659e41",
      "parents": [
        "919511a6da6a8d49857d7c0c5fa2e9d66d42efc2"
      ],
      "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": "949be32b671304d5281ac0abbf30dcf4ebaa9eaf",
      "tree": "f12cbc9997bd2270f1a7604ba4d78739688975c3",
      "parents": [
        "8d96f19692815aa14979c811a130b38eafc1bf65"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 13 17:39:11 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 15 17:47:08 2011 -0700"
      },
      "message": "move lock/unlock implementaion outside of Surface into SurfaceTextureClient\n\nThis makes ANativeWindow_lock/ANativeWindow_unlockAndPost work\nwith ANativeWindows implemented by Surface and SurfaceTextureClient.\n\nAlso, Surface now inherits directly from SurfaceTextureClient.\n\nBug: 5003724\nChange-Id: I9f285877c7bae9a262e9a7af91c2bae78804b2ef\n"
    },
    {
      "commit": "7e7de71f6eef5652ee1260e40215804a2ce543c3",
      "tree": "7d0fae6f7626c7158fca91d28f430ae3fe7e06b0",
      "parents": [
        "e3065f23a25b778c9fc718f01def2e1cb264aef8",
        "131515b681e26e3f4d8c21cc6b540142a3526712"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 16:24:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 15 16:24:26 2011 -0700"
      },
      "message": "Merge \"CPU statistics library\""
    },
    {
      "commit": "d9ac621f590c51bdc38b46d5aabba2dbc84cbd58",
      "tree": "d69db0370184727a7ad8514ced3c33dfdab8ac1d",
      "parents": [
        "f604c6f6a9bee6496393fe7c91065ad4ea73752c"
      ],
      "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": "131515b681e26e3f4d8c21cc6b540142a3526712",
      "tree": "9ab172ba87203488b01d675276dead04c736c4af",
      "parents": [
        "a0c680393f2dd03a937c598b2cb9abf98a58152c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 14:36:46 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 14:09:49 2011 -0700"
      },
      "message": "CPU statistics library\n\nChange-Id: I113e2a926466cc410cfa5602ceb165b390a290fc\n"
    },
    {
      "commit": "06b54d7184e015256ad1817e381f61eb7514a3e2",
      "tree": "8e88a243d1d426e97890c6ed716fe53b379d2c09",
      "parents": [
        "b3a26f4d94f390d4baeac0fc11ccb9d451b67dbd",
        "9709687463dc5f1255f435e57b3d2beed8b70330"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jul 14 17:54:27 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 14 17:54:27 2011 -0700"
      },
      "message": "Merge changes Id9aa1003,I8c154189\n\n* changes:\n  SurfaceTexture: make (dis)connect into an IPC\n  SurfaceTexture: add support for new connect values\n"
    },
    {
      "commit": "c85ca5d6b573e1a663a10950578220b4580c285c",
      "tree": "033fe2fb88b2416b58c6232f7aad5f47648886f7",
      "parents": [
        "9709687463dc5f1255f435e57b3d2beed8b70330"
      ],
      "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": "9709687463dc5f1255f435e57b3d2beed8b70330",
      "tree": "3a3a66468d3cc2d7b86871eb2f17acea86af7907",
      "parents": [
        "a775f0d4193dffc336b295dc06056f81801eba9e"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jul 13 19:12:20 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Jul 14 17:48:32 2011 -0700"
      },
      "message": "SurfaceTexture: make (dis)connect into an IPC\n\nThis change makes the ANativeWindow connect and disconnect calls result\nin an IPC to the SurfaceTexture object.  This will allow us to prevent\nmultiple simultaneous connections from different processes.\n\nChange-Id: Id9aa1003b1335b96ca6bd4a1f5a67aa433d42efb\n"
    },
    {
      "commit": "ad07457ece56ba710d3a0334eb8e711646c7141a",
      "tree": "ee9c0ae0e03fe26b28aa7c68059179330f3bc0e7",
      "parents": [
        "840a02c3da40934bd3b4ab023d6d92f7161c6f4b",
        "fbb170ca9cbbd0c87c71ac39ecbb36086bca5ee2"
      ],
      "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": "1a541075622c5eacbef43c1134f7f9a2598b29b7",
      "tree": "0788dd2864a1fa8fbc29753a466f3835898e33c7",
      "parents": [
        "e1f2d4111db777b54b8fce756a9e4e3fa6531322",
        "c3119330a56c2dafa282b0b7450893c3f8cb5636"
      ],
      "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": "c1b9bbb21c8ad5109978a4e9e770cd18b0257434",
      "tree": "bfb7dd2272e5fe29d3c0fc4f22ca708e00bc10be",
      "parents": [
        "b6e5e7a740bf595a1a5d32b28549e5d579a04ee3"
      ],
      "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": "c3119330a56c2dafa282b0b7450893c3f8cb5636",
      "tree": "9dc8e18d19b9c1f09b9cf48657c5de41ed070749",
      "parents": [
        "67d464f47e842d5069e993408fd51ec122ad8019"
      ],
      "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": "67d464f47e842d5069e993408fd51ec122ad8019",
      "tree": "f0881cc39a02c87b9d7efcf9068387dabdd0152e",
      "parents": [
        "9cba686366870b3a4c69bcec0eb4200352ce481d"
      ],
      "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": "dcf8934f4e90d89a468d3efbfa3852e4bfc37518",
      "tree": "6421cda0d111ac97007efe79636084fec75fc291",
      "parents": [
        "a698e6a6dbe044a12defc71fe3549711660d6bb7"
      ],
      "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": "308f9f6b248402c67d73c3ad48f5b6b888bab7b7",
      "tree": "cf57cc66cbd45cb7506691ab1492882066731bee",
      "parents": [
        "f21f07627df3ad4381fdd3daf47289eeda9754d3",
        "97eae025ad857e33dce5b3d1d4fd5fe5813d2a80"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 11 15:47:20 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 11 15:47:20 2011 -0700"
      },
      "message": "Merge \"EGL: fix the ANativeWindow size/fmt override\""
    },
    {
      "commit": "501c4671e73a484c1f01d94f4f5fff124c05f197",
      "tree": "2c2f30011f0828af0425d5fc46aa007c9edb22f5",
      "parents": [
        "9b40a61ce98b6adce4df046fce8d67d64630b379",
        "10e89712863f5b91a2982dc1783fbdfe39c1485d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 13:37:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jul 11 13:37:53 2011 -0700"
      },
      "message": "Merge \"Eliminate single-process mode. Bug: 5010576\""
    },
    {
      "commit": "9b40a61ce98b6adce4df046fce8d67d64630b379",
      "tree": "e751bc1a31561a31d45b848a55c5d1e821c05d82",
      "parents": [
        "6e65a4a4ffea59ca3761bd1655ad4672c6d91000",
        "0e27fce92348bc765a13a94d31405069ec596426"
      ],
      "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": "0e27fce92348bc765a13a94d31405069ec596426",
      "tree": "97bb27463da01c648976201f142786bfc6ea4ed7",
      "parents": [
        "6dabb63307a0b63f9386d61e8444aed29db2081e"
      ],
      "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": "97eae025ad857e33dce5b3d1d4fd5fe5813d2a80",
      "tree": "e383a743c76a50a1d201ba9d8b34606c661b6787",
      "parents": [
        "d44e1b6033eed29718f2e7e3540e4884929941a5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Jul 01 13:12:07 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jul 11 12:31:45 2011 -0700"
      },
      "message": "EGL: fix the ANativeWindow size/fmt override\n\nThis change fixes how the Android EGL layer overrides the size and\nformat of an ANativeWindow in eglCreateWindowSurface.  The new behavior\nis to leave the size untouched when overriding the format.  The previous\nbehavior was to reset the ANativeWindow to use the default size set by\nthe ANativeWindow implementation.\n\nIt also adds two new \u0027perform\u0027 methods to the ANativeWindow interface:\nset_buffers_dimensions and set_buffers_format, and redefines the\nbehavior of set_buffers_geometry to be the combination of these two new\nmethods.\n\nAdditionally, this change adds an error check for the return value of\nthe new native_window_set_buffers_format call, which required adding a\n(stub) handler for to FramebufferNativeWindow.\n\nChange-Id: I805c7ccd8d4730dfb132d10d8bc3fb058a0b9df1\n"
    },
    {
      "commit": "fbb170ca9cbbd0c87c71ac39ecbb36086bca5ee2",
      "tree": "9d7e4209206fea3dad6814ea9ef6e785a782bbe7",
      "parents": [
        "6dabb63307a0b63f9386d61e8444aed29db2081e"
      ],
      "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": "8d19d3ae1e828e9189e2174e8ea88374af93f18e",
      "tree": "5060fcab1635721ce1a0d79b6cc038c4ccfb9e61",
      "parents": [
        "6dabb63307a0b63f9386d61e8444aed29db2081e"
      ],
      "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": "10e89712863f5b91a2982dc1783fbdfe39c1485d",
      "tree": "7a268e40e03cfb2b65d3764b73d0ea42172965fa",
      "parents": [
        "b7440a140b650932bf31cf51d3b87c3249e3b682"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 18:52:57 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 08 19:54:07 2011 -0700"
      },
      "message": "Eliminate single-process mode.\nBug: 5010576\n\nChange-Id: Id450dc83efed4897d1e4ff451530fed14457aace\n"
    },
    {
      "commit": "5cc05263399fea948c3b80f83f07ff7476ef0505",
      "tree": "4e27914026920216147b5f79300f9a61c909cf2e",
      "parents": [
        "1a65b441b127e66c0fae2e04e6f88628a6363209"
      ],
      "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"
    },
    {
      "commit": "5161eb7b233cf3b806046fd935f248b3844d9bd7",
      "tree": "59ec630bb655b3c66819a8ce35dfa0b0101f7da7",
      "parents": [
        "55aaccd7e8e3f5a4b0f4333c6bd2404eeac7bbb1",
        "697283e9177ee5730bf5c652c3c05d3aa3838ace"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 06 11:37:53 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 06 11:37:53 2011 -0700"
      },
      "message": "Merge \"Add Thread::join\""
    },
    {
      "commit": "7eef784ea9764c9ca86efb730fcdceda51a0ea87",
      "tree": "4d4000dea1fe292a305b8892185ee3516c05f7f4",
      "parents": [
        "5f517c149fd64c0631913d55617cb2cf369384a0",
        "eec0f7ebac85d3d1b1151e62b2ed0f25c138d447"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 06 11:09:55 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 06 11:09:55 2011 -0700"
      },
      "message": "Merge \"return an error code with gralloc buffer allocation failures\""
    },
    {
      "commit": "2da9eb7175e59a4ad8b9cec185f9cfdf8e075859",
      "tree": "40d9bb596b5ae3de67c9e311892e706dd934f9dc",
      "parents": [
        "4481c35567d8564b52f0af5aa7c010ff8c3ff4a8",
        "82428a862f325238cfb5646bbd65de3f1a11e7cc"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jul 06 09:22:05 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 06 09:22:05 2011 -0700"
      },
      "message": "Merge \"- Retrieve is_drm in MediaMetadataRetriever. - Add one more column in MediaStore to indicate whether a   media file is drm-protected. - Remove old DRM code from Ringtone - Use the new DRM code in RingtoneManager\""
    },
    {
      "commit": "4431c05f136bc1073b368221e3515aaf7fe8424e",
      "tree": "d93ce746f59b3bdd16dd3acae3de81676e21f802",
      "parents": [
        "324a1f6a125637269d3955e5a0935d3eb873b015",
        "60d47796ccfb3db3ab73017897f648678daddc83"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 05 15:08:31 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 05 15:08:31 2011 -0700"
      },
      "message": "Merge \"Thread ID zero for androidSetThreadSchedulingGroup\""
    },
    {
      "commit": "6894a2947eb1f9d499fd7f1a1ec4e7098e07d25d",
      "tree": "5aaf199228185826ea5deb9200adfc1633519994",
      "parents": [
        "63acea6ad4a9316e1450dea47840f45df4aaed25"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 01 17:59:27 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jul 01 19:08:15 2011 -0700"
      },
      "message": "Workaround apps that make assumptions about pointer ids.\n\nModified the touch input mapper to assign pointer ids sequentially\nstarting from 0 instead of using the tracking id or slot index\nsupplied by the driver.  Applications should not depend on this\nordering but some do.  (sigh)\n\nBug: 4980884\nChange-Id: I0dfeb3ac27c57a7102a13c960c760e2a02eb7669\n"
    },
    {
      "commit": "82428a862f325238cfb5646bbd65de3f1a11e7cc",
      "tree": "409603a51c7b948ccbdda01548f6d35afe767b91",
      "parents": [
        "d0c18aabac682709e47b9b4a2fdd19cbb6820b7c"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Jun 27 11:09:00 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Jul 01 16:52:28 2011 -0700"
      },
      "message": "- Retrieve is_drm in MediaMetadataRetriever.\n- Add one more column in MediaStore to indicate whether a\n  media file is drm-protected.\n- Remove old DRM code from Ringtone\n- Use the new DRM code in RingtoneManager\n\nChange-Id: I1311fd1c04841c2cd47df6c901589966cf55a692\n"
    },
    {
      "commit": "eec0f7ebac85d3d1b1151e62b2ed0f25c138d447",
      "tree": "51e127d4082b8f5aaee347fbc195b74789762450",
      "parents": [
        "23b444a2e4e808262c22fa5254db9861eb961879"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 01 14:53:49 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 01 14:53:49 2011 -0700"
      },
      "message": "return an error code with gralloc buffer allocation failures\n\nChange-Id: I471e5d37ea7a42fc8a0f93446ee3b4229da37807\n"
    },
    {
      "commit": "dfba1773c911c4d97838923334c5a879424387bf",
      "tree": "c64ef5f7b4b8b2b8261f3d06f1b6c0a9c31eb1a9",
      "parents": [
        "e02dd02bb8de073e03603df240d085267f014e5a",
        "603d739b5a444c52b63f1ec7cd2098034151ad25"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 01 14:28:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 01 14:28:10 2011 -0700"
      },
      "message": "Merge \"Charge network traffic to the uid of the process using the MediaPlayer.\""
    },
    {
      "commit": "5725d404602095be91d7a0a6bcdeeddd773b4761",
      "tree": "b7f58d258f8cb9c7e691fd5f055edab68773fc4a",
      "parents": [
        "f91040e2df1a52dc41fd62a82afc0b214abc1c8d",
        "cd8cd351d48e29760eb372ad0988a672413757d3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jul 01 14:03:45 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 01 14:03:45 2011 -0700"
      },
      "message": "Merge \"Add extended metadata buffer support by defining different types of metadata buffers\""
    },
    {
      "commit": "603d739b5a444c52b63f1ec7cd2098034151ad25",
      "tree": "16f400b743b887a612f124aec561c4cf3e92a781",
      "parents": [
        "5faaadffbfb272f6a5f686834dadaf5408cf0ed2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jun 30 15:47:02 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 01 13:18:43 2011 -0700"
      },
      "message": "Charge network traffic to the uid of the process using the MediaPlayer.\n\nChange-Id: I2bcb54b8232afd3fc7ee16289f37c7a7b3f23067\nrelated-to-bug: 4517282\n"
    },
    {
      "commit": "42fb5d64b9a4f4be5163c67374cca5eaa7226791",
      "tree": "8fadd35075fdc2d32b3b0d9e5dbfb3ee0e5b2182",
      "parents": [
        "5faaadffbfb272f6a5f686834dadaf5408cf0ed2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 29 15:53:28 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jul 01 09:28:51 2011 -0700"
      },
      "message": "Support a \"secure input buffer\" mode for use by Widevine DRM in OMXCodec.\n\nChange-Id: Ie03b285265099dbac9b12f3f41d9ad758d0b50ad\n"
    },
    {
      "commit": "ea458f190b5f496f80bf98a6ccaca2d46274cebc",
      "tree": "4aceeeabcd27777a0aac4bcd2719b3fc7de89306",
      "parents": [
        "ce43bc48588408e72aaa47ac1483837d5bfd1f59",
        "c9ec69eb6f07881e1d0582156e5697eff69f5546"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Jun 30 18:38:18 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 30 18:38:18 2011 -0700"
      },
      "message": "Merge \"Minor fix in SurfaceTexture\""
    },
    {
      "commit": "c9ec69eb6f07881e1d0582156e5697eff69f5546",
      "tree": "e2f7e8aa3ace307cf0771c620b3abb6e137ef93f",
      "parents": [
        "c18e7e73158f794064fed5017c6c1c9a288673bd"
      ],
      "author": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Fri Jun 24 09:56:27 2011 -0700"
      },
      "committer": {
        "name": "Pannag Sanketi",
        "email": "psanketi@google.com",
        "time": "Thu Jun 30 15:41:19 2011 -0700"
      },
      "message": "Minor fix in SurfaceTexture\n\nChange-Id: Ic859715becf3e6d5107bd8beb8c577034d00ec52\n"
    },
    {
      "commit": "272aaa382f95c38221739f2287c29e414523a5cc",
      "tree": "53b22ed4bd672af3edc9fc9d3e1c5d63661a37b1",
      "parents": [
        "5231b0af515db51c722d4764ecf9412c145c93b6",
        "439863f3b3e725b5de1cba4940a21900369961c0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 29 16:15:56 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 29 16:15:56 2011 -0700"
      },
      "message": "Merge \"SF transactions are now O(1) wrt IPC instead of O(N).\""
    },
    {
      "commit": "439863f3b3e725b5de1cba4940a21900369961c0",
      "tree": "90ab56432c2436c3392b02ba08876c86796a36ef",
      "parents": [
        "f1bfa84ccf61cad2b6ea9f2e6a612a54a38b79bc"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Jun 28 19:09:31 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jun 29 15:05:41 2011 -0700"
      },
      "message": "SF transactions are now O(1) wrt IPC instead of O(N).\n\nChange-Id: I57669852cbf6aabae244ea86940a08a5a27ffc43\n"
    },
    {
      "commit": "9e1fb41b4fbfbd190560cf48f24939703a13eca5",
      "tree": "8621dd8dd0a0e32e8883dbdaa02b1610018b05c4",
      "parents": [
        "5c226b835812630d9dc67ca02ca03dddaee5b6c7",
        "aa11965bd55b8344104ebb0c9ebf39ee0cced03f"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Wed Jun 29 13:48:39 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 29 13:48:39 2011 -0700"
      },
      "message": "Merge \"Add a linear transform library to libutils\""
    },
    {
      "commit": "aa11965bd55b8344104ebb0c9ebf39ee0cced03f",
      "tree": "f5ccad9b1e3f186483349b1fd03b16e230ec71e9",
      "parents": [
        "fa487ca830cb150be5822d8d73c3d832672f7108"
      ],
      "author": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Tue Jun 28 17:43:30 2011 -0700"
      },
      "committer": {
        "name": "Jason Simmons",
        "email": "jsimmons@google.com",
        "time": "Tue Jun 28 17:43:30 2011 -0700"
      },
      "message": "Add a linear transform library to libutils\n\nChange-Id: Icdec5a6bebd9d8f24b3f335f8ec8b09a5810a774\n"
    },
    {
      "commit": "cd8cd351d48e29760eb372ad0988a672413757d3",
      "tree": "1d410233d76166b2a68eb33fcf0d899e4c3b0909",
      "parents": [
        "8229b467fc32e4c8dc1cfc65865b85c49ba3de6f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 27 16:30:55 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 28 17:35:02 2011 -0700"
      },
      "message": "Add extended metadata buffer support by defining different types of metadata buffers\n\nChange-Id: I6aa6b5da004c240c9986f6b9036950e234c8bd42\n"
    },
    {
      "commit": "cde732451070479dd999583f602693c36cdc65c7",
      "tree": "70bae023bad6b15d1edc061ac5a7af09acac2334",
      "parents": [
        "61b9fae046bd766dc951262f728a12784e5ec6ff",
        "068dbbf7ee7ed22a4595e7afaa2be6d57c2774f6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 14:49:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 28 14:49:35 2011 -0700"
      },
      "message": "Merge \"Support for writing output data to a provided callback function instead of a file\""
    },
    {
      "commit": "068dbbf7ee7ed22a4595e7afaa2be6d57c2774f6",
      "tree": "c67e8b5c84174756c205da41a03a100492e3c80e",
      "parents": [
        "d11eccf3a861fdaa754907a28cc0da554b9aa7b7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jun 27 15:47:56 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 14:44:57 2011 -0700"
      },
      "message": "Support for writing output data to a provided callback function instead of a file\n\nin MPEG2TSWriter\n\nChange-Id: Ie54a5677c7b789a973aa50b7f197c6db238425bc\n"
    },
    {
      "commit": "3cf7cf575138bcbe5b49c32eb4ae401f92e4c8f7",
      "tree": "f4712df1099d1cfa1ccf9f98825a9e84b1e7d258",
      "parents": [
        "d11eccf3a861fdaa754907a28cc0da554b9aa7b7",
        "9fb5976367911d0ab42d296238f0f06d517e867d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Jun 28 12:55:03 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 28 12:55:03 2011 -0700"
      },
      "message": "Merge changes I9fb59763,I8b2c6e00\n\n* changes:\n  SurfaceTexture: consume buffers after err checks\n  SurfaceTexture: change onFrameAvailable behavior\n"
    },
    {
      "commit": "e366f52b1520f13306d5fef1c3c8a2b2c653d935",
      "tree": "3b4fc6abef0e786bddbdd316b5cb19385e3ba321",
      "parents": [
        "84e297238f53f83c9e7de499e711b997d09514e0"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 10:51:41 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 28 10:51:41 2011 -0700"
      },
      "message": "Multiple changes to ACodec/codec tools:\n\nMake sure sf2 does not coalesce input buffers, generalize ACodec\u0027s codec\ninstantiation based on OMXCodec\u0027s list of eligible component names.\n\nSome changes/additions to the \"sf2\" commandline tool\n\nMake surface options consistent with stagefright tool, i.e. use \u0027-S\u0027 instead of \u0027-s\u0027\nNew option \u0027-R\u0027 renders surface-allocated buffers.\n\nAlso fixes a longstanding bug introduced when generalizing from surfaces to native windows that never used surface-allocated buffers in sf2 even when the option was specified.\n\nChange-Id: I59fd533f0f6ef0337ebe2806ddc81a46878eb3ae\n"
    },
    {
      "commit": "84e297238f53f83c9e7de499e711b997d09514e0",
      "tree": "226910c0fe5d20d85a9322d0075e97b7a820fb57",
      "parents": [
        "7654b20e6c517ad7aab04b5361b4821e54424f7f"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Mon Jun 27 13:12:47 2011 -0700"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Jun 28 07:43:27 2011 -0700"
      },
      "message": "Remove native EventRecurrence parser\n\nSwitch over to the new parser.\n\nBug 4575374\n\nChange-Id: If78d8042fb266182900398f7fc464a048c779966\n"
    },
    {
      "commit": "0dd593f22352a0863223fa4ea7e37e926b99282e",
      "tree": "58d445ed41c6aea8184848490a9f47a2aa31a876",
      "parents": [
        "abb04eec06bce358826e4cb6b5f852424ece8005"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 27 16:05:52 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 27 17:42:15 2011 -0700"
      },
      "message": "PermissionCache caches permission checks\n\nThis is intended to absorb the cost of the IPC\nto the permission controller.\nCached permission checks cost about 3us, while\nfull blown ones are two orders of magnitude slower.\n\nCAVEAT: PermissionCache can only handle system\npermissions safely for now, because the cache is\nnot purged upon global permission changes.\n\nChange-Id: I8b8a5e71e191e3c01e8f792f253c379190eee62e\n"
    },
    {
      "commit": "bd5404d0312752e7c8946e8540129f0d2d97bcd7",
      "tree": "abdb05720d7149f0adee32a0f4ae9712cb57d78e",
      "parents": [
        "932e4e613987658383e23fa151c3f5b87d07f028"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Jun 26 18:27:47 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Jun 27 15:45:39 2011 -0700"
      },
      "message": "SurfaceTexture: change onFrameAvailable behavior\n\nThis change alters the conditions under which the onFrameAvailable\ncallback gets called by the C++ SurfaceTexture class.  The new behavior\nis to call the callback whenever a frame gets queued that will be\nvisible to the buffer consumer.  This means that buffers queued in\nsynchronous mode always trigger the callback, as those buffers will\nremain pending until they are consumed.  Buffers queued in asynchronous\nmode will only trigger the callback if there was not previously an\nunconsumed buffer pending.\n\nThe new behavior means that a consumer should perform a draw operation\nexactly once for every onFrameAvailable call that it recieves.  This\nchange also modifies SurfaceFlinger and the SurfaceTexture JNI to\nsupport of the new behavior.\n\nChange-Id: I8b2c6e00961d3d58b11c6af50b555b6e4c5f5b40\n"
    },
    {
      "commit": "f24c4cd0f204068a17f61f1c195ccf140c6c1d67",
      "tree": "8bba9602587565eeb9c475f4ccad2e20727ffd41",
      "parents": [
        "ed9bbf27babc7e90a81b229cade498e931ff3dd2"
      ],
      "author": {
        "name": "Anu Sundararajan",
        "email": "sanuradha@ti.com",
        "time": "Wed Jun 22 15:58:59 2011 -0500"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Jun 27 13:48:51 2011 -0700"
      },
      "message": "MemoryHeapBase: Save and binderize the offset\n\nThe offset that is used in the creation of the MemoryHeapBase must be saved, so\nthat it can be used to recreate the Heap when an IMemory object is passed\nacross process boundary through the binder.\n\nChange-Id: Ie618fb5c0718e6711f55ed9235616fd801e648dc\nSigned-off-by: Anu Sundararajan \u003csanuradha@ti.com\u003e\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "42419ce28a09eb63e29a8fef87e6f5534f41902f",
      "tree": "f4c758095b56ee9257e90acc4050da046783663d",
      "parents": [
        "14f14863c508ff38fb2fe925c89e2bb2228fcffe"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Jun 01 17:22:24 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jun 27 15:44:57 2011 +0800"
      },
      "message": "Add framework support for camcorder zoom.\n\nThe purpose of ICameraRecordingProxy and ICameraRecordingProxyListener is to\nallow applications using the camera during recording.\n\nCamera service allows only one client at a time. Since camcorder application\nneeds to own the camera to do things like zoom, the media recorder cannot\naccess the camera directly during recording. So ICameraRecordingProxy is a proxy\nof ICamera, which allows the media recorder to start/stop the recording and\nrelease recording frames. ICameraRecordingProxyListener is an interface that\nallows the recorder to receive video frames during recording.\n\nICameraRecordingProxy\n  startRecording()\n  stopRecording()\n  releaseRecordingFrame()\n\nICameraRecordingProxyListener\n  dataCallbackTimestamp()\n\nThe camcorder app opens the camera and starts the preview. The app passes\nICamera and ICameraRecordingProxy to the media recorder by\nMediaRecorder::setCamera(). The recorder uses ICamera to setup the camera in\nMediaRecorder::start(). After setup, the recorder disconnects from camera\nservice. The recorder calls ICameraRecordingProxy::startRecording() and\npasses a ICameraRecordingProxyListener to the app. The app connects back to\ncamera service and starts the recording. The app owns the camera and can do\nthings like zoom. The media recorder receives the video frames from the\nlistener and releases them by ICameraRecordingProxy::releaseRecordingFrame.\nThe recorder calls ICameraRecordingProxy::stopRecording() to stop the\nrecording.\n\nThe call sequences are as follows:\n1. The app: Camera.unlock().\n2. The app: MediaRecorder.setCamera().\n3. Start recording\n   (1) The app: MediaRecorder.start().\n   (2) The recorder: ICamera.unlock() and ICamera.disconnect().\n   (3) The recorder: ICameraRecordingProxy.startRecording().\n   (4) The app: ICamera.reconnect().\n   (5) The app: ICamera.startRecording().\n4. During recording\n   (1) The recorder: receive frames from ICameraRecordingProxyListener.dataCallbackTimestamp()\n   (2) The recorder: release frames by ICameraRecordingProxy.releaseRecordingFrame().\n5. Stop recording\n   (1) The app: MediaRecorder.stop()\n   (2) The recorder: ICameraRecordingProxy.stopRecording().\n   (3) The app: ICamera.stopRecording().\n\nbug:2644213\n\nChange-Id: I15269397defc25cbbcae16abc071c8349c123122\n"
    },
    {
      "commit": "138f33bceff0d9ed45fcb806417cdb438544ab4e",
      "tree": "e9c41d0c595a91fa4eff29feea83cb8619c8d54a",
      "parents": [
        "f95d7f546705c9745407c16dbbc08920cde51d54",
        "0904d0af81e8a0a5404d6c03f4dcea02bea8170d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jun 23 21:31:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 23 21:31:33 2011 -0700"
      },
      "message": "Merge \"Add allowSynchronousMode to SurfaceTexture constructor.\""
    },
    {
      "commit": "0904d0af81e8a0a5404d6c03f4dcea02bea8170d",
      "tree": "30ed521b5552efb6baeac987de69ea73e83fcdba",
      "parents": [
        "62250fbcd15dc46fd37341f9843e87585e132f05"
      ],
      "author": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Thu Jun 23 21:21:47 2011 -0700"
      },
      "committer": {
        "name": "Grace Kloba",
        "email": "klobag@google.com",
        "time": "Thu Jun 23 21:21:47 2011 -0700"
      },
      "message": "Add allowSynchronousMode to SurfaceTexture constructor.\n\nChange-Id: I54f30a3c16bbe6b813f3bcd1d389da5627531304\n"
    },
    {
      "commit": "d35df4412bc2218bb0d22522bd366123b8e6400c",
      "tree": "7ec2de6c24a6d328ac0c031c2b82d3fdf96d6871",
      "parents": [
        "fe35597064cec2a290c0107727000788c336ae31"
      ],
      "author": {
        "name": "Anu Sundararajan",
        "email": "sanuradha@ti.com",
        "time": "Wed Jun 22 12:24:46 2011 -0500"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Jun 23 18:35:24 2011 -0700"
      },
      "message": "Integrating TI OMAP4 Video Decoder\n\nAdded the video decoder component name to kDecoderInfo.\nSet the quirks for the video decoder.\nAdd a new color format to OMX_IVCommon.h to denote TI OMAP4 NV12 color format.\nAdded a color conversion routine [ from NV12 to RGB ] for thumbnail generation.\n\nChange-Id: I6b23c36441645ef65ec7406ba262d19f89cf64fd\nSigned-off-by: Devaraj Rangasamy \u003cdev@ti.com\u003e\nSigned-off-by: Sreenidhi Koti \u003csreenidhi@ti.com\u003e\nSigned-off-by: Anu Sundararajan \u003csanuradha@ti.com\u003e\n"
    },
    {
      "commit": "5510a153bf3e02b6b6230e006aaa11e53085d3e1",
      "tree": "36e146b00e0069ba571dfd686828013c5ff055ec",
      "parents": [
        "52da3a43284a07d79580cbac281ad24a9382a4d1",
        "1e1b13e62e38d6efc7cef4b496b3119bd45ee2c2"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Jun 23 16:17:55 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 23 16:17:55 2011 -0700"
      },
      "message": "Merge \"- Public part of the Metadata API. - Modify the media framework test for Metadata.\""
    },
    {
      "commit": "1e1b13e62e38d6efc7cef4b496b3119bd45ee2c2",
      "tree": "7e7979f36b9f18b65548009b62a7e8f18f2aaaec",
      "parents": [
        "0ff6d7ee17de33d314ef726e7506b39c64a3ed35"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Jun 23 10:39:51 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Jun 23 15:28:36 2011 -0700"
      },
      "message": "- Public part of the Metadata API.\n- Modify the media framework test for Metadata.\n\nChange-Id: Ib8fa4991f114e1bb88a17ca662844b9b8e1d0faf\n"
    }
  ],
  "next": "0694cfe49a889788e185a265deed0c231fe31f4b"
}
