)]}'
{
  "log": [
    {
      "commit": "a729f97e8bfba67a94b1cde26d0d78d84528de85",
      "tree": "348c44f823825856df69b8b8e640bc86146a438f",
      "parents": [
        "078fd47e91d495175927d1a4a8b9aad039a7ba4e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:14:13 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Mar 19 16:16:43 2010 -0700"
      },
      "message": "libutils Condition are now PRIVATE by default\n\nCondition must be initialized with SHARED for the old behavior, where\nthey can be used accross processes.\n\nUpdated the two places android that require SHARED conditions.\n\nPRIVATE conditions (and mutexes) use more efficient syscalls.\n\nChange-Id: I9a281a4b88206e92ac559c66554e886b9c62db3a\n"
    },
    {
      "commit": "900e0d095442d7111e77a2f2e9467a39b164bb73",
      "tree": "011b41b7684f27c49aeb9b4bfbc67e85e78d661e",
      "parents": [
        "2fbc10f3559b85f6550dd34b8779e9ee94e4c73c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:07:45 2010 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 18 11:52:41 2010 -0700"
      },
      "message": "Update TTS plugin interface to receive engine configuration data\ncoming from the plugin helper code (handling config and preferences).\n\nChange-Id: Ibc1d229463f11f8977552d74d1fd2aa6a6cab88e\n"
    },
    {
      "commit": "878342993276a1a98f35f3ccda24c675ed09b7eb",
      "tree": "43825eb98a236d4891db14a2d592e3839d961f46",
      "parents": [
        "d246ca811575eee9122070648e93b7484f6edd81"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 17 16:38:30 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 17 16:38:30 2010 -0700"
      },
      "message": "While streaming media data, upon a socket-read error, try reconnecting to the server and attempt to re-read for at most 3 times.\n\nChange-Id: I7534905e07a6456d18b26d5d60fa8915f25ae99e\nrelated-to-bug: 2492187\n"
    },
    {
      "commit": "2a09c7e042d6a3ae600b25f606d584368a6e3f3a",
      "tree": "ca27a6e6d07e40655558d3a65044559a579f5bac",
      "parents": [
        "d489240362d24461e22346bc98a49347dfd4311d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 11:44:07 2010 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Mar 16 11:44:07 2010 -0700"
      },
      "message": "Properly handle errors during the codec configuration phase, attempt to revert to next available (likely software-) codec if configuration fails.\n\nChange-Id: Id1c699711e30139c9cc29df972254b5ba026e6fb\nrelated-to-bug: 2517098\n"
    },
    {
      "commit": "e3452d3fe1da014a6db9a326df08230e0d5339ec",
      "tree": "1100aa650a815c221bb88c2f75b59d8d4422267d",
      "parents": [
        "34ec95de2f96a5f85d5e4e0f99252b99c0aca14f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 15:08:52 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 15:08:52 2010 -0800"
      },
      "message": "Fix the media metadata retriever (tests). The native constants must match those published at the java layer.\n\nChange-Id: Ic1efed709e4d93c61913b231a8cd3ef1074f8ca0\n"
    },
    {
      "commit": "34ec95de2f96a5f85d5e4e0f99252b99c0aca14f",
      "tree": "cb9c2c5339a7c5c7bbd2759060b449b9611419f6",
      "parents": [
        "45be271b5f3413c6815e18331d2ffa07d88fd3f6",
        "edbb4d8f398dfbce7b766d4bd207685dab582847"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 09:39:33 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 12 09:39:33 2010 -0800"
      },
      "message": "Merge \"HTTPStream and HTTPDataSource now support cancellation of the connection process, AwesomePlayer takes advantage of this in cases where ::reset() or ::suspend() is called while in the preparation phase to bail out early. Also fixes in issue where the audio codec was not properly stopped if no audio player object ever took ownership.\""
    },
    {
      "commit": "edbb4d8f398dfbce7b766d4bd207685dab582847",
      "tree": "97424243885172334a9905a99eb00fce3b90016e",
      "parents": [
        "84eb8d2a7de0a2cec02516b9fb2a61fde536b59c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 08:59:22 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Mar 12 09:05:10 2010 -0800"
      },
      "message": "HTTPStream and HTTPDataSource now support cancellation of the connection process, AwesomePlayer takes advantage of this in cases where ::reset() or ::suspend() is called while in the preparation phase to bail out early. Also fixes in issue where the audio codec was not properly stopped if no audio player object ever took ownership.\n\nChange-Id: I6d73defe6d276693853a469db267bb2668d07af5\nrelated-to-bugs: 2475845,2414536\n"
    },
    {
      "commit": "2f7540e78f2a0952ddbbd9b953e186b90f401734",
      "tree": "a507541a85465b755372d2e8e638dc0fe3a5bb92",
      "parents": [
        "f6331a497455fdb6618bf4c634c9326695304c24"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:06:54 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:06:54 2010 -0800"
      },
      "message": "implement connect/disconnect in our native_window_t implementations\n\nthe framebuffer implementation doesn\u0027t do anything special with this\nbut the surfaceflinger implementation makes sure the surface is not used\nby two APIs simultaneously.\n\nChange-Id: Id4ca8ef7093d68846abc2ac814327cc40a64b66b\n"
    },
    {
      "commit": "f6331a497455fdb6618bf4c634c9326695304c24",
      "tree": "0aa52617d2335814b2f5d3df04b86e4e89c50b56",
      "parents": [
        "05212067451f5f4e94e2a548eaf5be8d4283a8ee"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:05:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Mar 11 15:05:52 2010 -0800"
      },
      "message": "Add a new connect/disconnect API to android_native_window_t\n\nit\u0027s used to keep track of which API owns the surface.\n\nChange-Id: I1021c5905c020efc3c428e561b38189377168b22\n"
    },
    {
      "commit": "fb1eb6fbc90f130365a978fa883209b25928870a",
      "tree": "bfa92ebc2f055e15371e3582dd7b12678d1d0ab3",
      "parents": [
        "3802141d17631183b6638d8e66630750f75daf38"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 16:59:28 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 17:12:01 2010 -0800"
      },
      "message": "Reduce buffer sizes related to HTTP media data transfer in order to reduce the probability of a connection timeout/reset due to long periods of time between socket activity.\n\nChange-Id: I799ce1d58d56a31088a89603d8a18d24780f5b57\nrelated-to-bug: 2492187\n"
    },
    {
      "commit": "b94b52b94e63a77a20a7ea907bea49485091bbf7",
      "tree": "a57745bdf6d777669ade11d7184a7384c482ac38",
      "parents": [
        "8da2650df87d5166fc940482c25632b034e16656",
        "1ce986767ae5998ece6810c2933d0b274c529744"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 11:12:56 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 10 11:12:56 2010 -0800"
      },
      "message": "Merge \"Instead of instantiating StagefrightMetadataRetriever directly, instantiate a MediaMetadataRetriever which will do-the-right-thing(tm) even for .wma/.wmv/.asf files.\""
    },
    {
      "commit": "1ce986767ae5998ece6810c2933d0b274c529744",
      "tree": "6458609eb8489dbe0f656783e4e65bc84290fff2",
      "parents": [
        "f53774bce6f31ac0ae3dd21ab41aa607e548e703"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 10:55:35 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Mar 10 10:55:35 2010 -0800"
      },
      "message": "Instead of instantiating StagefrightMetadataRetriever directly, instantiate a MediaMetadataRetriever which will do-the-right-thing(tm) even for .wma/.wmv/.asf files.\n\nChange-Id: Ibda4b5268514934f14a3d49a564902bc670f4384\nrelated-to-bug: 2074137\n"
    },
    {
      "commit": "cf244ada58539ce857ec041d7288d0271204fbb6",
      "tree": "ec16084d19a3b0c0e43e11dd276fbe7c6a6813c5",
      "parents": [
        "ae58f6d7473c67d76b6c6373794fd1a77543ddb4"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 15:00:30 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Tue Mar 09 17:18:05 2010 -0800"
      },
      "message": "Add ability for some manifest attributes to reference resources.\n\nThis loosens our restriction on many manifest attributes requiring\nliteral string values, to allow various ones to use values from\nresources.  This is only allowed if the resource value does not change\nfrom configuration changes, and the restriction is still in place\nfor attributes that are core to security (requesting permissions) or\nmarket operation (used libraries and features etc).\n\nChange-Id: I4da02f6a5196cb6a7dbcff9ac25403904c42c2c8\n"
    },
    {
      "commit": "27dd40bc27815a2929a7791d17bd945f3c9a868c",
      "tree": "99b484e69449643c7ef180aef8a912bb694ecd09",
      "parents": [
        "147113ee54e18094d3a8829c37a1041ec0e9dd7c",
        "d9ef5d7f13be0e5e0f9cf0ea768742fd91636c8d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 08 16:31:57 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 08 16:31:57 2010 -0800"
      },
      "message": "Merge \"Add camera parameter string constant for \"true\".\""
    },
    {
      "commit": "dc9927d4641066fc966c9c69856167b8410abf90",
      "tree": "da1bb32d3a0276e563aeb5409966e5dbaf0fc6b8",
      "parents": [
        "b3871fad556084932b6d17d07972cd2d8250fb5c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 08 15:46:13 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 08 15:46:13 2010 -0800"
      },
      "message": "The audio track was accidentally not participating in the prefetch since it wasn\u0027t started at the time prepare() was called. Also, properly report the cached duration even near the end when the source has no more data to fetch.\n\nChange-Id: I66a92fec24c9bfb25f1c186f1c877127bae2b4f9\nrelated-to-bug: 2444425\n"
    },
    {
      "commit": "d9ef5d7f13be0e5e0f9cf0ea768742fd91636c8d",
      "tree": "c2e877fe017d78941623345a2a2a99ddc395b3f2",
      "parents": [
        "796325b619a467eade0d6303c05b94a791a9c241"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 08 15:28:48 2010 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 08 15:28:48 2010 -0800"
      },
      "message": "Add camera parameter string constant for \"true\".\n\nbug:2458926\nChange-Id: I11eaae8ff031765e23f2627ded5873eabc09cead\n"
    },
    {
      "commit": "7299c41630935a2b106e73e5603579a7747f7535",
      "tree": "933c4bc5c991c8d9334b7b78fbc71ad73e93d077",
      "parents": [
        "6d141b0a9beb71e59ba850b7be13c4f0344ddc77"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Thu Mar 04 18:41:49 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Fri Mar 05 10:57:47 2010 -0800"
      },
      "message": "Refactor car mode.\n\nExtract all UI behavior from dock observer and ACTION_DOCK_EVENT.\n\nAlso introduce a desk type to go along with the car type all through\nthe resource system, since we now need to have corresponding high-level\nbroadcasts for desk dock mode.  As part of that I also reworked some\nof the logic for switching modes to all funnel through a single\nupdate() call that looks all of the current state to decide what to\ndo next, and fixed various locking issues.\n\nIn addition I found there were bugs in the configuration change\nhandling causing us to only switch into the car mode config and\nthen never get out of it.  Unfortunately now that we are actually\nchanging the configuration for each mode change, the transitions\nbetween them are really crummy as we restart all kinds of\nactivities. :(\n"
    },
    {
      "commit": "055c986ab841f8f758398841730f1e90313b132a",
      "tree": "6f1aeb48706161c57a657b12a9fab102345e9bbf",
      "parents": [
        "3f5144b8a4b45a05cf7c1b0bd0422d0bd9ecb59b"
      ],
      "author": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Tue Feb 23 10:45:42 2010 +0800"
      },
      "committer": {
        "name": "Ray Chen",
        "email": "raychen@google.com",
        "time": "Fri Mar 05 03:03:48 2010 +0800"
      },
      "message": "Add location provider name to gps-processing-method in EXIF header.\n"
    },
    {
      "commit": "47d0a9264fa5297db6333697ad750e6bc06822aa",
      "tree": "2b688202179ab906b44a413b8b27fd1a0ae9f75a",
      "parents": [
        "04218254ec1129e329cac71479b309cfb8a28d88"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 26 02:47:27 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 02 08:20:13 2010 -0800"
      },
      "message": "Issue 2071329: audio track is shorter than video track for video capture on sholes\n\nAdd API to retrieve number of frames dropped by audio input kernel driver.\n\nSubmitted on behalf of Masaki Sato \u003cmasaki.sato@motorola.com\u003e\n"
    },
    {
      "commit": "ef05e076ced1a32c5c0aaee28403779834adb2ba",
      "tree": "20dcf607adf508481d57610937ceab6ef2c6aee2",
      "parents": [
        "883dbacb12a003f8f46c3faab26b744fdef649a1"
      ],
      "author": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 17:43:39 2010 -0800"
      },
      "committer": {
        "name": "Dianne Hackborn",
        "email": "hackbod@google.com",
        "time": "Mon Mar 01 20:42:14 2010 -0800"
      },
      "message": "Fix issue #2448075: aapt doesn\u0027t fix up activity-alias android:targetActivity links\n\nAnd related:\n\n- The aapt tool now sets a resource configurations sdk level to match any configs\n  that have been set (for example if you specify density your sdk level will be\n  at least 4).\n- New option to modify the targetPackage attribute of instrumentation.\n- Clean up of aapt options help.\n- Fix of UI type values to leave 0 for \"unspecified\".\n- Make the UI mode config APIs public.\n"
    },
    {
      "commit": "5d26c1e38dabb3ad8b4b6e1000375f3b1a6b7693",
      "tree": "6ba3c3a0a6a5de37d65c07690de84080a91db3b3",
      "parents": [
        "69f22feb8540576d2a2e9d32f9c86ebbbf309409"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 16:09:43 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Mar 01 18:34:50 2010 -0800"
      },
      "message": "Added a name to Surface created by SurfaceFlinger\n\nUpdated the window manager to use this new facility.\nSurfaces name are now printed by \"dumpsys\".\n"
    },
    {
      "commit": "8cbb8f5e1f939b03515cb4d5942c3fcb226efb9e",
      "tree": "82706f029d7d318cb034993cc19625f47ce28903",
      "parents": [
        "7714d7132e4059a1256581b3599a5808b6a6f294"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Feb 28 23:19:55 2010 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Mar 01 15:32:33 2010 -0800"
      },
      "message": "Unhide zoom API.\n\nbug:2458926\n"
    },
    {
      "commit": "24b326a8978bf78e3e560723dde221792784325b",
      "tree": "a675e74ca0e7f430cf4f1386032154fc8895fd96",
      "parents": [
        "4d98579f43026a8213b0570e7836648902741005"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Feb 20 17:47:04 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Feb 26 14:04:43 2010 +0800"
      },
      "message": "Unhide exposure compensation API.\n\nbug:2375993\n"
    },
    {
      "commit": "b93003649d0d58e6824b54d6e9e1386912c34448",
      "tree": "9a23e503e60dcfa756211dda05461c53109a2d40",
      "parents": [
        "a4b1fe6b2651ab8f77d5a3ce1a607945f6427b02",
        "9b433f0b654d32530b0b48a7a653216ae0bb94d8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 25 15:11:29 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 15:11:29 2010 -0800"
      },
      "message": "Merge \"Image encoding settings java API through xml configuration file\""
    },
    {
      "commit": "9b433f0b654d32530b0b48a7a653216ae0bb94d8",
      "tree": "164555367b9006e2212e0b63f608fc228b711417",
      "parents": [
        "9a56aaf12b462a064e81e02386eca8a1e77fe737"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 23 17:21:44 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 24 18:10:12 2010 -0800"
      },
      "message": "Image encoding settings java API through xml configuration file\n\n- I decided to completely remove jpeg decoding related stuff from this change\n  I think that setting is better off if it is specified by the system properties.\n  We don\u0027t have to include MediaProfiles.h header in skia files\n"
    },
    {
      "commit": "9ff1f96fdf1c88c55c45e0876b10a3a9686dc28a",
      "tree": "b74953b2ea4d74917ce83972bf2bebf886bb5073",
      "parents": [
        "6c0df0b47328655aa450f406ffb39fda5703a55c",
        "780d2a1b714724d85227141c76b3c64f543f00b4"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Wed Feb 24 07:52:27 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 24 07:52:27 2010 -0800"
      },
      "message": "Merge \"Use UTF-8 strings to avoid duplicate caching, part 1\""
    },
    {
      "commit": "d7d22eba3c1bb7212ccc566fedb16dbee44f51a2",
      "tree": "ddeec07f5ebb6f0f7ab93c498b2836e93029abbb",
      "parents": [
        "80bd6a16379a009fbad697fe1c4ffabe0f2630ff"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 13:45:33 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 23 14:06:38 2010 -0800"
      },
      "message": "Propagate errors all the way through the MediaSources and send either MEDIA_PLAYBACK_COMPLETE or MEDIA_ERROR depending on the final reason for running out of buffers to play back.\n\nrelated-to-bug: 2463749\n"
    },
    {
      "commit": "780d2a1b714724d85227141c76b3c64f543f00b4",
      "tree": "3bd5411acce1ae663e4509c812b3aaa6100c6a41",
      "parents": [
        "cfe79e9220c996ed9f60fbc00eebb23e7faba2f0"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Mon Feb 22 22:36:26 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Tue Feb 23 10:02:20 2010 -0800"
      },
      "message": "Use UTF-8 strings to avoid duplicate caching, part 1\n\nStringBlock instances containing UTF-8 strings use a cache to convert\ninto UTF-16, but using that cache and then using a JNI call to NewString\ncauses the UTF-8 string as well as two copies of the UTF-16 string to\nbe held in memory. Getting the UTF-8 string directly from the StringPool\neliminates one copy of the UTF-16 string being held in memory.\n\nThis is part 1. Part 2 will include ResXMLParser optimizations.\n\nChange-Id: Ibd4509a485db746d59cd4b9501f544877139276c\n"
    },
    {
      "commit": "ab9985ed4c02ef70d4a48bf3bbeedc12d14928f3",
      "tree": "3001336a1c2c247c9a33ea57bf4ffa9c7bd69802",
      "parents": [
        "33285c37abee6d95d0ac55cd7e9889cdc8d96d14",
        "b8de9578dcb672d92b407d7a24c77af13f85c353"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 15:32:14 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 22 15:32:14 2010 -0800"
      },
      "message": "Merge \"This hardware video decoder lies about its required input buffer sizes allocating 2.7 MB of memory instead of the required 176 KB... Added another quirk.\""
    },
    {
      "commit": "b8de9578dcb672d92b407d7a24c77af13f85c353",
      "tree": "c271c7938f29469eeb4f1e27e444985669488316",
      "parents": [
        "7e31e0c351a3b2bb70ee5507b34f1c72d62b56d7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 14:58:45 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 22 14:58:45 2010 -0800"
      },
      "message": "This hardware video decoder lies about its required input buffer sizes allocating 2.7 MB of memory instead of the required 176 KB... Added another quirk.\n\nrelated-to-bug: 2281327\n"
    },
    {
      "commit": "c86727f5805f28fbd25da141c50fb6843f364f3a",
      "tree": "395806614f40b9aac7306a9e951305167fb8abe1",
      "parents": [
        "08d13c3cbb0b250b84ca861edb462060556aead9"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 17:30:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Feb 21 23:27:25 2010 -0800"
      },
      "message": "remove a dependency of GraphicBuffer (libui) on Parcel (libbinder).\n\nAdd a Flattenable interface to libutils which can be used to flatten\nan object into bytestream + filedescriptor stream.\nParcel is modified to handle Flattenable. And GraphicBuffer implements\nFlattenable.\n\nExcept for the overlay classes libui is now independent of libbinder.\n"
    },
    {
      "commit": "e59a54c0edc65f6092a62a137226ddf540361022",
      "tree": "65e95cec486c7b5b9ce7a02819d6ec4eca6eb7a1",
      "parents": [
        "41207b6eb0524c6a2fe9e85f6373785e2937e90f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 20:22:26 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 17 20:26:47 2010 -0800"
      },
      "message": "Remove a dependency of Region (libui) on Parcel (libbinder).\n"
    },
    {
      "commit": "102f49f361b9d8d780b0f683f417f8c02a4e25f3",
      "tree": "7a3e6a960cccdb8ea5b9995d3df3d9df9d95d301",
      "parents": [
        "329c6aed7870b55ced7774924781cddb44022683"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 20:43:39 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 20:43:39 2010 -0800"
      },
      "message": "fix a bug I introduced recently where YUV formats would crash the system\n"
    },
    {
      "commit": "8f2423e8f394ae0666f1b61f83df4c0c7a4782d9",
      "tree": "cf8ea7a6f5a60e1ff45b7eeb44c2a83576787161",
      "parents": [
        "4b71fc0fa8dee98764b55aefc176599bd982f53e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 17:33:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 16 17:33:37 2010 -0800"
      },
      "message": "get rid off the YUV formats at the libui layer\n"
    },
    {
      "commit": "a9886c580b299984e62303a995bf7b13276b5bc8",
      "tree": "f481a1e98fc053de7e8d3ce8c0ec6534890dd3fb",
      "parents": [
        "7f66d6e63dc79709ea308440ec57906980046531"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 14:09:24 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 14:37:42 2010 -0800"
      },
      "message": "Totally remove Unicode.cpp and rely on ICU\n\nUnicode.cpp used a packed data table for character data that essentially\nduplicated ICU\u0027s functionality.\n\nChange-Id: Ia68fe4ac94e89dc68d9a3f45f33f6e648a5500b7\n"
    },
    {
      "commit": "a16e4ee840db3dc6ecdfe60d11a8036ed4b40e7a",
      "tree": "c3a86bb7e62fc8d46b64863e054b2a7df1a2f851",
      "parents": [
        "acc63512e90630e79446980c4c2966fd8a701d60",
        "564bfc27f253694183f5972cdda6357c66bd7bbd"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 13:25:14 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 13:25:14 2010 -0800"
      },
      "message": "Merge \"Excise code from Unicode.cpp that was dead\""
    },
    {
      "commit": "564bfc27f253694183f5972cdda6357c66bd7bbd",
      "tree": "b9af3f503d7183a8f9f1cf5fe99fcf391eaa0c89",
      "parents": [
        "965e37ec88609c36a3c5461ece459a96abb6f7ca"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 13:01:16 2010 -0800"
      },
      "committer": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Fri Feb 12 13:01:16 2010 -0800"
      },
      "message": "Excise code from Unicode.cpp that was dead\n\nRemove some utility functions for discovering character data\nthat ICU probably took over a while ago.\n\nChange-Id: I97abe4de2f51eb2bf48679941258bc501184c3dc\n"
    },
    {
      "commit": "fbb3885024ac9c90f322b6259d7e519c8927e6ff",
      "tree": "47dece4ffda221bd9cf6e13852ac9fb37b78e0f4",
      "parents": [
        "965e37ec88609c36a3c5461ece459a96abb6f7ca"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 12 12:35:58 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Feb 12 12:44:10 2010 -0800"
      },
      "message": "New API on java\u0027s MediaPlayer to suspend/resume a session.\n\nrelated-to-bug: 2231576\n"
    },
    {
      "commit": "8b799a323cfc2dfb1c7da18467e21cc4e19504f6",
      "tree": "d16cba446bb9278c51aa1066199fee9861e9071e",
      "parents": [
        "000479f9e325b4e426a67033abd92d47da412725",
        "c5d5ee34d7c1026ca8d5cd8b186e5a73c5230247"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 13:43:40 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 11 13:43:40 2010 -0800"
      },
      "message": "Merge \"Add support for \"album artist\" tag.\""
    },
    {
      "commit": "c5d5ee34d7c1026ca8d5cd8b186e5a73c5230247",
      "tree": "f1be351c0dc6609f050f8cd0cdc60bf305ee8d49",
      "parents": [
        "4e208bd8722ad48c342c0128313ef40971234121"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 13:31:44 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Feb 11 13:32:04 2010 -0800"
      },
      "message": "Add support for \"album artist\" tag.\n"
    },
    {
      "commit": "000479f9e325b4e426a67033abd92d47da412725",
      "tree": "16b93ea777744aa24ffe7d3a191bb90529ad4ce5",
      "parents": [
        "28a5dc229ed25c771cde25668928edc788073029"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 09 17:46:37 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 11 13:16:22 2010 -0800"
      },
      "message": "split libsurfaceflinger_client and libcamera_client out of libui\n"
    },
    {
      "commit": "27b28b3f62bd3b54fa13acd5d035940b9be464f3",
      "tree": "d1f44096f7071bbc53e5bc979117be8e0f4aa55c",
      "parents": [
        "d5663a108760de672b130ffabd4f6632982f75e5"
      ],
      "author": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Tue Feb 09 23:09:17 2010 +0100"
      },
      "committer": {
        "name": "Tobias Haamel",
        "email": "haamel@google.com",
        "time": "Thu Feb 11 21:25:58 2010 +0100"
      },
      "message": "Introduce special UI modes for night and car usage.\n\nThe device mode is now called ui mode. Furthermore is the order of\nprecedence for the resources now in such a way that the ui mode needs\nto be specified after the orientation and before the density.\n\nThe ui mode can be set, like it is done for the locale, as follows:\n\nIActivityManager am \u003d ActivityManagerNative.getDefault();\nConfiguration config \u003d am.getConfiguration();\nconfig.uiMode \u003d Configuration.UI_MODE_TYPE_CAR | Configuration.UI_MODE_NIGHT_ANY;\nam.updateConfiguration(config);\n\nTo allow users to disable the car mode and set the night mode the IUiModeManager\ninterface is used.\n\nThe automatic night mode switching will be added in a separate change.\n"
    },
    {
      "commit": "6ed937ebe99088b5671a645060340a558b02fefb",
      "tree": "12f5b743bfee5433ebdde83ce8fb3c93c205fe49",
      "parents": [
        "5b5f8652dac5416461332c1b23dc3d5ba315b074"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 09 16:59:18 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 10 10:20:34 2010 -0800"
      },
      "message": "Implementation of stagefright-enabled MediaPlayerService::decode functionality\n\nrelated-to-bug: 2359268\n"
    },
    {
      "commit": "be14332227f1265fb5196ed3f38fb6a2a1e0a39d",
      "tree": "dfd94d43203a854a332315d12405b8cc4a080cba",
      "parents": [
        "739e1f8cdaee7ad448086f61412d118cb18152c5",
        "ff723b6c43d5a8fd0ae0e0732f5d47012d74e01d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Feb 09 20:49:06 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 09 20:49:06 2010 -0800"
      },
      "message": "Merge \"Add exposure compensation parameter.\""
    },
    {
      "commit": "ff723b6c43d5a8fd0ae0e0732f5d47012d74e01d",
      "tree": "ebb57244605ea16e2206ec479b8bc5f11d435beb",
      "parents": [
        "7406e53c4c152267bff799b0bb5d7edb6ece404f"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Feb 09 13:38:19 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Tue Feb 09 18:28:50 2010 +0800"
      },
      "message": "Add exposure compensation parameter.\n\nbug:2375993\n"
    },
    {
      "commit": "655306f8a80b3e9fc52daf458ef319a8ed8c564c",
      "tree": "800ca65dd3b7153dccb2cd08f254c44779a97571",
      "parents": [
        "836a1f2cb99600c26a1a928a9e3240b9dec3079b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 08 14:50:19 2010 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 08 14:50:19 2010 -0800"
      },
      "message": "Add support for the TPOS/TPA (disc number) id3 tag.\n"
    },
    {
      "commit": "e7038ace44ed6e6cd27be35b003e6dd0412e936f",
      "tree": "fcd9ac3d90fcb48b165c04c236a90ea9f34ffd43",
      "parents": [
        "5258919fab561508a2154a38b933e975bd2e07cd"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 03 16:50:18 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 04 13:47:36 2010 -0800"
      },
      "message": "Camcorder profile Java API support\n- Use Enum for Quality instead of int\n- Use static values() method from Enum, rather than if-else\n\nbug - 2417312\n"
    },
    {
      "commit": "70d10c0156f5d2d1c639d0ebe62de8ec950d4306",
      "tree": "a30b9816f4aa7185d44cd852e217b2fda2303187",
      "parents": [
        "3c4a1ebc19abba06af565071c243e55ba6eef585"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 03 11:37:29 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 03 13:24:26 2010 -0800"
      },
      "message": "Fix a deadlock caused by the AudioPlayer notifying the observer that the stream had ended at the same time the observer was shutting down the AudioPlayer.\n\nrelated-to-bug: 2414536\n"
    },
    {
      "commit": "e304bdd5ee5ed0b0d37fe388021c9cd138feda7f",
      "tree": "4253c134c46166a9fd963adbdbe97a103f83b7dc",
      "parents": [
        "ecf04ec19a1a72af7e38938fbad88d43934e3e7d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 02 18:48:15 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 03 12:13:15 2010 -0800"
      },
      "message": "fix [2133133] Software OpenGL ES Lighting is buggy (GL Gears washed out bug)\n\nA typo caused GL_AMBIENT_AND_DIFFUSE to only set the the ambient color.\n\nFix another typo which caused the viewer position to be wrong for\nspecular highlights.\n\nSwitch back to eye-space lighting, since there are still some issues\nwith some demos (San Angeles in particular).\n"
    },
    {
      "commit": "b0f324d4a95907f8e9332bcd2733e8287a1922eb",
      "tree": "4eb406ead2d8072f0e672f8a2c0a117a7d4695c5",
      "parents": [
        "355ca575a907e0f82c1c3f4849ed666c994e1ab6",
        "d1f73a2fcae6481edf07763ca06c4f381ebe13c2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 02 20:34:15 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 02 20:34:15 2010 -0800"
      },
      "message": "Merge \"implement [2396050] Add ETC1 texture support to AGL\""
    },
    {
      "commit": "d1f73a2fcae6481edf07763ca06c4f381ebe13c2",
      "tree": "50b5c2cfeeffcd03b0e664a8977b355ef53b9035",
      "parents": [
        "2d65817f17d0bfabac3849892c8a0f959b8dadc1"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 01 18:24:52 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 02 20:19:54 2010 -0800"
      },
      "message": "implement [2396050] Add ETC1 texture support to AGL\n"
    },
    {
      "commit": "b777bf3100ca752d5f2d0533f053dfda397bda84",
      "tree": "10d158a72e04d800767b6339fc5d8a5b9af91a56",
      "parents": [
        "2d65817f17d0bfabac3849892c8a0f959b8dadc1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 02 13:44:09 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 02 13:54:57 2010 -0800"
      },
      "message": "Don\u0027t use a HEAD request to determine redirects, instead do a regular GET (since that\u0027s always supported), also limit the number of redirects to avoid infinite redirects. Finally, properly handle the end of stream.\n\nrelated-to-bug: 2403674\n"
    },
    {
      "commit": "8cc1b2a32c434b237fa95dc9f81261887fdb1cf4",
      "tree": "444636d1da0736a3735357245b095d3d6815fb9a",
      "parents": [
        "8a838531cc6b517887a15c7e0871b248424d7224"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 02 10:38:40 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 02 10:38:40 2010 -0800"
      },
      "message": "Properly advertise the content length of the HTTP stream if available.\n\nrelated-to-bug: 2312941\n"
    },
    {
      "commit": "705300b8429b7ee468e79dd3aa98e904b29f4ceb",
      "tree": "6c41c093cd407bd7f2f7bcb3149c18c5b7d6a4d2",
      "parents": [
        "1b7a47c911d21dbbcfb782380018703534bd8787",
        "c371194e4e0651c328f1870a90bbfd4e217c747b"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 01 22:48:36 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 01 22:48:36 2010 -0800"
      },
      "message": "Merge \"Initial check-in for xml-based encoder capabilities retrieval - Changed the Java API as suggested - Treat /etc/media_profiles.xml as the default xml configurtion file\""
    },
    {
      "commit": "c371194e4e0651c328f1870a90bbfd4e217c747b",
      "tree": "1a5227979a1493f7d33b8647c0caa3a897bcd812",
      "parents": [
        "f5dbf6a62af04af9e88c5552aa7eeffb0a2394a4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 19 17:45:38 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 01 22:38:37 2010 -0800"
      },
      "message": "Initial check-in for xml-based encoder capabilities retrieval\n- Changed the Java API as suggested\n- Treat /etc/media_profiles.xml as the default xml configurtion file\n"
    },
    {
      "commit": "e331c7b2c4d9449c23e70067edeb0deadb95aa6e",
      "tree": "f85aa0c73879a2086285ee72b03bd8b9cdae5ff8",
      "parents": [
        "3ff37c1d48e2347bb8e20b5b433543064a36f50a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 01 10:51:50 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Feb 01 10:53:20 2010 -0800"
      },
      "message": "The TI MP3 decoder lies about the number of channels it outputs, add a quirk for that.\n"
    },
    {
      "commit": "7eae31cab43a36b6feccf523f212968619abe599",
      "tree": "f430871c3730c4b3d05b54a5a7a5384741563c4b",
      "parents": [
        "6c8d2760736a0753dad96b4bb8f98c7d075e6d54"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Jan 31 14:19:38 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sun Jan 31 17:03:10 2010 +0800"
      },
      "message": "Add float support for set and get in CameraParameters.\n\nbug:2375989\nbug:2375987\n"
    },
    {
      "commit": "6c8d2760736a0753dad96b4bb8f98c7d075e6d54",
      "tree": "5df1fac94e122b86f92095d697d4da8bb737d210",
      "parents": [
        "4c4300c71229638183d814ab8374e09f722910f5"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Wed Jan 27 22:55:14 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Sat Jan 30 20:36:04 2010 +0800"
      },
      "message": "Add focal length and view angle API.\n\nbug:2375989,2375987\n"
    },
    {
      "commit": "6faf7893b6307a3295993380d61af49f2cda965c",
      "tree": "0b96c41270e160fbafb2956f8a91ec3ef1772b67",
      "parents": [
        "bf124e7e41f7850ac1b7be808221a462db6f3447"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Jan 25 19:00:00 2010 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 29 14:51:06 2010 -0800"
      },
      "message": "Simplify the MemoryDealer implementation\n\nAt some point the implementation became complicated because of\nSurfaceFlinger\u0027s special needs, since we are now relying on gralloc\nwe can go back to much simpler MemoryDealer.\n\nRemoved HeapInterface and AllocatorInterface, since those don\u0027t need\nto be paramterized anymore. Merged SimpleMemory and Allocation.\nMade SimplisticAllocator non virtual.\n\nRemoved MemoryDealer flags (READ_ONLY, PAGE_ALIGNED)\n\nRemoved a lot of unneeded code.\n"
    },
    {
      "commit": "62eac008504fefd05fa53bc74f7e001bf0a51975",
      "tree": "7cd67184c51c24bc590bab8306ee2ffd4595a26f",
      "parents": [
        "85fb658b4bcca319f022f34a1de78a9463c9df11"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 29 13:24:58 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 29 13:24:58 2010 -0800"
      },
      "message": "Properly forward errors returned by AudioTrack up to the player.\n\nrelated-to-bug: 2300197\n"
    },
    {
      "commit": "433c9acaf7715eec080426af03cf1bf288076fe8",
      "tree": "49b708fb715fc6cbe5befb77e8160a38ff2109f4",
      "parents": [
        "2fd75f35158b8347251d18e8ec48585d6e020777"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 27 16:49:05 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 28 13:04:28 2010 -0800"
      },
      "message": "Support the specification of additional HTTP headers in the creation of a DataSource.\n\nrelated-to-bug: 2393577\n"
    },
    {
      "commit": "256430093679e1d62b54fb0c852126e54d162f6f",
      "tree": "028c49d18e0e77bc69f8967dda61619ee324f7a2",
      "parents": [
        "75d76bcf52587e4bfe00b7377d100510a3489674"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 28 11:19:57 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 28 11:52:43 2010 -0800"
      },
      "message": "API Extension: Support for optionally specifying a map of extra request headers when specifying the uri of media data to be played.\n\nrelated-to-bug: 2393577\n\nOriginal change by Andrei Popescu \u003candreip@google.com\u003e\n"
    },
    {
      "commit": "46ce847a62412b4253efb1430bcb558875bdc275",
      "tree": "24a4d684996183c72ca6f067af631615d0b576a5",
      "parents": [
        "2060b637f793c1ac969aad85ab0b8e27351ab711"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 27 16:02:10 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 27 16:21:41 2010 -0800"
      },
      "message": "Fix http streaming for shoutcast servers that do not support http ranges.\n\nrelated-to-bug: 2295438\n"
    },
    {
      "commit": "0ebff76e95aab7f6827ce1a8c25f1b4ad87a9029",
      "tree": "877df1054ffe46b509da0d7ac1ade93e854e8714",
      "parents": [
        "e6dca5c29b569ec245c665341bd8794abf6a02e9",
        "0986e7907ffc8387b04fb201e285784bcd11b9b7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 27 14:21:20 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 27 14:21:20 2010 -0800"
      },
      "message": "Merge \"Fix issue 2285561: New AudioFlinger and audio driver API needed for A/V sync\""
    },
    {
      "commit": "8258879fe85b8f1e0304f023c2c6465f85bedd26",
      "tree": "5aae4a4c206d05dd4bc571e46a7092c42b09807c",
      "parents": [
        "89e02edf6f92c034942b697be4eccea46930cdfb",
        "b9e63830c69231c53dc23a5e29f5b58a1d9d3668"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 27 09:24:43 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 27 09:24:43 2010 -0800"
      },
      "message": "Merge \"Better support for HTTP streaming media content, fixes to the way HTTPDataSource streams the data, prefetcher implementation.\""
    },
    {
      "commit": "0986e7907ffc8387b04fb201e285784bcd11b9b7",
      "tree": "96733235d1e92e0f329ded11b9b55c0d67a4ca83",
      "parents": [
        "7d3a558b9ebf2256517ec99cd09c066cc7dbc92c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 19 17:37:09 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 26 18:40:39 2010 -0800"
      },
      "message": "Fix issue 2285561: New AudioFlinger and audio driver API needed for A/V sync\n\nAdded getRenderPosition() API to IAudioFlinger to retreive number of audio frames\nwritten by AudioFlinger to audio HAL and by DSP to DAC.\n\nAdded getRenderPosition() API to AudioHardwareInterface to retreive number of audio frames\nwritten by DSP to DAC.\n\nExposed AudioTrack::getPosition() to AudioSink() to make it available to media player.\n\nRemoved excessive log in AudioHardwareGeneric.\n"
    },
    {
      "commit": "b9e63830c69231c53dc23a5e29f5b58a1d9d3668",
      "tree": "af36731b61a292c4ad027159b36d090a6b109fba",
      "parents": [
        "03b58bdf0e97f9e3bd247cb731b69fa87a845eeb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 26 16:20:10 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 26 16:20:10 2010 -0800"
      },
      "message": "Better support for HTTP streaming media content, fixes to the way HTTPDataSource streams the data, prefetcher implementation.\n\nrelated-to-bug: 2295438\n"
    },
    {
      "commit": "d1d7706fce19a9a0cf71ff9b65f3aba9b89eeb3b",
      "tree": "e4945abf24f406374fcc51fec3935fe3aeb57195",
      "parents": [
        "09ac3c3cbc6278af127cffedb9d534449e63b683"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 17:49:48 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Jan 26 11:07:07 2010 -0800"
      },
      "message": "Add support for setting camera display orientation.\n"
    },
    {
      "commit": "996dddff64f90d8469e24107c44bfd618cf0c2dd",
      "tree": "a36bea1e23eef4f6d5af0c6f5ef29dc4a23d22a9",
      "parents": [
        "03b58bdf0e97f9e3bd247cb731b69fa87a845eeb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 15:30:31 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 26 09:10:33 2010 -0800"
      },
      "message": "Support for audio recording into AMR NB/WB files as well as audio tracks in MPEG4 files.\n\nrelated-to-bug: 2295449\n"
    },
    {
      "commit": "473bd7767593cdd16669a220cf6f1a7c885e4e85",
      "tree": "d99d8ca9200aa6f2b7bc1e62e559b21cd64869bd",
      "parents": [
        "307da1a46b4c9b711bafe8fbaaa6b98e8868c18e",
        "23f25cda0c73f8eb878844dea32fb0bd419edca2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 25 17:16:05 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 25 17:16:05 2010 -0800"
      },
      "message": "Merge \"Fix issue 2378022: AudioService should direct volume control to STREAM_VOICE_CALL stream when STREAM_VOICE_CALL stream is active.\""
    },
    {
      "commit": "07bf09da4a365282fc35f800b62a83e0fa5533e2",
      "tree": "378e1ba0004146ae514c29c2e0ed60ac1cef6af0",
      "parents": [
        "f1c934f2726a09f11a7126e2a889c97162a2a1e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 14:27:12 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 16:17:40 2010 -0800"
      },
      "message": "Initial checkin of AudioSource and AMRWriter, a pair of classes supporting pure-audio recording in stagefright.\n\nrelated-to-bug: 2295449\n"
    },
    {
      "commit": "23f25cda0c73f8eb878844dea32fb0bd419edca2",
      "tree": "c1945d31c382864db8da0b829ccb017d2c31bbd6",
      "parents": [
        "bb04b631b60e0286c02e0fd4dd7ab764a001e0ce"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 25 08:49:09 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 25 14:00:10 2010 -0800"
      },
      "message": "Fix issue 2378022: AudioService should direct volume control to STREAM_VOICE_CALL stream when STREAM_VOICE_CALL stream is active.\n\nModified AudioService.getActiveStreamType() so that STREAM_VOICE_CALL is selected when a track using this stream\ntype is playing.\n\nChanded isMusicActive() for a more generic isStreamActive(stream) method in AudioSystem, IAudioFlinger and AudioFlinger.\n"
    },
    {
      "commit": "52733b83a736b500f72f72733b06258601c966f8",
      "tree": "8fee2dfcbd734b9644e5f12d4e5eb2800c3099e6",
      "parents": [
        "4166ed65e3c59f68f44c8ae1d2d55c8d86da1eb7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 10:41:35 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 25 11:24:26 2010 -0800"
      },
      "message": "The qcom OMX video decoders do not allocate output buffer memory at the time OMX_AllocateBuffer is called, wait until we received the first FILL_BUFFER_DONE notification until we rely on the buffer data ptr.\n"
    },
    {
      "commit": "acf77033bbd4682566bcd3c535f4f1e94d23f962",
      "tree": "7b30406823645b725a6fde30fc1af9ae72957b77",
      "parents": [
        "60e8495c1699f6f4d4046a3394b1eafdeefe6d64"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jan 25 15:18:18 2010 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Mon Jan 25 15:20:23 2010 +0800"
      },
      "message": "Change key to KEY_SUPPORTED_JPEG_THUMBNAIL_SIZES for consistency.\n\nbug:2375986\n"
    },
    {
      "commit": "ac127dc31bd071ed522f5cd48a910065756c8ded",
      "tree": "cfeba59fe0f2680256e38fb95a906e8b3ca5680b",
      "parents": [
        "7c45147f3537bc777a04545a6f0bc70550df5269"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 16:30:39 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Fri Jan 22 16:30:39 2010 -0800"
      },
      "message": "Add support for 180/270 degrees rotation.\n"
    },
    {
      "commit": "e1ceec234c618729cc7bd35fecb11744b52c1cc8",
      "tree": "d478c2160bfb90b429f13089a92d182ddf0b62e0",
      "parents": [
        "177b580f56e91bc5519b8772e696b14f8b5757e2"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Jan 21 17:31:06 2010 -0800"
      },
      "committer": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Thu Jan 21 20:20:08 2010 -0800"
      },
      "message": "Add an orientation parameter for overlay, so we can do camera preview in portrait mode.\n"
    },
    {
      "commit": "c712b9fe2859435ce142b90ddcb46c5bed33eea8",
      "tree": "945f8e980662cc7bbad93e603d3c038d5d04ede1",
      "parents": [
        "918007b75539f5eabfd173a369c2da628c607ba7"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 20 15:05:46 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 20 15:05:46 2010 -0800"
      },
      "message": "Fix no-copy-overhead OMXCodec implementation to actually work.\n"
    },
    {
      "commit": "61fa01d47dc6bab7719f74545ef4264063ab05db",
      "tree": "cc8bb69b054a8a5027ab7b963af95992a349ba89",
      "parents": [
        "243bf50e1e582d280829bc0e16bfb6d43c70c32f",
        "c2c9dd32511b555c637b8cadb8091eaa6088f92b"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 20 11:35:02 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 20 11:35:02 2010 -0800"
      },
      "message": "Merge \"Support for \u0027iTunes-style\u0027 metadata in .mp4 and .3gp files.\""
    },
    {
      "commit": "243bf50e1e582d280829bc0e16bfb6d43c70c32f",
      "tree": "0ee121149b0daf1ab7cd5d0b791361e614899be7",
      "parents": [
        "d738a4d3942ebf56a34d37772228014ec5c2fbdd",
        "cef3cd79489fa7897ffbacbc4e435651fb04f10d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 20 10:03:36 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 20 10:03:36 2010 -0800"
      },
      "message": "Merge \"Create base class for audio policy manager.\""
    },
    {
      "commit": "c2c9dd32511b555c637b8cadb8091eaa6088f92b",
      "tree": "1be518c17520e044b07cd3cb20b353f6580de9db",
      "parents": [
        "d738a4d3942ebf56a34d37772228014ec5c2fbdd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 19 16:43:53 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 20 09:50:32 2010 -0800"
      },
      "message": "Support for \u0027iTunes-style\u0027 metadata in .mp4 and .3gp files.\n\nrelated-to-bug: 2368967\n"
    },
    {
      "commit": "cb6ffa28244e491b2ae8e3b1c68ba7c93a08e560",
      "tree": "7afba0a710069e77ef21f73d93292173e1eeaf8f",
      "parents": [
        "bfa05732a9b791ce49f3db2bb5c9ee30638fd6bb",
        "f1fe064d735698b09e4bc7b3a10e4dc3dba9a1d9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 19 11:43:12 2010 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 19 11:43:12 2010 -0800"
      },
      "message": "Merge \"Avoid unnecessary buffer copying if at all possible, detect if running in the mediaserver process.\""
    },
    {
      "commit": "f1fe064d735698b09e4bc7b3a10e4dc3dba9a1d9",
      "tree": "1d8e2e0a407c8a11184c8a8e7a9f05847c03b00c",
      "parents": [
        "0a2d8709e4badeeb892b325c1b6fd52ad16f9c7d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 15 15:28:19 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 19 10:57:57 2010 -0800"
      },
      "message": "Avoid unnecessary buffer copying if at all possible, detect if running in the mediaserver process.\n"
    },
    {
      "commit": "34bbc22cbca0004475788f06be2300fef23c6a52",
      "tree": "26d71e931f448d722f0712b6a6c80886b7947cbe",
      "parents": [
        "dded6447b53a43702f252b14972b4fe825642f1e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 15 18:13:58 2010 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jan 15 18:28:16 2010 -0800"
      },
      "message": "Media server death nodification\n"
    },
    {
      "commit": "1cb02bf661807ffc6525dcc13e16d7ce027bef00",
      "tree": "989ddb8cf9e9f62e1b3579bac37bab052d996686",
      "parents": [
        "5a2ade33fa21dc866a52005c1bbdb8ba7d768ae9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 13 11:25:10 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 13 11:30:34 2010 -0800"
      },
      "message": "Support for determining the mime type of media via metadata extraction.\n"
    },
    {
      "commit": "3a3656ce8a34bf4a17e806c1db1073848de2728f",
      "tree": "d7906c2c5b2ef35b958361a2c3cf25a74212a252",
      "parents": [
        "a77f93f76a40128ecc3d017ead6d1105f96b282a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 13 10:45:49 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 13 10:45:49 2010 -0800"
      },
      "message": "More metadata support.\n"
    },
    {
      "commit": "cef3cd79489fa7897ffbacbc4e435651fb04f10d",
      "tree": "fd0d5f2763f08b01314ec7015c0a2e027e916c20",
      "parents": [
        "a77f93f76a40128ecc3d017ead6d1105f96b282a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 10 01:03:50 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 13 09:25:13 2010 -0800"
      },
      "message": "Create base class for audio policy manager.\n\nFirst implementations of audio policy manager in Eclair branch have shown that most code is common to all platforms.\nCreating AudioPolicyManagerBase base class will improve code maintainability and readability.\n\nAudio policy manager code for platforms using generic audio previously in AudioPolicyManagerGeneric is replaced by AudioPolicyManagerBase.\nAudio policy manager test code previously in AudioPolicyManagerGeneric is moved to AudioPolicyManagerBase.\n\nAlso added a wake lock for delayed commands in AudioPolicyService.\n"
    },
    {
      "commit": "aee3c6394a367abf283936cb8b8bd85ed028c050",
      "tree": "b6e95cdaa35e612745ed9505b1bdf4f1fd1fb52f",
      "parents": [
        "93aea69649c2ac163db3333563644d2593f2770c"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 11 15:35:19 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 12 09:14:15 2010 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit f81bb1dac5ef107bb0d7d5d756fb1ffa532ba2cc\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jan 11 14:55:56 2010 -0800\n\n    Support for duration metadata, midi and ogg-vorbis files (in mediascanner)\n\ncommit 0b1385a0dc156ce27985a1ff757c4c142fd7ec39\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Jan 11 14:20:45 2010 -0800\n\n    Refactor meta data logic. Container specific metadata is now also returned by the MediaExtractor.\n\ncommit f9818dfac39c96e5fefe8c8295e60580692d5990\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Fri Jan 8 14:26:09 2010 -0800\n\n    A first pass at supporting metadata through ID3 tags.\n\ncommit 476e9e253633336ab790f943e2d6c0cd8991d76a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Jan 7 15:48:44 2010 -0800\n\n    Initial checkin of ID3 (V2.2 and V2.3) parser for use in stagefright.\n\nrelated-to-bug: 2295456\n"
    },
    {
      "commit": "e4a838051de5e56f44c71117073a035b804b5d04",
      "tree": "6e388540202e3386ff80a3b25da69d3e4b085701",
      "parents": [
        "660cc3461afbf0631cc8d4ab628628d68d840014"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 08 10:57:34 2010 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 08 11:54:36 2010 -0800"
      },
      "message": "Reorganize some of the stagefright implementation related to metadata.\n"
    },
    {
      "commit": "cf4fc6263c1c24ffa91a65a75edb126143a2617e",
      "tree": "9a9ee3a1cf2d14ebd4d5b6ce08f9052e0dc57295",
      "parents": [
        "ecc1f6eca2a89b5a1d0e0e067e3f270424121546",
        "f31f365a7708c931e955670bc6213fdc8f91a87a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 23:46:16 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 22 23:46:16 2009 -0800"
      },
      "message": "am f31f365a: am eb5ffc23: Merge change Id8e98194 into eclair\n\nMerge commit \u0027f31f365a7708c931e955670bc6213fdc8f91a87a\u0027\n\n* commit \u0027f31f365a7708c931e955670bc6213fdc8f91a87a\u0027:\n  Fix issues 2333450 and 2333559:\n"
    },
    {
      "commit": "f31f365a7708c931e955670bc6213fdc8f91a87a",
      "tree": "4d1a72347440f4d71519e7ba47c4cd6948ebaa32",
      "parents": [
        "244cc72fdf906799e3ec4cfe5b7cda49d9f08cca",
        "eb5ffc239b6482b9c1e046f6f5872187043d852c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 22 23:41:59 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 22 23:41:59 2009 -0800"
      },
      "message": "am eb5ffc23: Merge change Id8e98194 into eclair\n\nMerge commit \u0027eb5ffc239b6482b9c1e046f6f5872187043d852c\u0027 into eclair-plus-aosp\n\n* commit \u0027eb5ffc239b6482b9c1e046f6f5872187043d852c\u0027:\n  Fix issues 2333450 and 2333559:\n"
    },
    {
      "commit": "eb14a783be073b5fd6e8c8c9bc87d2d1919f2c9e",
      "tree": "7e288ac01c4a713d13e46c872b5dd682667dbe20",
      "parents": [
        "f0cdfa9955725c99cd4df6b933e4cb732847ebd1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 17 03:12:59 2009 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 22 16:20:46 2009 -0800"
      },
      "message": "Fix issues 2333450 and 2333559:\n\nAdd new config values to AudioSystem::FOR_DOCK force usage to differenciate car and desk docks.\nUse a receiver for the sticky Intent.ACTION_DOCK_EVENT in AudioService to detect the type\nof dock and select force usage accordingly.\n"
    },
    {
      "commit": "b5c6be6db25d9e9405ea4cf20bbedd46a62dc0bb",
      "tree": "345a2a58b9f210483ab60f259c682b6b7362e3d5",
      "parents": [
        "0249c83ed014cc6a36caac30e55db62c29c204e2",
        "082e51712ab9c9ce94eaee88797bbdbc80b2004d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 17 10:23:46 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 17 10:23:46 2009 -0800"
      },
      "message": "am 082e5171: Merge change I895fb7d7 into eclair-mr2\n\nMerge commit \u0027082e51712ab9c9ce94eaee88797bbdbc80b2004d\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027082e51712ab9c9ce94eaee88797bbdbc80b2004d\u0027:\n  Squashed commit of the following:\n"
    },
    {
      "commit": "2ea14e231945afb6581fa8f54015b33bc74a19e5",
      "tree": "966adffbd5960c907324a5a78dc91abf40ea8fb5",
      "parents": [
        "d980e656baa842592944c6fed371c9b37b2feea9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Dec 16 09:30:55 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Dec 17 09:28:15 2009 -0800"
      },
      "message": "Squashed commit of the following:\n\ncommit 144b1c40e9cf08a584c50e1bef7ba3f287e81a4f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:28:23 2009 -0800\n\n    This H264 file shows a certain problem even better.\n\ncommit 3245f1f3b7471975aeeb824a756c987abd610f55\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Dec 16 09:20:08 2009 -0800\n\n    Using only the QA testfiles now.\n\ncommit 074817eb3816c5dd70858a3594e3b92d799d873b\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 16:17:39 2009 -0800\n\n    Yay, roles are back again now that the API is in place.\n\ncommit 6d847e4932cc38301ae27cb7283b7f1553a95457\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 15 13:01:20 2009 -0800\n\n    Added commandline option for specifying the random seed for reproducable tests.\n\ncommit 62ab37b26336eaa67e49791c41c996acb6acee3f\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 14 10:53:27 2009 -0800\n\n    When issuing a seek it is important that only the first MediaSource::read call has the seek option.\n\ncommit e77c46644b2fb6862bafa3569f7d304252074f1e\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Dec 7 16:39:07 2009 -0800\n\n    Make sure the tests are actually built, sp\u003cOMXCodec\u003e becomes sp\u003cMediaSource\u003e\n\ncommit 6df56915bd55a9445b3c6f953d3cc251d81579b8\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Thu Dec 3 14:25:36 2009 -0800\n\n    Temporarily disable support for querying the roles of OMX components.\n\ncommit 31bb26930df9e3658dea684cedb4b0f1a06a4a88\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 13:36:52 2009 -0800\n\n    Disregard EOS events, slightly change the way the EOS flag on output buffers is handled.\n\ncommit 4c382fbc9aebee8197d5988d04378062809e7c48\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Dec 1 09:37:24 2009 -0800\n\n    New random seek test for the codec tests. Fixed \"sticky\" end-of-output-buffers flag behaviour in OMXCodec.\n\ncommit c762eac3e44309592b61a168d66e091cf609fa03\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 14:13:43 2009 -0800\n\n    Fix a typo.\n\ncommit 50540a59b65c7d476b0193c7494cd75895e6ca6d\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Tue Nov 3 09:48:35 2009 -0800\n\n    Some more fine tuning of the unit tests, make MPEG4Extractor less verbose.\n\ncommit 1157a7e52a0636706caa235abe16d2ff8a0b8140\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Wed Oct 28 12:01:01 2009 -0700\n\n    Changes to the IOMX::listNodes API, this now returns the component\u0027s roles as well, unit tests now test all components in all supported roles by default.\n\ncommit 30fbf2d8c6cb927689f7ba75eb550a81e9df488a\nAuthor: Andreas Huber \u003candih@google.com\u003e\nDate:   Mon Oct 26 09:45:26 2009 -0700\n\n    Initial check-in of unit tests for OMX components.\n"
    },
    {
      "commit": "d93447910055565726836a1cdcfc3bad7c95f98c",
      "tree": "70b8e7b8635a0ba4b5dbffab5d3e21df018e236d",
      "parents": [
        "aab601168caec83cf1ca3f235d3a6b308a5dedaa",
        "d980e656baa842592944c6fed371c9b37b2feea9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 15 15:38:40 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 15 15:38:40 2009 -0800"
      },
      "message": "am d980e656: Merge change Ic7e91eee into eclair-mr2\n\nMerge commit \u0027d980e656baa842592944c6fed371c9b37b2feea9\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027d980e656baa842592944c6fed371c9b37b2feea9\u0027:\n  Add a new API to support determining the roles of an OMX component specified by name. Remove unneeded OMXSoftwareCodecsPlugin.\n"
    },
    {
      "commit": "c7e91eee2e79e3e4c8f84fd6b8a753215955d4e8",
      "tree": "ce1c99f511a8c57bd65afef34c6e745a1cf67d64",
      "parents": [
        "ae77561b8f4de45228b0d63f0d7508d428b9516a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 15 15:22:08 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Dec 15 15:22:08 2009 -0800"
      },
      "message": "Add a new API to support determining the roles of an OMX component specified by name. Remove unneeded OMXSoftwareCodecsPlugin.\n"
    },
    {
      "commit": "28fdcf93bd4150299d1b7eda0c9bdcf4ae75069a",
      "tree": "f78ad707beecc75770f2bc77dc11fef7232c23a2",
      "parents": [
        "f6bb01b0d81943a00a42e56f2e65549ca03c386d",
        "089455760c05289c1315268a6cb896577ceebc64"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 15:44:59 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 11 15:44:59 2009 -0800"
      },
      "message": "am 08945576: Merge change I9ac0777e into eclair-mr2\n\nMerge commit \u0027089455760c05289c1315268a6cb896577ceebc64\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027089455760c05289c1315268a6cb896577ceebc64\u0027:\n  Initial checkin of software AMR NB encoder based on PV source code.\n"
    },
    {
      "commit": "d49b526dd2009270cb15f7fe4e70b74673950608",
      "tree": "921f1285d2ea270a799822ce910bb59e5b91e257",
      "parents": [
        "8eac1637b0f8ec7a2417eb53ebe56bb64c3b2b23"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 15:07:25 2009 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Dec 11 15:09:31 2009 -0800"
      },
      "message": "Initial checkin of software AMR NB encoder based on PV source code.\n"
    },
    {
      "commit": "1e1d44924a334637f9fb47ca8796625bd86cb66a",
      "tree": "d09c9832af259c4541eaaecd32c34f3b68150028",
      "parents": [
        "c267c90100ff09ab1ca6b09d6eae23594d699536",
        "218aa94581293876a4283f8d5908843c8f818e3a"
      ],
      "author": {
        "name": "Kenny Root",
        "email": "kroot@google.com",
        "time": "Thu Dec 10 18:10:33 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 18:10:33 2009 -0800"
      },
      "message": "am 218aa945: Merge change I6478884a into eclair-mr2\n\nMerge commit \u0027218aa94581293876a4283f8d5908843c8f818e3a\u0027 into eclair-mr2-plus-aosp\n\n* commit \u0027218aa94581293876a4283f8d5908843c8f818e3a\u0027:\n  Add string resource type inspection\n"
    },
    {
      "commit": "218aa94581293876a4283f8d5908843c8f818e3a",
      "tree": "b76fdd7443fc8055786b7461701ab027a0e195d6",
      "parents": [
        "9de0dba37cdb74a21e561c5235757318f1812e3d",
        "bb79f64b89bd7be7019035a0347c681e6f39fe6b"
      ],
      "author": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 18:05:19 2009 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 10 18:05:19 2009 -0800"
      },
      "message": "Merge change I6478884a into eclair-mr2\n\n* changes:\n  Add string resource type inspection\n"
    },
    {
      "commit": "899858a39647803c0cb506d2320fdaf2e4d3b8b9",
      "tree": "afdd725eeec7ec04bd261d330e3de931500c9e34",
      "parents": [
        "b62954b66542e3e2654d97a81123c51805bceca7",
        "6608bd0d3af3f9c365b73f8b19d9ec0b7d5ee70b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 10 16:58:35 2009 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 10 16:58:35 2009 -0800"
      },
      "message": "am 6608bd0d: am 86ed86d2: Merge change I0f73439a into eclair\n\nMerge commit \u00276608bd0d3af3f9c365b73f8b19d9ec0b7d5ee70b\u0027 into eclair-mr2-plus-aosp\n\n* commit \u00276608bd0d3af3f9c365b73f8b19d9ec0b7d5ee70b\u0027:\n  Partially fix bug 2111240 Detect docking / undocking event by reporting\n"
    }
  ],
  "next": "6608bd0d3af3f9c365b73f8b19d9ec0b7d5ee70b"
}
