)]}'
{
  "log": [
    {
      "commit": "3e1763ecdf14769a534f75e94a56785f63174b47",
      "tree": "f93cb501a1984cd58dc0c2bf96f252595847a7e8",
      "parents": [
        "0a932b40bdc8c427ff275426ee19960d8648021d"
      ],
      "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": "1065b3f17d3048948e7d522049d1980b90df3dc1",
      "tree": "dbe2c8d5a540ec07e7ef74929808401b71004cd5",
      "parents": [
        "1e06f435434681f8750cc21763868fd025e8480e"
      ],
      "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": "4ca2c7c913f8bd4ada13aca56d36045d42d1e00f",
      "tree": "d65d0cadafa63bd9ab2aa9e8fbb6704b27a13fbc",
      "parents": [
        "c5a57efb706ec79032fc09c43b16d11ed0876604"
      ],
      "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": "cb62bc3fe54222cf05824e6f98fefafee552049a",
      "tree": "8d46602d08923ea8b04f2a8e6d23a8cfeafba9b7",
      "parents": [
        "8e51d58fca9b7669f271378f9245e180f4360cbc"
      ],
      "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": "8e51d58fca9b7669f271378f9245e180f4360cbc",
      "tree": "22a6d99c3bfb7f41b79aee1e7cffe4c0e76df865",
      "parents": [
        "06371d97f549981cd2d524c8868fde2ef10dc1e9"
      ],
      "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": "3b573f7bf1c5736d500e39013b8d32478a1429e6",
      "tree": "620cf88dc1ca7ffaca6c66819278d669a2e977bd",
      "parents": [
        "6ef9a104959c1d15232fe3a319e4a270eed3ddb5"
      ],
      "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": "3f1545d22a71f960c9598a24e7e48ec16dd16267",
      "tree": "82184e372100ca1daa68d6b98e2bc8d9a40214e0",
      "parents": [
        "04cf3b24dcfefb2da0864adde0f51a7f49c351f4",
        "7394a4f358fa9908a9f0a7c954b65c399f4268e6"
      ],
      "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": "7394a4f358fa9908a9f0a7c954b65c399f4268e6",
      "tree": "76bde6cdaf308c987975d57a5a0d0794613ad65d",
      "parents": [
        "afcedc9e6f17d8213d9bd8f6c36643dcc816d0ef"
      ],
      "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": "965e4239ca1cf6c824c1f8ce23116f9ba8cf6ebd",
      "tree": "96463de989057f23bb9c9670e434282ba2778185",
      "parents": [
        "afcedc9e6f17d8213d9bd8f6c36643dcc816d0ef"
      ],
      "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "e2ce6458659c6e1bad420357b61dc10cd8bbe2ab",
      "tree": "89a59a1cef847dc359dbf013f0c76d94f6363918",
      "parents": [
        "3911a720270fc0326accfa4a3df427a649a45487"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Feb 23 19:01:28 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Feb 28 12:12:20 2011 -0800"
      },
      "message": "Add an OMX IL API for querying buffer usage flags.\n\nThis change defines an OpenMAX IL API for querying from the IL component\nthe gralloc buffer usage flags that should be used to allocate the\nbuffers.  It also adds the Stagefright plumbing for using the new OMX IL\nAPI.\n\nChange-Id: I046b5e7be70ce61e2a921dcdc6e3aa9324d19ea6\nRelated-Bug: 3479027\n"
    },
    {
      "commit": "1173118eace0e9e347cb007f0da817cee87579ed",
      "tree": "d2d23b2120010097d1edda29cd0adffd938105c3",
      "parents": [
        "f7f3e824a8cb2b38355db8e4f99e43b90ee71ce4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 08 17:26:17 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 23 15:02:56 2011 -0800"
      },
      "message": "Bug 3438258 Add SurfaceTexture as MediaPlayer sink\n\nThis change enables the use of a SurfaceTexture in place of a Surface\nas the video sink for an android.media.MediaPlayer. The new API\nMediaPlayer.setTexture is currently hidden.\n\nThis includes:\n - New Java and C++ interfaces\n - C++ plumbing and implementation (JNI, Binder)\n - Stagefright AwesomePlayer and NuPlayer use ANativeWindow\n   (either Surface or SurfaceTextureClient)\n\nChange-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51\n"
    },
    {
      "commit": "51b9a8b53eaa1a0188be95d4d6a749424787e0d6",
      "tree": "098b73dc47ef13b88c0598493b1b4bec3ea451aa",
      "parents": [
        "8e0e1979f0f41487b0f18aa5b9c8c52a39ca27f4",
        "7cf180c9bff69e5cc4a2f4e53b432db45ebbebab"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Feb 23 09:58:33 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 23 09:58:33 2011 -0800"
      },
      "message": "Merge \"- Add method in MediaPlayerService to collect and pull   codec usage (duration) for the battery app - Collect MediaPlayer decoding usage data\""
    },
    {
      "commit": "7cf180c9bff69e5cc4a2f4e53b432db45ebbebab",
      "tree": "05d25862b1e1f30ffc31fe2ca2128ff68810df1b",
      "parents": [
        "1de41a66e3e7b548ee44e6654580e5f6f7265b11"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Sat Feb 19 18:37:57 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Feb 22 22:42:05 2011 -0800"
      },
      "message": "- Add method in MediaPlayerService to collect and pull\n  codec usage (duration) for the battery app\n- Collect MediaPlayer decoding usage data\n\nChange-Id: I0ef4e32b6a041ba1fe73c19f9c67185c61d03965\n"
    },
    {
      "commit": "55e26193c885b7d5acdae9978848e6587987790f",
      "tree": "292e5adc85140f3e19c264c922fac3c04c8877a3",
      "parents": [
        "1de41a66e3e7b548ee44e6654580e5f6f7265b11"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 22 11:46:35 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 22 13:21:38 2011 -0800"
      },
      "message": "Support more MPEG4-LATM audio functionality.\n\nrelated-to-bug: 3474610\n\nChange-Id: I6dab40e8b465922c62be9ee7f168718822c6caac\nNow skipping extra header that the spec claimed shouldn\u0027t be present in LATM...\n"
    },
    {
      "commit": "a472613aec322e25891abf5c77bf3f7e3c244920",
      "tree": "2b8aa12e87fff0c143d50022f9f413305dc7882f",
      "parents": [
        "f71eb135c28dd7b305b7030776ef0d44fac732c4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 16 12:28:26 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 17 14:43:16 2011 -0800"
      },
      "message": "A/V synchronization at the beginning of a recording session\n\no do not use edts/elst boxes since these optional boxes are ignored\no manipulate the first video/audio frame duration to make sure that the rest\n  of the audio/video is in sync (ideally, we should only manipulate\n  the vidoe frame duration, not the audio)\no reduce the initial audio mute/suppression period, which is used to\n  eliminate the \"recording\" sound.\n\nbug - 3405882 and 3362703\n\nChange-Id: Ib0acfb4f3843b365157288951dc122b006299c18\n"
    },
    {
      "commit": "6b61f4355db1974cd0f0dfaa4effdd7117b9f09b",
      "tree": "245a116df537b42dcff6eb66b4675cc07908d892",
      "parents": [
        "b5377f908fc3649b490406e3db34601dca2f7ac3"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 15 10:08:07 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 16 11:23:21 2011 -0800"
      },
      "message": "Decouple AudioRecord read and audio encoding\n\nbug - 3313754\n\nChange-Id: I951dd0e21e34aa1412c391f003bc32103d0424b0\n"
    },
    {
      "commit": "d48a6044fddc910f17e67650f280e91e7aaf5e65",
      "tree": "4fc9513c98046b9eaf99e1951c990938a9c231aa",
      "parents": [
        "43270a821f418f57140220b4c78c559d880850ef",
        "50c44c79d2d7dd6cd1485d9d939f67f80b8da1ca"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Feb 15 17:22:01 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 15 17:22:01 2011 -0800"
      },
      "message": "Merge \"Add AAC extractor\""
    },
    {
      "commit": "50c44c79d2d7dd6cd1485d9d939f67f80b8da1ca",
      "tree": "61d66fea96dd44389fc80833c7d033b696c9b000",
      "parents": [
        "727a6f859841a1d421b680f56d4d4ca5ff8c6e4b"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Wed Feb 02 14:12:49 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Tue Feb 15 17:16:22 2011 -0800"
      },
      "message": "Add AAC extractor\n\nChange-Id: Iedb08525ac72e65ba98e5c791734da0720a0e3f6\n"
    },
    {
      "commit": "244ba87d20aeb29c9cad727820fa1e803ec3643c",
      "tree": "c09f421ad1b0123b9de0c221b52e1d210ce89a11",
      "parents": [
        "727a6f859841a1d421b680f56d4d4ca5ff8c6e4b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 11 15:21:45 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 11 15:25:03 2011 -0800"
      },
      "message": "Make available h263 DSI information from MPEG4Extractor\n\nbug - 3446863\n\nChange-Id: Idbaf7a564d544784fdbc36ed0339c98a519adc88\n"
    },
    {
      "commit": "6b2718c67aa7b1a8e3b0f25a73a0d5f72c59ffc3",
      "tree": "4f2fb8a9f016de59ddb591ade3e6851a74b6de3a",
      "parents": [
        "fcac8fa9421f442f024018628a6042d7a14fbfb0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 04 13:54:26 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 10 14:37:42 2011 -0800"
      },
      "message": "Bug 3352047 Wrong message when adjusting volume\n\nAdd hidden AudioManager.getDevicesForStream and output device codes.\n\nChange-Id: I4d1c1d3b6a077cd117720817d1f733dda557b947\n"
    },
    {
      "commit": "fcac8fa9421f442f024018628a6042d7a14fbfb0",
      "tree": "329336bc5a1c31ac94737aa4e25a992a0b87f482",
      "parents": [
        "722555f01ace262c2aba9e1ca5d9794ce30c564f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 09 14:00:55 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 09 15:44:32 2011 -0800"
      },
      "message": "Reduce blocking time in file write\n\nbug - 3418787\n\nChange-Id: I4723662bf46ed07271be8468f84ae5d93cb793fa\n"
    },
    {
      "commit": "eeffad65d2db4879593c1d4806824ef5b4dcb3e1",
      "tree": "ac530db863d4030d084c0a383317dce8fe879d64",
      "parents": [
        "cd334d7a8e9df05f6b94eefbad2bddda0850f2cf",
        "9c0096378820e5a61db26e52a7e6df50ba9c872d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 08 13:15:37 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 08 13:15:37 2011 -0800"
      },
      "message": "Merge \"Handle some edge cases when seeking while starting up OMXCodec\""
    },
    {
      "commit": "9c0096378820e5a61db26e52a7e6df50ba9c872d",
      "tree": "29f4953a4816d4e4b09cf11d1681b98a3d666708",
      "parents": [
        "8473bb556421ac08f4e03abd5d149852114c9238"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 08 13:10:25 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 08 13:10:25 2011 -0800"
      },
      "message": "Handle some edge cases when seeking while starting up OMXCodec\n\nThese were exposed by the new preview-seekframe while paused code.\nIn particular, the codec may have been in state RECONFIGURING when attempting\nto seek, or we may have initiated flushing of the output port and this may not\nhave completed yet by the time we want to reconfigure the output port.\n\nChange-Id: Id7640ade11dbc7205a22f648ea0b5e3e9b49cf4b\nrelated-to-bug: 3392259\n"
    },
    {
      "commit": "889b340ec736a9d3e3e690256d305cc8740f0c4b",
      "tree": "fab2bdfdc9621b051923b744065f8f0331b770c1",
      "parents": [
        "802da7bc462f6f9df6e681cc75c51dc0a056a4a1"
      ],
      "author": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Feb 07 11:41:11 2011 -0800"
      },
      "committer": {
        "name": "Gloria Wang",
        "email": "gwang@google.com",
        "time": "Mon Feb 07 15:10:33 2011 -0800"
      },
      "message": "- Do not use global DrmManagerClient\n- Release the DrmManagerClient and DecryptHandle in DataSource\nFix for bug 3429811\n\nChange-Id: I549f72b75225751877eb0e630ce8098f8ec6316f\n"
    },
    {
      "commit": "349d3fcb4afacf754f7b5b5186d2f258f5bf35e7",
      "tree": "6dc30007e1292cb2516bc7ce010be6fe12ef5922",
      "parents": [
        "117cd9286424888c1c5bf202ebf1e08ae1e6affe"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 04 10:12:26 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 04 10:12:26 2011 -0800"
      },
      "message": "Improvements/fixes to ACodec.\n\n- Make sure ACodec reverts its state when it\u0027s shutdown\n- Defer \"resume\" to after handling the OutputPortSettingsChange\n\n- If the OMX_EventPortSettingsChanged event comes in while we\u0027re flushing, defer it\n  and make sure the output port can be disabled by deleting all buffers not already\n  owned by the component.\n\nChange-Id: I1f8cdffa71237b57d4275a48b834647a7b263e8b\n"
    },
    {
      "commit": "8782cb4dc783cdcac8498148ab1894b4780c18df",
      "tree": "ade3e3ee37bab3e3d7429943cc1dc2e51995779a",
      "parents": [
        "a205abd16ba836b27cfb8ba6b03611e8e8120978",
        "1bca832a1e023988a0103e3d87a47c96bfa0045a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 03 17:18:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 03 17:18:46 2011 -0800"
      },
      "message": "am 6f1bd261: am 9c0a1003: Merge \"Fix issue 3371080\" into honeycomb\n\n* commit \u00276f1bd261b7fd86ac7817ca061dfb55b95150b836\u0027:\n  Fix issue 3371080\n"
    },
    {
      "commit": "856990b491d84b7ed4fefe337485c8997ba9dd02",
      "tree": "1f0630295fd40c55a6826dd562dee0d346767a10",
      "parents": [
        "31c52e7c8c01e1db6ff9bcf66135c72544b1235a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 13 11:17:00 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 03 13:39:10 2011 -0800"
      },
      "message": "Bug 1804058 FLAC extractor\n\nNote: dependent on external/flac for libFLAC\n\nImplemented and tested:\n * FLAC container\n * mono and stereo\n * standard sample rates\n * standard bit depths\n * sniffer\n * media scanner\n * Vorbis comment metadata including album art\n * random access seeking with \"torture test\"\n * web browser integration for audio/flac (not audio/x-flac), but\n   note that most web servers don\u0027t correctly report the MIME type\n\nNot implemented:\n * 24-bit to 16-bit dither or noise shaping in AudioFlinger\n * 96 kHz to 44.1 or 48 kHz downsampling low pass filter in AudioFlinger\n * replay gain is better done in AudioFlinger\n * multi-channel, would need AudioFlinger support\n * Ogg container, does not seem to be very popular yet\n\nChange-Id: I300873e8c0cfc2e95403d9adb5064d16a2923f17\n"
    },
    {
      "commit": "eda6c364c253ba97ee45a3adeb8c2b45db1f81db",
      "tree": "7e8011600b617e524645928514e5eaf3f867bb75",
      "parents": [
        "ab8a0badb8fb1e294dacf2eb6a891439f348aff9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 02 09:33:30 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 03 09:26:24 2011 -0800"
      },
      "message": "Fix issue 3371080\n\nModified default volume control logic in AudioService:\n1 IN_CALL volume if in video/audio chat\n2 NOTIFICATION if notification is playing or was playing less than 5s ago.\n3 MUSIC\n\nModified silent mode:\n- now also affect MUSIC stream type\n- entering silent mode when VOL- hard key is pressed once while selected\nstream volume is already at 0 (except for VOICE_CALL stream).\n- exiting silent mode when pressing VOL+ hard key while in silent mode\n\nPlay sound FX (audible selections, keyboard clicks) at a fixed volume.\n\nModified audio framework:\n- isStreamActive() method now implemented in AudioPolicyManagerBase (previously AudioFlinger)\n- iStreamActive() now specifies a time window during which the stream is considered\nactive after it actually stopped.\n\nChange-Id: I7e5a0724099450b9fc90825224180ac97322785f\n"
    },
    {
      "commit": "7757f5010a771fb8824b6fdf9788f588a1577e3f",
      "tree": "a4ba5608184d5141deae9bed5efd3d2b37d7593c",
      "parents": [
        "2494373e91399a97ad405f4e42dff6543cc296c7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 25 16:31:28 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 26 12:11:22 2011 -0800"
      },
      "message": "Make sure that key frame is generated for timelapse video recording if there are at least two input video frames from camera source.\n\nThis will fix the stop failure issue where we have to wait n * time_interval before a key frame can be received by the file writer, where\n o n is the actual number of buffers advertised by the video encoder\n o time_interval is the interval settings for timelapse video recording\n   specifying the time distance between neighboring input video frames\n\nThe fix includes two parts:\no OMXCodec will not submit all n buffers at one time, but instead submit one input\n  frame at one time if it become available.\n\no Timelapse camera source made available the first two input frames and do not skip\n  them so that the first compressed output frame data can be received regardless\n  the specified time_interval\n\nbug - 3367659\n\nChange-Id: Ia68cc2cb0d71aa7dc54540e9ad82fae911ad530b\n"
    },
    {
      "commit": "01f394247f3d5851f5bb12c2786b5fee265b6357",
      "tree": "8fb13813062b563324f9b47f4f9741897fde7f98",
      "parents": [
        "b656f3592332cebfad8944e8692003cf3688d586"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:19:19 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 26 11:20:42 2011 -0800"
      },
      "message": "Protect notification callback parameters with a mutex.\n\nThis avoids the race condition where notifications are dispatched to a NULL receiver\nafter notifications have been disabled.\n\nChange-Id: I6d351ffbee97616e2c35559c132a6c5e6a66948a\nrelated-to-bug: 3394139\n"
    },
    {
      "commit": "0a095d09464ba18e288a3f529410af0f1257ac2a",
      "tree": "1c3810dbf07e83724c4d11cb012dd664669a8623",
      "parents": [
        "4feffd1a8d95cf3843c06a37160580d30d421d8e"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 25 15:20:04 2011 -0800"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@android.com",
        "time": "Tue Jan 25 15:20:04 2011 -0800"
      },
      "message": "StagefrightMediaScanner: Close metadata retriever after we are done scanning\n\nThis prevents the mediaserver from leaking a file descriptor after\nthe media scanner runs\n\nBUG: 3373546\n\nChange-Id: I82a8bae82306de3da56a5c7da5b03ecf106a4efc\nSigned-off-by: Mike Lockwood \u003clockwood@android.com\u003e\n"
    },
    {
      "commit": "7fac331b39ca49ce49a67e425dcc031a3cb9e97f",
      "tree": "f38b5f0a2b0180deed38d27b9b91c26908785d6d",
      "parents": [
        "bc7f5b2e56107cfeaeeab13cf8979379e3c2f139"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 14:32:31 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 14:32:31 2011 -0800"
      },
      "message": "Properly rotate video that\u0027s marked as such and decoded to a surface.\n\nChange-Id: I1e9144db3447e58c99aac3f47702ad471678789c\nrelated-to-bug: 3378148\n"
    },
    {
      "commit": "bc7f5b2e56107cfeaeeab13cf8979379e3c2f139",
      "tree": "dffbfa1a0c661a0bd986d3ef8d80287cb0bcc513",
      "parents": [
        "b408222bd9479c291874b607acae1425d6154fe7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 10:15:23 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 21 10:34:40 2011 -0800"
      },
      "message": "Some tweaks to HTTP live / nuplayer behaviour\n\n- play audio-only streams again\n- workaround for malformed streams that switch PIDs across bandwidths\n- attempt to pick a different bandwidth stream if the previously chosen one appears\n  to be malformed/unsupported.\n\nChange-Id: I426d0a40dc725aa242f619d4c9d048b69aca55c9\nrelated-to-bug: 2368598\n"
    },
    {
      "commit": "b45c01c2b8588ff431b511151666a55a39f0a6ae",
      "tree": "94a766af98d29e9b6d745e42a5f625106267a2e1",
      "parents": [
        "2b4883641e324c50a2ee24c5bd15170c7d31e57d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Jan 16 11:30:13 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 19 08:33:07 2011 -0800"
      },
      "message": "Fix the presentation video resolution when it is different from the actual image resolution of the video.\n\nbug - 3352413\n\nChange-Id: I8f08f3896e9fb90f09119dccdb88b82af60f79f2\n"
    },
    {
      "commit": "ccb3506ed1845121b94f4e27244e61a46eb19815",
      "tree": "28dbe58d3112cb15c9b87d94897d2aa73b1042e3",
      "parents": [
        "6ee94582e3ce7bdd9625345e7564e3176a51a2f3"
      ],
      "author": {
        "name": "Dharmaray Kundargi",
        "email": "dharmaray@google.com",
        "time": "Sun Jan 16 16:43:20 2011 -0800"
      },
      "committer": {
        "name": "Dharmaray Kundargi",
        "email": "dharmaray@google.com",
        "time": "Sun Jan 16 16:43:20 2011 -0800"
      },
      "message": "integrate videoeditor preview player.\n\nChange-Id: I83084f494605c8e6f4d198afa8c36f9e29579667\n"
    },
    {
      "commit": "7f7d52ac18dfc3c6d8f6267dad29306613e9bd0e",
      "tree": "5e17f415d44cdba3c8b37a42c487e28e26593a64",
      "parents": [
        "67988a9ba5a081d14dbd8a663516e1d484d829df"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 06 12:20:35 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Jan 12 14:14:11 2011 -0800"
      },
      "message": "Publish MediaMetadataRetriever.java as public API\n\no Removed setMode() methods and related mode constants\no Removed some of the unused the metadata keys\no Updated the javadoc\n\no part of a multi-project change.\n\nbug - 2433195\n\nChange-Id: I5ed167f1fd6a53cb143b7dc385b149431d434438\n"
    },
    {
      "commit": "32ad210e4e4bcbdf912a01c9d2ff105cb3c5056f",
      "tree": "57bc9bcd78d3844035a923a70b516e4dc2872a24",
      "parents": [
        "14c858e80dfe2030c9f343dc0c6e2048e030731b",
        "31e2508c75018145a8238925ff1a08cbde4e799a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 10 11:26:38 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 10 11:26:38 2011 -0800"
      },
      "message": "Merge \"NuPlayer now properly sends MEDIA_SET_VIDEOSIZE notifications.\" into honeycomb"
    }
  ],
  "next": "31e2508c75018145a8238925ff1a08cbde4e799a"
}
