)]}'
{
  "log": [
    {
      "commit": "4b85d1750153085fe5d076b67802dfb1ea2bbb13",
      "tree": "207cba1b821ba6c22bfc11e7ae9096e74608f558",
      "parents": [
        "afcedc9e6f17d8213d9bd8f6c36643dcc816d0ef"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 20 14:20:59 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jun 13 15:51:35 2011 -0700"
      },
      "message": "unify SurfaceTexture and Surface\n\nAdd the concept of synchronous dequeueBuffer in SurfaceTexture\nImplement {Surface|SurfaceTextureClient}::setSwapInterval()\nAdd SurfaceTexture logging\nfix onFrameAvailable\n"
    },
    {
      "commit": "a0b1d4b161599c2bb2a47119e50c51e75bbe980e",
      "tree": "806d5dbe250fbd8069bff8bcafffc730736fef8d",
      "parents": [
        "26adde897188059057b3ffcfde1d60171fc6888c"
      ],
      "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": "6e49bd393f263bd17a65eb5c1a0e649933c78504",
      "tree": "d785db5e5a82727a2403c2763e6aa7d44119209e",
      "parents": [
        "5e7271d6e24efb891e0de141a06228c99866f49f",
        "0c08325b66b74e1353d84662c684e4380bb8292f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Jun 07 04:05:35 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 07 04:05:35 2011 -0700"
      },
      "message": "Merge \"Improve android.hardware.Camera.Area javadoc.\""
    },
    {
      "commit": "0c08325b66b74e1353d84662c684e4380bb8292f",
      "tree": "ac015cda54191bb8dbf38d06cddff448a2905fbe",
      "parents": [
        "158b194da537c18a6ad1d7ef3cd63c87b2310269"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Jun 07 18:23:14 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Jun 07 19:00:03 2011 +0800"
      },
      "message": "Improve android.hardware.Camera.Area javadoc.\n\nbug:4553469\nChange-Id: Iae88af354fee4925cb7978572c27f6dd5595ca59\n"
    },
    {
      "commit": "5e7271d6e24efb891e0de141a06228c99866f49f",
      "tree": "558d5859f9964e4ee7e9e0d2cc1702b98aad437d",
      "parents": [
        "5ffc7628f0efa122207eec86473c3e23dbd17445"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Jun 06 16:36:05 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Jun 06 18:04:17 2011 -0700"
      },
      "message": "CameraParameters: add PIXEL_FORMAT_RGBA8888\n\nChange-Id: I2780e936f5b4628d506ac4e6947b78ef831fbde8\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "57ca262f8d1c0aabeea294ddb53e4db172fc6bec",
      "tree": "b95d99ce8635f7d8c6c4a2e357e2fd782f36a379",
      "parents": [
        "92a746c3b18d035189f596ce32847bf26247aaca"
      ],
      "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": "92a746c3b18d035189f596ce32847bf26247aaca",
      "tree": "056ed4c354869613bd1f644323b6c90fb65a9ea2",
      "parents": [
        "c6854100cea4fcd0f20cb2ac8235c02d1849b3a1",
        "b33d2ac90cfce0fe6db8c3e979e7ae2bbfc28163"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 02 10:22:50 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 02 10:22:50 2011 -0700"
      },
      "message": "Merge \"Do not call getEstimatedBandwidth if the streaming is not HTTP-based\""
    },
    {
      "commit": "b33d2ac90cfce0fe6db8c3e979e7ae2bbfc28163",
      "tree": "9c0ce3c250ee66779410c79580b37b036486e56d",
      "parents": [
        "d217a8c4632b3e3065f8c2a26b9ce4dc4c97171f"
      ],
      "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": "c6854100cea4fcd0f20cb2ac8235c02d1849b3a1",
      "tree": "f99b0d979380e2208f3d07c56397205c06b38373",
      "parents": [
        "d217a8c4632b3e3065f8c2a26b9ce4dc4c97171f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 01 16:46:29 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 01 16:46:29 2011 -0700"
      },
      "message": "Remove unnecessary level of priority indirection\n\nChange-Id: I942d43973c20a7ace8b0d3f78b4da97e45e996c6\n"
    },
    {
      "commit": "d217a8c4632b3e3065f8c2a26b9ce4dc4c97171f",
      "tree": "36ea6300b9a3e5412d45ddaa5e5d6a38117c30c0",
      "parents": [
        "013b5a67d6f8e12a1b06e74863daec1bee4d99c1"
      ],
      "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": "013b5a67d6f8e12a1b06e74863daec1bee4d99c1",
      "tree": "cb10033d696d75aa6b609f39c19e8b5640f9c2fc",
      "parents": [
        "8a72c54e74eb365971288a81687e5c2aa47963e7"
      ],
      "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": "8a72c54e74eb365971288a81687e5c2aa47963e7",
      "tree": "36ea6300b9a3e5412d45ddaa5e5d6a38117c30c0",
      "parents": [
        "5b1b8a93a07326f1cbc627f09e02988375189e0a",
        "0d255b2d9061ba31f13ada3fc0f7e51916407176"
      ],
      "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": "0d255b2d9061ba31f13ada3fc0f7e51916407176",
      "tree": "4df26e48710542386bddab7a0d1cbfa5d6835ac0",
      "parents": [
        "65580f9adf6c4d98449ad0716488f9fe3869aa5a"
      ],
      "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": "5b1b8a93a07326f1cbc627f09e02988375189e0a",
      "tree": "1da7ba8c401fb96b4de5fab790fba8e51eea78f6",
      "parents": [
        "65580f9adf6c4d98449ad0716488f9fe3869aa5a"
      ],
      "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": "65580f9adf6c4d98449ad0716488f9fe3869aa5a",
      "tree": "71432ddbf09fcc122be1ef5781bbc2d87f725ad8",
      "parents": [
        "e1315cf0b63b4c14a77046519e6b01f6f60d74b0"
      ],
      "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": "e1315cf0b63b4c14a77046519e6b01f6f60d74b0",
      "tree": "c10fd288fd0d0d85c619e7e635a249765202fabc",
      "parents": [
        "a3e73df3b402f1ebdbef7c8a8e3111d852e7bd35"
      ],
      "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": "8d91237333c60c4a6839358109265e8847df23f3",
      "tree": "85f6a3b1c12b1b5785d8889923e72e10f9b71746",
      "parents": [
        "ecc0840163093942f3418aa4b27e9279c187b173",
        "386d609dc513e838c7e7c4c46c604493ccd560be"
      ],
      "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": "965d08ba16ee82bc85f69546360c18e7da907406",
      "tree": "f581723790736b2ded3529c33d16a7b39701fbbe",
      "parents": [
        "162f7d15ac5c8c23d1c3de171239f3a4e6e06b2a"
      ],
      "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": "386d609dc513e838c7e7c4c46c604493ccd560be",
      "tree": "d7352f19380578d525ad4a667e51a66ed84e2d58",
      "parents": [
        "ade8c2d682d4f8c9424dece53e39400c237d22bf"
      ],
      "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": "0b3c6b19b15fc8cab922b1b4d58a51b424c425b3",
      "tree": "5c0602edeaab86dfce2237ca8f6d1e4375a9f8dc",
      "parents": [
        "2cf9c5073ca3342ee52673ad68763fadd2c2be79",
        "fd99e1dda6a46ac3312cacb3bc1b633b2df95df2"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed May 18 08:54:40 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 18 08:54:40 2011 -0700"
      },
      "message": "Merge \"Add auto-white balance locking to the Camera API.\""
    },
    {
      "commit": "2cf9c5073ca3342ee52673ad68763fadd2c2be79",
      "tree": "682303e9249df40e9f77ea4ec2e65a75aa691567",
      "parents": [
        "07ec01904613a0bac32caaa8444b4690998faed7"
      ],
      "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": "07ec01904613a0bac32caaa8444b4690998faed7",
      "tree": "deee18aea572871265d3b2188928b5cfec5b72d0",
      "parents": [
        "dc449831cf73a7f1c0f242d1ba655dbeca01e8f7"
      ],
      "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": "fd99e1dda6a46ac3312cacb3bc1b633b2df95df2",
      "tree": "682bd239fc0a9b66c18aae748d71cd55220349af",
      "parents": [
        "6e9fd1a24da7e9d7cabf0079a4291647154f8e39"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri May 13 10:19:59 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 17 10:52:42 2011 -0700"
      },
      "message": "Add auto-white balance locking to the Camera API.\n\nAdds a new camera parameter for locking auto-white balance to its\ncurrent value. Also adds a function for checking if auto-white balance\nlock is supported by the current platform. Lock semantics match that\nof the auto-exposure lock.\n\nHidden for now.\n\nChange-Id: Id59339a4be84d55c1b0b8473d765b6aa765999b2\n"
    },
    {
      "commit": "86b7f47aa7482424cf8fd248f1315311919be3b0",
      "tree": "ddc0e28c8736a20d20bcd87f652cecf4bc18e7b6",
      "parents": [
        "9b1e4f1a18ac2489e24b4272a0a7ccfd0018efcc"
      ],
      "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": "9b1e4f1a18ac2489e24b4272a0a7ccfd0018efcc",
      "tree": "d8af67ab7fa0bbc023a6c01709cda812e6959830",
      "parents": [
        "07b1bb529a1ae76c46a71b01338c166f9490629d",
        "0f056290cb16763453f18bbef80cde673041dbbc"
      ],
      "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": "07b1bb529a1ae76c46a71b01338c166f9490629d",
      "tree": "2fff6133d9aba0bed0375fd1099edcff609c6763",
      "parents": [
        "b5212db69734962f55e1493d3e696794172ced51"
      ],
      "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": "6b25afcd9df2f1f0cc3ae03bf133f75464910560",
      "tree": "b3f8d9ff7cdd026bafe6b34533fd59b8172f3350",
      "parents": [
        "6708b9a3fb654f5623ba5a696288fdba310a5e1a",
        "5c26937264d9748a3db2a554c188e517523aa31a"
      ],
      "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": "5c26937264d9748a3db2a554c188e517523aa31a",
      "tree": "5150b6449d3fb8af0c2ce1c4cd01f88dac494ab5",
      "parents": [
        "6e9fd1a24da7e9d7cabf0079a4291647154f8e39"
      ],
      "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": "64760240f931714858a59c1579f07264d7182ba2",
      "tree": "5fad3bbdc4f7a19cff980b719edb75577c7f9a4b",
      "parents": [
        "b84d042a1216694e1db6b1fc2b053d348cab5593"
      ],
      "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": "bbba88cb1bdc34705d1477208990a06904c022e7",
      "tree": "16bbeb7300a88bdfe5cb7b2b49b25e627c0505c0",
      "parents": [
        "6e9fd1a24da7e9d7cabf0079a4291647154f8e39"
      ],
      "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": "0f056290cb16763453f18bbef80cde673041dbbc",
      "tree": "8250c642980de9496f6ae88bd1b00f798dba1eb4",
      "parents": [
        "70ccfd44c4bfe95ddecc2df6c3695efc48229d72"
      ],
      "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": "70ccfd44c4bfe95ddecc2df6c3695efc48229d72",
      "tree": "b480777b5b0b7637edd3654c6f46d73f9c705dca",
      "parents": [
        "4650ff0e86f9e815e3152a806a06c700418d071d"
      ],
      "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": "4650ff0e86f9e815e3152a806a06c700418d071d",
      "tree": "cd935b7ff3b644329648f2c3af1278fffe0b720e",
      "parents": [
        "43ec1dfc5dc3934680a52a026c5519ddc51bdbd3"
      ],
      "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": "43ec1dfc5dc3934680a52a026c5519ddc51bdbd3",
      "tree": "a25b647f2d6ca0441043e086aa4ecc95d207bedc",
      "parents": [
        "ae8149b8f534f319b0f0059673bcb60b88ef9f84"
      ],
      "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": "b21c564ce47041f9dd3ab65e36fed57c4937a42d",
      "tree": "6bad8d66e2200f9dcc23e5be8b00734aec7cf66a",
      "parents": [
        "d7be5c5e812ad79d4838737a5e4dd81a8d776a0d"
      ],
      "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"
    },
    {
      "commit": "760943b5e7a09b602aba04ec451e97662f48b0a4",
      "tree": "d73d7dd74e4063b6d6494fdd9f8f71be3c05d89e",
      "parents": [
        "89dc0dffdcbf0999a854a9b1bbea8f56395cc209"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 21 14:29:38 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 04 13:38:31 2011 -0700"
      },
      "message": "Initial check-in for AACWriter\n\nChange-Id: Ia21ca39a404484b2dda25c6101780d2ff11c4623\n\nrelated-to-bug: 4211046\n"
    },
    {
      "commit": "89dc0dffdcbf0999a854a9b1bbea8f56395cc209",
      "tree": "2c5fd3e04f8a4dc89a57967e0379e017cc45b81a",
      "parents": [
        "8ce2364512f7c32c824f5ec5719688830ba72427",
        "7a1e3e81264189e23a1db2b174e1b5a5d4c7d1c3"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed May 04 09:00:15 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 04 09:00:15 2011 -0700"
      },
      "message": "Merge \"Initial CL for the timed text support: - Add support for MP4 timed text - Add API for app to turn on/off a text track - Add timed text metadata(language) in the MediaMetadataRetriever\""
    },
    {
      "commit": "7a1e3e81264189e23a1db2b174e1b5a5d4c7d1c3",
      "tree": "d75e0a639df8f389786d9bdf6c6de1f22729b135",
      "parents": [
        "10d227074b5a67a2e738d72888ece4dd24537c66"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue May 03 15:59:03 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue May 03 16:41:17 2011 -0700"
      },
      "message": "Initial CL for the timed text support:\n- Add support for MP4 timed text\n- Add API for app to turn on/off a text track\n- Add timed text metadata(language) in the MediaMetadataRetriever\n\nChange-Id: I0055beba38ac761627dbcc6d581ae9582d68bb94\n"
    },
    {
      "commit": "8ce2364512f7c32c824f5ec5719688830ba72427",
      "tree": "e9a4d9af9512132c16ae5fdbd888c8f1ceac50a5",
      "parents": [
        "8951a97b1f8462c37e740ea5082eea0445d2c501"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Sun May 01 11:33:26 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 16:40:14 2011 -0700"
      },
      "message": "frameworks/base: android_native_buffer_t -\u003e ANativeWindowBuffer\n\nChange-Id: Idc2eabaa805bb6d308ebb315872623f28d428417\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "8951a97b1f8462c37e740ea5082eea0445d2c501",
      "tree": "8817cddc9d87a872846d4b576bdb96310fa2bd01",
      "parents": [
        "9e626526453f91999bdf3de4c2ec8e55c5d90511"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Apr 14 16:55:59 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 15:49:40 2011 -0700"
      },
      "message": "frameworks/base: switch CameraService to a HAL module\n\nThis patch changes CameraService to load a camera HAL module, instead of\nlinking directly against a library that implements the CameraHardwareInterface\nclass.\n\nCameraHardwareInterface no longer defines the API to the camera HAL.  Instead,\nthis is now in HAL header hardware/camera.h.  We keep CamerHardwareInterface as\na class local to CameraService, which wraps around the new HAL calls.  In the\nfuture, we may remove this class entirely and have CameraService call the HAL\nmethods directly.\n\nChange-Id: I5c61ac40078fc0b50bbac5881a556fe6c8837641\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "9e626526453f91999bdf3de4c2ec8e55c5d90511",
      "tree": "47ddef028c78388ea02fcfd3ae60419e97cffcc6",
      "parents": [
        "10d227074b5a67a2e738d72888ece4dd24537c66"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Thu Apr 14 16:51:21 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Tue May 03 15:49:39 2011 -0700"
      },
      "message": "frameworks/base: include system/core header camera.h in Camera.h\n\nWe define struct CameraInfo in this camera/Camera.h, even though an identical\nstruct camera_info is defined in hardware/camera.h (but not in\nhardware/camera_defs.h).  We may not export struct definitions from the HAL\ninto headers which may find their way into the NDK.\n\nThis commit also renames FRAME_CALLBACK_FLAG_xxx to CAMERA_FRAME_CALLBACK_xxx.\n\nChange-Id: I3e2ddd01d61bf5371ff2fc1a397995e0f1ee11f8\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "10d227074b5a67a2e738d72888ece4dd24537c66",
      "tree": "08f4a0be6c0ab5d794b800fdfcb093202f98a94f",
      "parents": [
        "e0642859a0a12203807c7c2a996a3ea52a399cb3",
        "95fbf2cdccb127bae1f68827564b36290c8de2c3"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue May 03 11:07:33 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 03 11:07:33 2011 -0700"
      },
      "message": "Merge \"Add an auto-exposure lock feature to the Camera API.\""
    },
    {
      "commit": "e0642859a0a12203807c7c2a996a3ea52a399cb3",
      "tree": "83fd8df26789a2d1ed3710797975004ec740391f",
      "parents": [
        "c777a8526a6517e5fbfa713651da280fd1bdd502",
        "68178d6419df65d606d9105b3324260d38d7b02c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 02 16:31:52 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 02 16:31:52 2011 -0700"
      },
      "message": "Merge \"remove last traces of copybit\""
    },
    {
      "commit": "68178d6419df65d606d9105b3324260d38d7b02c",
      "tree": "eaa78d765b0b77d2462a10c70f04cf6ac846217c",
      "parents": [
        "d0675ede6de2249256d20271a19ccbf9f11745b8"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 02 16:27:21 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon May 02 16:27:21 2011 -0700"
      },
      "message": "remove last traces of copybit\n\nChange-Id: Ia0f13a0ee6f702256482b5eb29d7fa2aa840bfc7\n"
    },
    {
      "commit": "95fbf2cdccb127bae1f68827564b36290c8de2c3",
      "tree": "f964c9e090903f982d82c6b555fa78e9308d26cf",
      "parents": [
        "5d4478556299c656b5bb940e83277e01233ec015"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Apr 15 13:51:42 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon May 02 09:36:06 2011 -0700"
      },
      "message": "Add an auto-exposure lock feature to the Camera API.\n\nAdds a new camera parameter for locking auto-exposure to its current\nvalue. Also adds a function for checking if auto-exposure lock is\nsupported by the current platform.\n\nHidden for now.\n\nChange-Id: Id452371191ab220318ce2cb98b8ee91bdde9aab6\n"
    },
    {
      "commit": "d2b0088df550e3ddfa44dbdfd1cd9a79ff80a2de",
      "tree": "e52a03cf0ad294d515ec00c187b8cab5e98e3212",
      "parents": [
        "a092c0a095ed3f49e367e2f132ddb27525fb0e57",
        "4f9e47f2c03ce36261c4717cd7e131d7940bb068"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Apr 29 16:35:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 29 16:35:26 2011 -0700"
      },
      "message": "Merge \"Add setParameter/getParameter to MediaPlayer API. for bug 1982947\""
    },
    {
      "commit": "7340743ce30766af6334bbd9acf813eb66dd5a60",
      "tree": "c31894af54e1767278fa9d7ff856753f8c6ca68d",
      "parents": [
        "d0675ede6de2249256d20271a19ccbf9f11745b8"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Apr 29 10:44:46 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Apr 29 11:01:36 2011 -0700"
      },
      "message": "Add DRM errors in the DRM frameworks to MediaErrors also.\nFor bug 4350156.\n\nChange-Id: Ib5711ec642178a49203a448b7f5114e675d49394\n"
    },
    {
      "commit": "4f9e47f2c03ce36261c4717cd7e131d7940bb068",
      "tree": "5c3fc9eacd2d81b02cb45c050336c28ea924842e",
      "parents": [
        "d0675ede6de2249256d20271a19ccbf9f11745b8"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Apr 25 17:28:22 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Apr 29 10:24:03 2011 -0700"
      },
      "message": "Add setParameter/getParameter to MediaPlayer API.\nfor bug 1982947\n\nChange-Id: If3f40e4f18cbba155af29944af38bdc627f8cd53\n"
    },
    {
      "commit": "d0675ede6de2249256d20271a19ccbf9f11745b8",
      "tree": "e93905f2d93f99902c2e18180bb747ab916593bc",
      "parents": [
        "5d4478556299c656b5bb940e83277e01233ec015"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 28 19:50:21 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Apr 28 19:50:21 2011 -0700"
      },
      "message": "get rid of dependency on copybit HAL module\n\nChange-Id: Ia608099a2426c11a91d33063ba53c93e1eccb428\n"
    },
    {
      "commit": "5d4478556299c656b5bb940e83277e01233ec015",
      "tree": "86b39e58ce8a5b9e0803ef0d0d483d611f650617",
      "parents": [
        "18a3dc66af68cbc0eba5c9e48e13b9e72e1af719",
        "5a61d2f277af3098fc10b2881babca16391362da"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 17:13:46 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 27 17:13:46 2011 -0700"
      },
      "message": "Merge changes I22d9e018,Ib0701fcc,Ibc637918,I9eb7e002,I4adcec73\n\n* changes:\n  audioflinger: don\u0027t do work in constructor, instead do it in onFirstRef\n  audioflinger: enumerate all the possible audio interfaces\n  audio/media: convert to using the audio HAL and new audio defs\n  libmedia: move AudioParameter out of AudioSystem\n  audioflinger: move legacy audio hw/policy out to libhardware_legacy\n"
    },
    {
      "commit": "fce7a473248381cc83a01855f92581077d3c9ee2",
      "tree": "e002e1edd8a11f2be56ce9538ab1b13aa289bc9e",
      "parents": [
        "db5cb14318bb24cd6ea14ff7ceea0d5e1f83d903"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 22:30:36 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 13:10:10 2011 -0700"
      },
      "message": "audio/media: convert to using the audio HAL and new audio defs\n\nChange-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "6a62b8747b0d0c05ed315d26612d61ca085f32b7",
      "tree": "66cba60f5c9f2ef3931195dd89206505317bd7c3",
      "parents": [
        "dab0bea38ab2c2d6b52907b7f5684834c4979251",
        "39898735d8eaf0b918f782c5f93aef2060e2e2d2"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Apr 27 12:27:05 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Apr 27 12:27:05 2011 -0700"
      },
      "message": "am d84df054: am 96974931: am 83ddcdf7: Add heartbeat error codes into MediaErrors.h\n\n* commit \u0027d84df05490e8b102e81cca848f65c174398be1b6\u0027:\n  Add heartbeat error codes into MediaErrors.h\n"
    },
    {
      "commit": "db5cb14318bb24cd6ea14ff7ceea0d5e1f83d903",
      "tree": "68c1ef5ba3875e713795d49d7bb39b41c74d27a2",
      "parents": [
        "6b80e0be94d3f92ec4aa2b7cace816780d3f338d"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 22:20:55 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 10:48:38 2011 -0700"
      },
      "message": "libmedia: move AudioParameter out of AudioSystem\n\nChange-Id: I9eb7e002d141936258050d4fa4f0ccd8202bfc54\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "84f64d2a48a267c6517df69dd757c1ead54db036",
      "tree": "cff6a84fb700c413d5a2ab37cd15bed909589470",
      "parents": [
        "023eeac54c428d78b755fa3c856f20d17abb8a40"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Apr 26 17:09:28 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Apr 26 19:35:32 2011 -0700"
      },
      "message": "Add heartbeat error codes into MediaErrors.h\n\nrelated-to-bug: 4322415\n\nChange-Id: I78137c61e3a8ce9afcb9fb38cb77a83561b9b72d\n"
    },
    {
      "commit": "b5fe7f5346de1623331d784634cc10fa406771c4",
      "tree": "1ab6351de32cae2bb690dd19e59768487bacd405",
      "parents": [
        "37c0cf28f7568e812743a97d502031e30545f565",
        "c5182e31b23dc381d21ef43b7f7d682ffc54bd79"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Apr 25 09:52:26 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 25 09:52:26 2011 -0700"
      },
      "message": "Merge \"MediaScanner: reimplement the \".nomedia\" feature for hiding files from the media provider\""
    },
    {
      "commit": "44ada657945587d74e0404fd093da8027b9fdc55",
      "tree": "d279844012334d4b841b3be24fc65a485b3d8c78",
      "parents": [
        "e2e3f479fe160e8ba00321ada2c61d4bcaf5be4d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Apr 21 09:23:15 2011 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Mon Apr 25 09:33:48 2011 -0700"
      },
      "message": "Clarify the meaning of weight in the focus and metering area HAL.\n\nWeigh values must be less than 1000, but have no restriction on their\nsum. Weights should be interpreted as per-pixel values, meaning larger\nareas will have more influence over focus/metering than smaller areas\nof the same weight.\n\nChange-Id: I988b74f988ddba2ff0c49d078ff3174b47cbae18\n"
    },
    {
      "commit": "c5182e31b23dc381d21ef43b7f7d682ffc54bd79",
      "tree": "ab36b201a453458e64f75f53b4d5dc2bfb4888df",
      "parents": [
        "7c1bc4cb2260f666a2fba9e64bb9de95121f0b22"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Sun Apr 24 11:15:09 2011 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Mon Apr 25 09:21:54 2011 -0700"
      },
      "message": "MediaScanner: reimplement the \".nomedia\" feature for hiding files from the media provider\n\nPreviously we ignored any files and directories that had name started with \u0027.\u0027\nand ignored any directories that contained a \".nomedia\" file.\nNow to support transferring any file via MTP, we now add these previously ignored files\nto the media database, but will not mark them as audio, video, image or playlist files.\nThat way they will be included in the files table but will be hidden from the\naudio, video, images and playlist views that are used by apps like Music and Gallery.\n\nBug: 3405327\n\nChange-Id: I2d7285bd32e06c1a5c4ef6a8a15f8f8b2c33b39b\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "e2e3f479fe160e8ba00321ada2c61d4bcaf5be4d",
      "tree": "94fc63d71587345d69aad352d07c570fe2f0db1d",
      "parents": [
        "53e1c0497b720d0e4f00dd7ca61838b865d41add",
        "b483c4724846c0b8d4e82afcbb7c17f671bae81c"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Apr 13 15:36:14 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 13 15:36:14 2011 -0700"
      },
      "message": "Merge \"- Add another parameter in notify() to be able to send timed text sample through listener during video playback. - Add OnTimedTextListener in the MediaPlayer For feature request 800939.\""
    },
    {
      "commit": "b483c4724846c0b8d4e82afcbb7c17f671bae81c",
      "tree": "3323eb5f46357ffff206c880b36fcf30dd984e02",
      "parents": [
        "fa4e195a735ab99e02388ac5c5611e73a76c7c72"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Apr 11 17:23:27 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Apr 13 11:11:34 2011 -0700"
      },
      "message": "- Add another parameter in notify() to be able to send timed text sample\nthrough listener during video playback.\n- Add OnTimedTextListener in the MediaPlayer\nFor feature request 800939.\n\nChange-Id: I65072c27acb4c0037109a72be38c73e9f667420f\n"
    },
    {
      "commit": "38ecadbeb09fc0504621f5aa513e51b7a204983f",
      "tree": "0f598afcfc6717c0a0b837c449512c315a88f3ae",
      "parents": [
        "fa4e195a735ab99e02388ac5c5611e73a76c7c72"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Apr 12 19:34:29 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Apr 13 16:06:47 2011 +0800"
      },
      "message": "Add camera metering area API.\n\nThe API are still hidden.\n\nbug:3475893\nChange-Id: Id4147528def5e0fe067e1a3ed315fa34c14a0640\n"
    },
    {
      "commit": "a1c3d37ef921bfc79a0f7d2ac7f897943134d48d",
      "tree": "871f3877f6db65c265a9482eba3593f91e0ac129",
      "parents": [
        "cc8ace7989f663fe6c6c1ed0febca0d9d1f19c7a"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Apr 02 06:19:46 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Apr 08 17:45:15 2011 +0800"
      },
      "message": "Add camera focus area API.\n\nThe API are still hidden.\n\nbug:3475893\n\nChange-Id: I92405c9e332b7fb141788cda7ebc9705dd666c67\n"
    },
    {
      "commit": "c30268b9d118309a0514bcf280a03ee69f81403f",
      "tree": "792168ccd1a37180a9f248aa394de46291605e7b",
      "parents": [
        "9d91771564c264903363d7879d052f2427b78aa0",
        "4bcae82f9b07d1a39956c45a6f5bec0b696c4dd1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 06 13:03:11 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 13:03:11 2011 -0700"
      },
      "message": "Merge \"Miscellaneous code cleanup in audio framework\""
    },
    {
      "commit": "46bc5b885f9cb39502bc082c97e0c73b99083042",
      "tree": "bda81770c6709aa24a3ee23d1405cd3a2d70ac6d",
      "parents": [
        "9d31d676f2c4b49735463ac0f4d6a67b7a4e9877",
        "abf471f9d25f7a3104c5723657e3c6c329f3f08c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Apr 06 12:22:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 06 12:22:01 2011 -0700"
      },
      "message": "Merge \"Remove unused references to ISurface\""
    },
    {
      "commit": "4bcae82f9b07d1a39956c45a6f5bec0b696c4dd1",
      "tree": "99532d06a61440bc66fa091e58ff23bc405a3ec0",
      "parents": [
        "7fb4b427d5fca79c09d69b212ddca41539c215a2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 04 10:50:50 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 06 10:24:18 2011 -0700"
      },
      "message": "Miscellaneous code cleanup in audio framework\n\nChanges:\n - Move declaration of kClassPathName to top of file so it can be used\n   in more than one place, instead of \"android/media/AudioSystem\".\n - Make private methods static.\n - Add comment to stream_type, audio_mode, force_use types that they must match\n   values in AudioSystem.java.\n - Add comment about unused types mp3_sub_format and vorbis_sub_format.\n - Fix typos.\n - Use @ in javadoc comments.\n - Delete dead APIs setMode, getMode, setRouting, getRouting in AudioSystem.java\n   (they are all hidden, deprecated, and unused by rest of framework)\n - Delete unused private log method.\n - Fix pathname for android_media_AudioSystem.cpp.\n - Improve code formatting for space after \u003d\u003d and !\u003d.\n - Add logging of delta for changing audio policy manager ref count.\n\nChange-Id: I18037c7beb8ab76d1fda08c11e589f6e591d36e1\n"
    },
    {
      "commit": "38ccae2c0324daa305f3fe77d25fdf5edec0b0e1",
      "tree": "c7aec92091f634a6994ed7e836a2a1ba4e22c035",
      "parents": [
        "7fb4b427d5fca79c09d69b212ddca41539c215a2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 28 18:37:07 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 05 12:05:41 2011 -0700"
      },
      "message": "New fix for issue 4111672: control block flags\n\nThe first fix (commit 913af0b4) is problematic because it makes threads\nin mediaserver process block on the cblk mutex. This is not permitted\nas it can cause audio to skip or worse have a malicious application\nprevent all audio playback by keeping the mutex locked.\n\nThe fix consists in using atomic operations when modifying the control\nblock flags.\n\nAlso fixed audio_track_cblk_t::framesReady() so that it doesn\u0027t block\nwhen called from AudioFlinger (only applies when a loop is active).\n\nChange-Id: Ibf0abb562ced3e9f64118afdd5036854bb959428\n"
    },
    {
      "commit": "abf471f9d25f7a3104c5723657e3c6c329f3f08c",
      "tree": "064753a6f6df721871ae005c01373c75db90e692",
      "parents": [
        "94baecca5e14b083c46615a1bcf18ea6cf7cad46"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 04 21:09:55 2011 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 04 21:09:55 2011 -0700"
      },
      "message": "Remove unused references to ISurface\n\nChange-Id: I542806b5c91c525ed7cde821f6963f1e020ddf1a\n"
    },
    {
      "commit": "f8374dec590223ebdd6959b26d9ba90749dd8328",
      "tree": "4d93c723dcba33bbad56b3f55a664c6a3144481c",
      "parents": [
        "72bbbff2dfb120ed1ebc9a50e8509364508bfa70"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 24 14:18:02 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 30 13:13:25 2011 -0700"
      },
      "message": "Support for divx files, i.e. mpeg 4 video + mpeg audio layer III in .avi files\n\nChange-Id: I6e1e989c43300ddb0d341e3e9183cdccd69eeae6\nrelated-to-bug: 4192562\n"
    },
    {
      "commit": "6511c9755c3a3360ba869772600c7aae048a7ffc",
      "tree": "2107391c77f03d89461e296703c856a32f9196c0",
      "parents": [
        "ff6bf33354f28a2bce073645bd102414c81d7580"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 30 11:15:27 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 30 11:15:27 2011 -0700"
      },
      "message": "Stagefright DataSources now expose the underlying content mime type.\n\nUse that mime type to determine if we should do upfront buffering at the start of\nplayback and don\u0027t for audio streams to ensure playback starts fairly instantly.\n\nChange-Id: If21e36d1b024f0e5c723911bceadaa2e0307ab42\nrelated-to-bug: 4090916\n"
    },
    {
      "commit": "108dddf924d714c811dd565b8f4c7a0178cca2f2",
      "tree": "84d71d367dfb079a12738ca5f6c3edc4bd13aab1",
      "parents": [
        "b1d3d37c7990d22d0659e4c8c9aac56d4c09b6ea"
      ],
      "author": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 28 16:10:12 2011 -0700"
      },
      "committer": {
        "name": "Iliyan Malchev",
        "email": "malchev@google.com",
        "time": "Mon Mar 28 16:28:57 2011 -0700"
      },
      "message": "frameworks/base: some camera-interface cleanup\n\nMethods getNumberOfVideoBuffers() and getVideoBuffer() as well as struct\nimage_rect_struct are no longer used (instead, the necessary information is\npassed through ANativeWindow.)\n\nChange-Id: If4b11446fc9ccbde1f6b45bc70c0d0b8e54376eb\nSigned-off-by: Iliyan Malchev \u003cmalchev@google.com\u003e\n"
    },
    {
      "commit": "277360f06bdfefe821d4ddde8876f8e2507887c3",
      "tree": "5c9eeb0a89d523d8c7f729541e2de382f7d38646",
      "parents": [
        "199b6924d11a48ca8383392e18ac0f2e58523f01",
        "504c5e3fa3d4378773bd76b045d7a2e1e834fe59"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Mar 25 10:11:49 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 25 10:11:49 2011 -0700"
      },
      "message": "am ed7b688c: am aac43ea1: am b8b85ea2: Merge \"Fix for bug 4126624. Change the mDrmManagerClientImpl to sp to avoid double delete the pointer.\" into honeycomb-mr1\n\n* commit \u0027ed7b688c015dbd064b81dfaed5dd6c7ed6728ac3\u0027:\n  Fix for bug 4126624. Change the mDrmManagerClientImpl to sp to avoid double delete the pointer.\n"
    },
    {
      "commit": "25cd5788a70f45c807ad22aa0ecdc7e1d4d5fd67",
      "tree": "49a2fb6a70bf380524ad78133c59a1bbe43e1422",
      "parents": [
        "07d0220bcc9036bcbe36819912559267d9c1c538"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 24 13:14:02 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 24 13:14:02 2011 -0700"
      },
      "message": "Fix for bug 4126624.\nChange the mDrmManagerClientImpl to sp to avoid double delete the pointer.\n\nChange-Id: I7aacea1bc58ab6425ef6f6f09472c6f2970ebb4d\n"
    },
    {
      "commit": "84b343f29063fbfa2ee61b2e3d37ba059ca507d4",
      "tree": "b1bb4c481a3348b4ca480f262b7016e45106f8e5",
      "parents": [
        "0b500c2e81288190a6ce8b20c842a83a19e038b5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 22 10:31:21 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 22 13:18:09 2011 -0700"
      },
      "message": "Delay signaling the end of audio playback until all frames have actually played.\n\nChange-Id: I1fa07358a885a818fd0a5d7da425740f86095e10\nrelated-to-bug: 3404000\n"
    },
    {
      "commit": "0b500c2e81288190a6ce8b20c842a83a19e038b5",
      "tree": "fdd0862b605eddcc1b20ba98ac3d73e936dd5340",
      "parents": [
        "245af5e9ecb1881aa0b05f73bdbd249ec49a2af1",
        "52bee301b7ef870ec0acd86fda72352508369ce6"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Mar 22 11:43:09 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Mar 22 11:43:09 2011 -0700"
      },
      "message": "am fc4c13be: am 01240177: am 3cc797b9: Merge \"Add one more field in DecryptHandle to support bug 4126624\" into honeycomb-mr1\n\n* commit \u0027fc4c13be8ce8c2d05432d855c2c61548abef3385\u0027:\n  Add one more field in DecryptHandle to support bug 4126624\n"
    },
    {
      "commit": "6b2a35bbec228ce012065260ba153ee894f17a4e",
      "tree": "b7877f5457bbb5885e7eea0213a5e4c9c6113612",
      "parents": [
        "4dabc20fa21f78a0bc2f91f772ad449ac8b17028"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 17:22:13 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 19:08:18 2011 -0700"
      },
      "message": "Add one more field in DecryptHandle to support bug 4126624\n\nChange-Id: Ic7ea5fd211c4f8283de8fdf722f89b6a94e5750b\n"
    },
    {
      "commit": "4dabc20fa21f78a0bc2f91f772ad449ac8b17028",
      "tree": "ba929cc3609584be4ca38abdcd807d80d0b6212f",
      "parents": [
        "310962976d575c0a97ec7a768e9cca0b2361daea"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 16:53:14 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 16:53:14 2011 -0700"
      },
      "message": "do not merge: Cherry pick change I6529695c from master to partially fix bug 4126624.\n\nChange-Id: If724de60bd6da1becdffc815d5358ffe78629469\n"
    },
    {
      "commit": "1da9aa606096e14985924e8433a087d04f68ea22",
      "tree": "c1044319fcfc114f8459bb1abac1aa75c9e3d80f",
      "parents": [
        "c8a8472a0205dd698c8d81bf7e09026ca1013d1e"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Sun Mar 20 10:25:16 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 21 13:50:04 2011 -0700"
      },
      "message": "Fix for 4084554.\nDRM framework support for enabling/disabling copy control settings from a DRM plugin\n\nChange-Id: I6529695cc4adbab2b9a63708bb459e3b77e07564\n"
    },
    {
      "commit": "af8791e112c8072452bd14ef3c43a47511d19542",
      "tree": "dc914f57bfb84ec7a1729581d66c06e0cad89125",
      "parents": [
        "ebd5d2541d4e5351fd1f1a23fc9ef047cfa67575"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 21 10:25:44 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 21 11:13:59 2011 -0700"
      },
      "message": "Support passing headers to MediaMetadataRetriever\u0027s setDataSource API\n\nChange-Id: Ib1a5c08fc5034cac05034db27007a35c9b660b26\nrelated-to-bug: 3506316\n"
    },
    {
      "commit": "39068e0fa09e1e342d8cb2280edc5d1941e93bd5",
      "tree": "06e65866566de59160827aa7092e664d311c13e1",
      "parents": [
        "8eb69d60c09c1c4683066a94c889df28d0e9d233"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 17 11:06:57 2011 -0700"
      },
      "committer": {
        "name": "Russell Brenner",
        "email": "russellbrenner@google.com",
        "time": "Fri Mar 18 14:39:20 2011 -0700"
      },
      "message": "DO NOT MERGE Send WebView the current transform and whether we\u0027re drawing a layer.\nBug #3275491\n\nThese can be used by WebView to correctly apply alpha and geometric\ntransforms.\n\nChange-Id: I61057997f5fda1e803d247fc77500a038d5f3aab\n"
    },
    {
      "commit": "bc07bcc65e91c7aea9713631ae67760dcf1b0286",
      "tree": "7dc1a82a7bb9417ca770c00d812c5ccd9e600f3d",
      "parents": [
        "cfee2a39edf05ab0f97595d0ec5bda6a19f03659"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 18 11:25:41 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 18 13:27:39 2011 -0700"
      },
      "message": "Better organize media recorder error and information event and types\n\nChange-Id: I45f1f953596985494725525c1fabf57eccc19175\n"
    },
    {
      "commit": "79cbc13ede26d08ab6633a042843a9d154c3c166",
      "tree": "a8b76f1d3645ae4ca581415b9f4b34b8e0aa2765",
      "parents": [
        "c901f74404435cc1cf2717016e2b0092b6dcea24"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 17 15:02:34 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 17 15:02:34 2011 -0700"
      },
      "message": "Fix for bug 4126103.\nmMessage in DrmInfoEvent is a reference to the message string, so the\ntemporary message created in the plugin was going out of scope and\nbeing destructed while the message was being sent. Changed DrmInfoEvent\u0027s\nmMessage to be const String8 instead of const String8\u0026\n\nChange-Id: I174197ad24f3df997d3bc1f897658cfc53862636\n"
    },
    {
      "commit": "c901f74404435cc1cf2717016e2b0092b6dcea24",
      "tree": "c858ff6c3a41df6279cbb30ab4d838d26a1d13b9",
      "parents": [
        "0ab985cf1ec0110022be22ff03aa300bb59b9c96",
        "f432a761e73bef8be43f83377ecea8abef72ce86"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 12:38:58 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Mar 17 12:38:58 2011 -0700"
      },
      "message": "am 782ffe91: am 9c0c5b56: am 2f1f2248: Fix missing AOSP copyright headers for a bunch of media framework files\n\n* commit \u0027782ffe91da665c6b1fb9e297faa6e0dc6035f40c\u0027:\n  Fix missing AOSP copyright headers for a bunch of media framework files\n"
    },
    {
      "commit": "0ab985cf1ec0110022be22ff03aa300bb59b9c96",
      "tree": "a6f42d12a60afb0c8ac74e26d7624d68db849e7c",
      "parents": [
        "00d48b9495265457dfb265e766296212b5447b0e"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Mar 17 11:06:57 2011 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@android.com",
        "time": "Thu Mar 17 12:04:04 2011 -0700"
      },
      "message": "Send WebView the current transform and whether we\u0027re drawing a layer.\nBug #3275491\n\nThese can be used by WebView to correctly apply alpha and geometric\ntransforms.\n\nChange-Id: I2ecd4376d68df886dead3c9240317de33f56828f\n"
    },
    {
      "commit": "27c174483a8ae9688d5d4897c19074f62c7f1701",
      "tree": "9da8616575a69c53a3a8a9a7da3cfa12390e339e",
      "parents": [
        "8031ec79eb657a0ae84325410578ea87f50eeb54"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 11:02:04 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 17 11:10:40 2011 -0700"
      },
      "message": "Fix missing AOSP copyright headers for a bunch of media framework files\n\nbug - 4119349\n\nChange-Id: If5924e16a5f596d5d73d9beb66eaf5ac9a6f0e50\n"
    },
    {
      "commit": "8635b7b095fbf7ffc63d3ce791891a9116ace1f6",
      "tree": "6c9bbe1d0cec53f0c83099f1028302a178928cb9",
      "parents": [
        "1b99cc90afffbda6013ebbb45d64f17b1d90b9f5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 14 17:01:38 2011 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 14 18:48:19 2011 -0700"
      },
      "message": "Add memory leak tracking/debugging code to drm server\n\nbug - 4099038\n\nChange-Id: I6c048eaf3d7f34bc144b8daaa5fdef1ed474af66\n"
    },
    {
      "commit": "1b99cc90afffbda6013ebbb45d64f17b1d90b9f5",
      "tree": "f344bfd9ff7303811c63d81812d8e084fb805675",
      "parents": [
        "3e67eeb5c710bcf00d4cd4d6105a0b5f7ee3007e",
        "1444c94bfa6abc6516691580c360565ce18696d4"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 17:41:42 2011 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 14 17:41:42 2011 -0700"
      },
      "message": "am 67718e07: am 132bb659: Merge \"For issue 4082089 Add more info and error events into the DRM framework\" into honeycomb-mr1\n\n* commit \u002767718e076422f8f28f4e30a39df9e462ef32d19b\u0027:\n  For issue 4082089 Add more info and error events into the DRM framework\n"
    },
    {
      "commit": "505bd99ec8bed47c438ac3bb4641ce5f7ba972e7",
      "tree": "8f08501f8b02630ca11dac37ccc0d8061823816b",
      "parents": [
        "8980847d149cfca1d0564d9454c262764b6ee164"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 12:04:15 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 15:29:08 2011 -0700"
      },
      "message": "For issue 4082089\nAdd more info and error events into the DRM framework\n\nChange-Id: I0bb3251c5947fc8e977d478e1ba46b242cb97e9d\n"
    },
    {
      "commit": "1825ce2475d4cbed336ddb779ab5acb09d9a155c",
      "tree": "229089e703ee58a77790038ac5de28a3e0581296",
      "parents": [
        "8b9a9067511efca72ca872d689e30315c1450f94",
        "6cfa41f06fc6a85ebaf5b94c4602128359587473"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 11:56:39 2011 -0700"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Mar 14 11:56:39 2011 -0700"
      },
      "message": "resolved conflicts for merge of c761a80d to master\n\nChange-Id: I0c0474b95d66c23310d04b7a7f4c9571a211582c\n"
    },
    {
      "commit": "0e0a5f9e0b7a7ca618e8a1f7ccecc57a17e0d1e2",
      "tree": "8ad3203ba726da5b28d63f25d16c1c761cc97885",
      "parents": [
        "2eb62955eb84b97695e8a7e56e14310cbb86412b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Mar 11 14:07:21 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Fri Mar 11 14:54:23 2011 -0800"
      },
      "message": "- Some change on the DrmManager in order to support feature request 4082089.\n    In DrmManager, we currently lock both processDrmInfo() and onInfo() which is\n    ok for now since processDrmInfo() is async call, and it will return without\n    waiting for onInfo() call. However, if we send an event in processDrmInfo(),\n    we will got deadlock here because we need to invoke onInf() which will wait\n    for processDrmInfo() to release the lock. Use different lock for onInfo().\n- Remove some redundent mutex lock.\n\nChange-Id: I59c794f95ba1693425723224114fa975cf9b235f\n"
    },
    {
      "commit": "884d064fbf7f45f8089abd7d87bdca5d325cc2ab",
      "tree": "8566c9f475b9224394640cef24fe6120341affd5",
      "parents": [
        "b5ce361d19e69fe156f7188c9ee0f4734b259874",
        "203616faff0be6c2306f02d82f3ce305746beb49"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 11 08:46:40 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 11 08:46:40 2011 -0800"
      },
      "message": "am 055066e1: am 92f2f3ff: Merge \"Bug 3012968 DRM output control\" into honeycomb-mr1\n\n* commit \u0027055066e1e77d944383360d50057f5b8187f23c0b\u0027:\n  Bug 3012968 DRM output control\n"
    },
    {
      "commit": "2eb62955eb84b97695e8a7e56e14310cbb86412b",
      "tree": "fd19d4d6f069a06d5094fe85dda6b632f5c80d4e",
      "parents": [
        "8862028032790fe2ec3f6114de6b2e98a296e6df"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 28 12:37:51 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 10 19:16:40 2011 -0800"
      },
      "message": "Bug 3012968 DRM output control\n\nModifies Stagefright to verify that there is a hardware-protected path\nto video sink for DRM content.\n\nChange-Id: I18b8741390e803a05a88c7f180b860a24ba88a10\n"
    },
    {
      "commit": "b5ce361d19e69fe156f7188c9ee0f4734b259874",
      "tree": "1536e63d3394cbbd5c2e8bc5cde6affb2b173850",
      "parents": [
        "609ce04d29780c430ff7e17511fc073a664c02d5"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Feb 24 16:40:57 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Mar 10 16:20:48 2011 -0800"
      },
      "message": "Fix for bug 3477330\nThis patch fixs a crash bug caused by using a NULL DecryptHandle pointer.\nFix by using sp\u003cDecryptHandle\u003e instead.\n\nChange-Id: Icbd59858385e8256125a615a3c82656b25319d44\n"
    },
    {
      "commit": "2aac40fe9d42a15dab0af6a0efea7a2468cd9e4f",
      "tree": "7b31d55d7d9bcc242959c87e0692c09d6f12fa70",
      "parents": [
        "1156dc913a5ba7b2bc86489468d4914430f03d14",
        "bd75c0d65c003ae18baebab7357c1d621096282b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 09 11:00:22 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 09 11:00:22 2011 -0800"
      },
      "message": "am 2dc78477: am cc34967f: Merge \"Fix issue 3439872: video chat and bluetooth SCO\" into honeycomb-mr1\n\n* commit \u00272dc78477364bd4accb9a603baaafca9a5523dcec\u0027:\n  Fix issue 3439872: video chat and bluetooth SCO\n"
    },
    {
      "commit": "1703cdfee717b1b312bf8979816a9e2f16a82e5d",
      "tree": "eb9d3cfe8ffebe45679de91af6f9ffd676ca5067",
      "parents": [
        "fbb1909036ba7de3d9fb8738daba60b357881153"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 07 14:52:59 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 08 16:33:15 2011 -0800"
      },
      "message": "Fix issue 3439872: video chat and bluetooth SCO\n\nThis change fixes the stability problems experienced when using\na bluetooth headset supporting both A2DP and SCO. Problems occur\nwhen starting the video chat at which time the A2DP output is being\nstopped to start SCO. At that time, active AudioTracks are invalidated\nby AudioFlinger so that a new AudioTrack binder interface can be\nrecreated by the client process on the new mixer thread with correct parameters.\nThe problem was that the process to restore the binder interface was not\nprotected against concurrent requests which caused 2 binder interfaces\nto be created sometimes. This could lead to permanent client deadlock\nif one of the client threads was waiting for a condition of the first\ncreated binder interface while the second one was created (as the AudioFlinger\nwould only signal conditions on the last one created).\nThis concurrent request situation is more likely to happen when a client\nuses the JAVA AudioTrack as the JNI implementation uses simultaneously the\nnative AudioTrack callback and write push mechanisms. By doing so, the code\nthat checks if the binder interface should be restored (in obtainBuffer()) is\nmuch more likely to be called concurrently from two different threads.\n\nThe fix consists in protecting the critical binder interface restore phase\nwith a flag in the AudioTrack control block. The first thread acting upon the binder\ninterface restore request will raise the flag and the second thread will just wait for\na condition to be signaled when the restore process is complete.\n\nAlso protected all accesses to the AudioTrack control block by a mutex to prevent\naccess while the track is being destroyed and restored. If a mutex cannot be held\n(e.g because we call a callback function), acquire a strong reference on the IAudioTrack\nto prevent its destruction while the cblk is being accessed.\n\nModified AudioTrack JNI to use GetByteArrayElements() instead of\nGetPrimitiveArrayCritical() when writing audio buffers. Entering a critical section would\ncause the JNI to abort if a mediaserver crash occurs during a write due to the AudioSystem\ncallback being called during the critical section when media server process restarts.\nAnyway with current JNI implementation, either versions do not copy data most of the times\nand the criticial version does not guaranty no data copy.\n\nThe same modifications have been made to AudioRecord.\n\nChange-Id: Idc5aa711a04c3eee180cdd03f44fe17f3c4dcb52\n"
    },
    {
      "commit": "2256d515e6fa1dd95b8fd0de05b56d8c83af8327",
      "tree": "b14d64324dc357168fc6f4570ecb7b82d53bcbac",
      "parents": [
        "bdba1f2a3813e4c8e690d71cfc2b82d5dee85c73"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 04 10:24:54 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 04 10:32:36 2011 -0800"
      },
      "message": "Added more metadata published by the MediaMetaDataRetriever\n\n- presence of audio/video content\n- video dimensions\n- avg. bitrate\n\nChange-Id: Ie6d478a3c2d0bb6bebaea99ac0a20a4c17808934\nrelated-to-bug: 3506316\n"
    },
    {
      "commit": "4f46fed004b76d462ef859aa94a3c056b0e79b60",
      "tree": "afd68cec4f63a8576a539064a48b80dbe7ff92e4",
      "parents": [
        "9a5f9b7dbe9ecdebfbd9e8f96452c42213b08a31",
        "9ee159b79022b2e1a050acb3890ce948e99e9ccb"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 02 19:51:04 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 02 19:51:04 2011 -0800"
      },
      "message": "Merge \"- To track the usage of all audio output devices - To track the currently used audio device - The devices are separated as speaker and other audio devices - Provide the collected data to battery application through pullBatteryData()\""
    },
    {
      "commit": "9ee159b79022b2e1a050acb3890ce948e99e9ccb",
      "tree": "3f8c908cd6d5a69f1f6c5eb7c4e0a833890107e9",
      "parents": [
        "5f5354e35ab3b2a0cb4cabb6d0aa5a160225ccc8"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Thu Feb 24 14:51:45 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Mar 02 16:53:24 2011 -0800"
      },
      "message": "- To track the usage of all audio output devices\n- To track the currently used audio device\n- The devices are separated as speaker and other audio devices\n- Provide the collected data to battery application through pullBatteryData()\n\nChange-Id: I374c755266b5ac6b1c6c630400f4daf901ea8acc\n"
    },
    {
      "commit": "32f3cefa373cd55e63deda36ca9d07c7fe22eaaf",
      "tree": "b8ff788f27c04b39b7959783a53e7a138cdff3e6",
      "parents": [
        "3fd91baee812919f53a85c5c05f32606313f8334"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 02 15:34:46 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 02 15:38:32 2011 -0800"
      },
      "message": "Allow optional specification of a PTS timestamp when signalling a discontinuity.\n\nIf present, rendering will be suppressed until reaching the timestamp.\n\nChange-Id: Ic64bdf4225063c5a4d042ea9809960b843a46d19\nrelated-to-bug: 3489454\n"
    },
    {
      "commit": "5f5354e35ab3b2a0cb4cabb6d0aa5a160225ccc8",
      "tree": "7244e5a590df555a0e5ffb3fcf209e36dc76ef57",
      "parents": [
        "2a21ff5f51f74d98fcdee96dff1da658da8da84b",
        "196855ed4eb4681c4d3504438706caf6b505c9d6"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 01 20:08:07 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 01 20:08:07 2011 -0800"
      },
      "message": "Merge \"Add support for up to 32 buffers per Surface\""
    },
    {
      "commit": "2a7e0a1eb29306982fd77bdc64d324464a48a2b9",
      "tree": "394731f4a2cfb40c76de91decce1520c0a705dac",
      "parents": [
        "c0bff9b96152179650dc9508799a38e35ef2a321"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 28 21:07:39 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 01 15:58:59 2011 -0800"
      },
      "message": "Get rid of redundant media profiles\n\nbug - 3330679\n\nChange-Id: Idc55aea32746c0c57552c5e15a289681421aa859\n"
    },
    {
      "commit": "196855ed4eb4681c4d3504438706caf6b505c9d6",
      "tree": "918f3e894052911861838533796705c962712e13",
      "parents": [
        "6fa83fbad4bf779c6677d525d434f0738726465e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 28 18:09:43 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Mar 01 14:09:06 2011 -0800"
      },
      "message": "Add support for up to 32 buffers per Surface\n\nBug: 3488016\n\nChange-Id: Ie5536ad77d42a4d0e8270e0fd87ecb73471bcbbc\n"
    }
  ],
  "next": "e2ce6458659c6e1bad420357b61dc10cd8bbe2ab"
}
