)]}'
{
  "log": [
    {
      "commit": "0e35c78d25a8df8b3bde566ad6c474f9df242ea4",
      "tree": "257814957ad7bdfc43cb5527c4a22e9e25b88d6f",
      "parents": [
        "d0116b680a2c194eb3b8713a230151bfb32a6aef",
        "05ce0941649c3cdd7f8034496719e607977fc005"
      ],
      "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": "05ce0941649c3cdd7f8034496719e607977fc005",
      "tree": "1e507788895e36bcd18b37cd109ec90e7c46d90c",
      "parents": [
        "2c5423da4e3b23c0381952da2671f05a7501f9af"
      ],
      "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": "b8a9e15c2aa3d317834555244a90f184b46e1dcb",
      "tree": "2ef6393df0109ee6f4e20b75b82e6a632b85de79",
      "parents": [
        "2b9c5d8a89065ab18e58d79ae65a81267b248e1c",
        "4da5660eee240cea3f7411a0ed5a1120bccdeb45"
      ],
      "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": "4da5660eee240cea3f7411a0ed5a1120bccdeb45",
      "tree": "89bbeb1d89c09a97aaf87a7d00f4e88df8b13ebf",
      "parents": [
        "9fe4459797db3ee9b18e613ef3c377a9401acd37"
      ],
      "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": "539340fe2c3dfd33564c1ddc9ee5c2884aa56874",
      "tree": "a45a6b702449ba71b59315c20e80cc07979ac773",
      "parents": [
        "dae908a391222710d26692ee5fcf307fd96197a2",
        "e688257456c315cbd2d5fd4f32bd52eac0b98195"
      ],
      "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": "22cb204cbb9fadd0a909e0e918c0cb19c60da740",
      "tree": "a3f242a5441545fcc1c4ec2b56ee8dd424978b80",
      "parents": [
        "1fc756da434441708eb557a22363eea7f41f3f73"
      ],
      "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": "e688257456c315cbd2d5fd4f32bd52eac0b98195",
      "tree": "d70df4feb8c2adca64eee969fb273d0f072ffa13",
      "parents": [
        "1aabd124bc642e61f491df74c1efb4e18b34c63a"
      ],
      "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": "557b7092cc9a1dfe766ac3d0421e1049c653c4ae",
      "tree": "4434bf618807f7e1c6000fb926d85a89ad2d6600",
      "parents": [
        "defa12e95b8d25db5f3e9a044e83d6fe680b67a3"
      ],
      "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": "3ced044154945f9d60983032278e00fe28f4ab1b",
      "tree": "84dc5de0042328edd75dc1a24982e7f3af9f92c9",
      "parents": [
        "16296180984756e631611005179f42865af35621"
      ],
      "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": "d84fd7927eaf70fb7b9a55dd6c2adccfa66009ac",
      "tree": "e6051a1e65e85f1d6db1a1cd50b4c55b7153e9c4",
      "parents": [
        "7a9effebcf84dcbd820cafe6886a5562cb3d8e22"
      ],
      "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": "6752ec80b25cb1f39507d18745c7e62323772cda",
      "tree": "a60b43960ba842d1a853337080a568941de42df4",
      "parents": [
        "246ae5011c385d100f73b441ce7e47a6ea7e33ba"
      ],
      "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": "422e3f749697ee264ea377bf92e6b65912ba7978",
      "tree": "0850381095975f3b8aeaa23e9aa6dbe11ad2ec86",
      "parents": [
        "aba367eea4792a1d3778061181e3a38e188f4f06"
      ],
      "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": "f6d08b95289ec9069fa2f3789dbfc4748dbb4883",
      "tree": "11bd4321dc42756d85d49786196ffb43536318ce",
      "parents": [
        "7466b0fdfe6ae07e56053d70db414b7a2f792400",
        "43a3d91dff059034d699c9612dab68b8d9cdf556"
      ],
      "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": "c74b93fdf3ddb6fdab7878edab4d304fb14917f9",
      "tree": "96a1db2deffc309c16b63d5e4dc1fda165b6ed8e",
      "parents": [
        "a4418e0fd94f27c0b40abe17d42af0880cb3effb"
      ],
      "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": "053b02df2d350466a2226a90709e50fedef54747",
      "tree": "28a844d96bfc2fdd0e3714305a8cb86e977a1d90",
      "parents": [
        "fc4ba1141570fab7734e53586dc3d6f3afde10de"
      ],
      "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": "7616178271e95f009452a21ea45e7225997dc27a",
      "tree": "09f0833599cd31c29010cc678b05224b04aef882",
      "parents": [
        "e7a0bc0126e3d4cb6ec268ed847f5ea4cc70f7c6"
      ],
      "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": "e38a2cba16f2161a3a41521c84325cc5c24d9668",
      "tree": "f685b0a22c9237e5d84717b86aaf4797446b0348",
      "parents": [
        "e30d6f1588a47fa4ad57a1de7bb28a7a0c58dedf"
      ],
      "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": "6ff9b812abe388478bbaba118a580c3f4a30c863",
      "tree": "419eae586adb35add8ac2a88227564830a6ddb3d",
      "parents": [
        "72de151fdb82e5e010c3461e37e492b8cce9b44a"
      ],
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "eaa5d8f9c0117bdaa20fd0a57921156bb0c06345",
      "tree": "c13a068713110273e182b34406cb4ec144fc1756",
      "parents": [
        "8969d9924c662ab4cdacc342bbdc33756db730be"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue May 31 16:08:47 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Jun 22 11:32:19 2011 -0700"
      },
      "message": "Timed text display format support:\n1. Extract 3GPP global format descriptions\n2. Extract 3GPP local format descriptions\n3. Define data structure (TimedText) for applications to\nretrieve the format metadata\n\nChange-Id: I6eac2a78df29ee15beee456656331fdd83b24e8e\n"
    },
    {
      "commit": "922261deab46b93641eadd9bc337fa72f8a5d734",
      "tree": "9728dbd9e79c18efd5bc491039d7df714b0dc4d3",
      "parents": [
        "82f0a85c3ba81cb6932d956c1c8cc5a99e89052a",
        "290029d19a9d314e925b73e19453ab0497602f80"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Jun 13 19:43:59 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 13 19:43:59 2011 -0700"
      },
      "message": "Merge \"audio: update for audio/audio_policy header names/locations\""
    },
    {
      "commit": "290029d19a9d314e925b73e19453ab0497602f80",
      "tree": "832511818ed878842cefe5459b12aef6423b4cb1",
      "parents": [
        "10e78c9df09378c7d1ef1be9a8c42659ccce1eb7"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Jun 13 18:16:26 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Mon Jun 13 18:16:26 2011 -0700"
      },
      "message": "audio: update for audio/audio_policy header names/locations\n\nChange-Id: I36c49352eee57559403cd1597f56a8485a360289\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "4108b1edc61ef91c63bc94a699f9a95e65c3e684",
      "tree": "8095c0b5606ecfa61301539c7f66255ada3a67bb",
      "parents": [
        "622d5441975fa16636d3304d42d27659af14cb49"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 07 19:45:54 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 13 17:06:29 2011 -0700"
      },
      "message": "Add B frame support for MPEG4Writer\n\no requires the support of negative ctts duration values (ctts version 1)\n\nChange-Id: Ib14130c9359c3bff3c76f20a7380d468a065dcaf\n"
    },
    {
      "commit": "fddf5d9f48d0864a30fcc2706616f6aa6cb06c61",
      "tree": "4cf6b1091a3914612f9e3532d185624c62800464",
      "parents": [
        "b19fcf3e9c6b9c8c2885b9ac7f7f836a0e2d6d22"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jun 07 15:52:25 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jun 08 16:04:26 2011 -0700"
      },
      "message": "Make dumpsys(media.player) more useful by having AwesomePlayer populate it.\n\nChange-Id: I12ba7d542331a8293d67a0d47378b8be4f777759\n"
    },
    {
      "commit": "38c07129c42222a764d784327d0a63f4cfc1331b",
      "tree": "88d63c9b0c1e8747cfee86ac1d639b546cc85620",
      "parents": [
        "5f8d23e7f2d74be34080f091e92437f5722c749f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 03 12:43:48 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 03 12:44:48 2011 -0700"
      },
      "message": "Move OMX_QCOM_COLOR_FormatYVU420SemiPlanar definition to OMX_IVCommon.h\n\nChange-Id: I5cbc7246a63301fa7ff735fa3d6512e940608d2b\n"
    },
    {
      "commit": "443287068bec5ca73b76a08e499da6f0de3b670a",
      "tree": "e02f7e1d2797bdd61e7a6532c222f4b422082f17",
      "parents": [
        "50e51b81b1cf2778b99682d918ec1288a3a2593e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jun 01 15:27:20 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 02 10:13:52 2011 -0700"
      },
      "message": "Do not call getEstimatedBandwidth if the streaming is not HTTP-based\n\nChange-Id: I4ab6c57e5b2b989676b8dfbb98402d10a5752261\n"
    },
    {
      "commit": "e46a86fcb6a0849fc05c4cade6cb94aad0325295",
      "tree": "6e56bb08bc09a3e73d1b7e6b0cab5d7d226d6463",
      "parents": [
        "2225e4b7049fa3fb9d39a068b8268b63c952d7c1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 01 15:20:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 01 15:20:35 2011 -0700"
      },
      "message": "Revert \"Use AudioTrack::event_type not int in callback\"\n\nThis reverts commit 2225e4b7049fa3fb9d39a068b8268b63c952d7c1"
    },
    {
      "commit": "2225e4b7049fa3fb9d39a068b8268b63c952d7c1",
      "tree": "e4acaa9a05334d2e930677a5f5adf8314d1706c9",
      "parents": [
        "2978cef0a77550ea3a364ffbf42fc43f2029070e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 04 17:18:16 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 01 13:50:23 2011 -0700"
      },
      "message": "Use AudioTrack::event_type not int in callback\n\nChange-Id: Ifefc708d46874e04fd0d01cb6e2d43b987ee796c\n"
    },
    {
      "commit": "d0bbdb02b2c56b0227d82751a29ccd99d11ea12f",
      "tree": "5504cd8f97c06c46d0772a065173355b1ca460d8",
      "parents": [
        "829de65b9aa8d59cff7d8b4acd6c89682a1952a5",
        "5439223b5633679edcc255651e7062046004d75d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 01 11:04:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 01 11:04:15 2011 -0700"
      },
      "message": "Merge \"Use channel mask instead of channel count for track creation\""
    },
    {
      "commit": "5439223b5633679edcc255651e7062046004d75d",
      "tree": "683090bec6f1a9a0fe95609fe5becf54aa3b1f8a",
      "parents": [
        "3a4b8bb6756120cfdef2faa7c1966963ef011faf"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue May 24 15:53:33 2011 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 01 10:55:29 2011 -0700"
      },
      "message": "Use channel mask instead of channel count for track creation\n\nRecord and playback objects (resp AudioRecord and AudioTrack)\nare created using a channel mask, but this information is lost\nin the mixer because only the channel count is known to\nAudioFlinger. A channel count can always be derived from a\nchannel mask.\n\nThe change consists in:\n- disambiguiting variable names for channel masks and counts\n- passing the mask information from the client to AudioFlinger\n and the mixer.\n- when using the DIRECT ouput, only verifying the format of\n the track is compatible with the output\u0027s for PCM.\n\nChange-Id: I50d87bfb7d7afcabdf5f12d4ab75ef3a54132c0e\n"
    },
    {
      "commit": "a9d0febdd0f0502ec4f29f77b742e11ceae8a30e",
      "tree": "3b2e54ef6951b8adadd0640b5428f1aad5a18d83",
      "parents": [
        "da188fbe4b4d7b91e1440afe5a1279d0fd7a91eb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 25 19:37:03 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 31 15:23:25 2011 -0700"
      },
      "message": "Send estimated bandwidth value as informational event when cache fetcher pauses\n\no Application can make informed decision about the available network bandwidth\n  when cache fetcher pauses.\n\no Application can also adjust how frequently the bandwidth is estimated within\n  a range from one second to one minute.\n\nChange-Id: I90068001343e79da1886de03c565537787e1580b\n"
    },
    {
      "commit": "8f18cf55747b8ab138661a841cbb1b2bd19f3d97",
      "tree": "42f1d38ba83bec5eb4ddd08823c456b506f242c0",
      "parents": [
        "e8e833fbe8faaa0d49de517040bf01d18c7b9330"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 27 17:51:52 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 27 17:51:52 2011 -0700"
      },
      "message": "Removed interface to load audio effects libraries\n\nRemoved unused functions allowing dynamic loading of audio effects libraries\nfrom effects factory API.\n\nChange-Id: I06cc5a51dc10aca87c7a8687bbb874babd711eca\n"
    },
    {
      "commit": "0fb66c2b83084a16989afaf949d0101cb6505398",
      "tree": "82955066a3cd98e23ecfb4b33ba0beec715331d2",
      "parents": [
        "03edf6b36469a504bd17a5010c788c8d4e44085c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 17 19:16:02 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 27 15:15:00 2011 -0700"
      },
      "message": "New effect library API\n\nMoved and renamed media/EffectApi.h to hardware/audio_effect.h\nModified the effect library API to expose a library info structure\ncontaining an interface functions table.\nAlso removed enums for audio channels, audio format and devices\nfrom effect API and use values from system/audio.h instead.\n\nModified effects factory to support new library interface format and\nload libraries and efffects listed in audio_effects.conf file.\nThe file audio_effects.conf is first loaded from /vendor/etc and\nthen from /system/etc/audio_effects.conf if not found.\n\nModified existing effect libraries to implement the new library interface.\n\nChange-Id: Ie52351e071b6d352fa2fbc06c3846686f8c45df9\n"
    },
    {
      "commit": "73a4b2b3be14255f87c4108d4e414b9137da6510",
      "tree": "abcbd4946c4d9c45cea1144f493b06fb5cc7864e",
      "parents": [
        "31beb6db09174da843a4af243842c0d265f02402",
        "eb2f9c193d74c005a0c78e6dbed874809d55fc81"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 26 08:52:55 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 26 08:52:55 2011 -0700"
      },
      "message": "Merge \"Support mpeg1,2 audio and mpeg1,2,4 video content extraction from .ts streams.\""
    },
    {
      "commit": "13bc8cde1c842bea1fa3000a48739a6e22f25a9c",
      "tree": "7f2e05769603e6a58124cf5870d732e24ac735dd",
      "parents": [
        "560e97f8e0cb63a0fa6e88db6badc142a99517d2"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed May 11 11:24:09 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed May 25 17:53:29 2011 -0700"
      },
      "message": "For out of band timed text support (timed text in a separate file).\n\nChange-Id: I9e024a63eb9bf6f839deee3c7766a66e63126c96\n"
    },
    {
      "commit": "eb2f9c193d74c005a0c78e6dbed874809d55fc81",
      "tree": "01d0f911bf55af568dcef8e1bbb820f1a1f5275d",
      "parents": [
        "1b9b34adf704c2c059ca439ace0c0b67c8c272f3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu May 19 08:37:39 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 25 15:57:07 2011 -0700"
      },
      "message": "Support mpeg1,2 audio and mpeg1,2,4 video content extraction from .ts streams.\n\nChange-Id: I9d2ee63495f161e30daba7c3aab16cb9d8ced6a5\n"
    },
    {
      "commit": "f84e4a657f2f8b5af085bb9694f1fca837d7cd1f",
      "tree": "753b197646c1d782e2d82304d3b9f98dfcc3c55d",
      "parents": [
        "52ee3eb4ebf108e593cc85b79d0aa1f651c69e35"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 17 22:39:06 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 17 22:39:06 2011 -0700"
      },
      "message": "Revert \"Add const to the finders method in MetaData.cpp\"\n\nThis reverts commit 78fed171d9d62b25aa846d7373a7040e3fd2241e.\n\nConflicts:\n\n\tinclude/media/stagefright/MPEG4Writer.h\n\nChange-Id: Ie6f497f67a473ad95b50bb949c1aa49e1804bac3\n"
    },
    {
      "commit": "0f32fb3ecfdfaa03acf880a356629d43da3fe2fe",
      "tree": "86fdf143c86349766715c0e2c3a4de014ec8003d",
      "parents": [
        "38442b6884fe7b6289d688b64a3c410dd3c0ac18"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat May 14 07:22:40 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 17 12:21:57 2011 -0700"
      },
      "message": "Make track informational event optional, depending on system property\n\no also add a track informational event to return the encoded data in kilo-bytes\n\nChange-Id: I7c383360d57048c8a3606d0b8141ba53e4f4b224\n"
    },
    {
      "commit": "13a33169b71f447e7dbb3e67bcf5c47f3cce8cce",
      "tree": "9e6201a77f9bf536c5bf94b8621e6fef00c074f5",
      "parents": [
        "bfb6791934dae9888dc017f1057f5b9cf12f35d2"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 09 16:56:25 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat May 14 07:18:43 2011 -0700"
      },
      "message": "Support platform and camera dependent recording start time offset\n\nrelated-to-bug: 4390777\n\nChange-Id: Icb52973ad4ac716f04fb103ef527915a966d06d5\n"
    },
    {
      "commit": "bfb6791934dae9888dc017f1057f5b9cf12f35d2",
      "tree": "35e63128061920b9a7ab55d86d8a59a3c2a5ef53",
      "parents": [
        "bf9f408b5917734ac3c07c722cc41563e04f1440",
        "a403a938e9308b47f470815e49a33a7060abc69b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 13 16:31:10 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 13 16:31:10 2011 -0700"
      },
      "message": "Merge \"Add support for platform-specific recording start time offset\""
    },
    {
      "commit": "987ab4833ecbafbdf750eb1b04e43693433c4783",
      "tree": "8c104cf0f33d66a7785cd6c94e798881386200a0",
      "parents": [
        "ae7bc6529a40cdc25c65c28b76266e0c873861c4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 11 19:09:25 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 13 16:29:19 2011 -0700"
      },
      "message": "Support for storing geo information in the recorded mp4/3gpp file.\n\no Geo data (latitude and longitude) is stored in udta box\n\nChange-Id: I76e4aeb741c4b339f3753d3d28190151f3ea4919\nrelated-to-bug: 4260295\n"
    },
    {
      "commit": "7d334602168523e3baf3aab92310c566841ca035",
      "tree": "ac6fb5ed4525dbffa87cec597271163e3323ab53",
      "parents": [
        "65f47d88107b2e34e4bab1f5208bff3f73ce4e8a",
        "eea8c02bc8361be7807be969f24abeadf482fa19"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri May 13 14:02:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 13 14:02:50 2011 -0700"
      },
      "message": "Merge \"Add one more DRM error code. For bug 4422428.\""
    },
    {
      "commit": "eea8c02bc8361be7807be969f24abeadf482fa19",
      "tree": "bbaff4a2653f8606bad980b202f13b86d9be59ec",
      "parents": [
        "01defe403f3705ac5802e392ee18a78737c51fcb"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri May 13 11:43:11 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri May 13 13:53:15 2011 -0700"
      },
      "message": "Add one more DRM error code. For bug 4422428.\n\nChange-Id: I4e333f474c96c0e0f162dde4013ad32b336bebd6\n"
    },
    {
      "commit": "34bb419e5946ab28112e9e27a4d1b3928d31e0e2",
      "tree": "3186b2ce206a101b19285660af602ec66bdbc831",
      "parents": [
        "b856f43ea7a3a5261a93e432e5ea80005e972530"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed May 11 14:15:23 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Thu May 12 14:09:57 2011 -0700"
      },
      "message": "update for new audio.h header location\n\nChange-Id: Ic4c62c4037800802427eb7d3c7f5eb8b25d18876\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "4b3913a3e43d3180b21d77cc2f717b446350354f",
      "tree": "aaf732cc46e6de836182cb03b1663c438d6127c8",
      "parents": [
        "4fbb31383004417b9e059ed9f51eb92c81c2773b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 11 14:13:42 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed May 11 14:24:58 2011 -0700"
      },
      "message": "Squashed commit of the following:\n\ncommit c80992e419ed567abef451042f09c4958534b90d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 11 14:00:07 2011 -0700\n\n    Support for the mp3 audio decoder as a software OMX component.\n\n    Change-Id: I66e10c4d0be4c3aecdef1c21b15a2c7359ceb807\n\ncommit a358d0e1bf2a88897887445f42ccdda0f5f2f528\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 11 13:11:23 2011 -0700\n\n    Support for G.711 alaw and mulaw decoders as software OMX components\n\n    Change-Id: Ia5c76c02cb83a9f94ce39a27b2251e5880218f03\n\ncommit 79088b9c9a5c8b8c97ea66cb4f90a2b0f0d34553\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu May 5 15:43:32 2011 -0700\n\n    Instead of using an RGB surface and conversion yuv420-\u003ergb565\n\n    convert from OMX_COLOR_FormatYUV420Planar to HAL_PIXEL_FORMAT_YV12 instead.\n\n    Change-Id: I8c4fc3c54c963f0d4ba6377f3c4ab4e0013152e5\n    related-to-bug: 4394005\n\ncommit 69469d3bd84425777b11b9fc938c5e0c61af26a7\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 10 15:46:42 2011 -0700\n\n    voip mustn\u0027t link against libstagefright.so\n\n    Change-Id: I4d0ba9a8b9dc9380b792a1bd04bcda231964862c\n\ncommit 2a9a9eeeeeb36ae3a9e680469c3016d509ff08c3\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 10 14:37:10 2011 -0700\n\n    Remove most non-OMX software decoders by default\n\n    Change-Id: Ic56514bc1b56b8fa952e8c4a164ea7379ecb69d0\n\ncommit a4de62c37b335c318217765403a9fb282b20a216\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 9 16:50:02 2011 -0700\n\n    Conditionally build the old-style software decoders.\n\n    Change-Id: I5de609e1d76c92d26d6eb81d1551462258f3f15f\n\ncommit 5d8b039f9449dc3dad1e77c42c80cc0b54b0c846\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 9 16:13:12 2011 -0700\n\n    Support for MPEG4 and H.263 video decoders as soft OMX components.\n\n    Change-Id: I5e3a4835afab89f98e3aa128d013628f5830eafe\n\ncommit b25a1bfbeb0ff6e62e1cc694ce2599c91489c7d0\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 9 11:49:10 2011 -0700\n\n    Boost Soft OMX thread priority, fix timestamp handling in vorbis Soft OMX decoder.\n\n    Change-Id: I68d26d4999f06fcc451d69e5303663fab0cba9e8\n\ncommit c0574362f8dc3319ce84d981097867062a698527\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 9 11:28:53 2011 -0700\n\n    Support for the AMR decoders (NB and WB) as Soft OMX components.\n\n    Change-Id: Ia565f59833fb52653e23f26536e7e41fc329a754\n\ncommit 3e5575a8f0e27a490cb7bde77bd9456087837f08\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed May 4 13:41:25 2011 -0700\n\n    Signal an error if the aac decoder failed to initialize from codec specific data.\n\n    Change-Id: I01da7831bdf722edd7d6dc5974486daa2cf2b209\n    related-to-bug: 4272179\n\ncommit f94aeaa9886e772ff4823e671ed237096649f4af\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 3 13:07:38 2011 -0700\n\n    Software OMX nodes don\u0027t (yet?) support native_window mode.\n\n    Change-Id: I7d9ca9164ef4abf66b573ca21dba12d672f8b12d\n\ncommit eefdfabac8dc659e00daa56da69aea705c49cb67\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 3 12:57:16 2011 -0700\n\n    Fixing the OMX tests to refer to appropriate files from test content.\n\n    Change-Id: I5b61c3498749bfb876abbd3946a5132356e3f6ff\n\ncommit f31b7326aef14b6a1b7946520a9688f092e844d5\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue May 3 11:08:38 2011 -0700\n\n    Soft OMX components are now dynamiclly loaded/unloaded, not directly linked against.\n\n    Change-Id: I1e2ecfbfab67a8869886f738eaf0c7b3c948b6d9\n\ncommit b7f0343879e4df06f0a1c9bfece24df557954e2f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon May 2 15:58:36 2011 -0700\n\n    Support for the AVC software decoder as an OMX component.\n\n    Change-Id: I13c12df435ba4afbd968a9fc659f66b91c818bc2\n\ncommit 5bb9e616d6c8e1b13d531fe996b9a9affdfb2977\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Apr 29 12:05:37 2011 -0700\n\n    Fix Vorbis OMX decoder\u0027s component role.\n\n    Change-Id: I5e871e5e11b3f951c93590210e63fd7987c467b5\n\ncommit 089c91f2333062e196c7afd5fb0ca914878aa474\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Apr 29 12:05:18 2011 -0700\n\n    Support vorbis_decoder OMX testing.\n\n    Change-Id: I1985be178a12ae3f8768bc72067d9236238be170\n\ncommit 56e241fa36fc37219bc536b823bdc2ab82dc1fad\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Apr 29 12:01:46 2011 -0700\n\n    SoftVorbis OMX component now respects the number of valid frames per page.\n\n    Change-Id: I82a117a064d9b083fc58a54ad900a987a763ef03\n\ncommit fcd618ec520c376fdb78f4cbb44b8d9f5d213e2b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Apr 29 10:59:38 2011 -0700\n\n    Support for the vorbis audio decoder as a soft OMX component.\n\n    Change-Id: Iaeb057e58ca306d3dce205c0445b74d5aefef492\n\ncommit d1fcc3203fc8003ad79c6e96b3a1fc4261743f16\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Apr 29 10:07:50 2011 -0700\n\n    VPX decoder now properly resizes buffers after a port settings change.\n\n    Change-Id: I110749a31b6cba087891d8e5dfe420830bdbf831\n\ncommit 35c7168243cb69849d88911144a2c7fdfed5c54e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Apr 28 13:23:34 2011 -0700\n\n    Support for the VPX video decoder as a Software OMX component.\n\n    Change-Id: Ic345add2d6d768d4af631160153f2e9b97fcea71\n\ncommit 923b2534b4211fc5405377b5190bfa6f2dd27f32\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Apr 28 11:34:40 2011 -0700\n\n    Table-based registration of soft omx components.\n\n    Change-Id: I7f45f0fa5b3a7950776e69c66349731f7674e937\n\ncommit 04a88f3edb2266a463da9c4481b80178be460902\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Apr 28 11:22:31 2011 -0700\n\n    Apparently OMX_GetParameter is valid in any state other than OMX_StateInvalid\n\n    OMX_SetParameter is still constrained to OMX_StateLoaded or a disabled port.\n\n    Change-Id: I1032d7cf4011982d306aa369d4158a82830d26fb\n\ncommit 9d70ca68445e7c40f5c9b2d12466e468f514de88\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Apr 27 15:03:18 2011 -0700\n\n    Use the new soft OMX aac decoder for HTTP live playback.\n\n    Change-Id: Ifbcfb732a9edb855cb46b49f6d0ac942170ee28f\n\ncommit 213fe4a10ea93cce08e8622dc3908053f29878a1\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Apr 12 16:39:45 2011 -0700\n\n    Foundation for supporting software decoders as OMX components\n\n    Change-Id: I7fdab256563b35d1d090617abaea9a26b198d816\n\nChange-Id: I83e9236beed4af985d10333c203f065df9e09a42\n"
    },
    {
      "commit": "a403a938e9308b47f470815e49a33a7060abc69b",
      "tree": "38cd5ea3eba92df8b9ab609f02b0ead73835a69e",
      "parents": [
        "bb40896e6641eb3df568042dfc169ed2013e5b0d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 09 18:49:31 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 10 10:32:19 2011 -0700"
      },
      "message": "Add support for platform-specific recording start time offset\n\no This start time offset is used in the media framework to eliminate\n  the recording sound in the recorded file.\n\nChange-Id: I97926a74f0743b8a4f985d51334e8d1486a318ea\nrelated-to-bug: 4390777\n"
    },
    {
      "commit": "3aea037dd8c47fd5906b0d8409da7e7243fcb7d4",
      "tree": "9f7a975d8067e5bba38ff12729ac308d530614f6",
      "parents": [
        "9dd0cb89771adbe50fe0cf079280c29964f0971a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 06 12:19:04 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 09 17:03:35 2011 -0700"
      },
      "message": "Add send session recording summary report to application\n\nChange-Id: I9c63ddae432f0c93486c39776ed0a058a8649602\n"
    },
    {
      "commit": "78fed171d9d62b25aa846d7373a7040e3fd2241e",
      "tree": "1d9a5d78b1ebe792b1fe1f0caffc714b4f22f5b3",
      "parents": [
        "ed742306b3d24ba1c2ca3fea0cc2ada8534a18b0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 09 11:36:53 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 09 11:36:53 2011 -0700"
      },
      "message": "Add const to the finders method in MetaData.cpp\n\no also fixed the MPEG4Writer writeFtypBox() to take a const pointer to MetaData\n\nChange-Id: Iaecdbe6aeab345f6dc72aac0d19f9704b6e0d28a\n"
    },
    {
      "commit": "ed742306b3d24ba1c2ca3fea0cc2ada8534a18b0",
      "tree": "7b3623c4782e922362b872785ae9d5b8efc4e21e",
      "parents": [
        "15dd5c168bbf947c760859374cb5e07e5399cd11"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 06 11:27:59 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 09 11:31:33 2011 -0700"
      },
      "message": "Add end of recording summary track info\n\nChange-Id: I2fcf589e70db225776ef7c8d0f28505ceb824c45\nrelated-to-bug: 1854633\n"
    },
    {
      "commit": "7a6cea40b256cfd2e903a1c13daa5698ae7ce348",
      "tree": "e8e64905198a3137672475023437550a074c05c9",
      "parents": [
        "9aabb95781bee6a44684a6f6feb155e115d24983"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri May 06 16:55:39 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon May 09 10:49:17 2011 -0700"
      },
      "message": "Refactor MPEG4Writer::writeTrackHeader() method\n\no most of the mp4 file boxes has its own method now\nTODO: remove some of the duplicated code for esds box, for instance.\n\nChange-Id: Iae3dbb2410b79bc79aaee081b80569d339993c47\n"
    }
  ],
  "next": "f84bfabe0d5d92956a1ba2896beb0e0d4e1e3106"
}
