)]}'
{
  "log": [
    {
      "commit": "56485fe62882065688e70fcb1f4b5c3894ed2c87",
      "tree": "253c902bca219766169277bb2d27aa6135535ddf",
      "parents": [
        "994c26b2a600a5a9fb9fbada9c6299c0488ecda7",
        "6554943a1dd6854c0f4976900956e556767b49e1"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 16:51:22 2012 -0700"
      },
      "message": "Merge \"Use a status_t return type for GL functors\""
    },
    {
      "commit": "6554943a1dd6854c0f4976900956e556767b49e1",
      "tree": "82d43bbb28af4feeb6c358077ac1083ca3598e7b",
      "parents": [
        "a9dd820184ee4d083bd9b2af735dcf50b78fc6cd"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Mon Mar 26 16:45:05 2012 -0700"
      },
      "message": "Use a status_t return type for GL functors\n\nWebView needs more fine-grained control over the behavior of the\nframework upon execution of the display lists. The new status_t\nallows WebView to requests its functor to be re-executed directly\nwithout causing a redraw of the entire hierarchy.\n\nChange-Id: I97a8141dc5c6eeb6805b6024cc1e76fce07d24cc\n"
    },
    {
      "commit": "8296628ed89d98a76a904cbca53ffeb62db8bbda",
      "tree": "64b4249682259ea70326e36ad1f1b5bf00ae0081",
      "parents": [
        "b3e2e24f789d41d6c38b8ad4c252cf9f6e2122d8",
        "30b8a65c5c2b950eaa95a0ce6792a05c30c86a08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 12:28:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 12:28:38 2012 -0700"
      },
      "message": "Merge \"mv libcpustats from frameworks/base to /native\""
    },
    {
      "commit": "30b8a65c5c2b950eaa95a0ce6792a05c30c86a08",
      "tree": "bcab87c2c2391e97f5f8d266967da50e007f6c38",
      "parents": [
        "7061b5ffb37ea15f235effa1faaf22bb1750c7f5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 12:22:57 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 12:22:57 2012 -0700"
      },
      "message": "mv libcpustats from frameworks/base to /native\n\nOK to lose history\n\nChange-Id: I05ce0452f16a396cff6e18db5424492f3a6f6861\n"
    },
    {
      "commit": "b3e2e24f789d41d6c38b8ad4c252cf9f6e2122d8",
      "tree": "3db78e2b9860b33fc0a75cdd9e3ddba2f97410db",
      "parents": [
        "61bf87428c0f3366d0c4ec203ff96331b7ec3546",
        "9b8e496f4d143280deff137c5f30ca8907bc28db"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:43:06 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:43:06 2012 -0700"
      },
      "message": "Merge \"Provisional support for secure decryption of media streams.\""
    },
    {
      "commit": "9b8e496f4d143280deff137c5f30ca8907bc28db",
      "tree": "f6136e4a5bf55c67ac721f1fc94b8d6aadc0fa6f",
      "parents": [
        "7061b5ffb37ea15f235effa1faaf22bb1750c7f5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:13:27 2012 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Mar 26 11:24:04 2012 -0700"
      },
      "message": "Provisional support for secure decryption of media streams.\n\nChange-Id: Ib3982a9c960bfdb0cb7e1b174440b141b194cfbe\n"
    },
    {
      "commit": "383c4b3e63b02dfb348db7504af0efefa7b6a682",
      "tree": "a175275540540538a95ebf26fbc24d75d88317a0",
      "parents": [
        "56ca534e65427bdefb7674060f5faa94539b6995",
        "f5e18125498b768d4528e4d1c19533c2b16f338b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 11:23:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 11:23:49 2012 -0700"
      },
      "message": "Merge \"reorganize SoundPool and JetPlayer code.\""
    },
    {
      "commit": "f5e18125498b768d4528e4d1c19533c2b16f338b",
      "tree": "f86eceeef1fbda2032eb708de15aa15ee37dc4a6",
      "parents": [
        "9321ad6a7567a28116f15240688d474993539922"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 10:47:22 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 26 10:54:41 2012 -0700"
      },
      "message": "reorganize SoundPool and JetPlayer code.\n\nReorganize SoundPool and JetPlayer code to be ready for the\ncreation of libmedia_native.\n\nSplit SoundPool between libsoundpool (JNI) and libmedia(sound pool implementation).\nRemove dependencies on nativehelper/jni.h from JetPlayer.\n\nChange-Id: I130c6014173b714329929dd82c5dfb70b757a610\n"
    },
    {
      "commit": "4acee00352b6c420f235c9b35010849ceaa9fc14",
      "tree": "7eb45d0fe52cca80b184e15b64b175a90a4a0f54",
      "parents": [
        "39581f92482e000af2fe0575843d0752d164f9ae"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 12:07:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 07:25:48 2012 -0700"
      },
      "message": "Add TRACK_FAST for IAudioFlinger::createTrack\n\nCurrently not implemented by client or server\n\nChange-Id: Ib11dda57db3eeb871bcc7b546e340078776875f5\n"
    },
    {
      "commit": "39581f92482e000af2fe0575843d0752d164f9ae",
      "tree": "a5e25c538fc7e781e8d9e400b94914c7c80b851f",
      "parents": [
        "9ea03b9f29f6ec28ba4ced36c84328f48828f86d",
        "84569cc4e106ff4d6c6855b46e546572c5dda6b2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 26 07:16:37 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 26 07:16:37 2012 -0700"
      },
      "message": "Merge \"IAudioFlinger::createTrack and openRecord flags\""
    },
    {
      "commit": "8dd6574809cc9799cf43a7349769eaeb70b63e2d",
      "tree": "8782665a58bb383829c02be1969074a8627e8226",
      "parents": [
        "23918f214435e57db8591c057afe45c371872d90"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 15:15:01 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Mar 24 15:35:17 2012 -0700"
      },
      "message": "remove jni.h include from IOMX.h\n\njni.h is not used in IOMX.h and is not available in pdk builds,\nremove it.\n\nChange-Id: I9bc8fd70f617942712d9f684c6fc927bf18be753\n"
    },
    {
      "commit": "062ed957e0a086b70414b62529993b28072dc86c",
      "tree": "b32de670c9addff6af78aa1542ecc3e8db56603d",
      "parents": [
        "3b3a5b100b2ec63d8f6511b655c74f629b7d1981"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Mar 23 16:15:19 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Mar 24 10:15:18 2012 -0700"
      },
      "message": "Fixed missing return value from a method should have returned status_t\n\nChange-Id: I83ad2735eaf8a8dfa5f8f29f30aec1311b3222de\n"
    },
    {
      "commit": "a982dc05d7ca919c07f50e446549ef9dceadf6bd",
      "tree": "e9b0e1564069bf39447db97b966a01c6dda66609",
      "parents": [
        "54c546223cd550d2995ec6d956a8e7963311a0a6"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 22 18:43:07 2012 -0700"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Mar 22 18:43:07 2012 -0700"
      },
      "message": "frameworks/base: move Zip* from libandroidfw to libutils\n\nZipUtils is needed by build/tools, move it from libandroidfw\n(frameworks/base) to libutils (frameworks/native).\n\nChange-Id: I2b4b7adcdf68eb25ee7cba5dd3b69eadf0523af3\n"
    },
    {
      "commit": "bf30911bf1894506793fccea24deca2e9208b3b4",
      "tree": "a479a90fce6bee5b635f53f6215c6ae726df6893",
      "parents": [
        "b909b6a1481b9832ede549d17e2e4478bbdd2efe",
        "2333a27ee528e97400d41838696258f29aa48688"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 22 11:06:49 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 22 11:06:49 2012 -0700"
      },
      "message": "Merge \"Remove enforceFrameCount\""
    },
    {
      "commit": "da9deca7bab75f39a236d04b9e43d9da833ce4a0",
      "tree": "da55de4303ab3e4a2e32c70e9fc539dbc3da5745",
      "parents": [
        "222dfc784e5c5b4eb6a4770b9f46fe96eecbd65d"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 13:36:07 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 22 10:06:03 2012 -0700"
      },
      "message": "Support gapless playback for mp3 and m4a\n\nGapless playback for appropriately tagged mp3 and m4a files.\nCurrently this is implemented in OMXCodec, which most players\nuse, but should be easy to support in other players as well by\nusing the SkipCutBuffer utility class.\n\nChange-Id: I748c669adc1cfbe5ee9a7dea2fad945d48882551\n"
    },
    {
      "commit": "2333a27ee528e97400d41838696258f29aa48688",
      "tree": "29f127d908ad6409920482c839cb1aaa11e32f41",
      "parents": [
        "004f9bac41e762b52e28ade469c057f6f0e833d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 12:16:56 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 15:41:02 2012 -0700"
      },
      "message": "Remove enforceFrameCount\n\nIt was only used to decide whether to issue a warning.\nThe warning was issued the first time track was created but\nnot at re-creation.  Now it is a verbose message every time,\nnot a warning since it happens all the time with key clicks on A2DP.\n\nChange-Id: I9d39f53c0a7eb84b666e55b1b76ff830cf8f37ba\n"
    },
    {
      "commit": "3e6792232aa0ce3e650eaa03529c9eb2fe023ca9",
      "tree": "5cd926e608dbe3e3b5e1986bd48051961f29303b",
      "parents": [
        "63b9e973e53476db36eb9cb9f14f0e5c0805d0bd",
        "d0a524fb5946dbe4f27df2c235435e6f1bf805ae"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 15:12:44 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 15:12:44 2012 -0700"
      },
      "message": "Merge \"Add MetaData::dumpToLog\""
    },
    {
      "commit": "d0a524fb5946dbe4f27df2c235435e6f1bf805ae",
      "tree": "afc3052ec081f95b22d990bffb5aef75867fcdc3",
      "parents": [
        "8fca15f1f2273fa429e58f783d0970251d0942e5"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 12:27:00 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Mar 21 15:00:27 2012 -0700"
      },
      "message": "Add MetaData::dumpToLog\n\nUtility method for dumping the content of a MetaData object to the log.\n\nChange-Id: I2d91b991e1d9fed2215e8995a73c2b1854205074\n"
    },
    {
      "commit": "32d72b2f538673466f6e0ebf01886412e803dc4f",
      "tree": "167ad9eaf5aeaf25a60ea337b89b10dca4d23e60",
      "parents": [
        "85b51b8ae39a4aa3181d92e171baa86437475c0c",
        "f743e1f6abdb018fc58c467cdf35cbb8b81cf8c4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 21 07:22:40 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 21 07:22:40 2012 -0700"
      },
      "message": "Merge \"Whitespace\""
    },
    {
      "commit": "54fa7254838748c4149f4e340f479fc4e3b2357d",
      "tree": "f97e85512bec47cbfcf5b7e6532031f59fcc447e",
      "parents": [
        "b2e822fc2ac87703ac12d062add62408574cbf7c",
        "2ed77701f908f63e072abd0e7eb1c4af61f9347f"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 09:15:05 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 20 09:15:05 2012 -0700"
      },
      "message": "Merge \"Parse mp3 encoder padding/delay\""
    },
    {
      "commit": "2ed77701f908f63e072abd0e7eb1c4af61f9347f",
      "tree": "ac0d43e3863cfaa544a46c3916bfc54630319f3d",
      "parents": [
        "4fc769e9dfd1e859a960b49102e48ed9f0d8ff38"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Mar 19 13:49:43 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 20 08:46:11 2012 -0700"
      },
      "message": "Parse mp3 encoder padding/delay\n\nGet the mp3 encoder padding and delay from a XING frame or iTunSMPB tag.\n\nChange-Id: Icde598c8857d7e7c187a718f478ee9799d6a1b8a\n"
    },
    {
      "commit": "f743e1f6abdb018fc58c467cdf35cbb8b81cf8c4",
      "tree": "cc01c648f5b8b7bd10f852dde7037c98f6e0066e",
      "parents": [
        "bf02b984738f6be5cc2e2d66b12aff7af99eb79e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 12:56:26 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 17:53:33 2012 -0700"
      },
      "message": "Whitespace\n\nFix indentation, and add blank lines in key places for clarity\n\nChange-Id: I57a0a8142394f83203161aa9b8aa9276abf3ed7c\n"
    },
    {
      "commit": "84569cc4e106ff4d6c6855b46e546572c5dda6b2",
      "tree": "fe011add47cfa96d538178b429332040f9c49775",
      "parents": [
        "f6b8f7b34f5fe94cd1d8753ec356b967293f1f9c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 11:22:44 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 09:04:23 2012 -0700"
      },
      "message": "IAudioFlinger::createTrack and openRecord flags\n\ncreateTrack and openRecord don\u0027t need the \"old\" flags parameter,\nwhich was either audio_policy_output_t or audio_in_acoustics_t\nshifted left by 16 bits.  But they do need \"new\" flags, which\nare defined by the application use case.  Initially, the only\napplication use case flag is timed output, but others are planned.\n\nFor output, the audio_policy_output_t flags are passed to\nAudioSystem::getOutput, which returns an audio_io_handle_t, and that\nhandle is then passed to createTrack. So createTrack doesn\u0027t need the\nold flags parameter.\n\nFor input, the audio_in_acoustics_t flags are passed to\nAudioSystem::getInput, which returns an audio_io_handle_t, and that\nhandle is then passed to openRecord. So openRecord doesn\u0027t need the\nold flags parameter.\n\nChange-Id: I18a9870911846cca69d420c19fe6a9face2fe8c4\n"
    },
    {
      "commit": "543ec1c808e0064371cdf491bb8ff1e08134ed93",
      "tree": "0b59ae11be2b413a9a841614a3e3cb692878a137",
      "parents": [
        "c1ac23db267c0acddfeed3204c2737d110ca0ab9",
        "4280c4a93ea17f2e9d3f651e49d8c13dc3fb92aa"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Mar 16 11:01:20 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 16 11:01:20 2012 -0700"
      },
      "message": "Merge \"If an application calls System.exit() terminate it immediately.\""
    },
    {
      "commit": "8d3c318b2d6690a156cc22ef6599a73bee7ed482",
      "tree": "ee99ea5976af25ccc213623dbc1e2424706dacd3",
      "parents": [
        "0c269766eaf702b4caeeec56739a63619fba3c93",
        "a1c41e13b521cdd611a8fc46e43b5ae0a2c00238"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Mar 15 21:23:24 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 21:23:24 2012 -0700"
      },
      "message": "Merge \"Add a new camera open API that allows taking the ownership.\""
    },
    {
      "commit": "4280c4a93ea17f2e9d3f651e49d8c13dc3fb92aa",
      "tree": "f77523cff7d2f3a4d55ab2b3aa1ec0841d17cb89",
      "parents": [
        "16f5f5cc9d4c480fac3dc7f176f3f1edfbd256f4"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 15 17:48:02 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Mar 15 19:59:23 2012 -0700"
      },
      "message": "If an application calls System.exit() terminate it immediately.\n\nThere is no graceful way to kill Android application processes.\nThey typically have many threads running doing various things\nWhen System.exit() is called, those threads just keep going\nwhile the cleanup actions run until the process finally.\n\nPerforming shutdown actions can easily cause more harm than good.\nFor example, closing the Binder driver\u0027s file descriptor may\ncause other threads waiting on Binder to wake up and then crash\nin nasty ways after receiving EBADF.\n\nSo when an Android application exits, skip the cleanup and just\ncall _exit() to end it all.\n\nBug: 6168809\nChange-Id: I29790c064426a0bf7dae7cdf444eea3eef1d5275\n"
    },
    {
      "commit": "4d2ece12a69da02a76b0826440ac0887dd8dc9a7",
      "tree": "91320b52545f7d0b850f691267124b6868627a39",
      "parents": [
        "e82a54aedc45ed2c06e62a14947d4f56c823221d",
        "bf4431bd936ae39c17e4fe34263d361f7f7ffc1e"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Mar 15 10:34:00 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 15 10:34:00 2012 -0700"
      },
      "message": "Merge \"Move CameraParameters.h to frameworks/native.\""
    },
    {
      "commit": "a1c41e13b521cdd611a8fc46e43b5ae0a2c00238",
      "tree": "48877fa91b94c62482519f040e966997a9d214d2",
      "parents": [
        "5571ffdd9d419e3b1e050501e6f8dbfb04159b5d"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Feb 23 19:01:00 2012 -0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Mar 15 14:50:48 2012 +0800"
      },
      "message": "Add a new camera open API that allows taking the ownership.\n\nThe purpose is to let face unlock always get the camera\nsuccessfully. What happened was the camera applications may\nhave opened the camera in onResume under the lock screen.\nThis API lets face unlock take the camera from the camera\napplication. A new permission will be added, so other\napplicatoins won\u0027t be able to take the camera from the face\nunlock.\n\nbug:5584464\n\nChange-Id: Ib3d9dcbc2161815b68db42327dc01148453704c6\n"
    },
    {
      "commit": "bf4431bd936ae39c17e4fe34263d361f7f7ffc1e",
      "tree": "82e1214199dd17789dfafecf14a8eb617b8c6ea3",
      "parents": [
        "c4ffe77a710880416a7cf7c20277311bab2d7abc"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 14 17:14:19 2012 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Mar 14 17:14:19 2012 -0700"
      },
      "message": "Move CameraParameters.h to frameworks/native.\n\nCameraParameters.h is indirectly required to implement the Camera\nHAL. Move it to frameworks/native.\n\nBug: 6171735\nChange-Id: I1bf4db228333be16fc7caa3c51280a9495293011\n"
    },
    {
      "commit": "41f3f716b07265fb355ef70e89b9d7e1ad5f0a6f",
      "tree": "60a2fb8619721d5a575aef156b5ddbff0582ba98",
      "parents": [
        "81fe4fbd6ba87a0be556c57c14de0b23cf51f179"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Feb 16 20:28:27 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Thu Mar 15 08:36:52 2012 +0900"
      },
      "message": "Defines MediaPlayer APIs to support multiple audio/video/timedtext\ntracks.\n\no Newly introduced APIs are (MediaPlayer):\n  getTrackInfo() / addExternalSource() / enableTrack() / disableTrack().\n\no Timed text tracks are supported only, for now.\n\no TODOs:\n - Define the audio/video behavior for enableTrack and disableTrack.\n - Refactoring AwesomePlayer / TimedTextDriver so that all types of\n   track index can be managed in the correct order and be ready for\n   supporting audio/video tracks.\n   (MediaExtractor and MediaSource for text file might be necessary.)\n\nChange-Id: Idb85e1b3f2ed49a64f377d05472dd6663ce94e07\n"
    },
    {
      "commit": "81fe4fbd6ba87a0be556c57c14de0b23cf51f179",
      "tree": "f1d31ac922a50504102dedb848a1791c4788f543",
      "parents": [
        "1f1bc8b12a85026788495567f83ffd1baf2630d8",
        "f57e2bceb9f09b0a06ebfe89cd5fd46efcfd6fc8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:28:38 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 16:28:38 2012 -0700"
      },
      "message": "Merge \"AudioFlinger playback thread CPU measurement in Hz\""
    },
    {
      "commit": "f57e2bceb9f09b0a06ebfe89cd5fd46efcfd6fc8",
      "tree": "14f817b15ff2ee61648f15c54a7d8f6db465ae37",
      "parents": [
        "a2d68c93941d71194995efdfedc440110d7c5532"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 11:27:10 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:03:01 2012 -0700"
      },
      "message": "AudioFlinger playback thread CPU measurement in Hz\n\nLog statistics on CPU usage in Hz in addition to wall clock time\n\nUse CPU statistics for all playback threads, not just MIXER\n(but they are disabled by default by a compile-time debug macro).\n\nThreadCpuUsage library:\n - Move statistics out of the library and leave that up to the caller\n - Add API to determine a CPU\u0027s frequency\n\nChange-Id: Ia1011123146e641fcf210ef26e78ae2b4d3b64ad\n"
    },
    {
      "commit": "6940484150b9ef96c93ddfb4b2dfedcaa373cb34",
      "tree": "0b08552bd5c5da481c31a70d9a895b17c2bb6ac5",
      "parents": [
        "5108b1b3cf51a08ddae609c384233df36ef53de3",
        "c81d31c3f801ba3d559a22c27b926ace38a7ab49"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 13:54:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Mar 14 13:54:21 2012 -0700"
      },
      "message": "Merge \"Use correct syntax for #include \u003c\u003e \"\"\""
    },
    {
      "commit": "c81d31c3f801ba3d559a22c27b926ace38a7ab49",
      "tree": "c2de55ecf348f27e04329684d6b79543759a4365",
      "parents": [
        "05f692e8050c3650ec123b2361143a121e2e7d4b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 14:46:23 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 16:14:19 2012 -0700"
      },
      "message": "Use correct syntax for #include \u003c\u003e \"\"\n\nChange-Id: I943137108668ae66f8eba18dafe069a7951bcd8f\n"
    },
    {
      "commit": "9dc348d75688faba645c03ecd6e72de7cecc87ba",
      "tree": "5bf27444139c7889bcb966823c54c7da296410a2",
      "parents": [
        "f2fbd2eda54cc6083d302ab00367af3db2b7e793",
        "2b6c32ca4177f1a97307f9cbd81ca485df28762c"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:15:48 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 15:15:48 2012 -0700"
      },
      "message": "Merge \"Fix spurious ANRs in native activities.\""
    },
    {
      "commit": "2b6c32ca4177f1a97307f9cbd81ca485df28762c",
      "tree": "abc217f8ff191ce1ecc7c4eb9b51185b6d47625d",
      "parents": [
        "b2679481b57d87945df02983f95ff8e6c9ba5928"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:00:09 2012 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Mar 13 15:00:09 2012 -0700"
      },
      "message": "Fix spurious ANRs in native activities.\n\nSome native activities experienced ANRs when the input consumer\ndeferred an input event due to client-side batching.  If the\ninput channel was fully emptied then the client had no way of\nknowing that it should wake up to handle the deferred input event.\n\nThis patch also fixes some lock issues in the native activity\ninput queue implementation.  In at least one error case, it\nwas possible for a function to exit without releasing the lock.\n\nBug: 6051176\nChange-Id: I4d9d843237e69b9834f8d8b360031b677fcab8c3\n"
    },
    {
      "commit": "1c1d1e7ed7ed2673b22642c6701659146ceaa602",
      "tree": "11321e500d5a0432928dde8172312c6c5197cf11",
      "parents": [
        "586d365e000294ab9cf1efe56657adb0fa8b756e",
        "84b832054552e00257bb04997143ca33d6d100be"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 13 13:23:07 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 13:23:07 2012 -0700"
      },
      "message": "Merge \"Gapless playback, step 1.\""
    },
    {
      "commit": "84b832054552e00257bb04997143ca33d6d100be",
      "tree": "cf04f15f15da2d9ddbd2112b2b89542f6270b4ce",
      "parents": [
        "f19d5f0271a9e0cdf3a79c6ccab5aa151b0b3239"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Feb 28 16:07:44 2012 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Mar 13 13:13:14 2012 -0700"
      },
      "message": "Gapless playback, step 1.\n\nCurrently able to play Ogg Vorbis, PCM WAV and other lossless files seamlessly\nby reusing the initial AudioTrack for subsequent players.\n\nChange-Id: Ie7cf6b9076bdf4f9211574456d192c02c04fecc7\n"
    },
    {
      "commit": "7cd59760be0f2eb3127b375d5c8e06abfb0dd151",
      "tree": "53f69cc9ead0975b8e38caec802043873a9814a3",
      "parents": [
        "a1b09a92d8879f1f385046533628547a118eb558",
        "e1dea48f92fd087573ac76c6acd03f5a19181ece"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 13 12:44:54 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 13 12:44:54 2012 -0700"
      },
      "message": "Merge \"Switched to use the header files in /frameworks/native and deleted the duplicate header files in /frameworks/base\""
    },
    {
      "commit": "18db49a46259020387c40fff36d92edc1087a366",
      "tree": "df524d9cb807626d23cc0173be8fd09cd99353c2",
      "parents": [
        "065781397099719805a0a42023581b2622984dd4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 16:29:55 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 11:09:47 2012 -0700"
      },
      "message": "Whitespace and indentation\n\nFix indentation to be multiple of 4.\nMake it easier to search:\n  sp\u003c not sp \u003c to\n  \"switch (...)\" instead of \"switch(...)\" (also \"if\" and \"while\")\nRemove redundant blank line at start or EOF.\nRemove whitespace at end of line.\nRemove extra blank lines where they don\u0027t add value.\n\nUse git diff -b or -w to verify.\n\nChange-Id: I966b7ba852faa5474be6907fb212f5e267c2874e\n"
    },
    {
      "commit": "e1dea48f92fd087573ac76c6acd03f5a19181ece",
      "tree": "74f3810d794210df8f54d229006c9dcfc6bcd5ea",
      "parents": [
        "958ec9d0b2f2063a03d3ea2b9bb86897125401b0"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 14:37:53 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 21:28:57 2012 -0700"
      },
      "message": "Switched to use the header files in /frameworks/native\nand deleted the duplicate header files in /frameworks/base\n\no related-to-bug: 6044887\n\nChange-Id: I17e0692d9a9b5c8796ded36677c833ca8ab36795\n"
    },
    {
      "commit": "db9c21e75411232c2dae8df35e821142e7243a8b",
      "tree": "fac3904c20d35cb60c5b5e5ba1158b4f4dae55cb",
      "parents": [
        "b8f8809472e075a5b0318cf43b86e3dfb1bab082",
        "8d8557ad578fa43fe9b1800db03a0a53afbe78c1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 12 15:05:21 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 15:05:21 2012 -0700"
      },
      "message": "Merge \"Remove virtual from methods that don\u0027t need it\""
    },
    {
      "commit": "28b269f3418c27275bbf635e524ed501bfac6518",
      "tree": "ad59f84ecdadecadbabda38acb9b04df76f498e9",
      "parents": [
        "df0d3ab4d03d8738a606b35bf9673950844aef4a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 07 09:15:37 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 09 15:32:22 2012 -0800"
      },
      "message": "Use audio_policy_output_flags_t consistently\n\nThis affects:\n - IAudioFlinger::openOutput\n - AudioTrack::AudioTrack\n - AudioTrack::set\n - apps that call these\n\nChange-Id: I26fb281bac6cb87593d17697bc9cb37a835af205\n"
    },
    {
      "commit": "df0d3ab4d03d8738a606b35bf9673950844aef4a",
      "tree": "49413648363c32a9e40d0e46bcfa6fb4a4132404",
      "parents": [
        "c2a4a106d3a0131d5c93f8f512fc02f2a6e8b184",
        "f60a5d7162e22b565e5977b5f4032b9334618269"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 09 15:23:45 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 09 15:23:45 2012 -0800"
      },
      "message": "Merge \"Use AudioRecord::record_flags consistently\""
    },
    {
      "commit": "8d8557ad578fa43fe9b1800db03a0a53afbe78c1",
      "tree": "7c2c50359d1a8623c706f9cd89daa67a60264086",
      "parents": [
        "a9821bdd0245c433914cf2379bf7e418270995da"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 09 10:30:26 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 09 12:48:18 2012 -0800"
      },
      "message": "Remove virtual from methods that don\u0027t need it\n\nChange-Id: I30e17e61aae25b036436c0e270313c80c43e5f06\n"
    },
    {
      "commit": "f60a5d7162e22b565e5977b5f4032b9334618269",
      "tree": "d73847791d9fd2c0b23356368f5f756600b93eab",
      "parents": [
        "21b4d6b7a5959b567355aae032bd76500c148e54"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 07 09:04:02 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 08 18:11:55 2012 -0800"
      },
      "message": "Use AudioRecord::record_flags consistently\n\nChange-Id: I6f369a2b99eb515603bc7d5629a07db2b96783fe\n"
    },
    {
      "commit": "d10a5992f90bf915a5534de24751ca40ef2919e6",
      "tree": "43cd0ded93c5fa41fe2500d10c8acfa5faea39a3",
      "parents": [
        "a4ef63f6c66ef7acfd7fafdf1566430677bc0a42",
        "c9ab9f5c2cd1726a3b9e4176ce0504991cce2c70"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 08 17:45:44 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 08 17:45:44 2012 -0800"
      },
      "message": "Merge \"audio policy: use audio_devices_t when appropriate\""
    },
    {
      "commit": "c9ab9f5c2cd1726a3b9e4176ce0504991cce2c70",
      "tree": "c535d82966bb9c7e7c73ce7a241b06639524df9d",
      "parents": [
        "e8bacb4ea0bb6b3ec3d3ff5488f3eb1c768b5f90"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 08 13:42:42 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 08 15:57:09 2012 -0800"
      },
      "message": "audio policy: use audio_devices_t when appropriate\n\nChange-Id: I1b3a5879e81c789fb53d356af3d3a1ee2dca955f\n"
    },
    {
      "commit": "8c79817dc6459baa2c79db88e3c3e4d5c07d6a61",
      "tree": "d7e4dfcc8a7851d5851750989664ec81ca620d6d",
      "parents": [
        "08965ec67ada98f63f8ac879cc44c8b0e7ff046d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:36:08 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Mar 07 19:36:08 2012 -0800"
      },
      "message": "remove files that moved to frameworks/native\n\nChange-Id: I140d291e520097b1148930f736823650e08488f7\n"
    },
    {
      "commit": "ffed04ac3c1dd01d66b3e96ec1314173309e7415",
      "tree": "50f54b8f2a9e8b24a9b997ad15f27a02d934aabc",
      "parents": [
        "b7a4007563e74b940e237caa44066cba668d3cb2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 01 09:14:51 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 16:43:19 2012 -0800"
      },
      "message": "IAudioFlingerClient::ioConfigChanged param2 const\n\nThe 3rd parameter (param2) to AudioFlingerClient::ioConfigChanged\nis used as an input.  So changed it from void * to const void *.\nIt is then cast to const OutputDescriptor *\nor const audio_stream_type_t * depending on the event.\n\nChange-Id: Ieec0d284f139b74b3389b5ef69c7935a8e5650ee\n"
    },
    {
      "commit": "54682583ba809a315ac1e5437d7f74483e6c7ab8",
      "tree": "46a324f12041ca796ebbb81faac08a69da7d2967",
      "parents": [
        "4f03d35f9c040222e6a46dde807fe2ff7852beb8",
        "bd6b74ce4626c6738bec3d59f7cca95655d1288f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 06 10:52:18 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 10:52:18 2012 -0800"
      },
      "message": "Merge \"AudioTrack: relax check on minimum buffer size\""
    },
    {
      "commit": "b7fdddab0d1cfa666747a0295fcea4bfea709737",
      "tree": "39d151b972ccf8131da98e5c3a00cfcae28b812f",
      "parents": [
        "bc6b837a60b2b08033c425de4576cf378a3f8c2c",
        "5fe705796026a174cb20bee840e03186a3eef7de"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 06 10:23:58 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 06 10:23:58 2012 -0800"
      },
      "message": "Merge \"Remove unused code - MediaSourceSplitter\""
    },
    {
      "commit": "5fe705796026a174cb20bee840e03186a3eef7de",
      "tree": "6cdd00d94cf7c6be3f7a8677b7c2b5fab7abbad6",
      "parents": [
        "c730aceb64233592c5a0d8b6a429d645443b3818"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 05 19:28:02 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 05 19:30:08 2012 -0800"
      },
      "message": "Remove unused code - MediaSourceSplitter\n\nChange-Id: Icf37832a1c234501ee3ff91ff13eece2242425ae\n"
    },
    {
      "commit": "bd6b74ce4626c6738bec3d59f7cca95655d1288f",
      "tree": "ec28675f61ef6dc7fc6bf5d84b58ff8eb02ccbce",
      "parents": [
        "02b693ecd4d13e75b2bae5972242c1c23cf98764"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 05 17:06:40 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 05 17:18:36 2012 -0800"
      },
      "message": "AudioTrack: relax check on minimum buffer size\n\nCurrent AudioTrack implementation enforces that the requested audio\nbuffer size is at least corresponding the audio latency.\nThis requirement is too strong and leads to problems with current\nstagefright and AudioSink implementations when playing over output\nstreams with long latency.\n\nUltimately, the AudioSink design should be changed to specify a minimum\nbuffer size in time or frames units but not in buffer count units.\n\nChange-Id: I8ba603956f92ac49143a8249572665aa548f2f0f\n"
    },
    {
      "commit": "b93a765ba69a292c268694e7ac127833e00a9b63",
      "tree": "dbdf4f1ea5ca5e1dabb28941e294289856eaf4e0",
      "parents": [
        "c1717569db5a637b054e552e255b2bbf36f7a3f1",
        "4ed260feda32f6c51dd018e1c012e39aa63e61d4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 05 14:51:54 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 05 14:51:54 2012 -0800"
      },
      "message": "Merge \"Add channel mask in AudioSink\""
    },
    {
      "commit": "4ed260feda32f6c51dd018e1c012e39aa63e61d4",
      "tree": "92aad9d9328987cc7b44e039f3f04695fd802e3c",
      "parents": [
        "e6e47f0517b98055625abc21a85eaa702374495a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 14:54:07 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 17:26:49 2012 -0800"
      },
      "message": "Add channel mask in AudioSink\n\nAdd support for specifying a channel mask when opening an AudioSink.\n  This parameter does not replace the channel count parameter in order\n  to not have to duplicate the logic to derive a mask from the\n  channel count everywhere an AudioSink is used without a known mask.\n\nA mask of 0 (CHANNEL_MASK_USE_CHANNEL_ORDER) means a mask will\n  be automatically derived from the number of channels.\n\nUpdate existing AudioSink implementations to use the channel mask,\n  and users of AudioSink to specify the mask if available, and\n  CHANNEL_MASK_USE_CHANNEL_ORDER otherwise.\n\nChange-Id: Ifa9bd259874816dbc25ead2b03ea52e873cff474\n"
    },
    {
      "commit": "92454de63c8ac4ce86b8d5e756055b42e8de9368",
      "tree": "40f85b6f98832e016e483b7026ed62e6fc17f68f",
      "parents": [
        "45e96fd28a6f0b6a6526c9af62b083be73385c95",
        "bd3db2f54edff2632bee24a595a10257a38954d7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 02 13:48:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 02 13:48:35 2012 -0800"
      },
      "message": "Merge \"Fix typos and line length in AudioRecord comments\""
    },
    {
      "commit": "720aa282791ef9405d39a15f419a41ab24f11e30",
      "tree": "51b3bff87bc9fe3f87c159ff80d16c8b6d36d644",
      "parents": [
        "d630f593d70b26018bb1cf6940fda5abb45e4395"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Feb 22 15:38:35 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Mar 01 14:41:35 2012 -0800"
      },
      "message": "Switch the way we configure for MediaPlayer retransmission.\n\nThis is a cherry-pick of I6ab07d89b2eeb0650e634b8c3b7a0b36aba4e7dd\nwith merge conflicts addressed by hand and additional changes made in\nresponse to code review feedback.\n\nMove in the direction of a more publishable API for configuring a\nmedia player for retransmission.  It used to be that we used a custom\ninvoke and a modified URL (prefixed with aahTX://).  There are many\nissues with this technique and it was never meant to stand the test of\ntime.\n\nThis CL gets rid of all that.  A new (but currently hidden) method was\nintroduced to the java level MediaPlayer API, called\nsetRetransmitTarget(InetSocketAddress), which allows an app writer to\nset the retransmit target.  For now, this method needs to be called\nbefore a call to setDataSource (which is pretty unusual for the\nMediaPlayer API) because this mid level code uses this as a cue to\ninstantiate an aahTX player instead of relying on the data source to\nselect a player.  When retranmit functionality becomes part of the\nexisting android player implemenation, this\nset-retrans-before-set-data-source behavior can go away, along with\nthe aahTX player itself.\n\nChange-Id: I3b46c5227bbf69acb2f3cc4f93cfccad9777be98\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "faf88b85e27ccdba225ec8a501803224a76b9c93",
      "tree": "28d2f577245f555703bc95ab9d331185bae21a2c",
      "parents": [
        "d8f45c16a896d76d06550a91d78e8c5a3a57275a",
        "3d3864fff49715fe528b6c4a919ef75f4c2f90e2"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 01 12:41:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 12:41:10 2012 -0800"
      },
      "message": "Merge \"Instead of hardcoding OMX component names in our code, support\""
    },
    {
      "commit": "3d3864fff49715fe528b6c4a919ef75f4c2f90e2",
      "tree": "e6726a13b58caaffe241aa3be8c727d5e2d2547d",
      "parents": [
        "ae9029938aa108153bf48157b69459362eca124e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 29 15:47:17 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Mar 01 11:30:10 2012 -0800"
      },
      "message": "Instead of hardcoding OMX component names in our code, support\n\na config file instead.\n\nChange-Id: I5835903ab9f1c4a22ccc605ca99ed966767adf57\n"
    },
    {
      "commit": "c95cd6bca069b11720e9b27d13f2be09162ca832",
      "tree": "535677b161d62f03b8459ca5694188ce65fb0b23",
      "parents": [
        "541b492d49167ad804f1ef2f13fd36f8284ac678",
        "45d8c80dea625726f9d1a6d095161c059ce55e09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 01 10:17:21 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Mar 01 10:17:21 2012 -0800"
      },
      "message": "Merge \"renamed audio policy output flag.\""
    },
    {
      "commit": "45d8c80dea625726f9d1a6d095161c059ce55e09",
      "tree": "3cba56ca713cb51cdb02a91fda21e4a76320b0cd",
      "parents": [
        "f79760b4aa83913e37a538a2a0a42d34a9dcf2b8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 01 09:38:00 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Mar 01 09:43:32 2012 -0800"
      },
      "message": "renamed audio policy output flag.\n\nRenamed AUDIO_POLICY_OUTPUT_FLAG_INDIRECT to AUDIO_POLICY_OUTPUT_FLAG_NONE\nwhich is more appropriate.\n\nChange-Id: Ia14d60397df0f2dcd9bea0186400a09da35bc104\n"
    },
    {
      "commit": "71dea373f40ef4d35bb8b2f503693f390d1316da",
      "tree": "1fd9dc13f8b42959d133b57d9ebce35a025a9226",
      "parents": [
        "fe35a46f56b8d512f2af8d84e381dda52dbaea20",
        "5df628055789a14267be365beffc0626b7822e96"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 29 16:32:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 16:32:10 2012 -0800"
      },
      "message": "Merge \"Added permission check for all sensitive drm API calls\""
    },
    {
      "commit": "d67f2cf9430810eb2bdc7b6c38b45e1ef6e1b824",
      "tree": "d889978fbe1cc60223f2bde921b4a4f8f8562194",
      "parents": [
        "d555d70fd43f14cecfb7a952cc595ce338ac5844",
        "bd714b6cbe8b21ed88ef37218ab18643bdf76932"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 29 14:45:25 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 14:45:25 2012 -0800"
      },
      "message": "Merge \"AudioRecord const methods\""
    },
    {
      "commit": "06dd67e305c33eaf453bdbd24593bbac6b25660e",
      "tree": "6fb0845a05ef7116fc3a746ef6626edd5c6b1068",
      "parents": [
        "e70583e629e15ff77b6c12d5db39b4f62b6103ab",
        "b1badfc7484070c7cd367320cb6b8bf24ff76817"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Feb 29 12:10:03 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 12:10:03 2012 -0800"
      },
      "message": "Merge \"get rid of MemoryHeapPmem\""
    },
    {
      "commit": "0c9aa1b6fca0210353af8a153cbb0380dc83ed2d",
      "tree": "ce80a6e2ddbb81f96aae6d5ac0139c504b859c13",
      "parents": [
        "b290caafa7ea4e13aae8af7877df4e4891ef46b3",
        "4484bdd2f99a753b0801f0c13ca8a2b7bc38695a"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 29 09:20:24 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 29 09:20:25 2012 -0800"
      },
      "message": "Merge \"Separate the notion of \"stop\" from that of \"release\", i.e.\""
    },
    {
      "commit": "5df628055789a14267be365beffc0626b7822e96",
      "tree": "5556dd02a0b455504c0077e8385686435c15b852",
      "parents": [
        "8279570b222d46def4e541d71ef29dbfd9fbe3d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 13:55:55 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 18:50:44 2012 -0800"
      },
      "message": "Added permission check for all sensitive drm API calls\n\no all drm calls using a DecryptHandle now check the permission before proceeding\n\nChange-Id: Ic992a991357876c6e4bfbfab4f5eec1fa0634a13\n"
    },
    {
      "commit": "ee31e56a16324058025ee3090452c72901977d8a",
      "tree": "10de573d1c61a72dbc611fe033f20972957bac88",
      "parents": [
        "1b3d01de3837b7710dfccc06af37ffaec2cf8ecf",
        "3008f0329bb5a3e4ce93ec7b597893a318b5bd11"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 28 18:49:34 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 28 18:49:34 2012 -0800"
      },
      "message": "Merge \"Moves TimedTextDriver.h into include/media/stagefright/timedtext.\""
    },
    {
      "commit": "4484bdd2f99a753b0801f0c13ca8a2b7bc38695a",
      "tree": "8340a689fd485b4ae2fa0fa394d7f1b027890cfd",
      "parents": [
        "f64dfccd96286255fd382486c94cdb48921c45fa"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 28 15:54:51 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 28 15:54:51 2012 -0800"
      },
      "message": "Separate the notion of \"stop\" from that of \"release\", i.e.\n\nstop - means transition back to LOADED state and keeping the component\ninstance allocated.\n\nrelease - means we get rid of the component completely.\n\nChange-Id: I40ad01ce70821faaad43f57999249904f9144924\n"
    },
    {
      "commit": "bd714b6cbe8b21ed88ef37218ab18643bdf76932",
      "tree": "76d3ba2509d6d3981af6531e71174a232bea9257",
      "parents": [
        "f64dfccd96286255fd382486c94cdb48921c45fa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 24 16:33:14 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 28 08:50:18 2012 -0800"
      },
      "message": "AudioRecord const methods\n\nChange-Id: Ifae4fd7820b650aaca2b13c8658c292db1c46c0f\n"
    },
    {
      "commit": "b1badfc7484070c7cd367320cb6b8bf24ff76817",
      "tree": "9ee332fc9667712c73dcb079211e62d5c41b0869",
      "parents": [
        "aac99487a122c5b602853500376551b7987308ac"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 19:54:39 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 19:58:57 2012 -0800"
      },
      "message": "get rid of MemoryHeapPmem\n\nMemoryHeapPmem is not used any longer. PMEM is not a supported\ntype of memory by the system anymore. a particular device might\nuse PMEM and need something like MemoryHeapPmem, in this case this\nshould be implemented in device specific code (HAL).\n\nThis will most likely break older no longer supported targets.\n\nChange-Id: I434e4291219950018de8b793b0403bb2d92dd5cc\n"
    },
    {
      "commit": "49d2b1864c3dfec6faff74d67cb2527a8f1af5a8",
      "tree": "2717d50ecfd85f7b558b2ead2d82bed6ea237dde",
      "parents": [
        "021df141ed8fdc0bc73b8bcb17106e2c7512b372"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 18:11:20 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 18:11:20 2012 -0800"
      },
      "message": "move CursorWindow from libbinder to libandroidfw\n\nChange-Id: I3b304e4f74e0d0ec8b20c57296c62449c9a0f792\n"
    },
    {
      "commit": "6f15cc959ef11fd2fbba71bc996d4a669b518b25",
      "tree": "257f97f19a8587a02f43ba82917fe561f24cf805",
      "parents": [
        "cbd01c31bfa40f4e1b8df9d0d6f57b10aebc5fe9"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Sun Jan 22 15:26:27 2012 -0800"
      },
      "committer": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Mon Feb 27 16:40:48 2012 -0800"
      },
      "message": "Removed dependecies between BufferQueue and SurfaceTexture\n\nRefactored SurfaceTexture and BufferQueue such that share\nno protected members.  Created an consumer facing interface\nfor BufferQueue in preparation of connecting SurfaceTexture\nand BufferQueue through a binder.\n\nChange-Id: I938e63e085128148c58d0e26c7213b30145c109f\n"
    },
    {
      "commit": "f6b53db704ed449d9376b31ee5a5c97b2796f559",
      "tree": "a08fbbdb56bb35d8bbf5a19dcfa01dfa1c5fc9c8",
      "parents": [
        "fa28f57f29007fdeacaddd31b86ba97abf235adf",
        "f217df6819f7cdf7e4ef857dd61036c1812d09f5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Feb 27 13:35:30 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 13:35:30 2012 -0800"
      },
      "message": "Merge \"libutils: add a system-wide tracing utility\""
    },
    {
      "commit": "c7d47ec6222690c9433023cb8a5d9a1bdd5f9c70",
      "tree": "57e8c9fad3bc36827d693aceb0745252d73fd768",
      "parents": [
        "e912404f85f9b4e10d2ba4123de5098bd6b9b0d3",
        "05221052c5bf1f14db30e57ce3b60e37431c07a5"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Feb 27 13:15:53 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 13:23:51 2012 -0800"
      },
      "message": "Merge \"Revert \"Removed dependecies between BufferQueue and SurfaceTexture\"\""
    },
    {
      "commit": "8335f1ccccedb6655d96d9d5b697a7f0938235dd",
      "tree": "30a7f8b3e646157365dd51222665a68753fa25e3",
      "parents": [
        "57235fc65b5920f4867e66c8263efab49e92a21b"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 18:48:35 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:08 2012 -0800"
      },
      "message": "fix libgui header location\n\nChange-Id: Iec71706cdd4f29c6904993648ce873e83ef9cafe\n"
    },
    {
      "commit": "57235fc65b5920f4867e66c8263efab49e92a21b",
      "tree": "2cfcc7c76dcc59329f776baa4e6ac2e744e491a5",
      "parents": [
        "7d3916ff9cd464bd064a7e075c555f9ec6ff4349"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 23:02:14 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:04 2012 -0800"
      },
      "message": "split utils/threads.h into multiple headers\n\nAndroidDefs.h - C/C++ enums and types\nMutex.h - Mutex class declaration\nCondition.h - Condition class declaration\nRWLock.h - RWLock class declaration\nThread.h - Thread class declaration\nAndroidThreads.h - low-level thread creation functions\nthreads.h - includes all the above for backward source compatibility\n\nChange-Id: Ia2f80c175333b59a41d1720985810bb2346e94cb\nNote: implementations are still in Threads.cpp\n"
    },
    {
      "commit": "7d3916ff9cd464bd064a7e075c555f9ec6ff4349",
      "tree": "025df9fd125dfc921a5d6cb258b1824ee23cc80f",
      "parents": [
        "12aba767c78c19b5f087c1deed5d2f9170ff5f75"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sat Feb 25 19:52:53 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Feb 27 13:03:04 2012 -0800"
      },
      "message": "libagl shouldn\u0027t export anything\n\nChange-Id: Ia823dbc56aab2a0b8a6063df4348fe6baac124c6\n"
    },
    {
      "commit": "05221052c5bf1f14db30e57ce3b60e37431c07a5",
      "tree": "45cc93138d0ead7a6336f5a3ee1710c649f3eb27",
      "parents": [
        "a631399f71dbc7659d2f241968f85d337726ae61"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Mon Feb 27 11:32:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 11:32:06 2012 -0800"
      },
      "message": "Revert \"Removed dependecies between BufferQueue and SurfaceTexture\"\n\nThis reverts commit a631399f71dbc7659d2f241968f85d337726ae61"
    },
    {
      "commit": "3008f0329bb5a3e4ce93ec7b597893a318b5bd11",
      "tree": "0c1d58e5f0be80e917122b67438ba79bfadf4078",
      "parents": [
        "c108613fb8ef0fabb3f08198a52bd0877e382937"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Feb 27 17:14:28 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Mon Feb 27 17:14:28 2012 +0900"
      },
      "message": "Moves TimedTextDriver.h into include/media/stagefright/timedtext.\n\nSo that other players can include TimedTextDriver.h properly.\n\nChange-Id: I15e72bf655de8555eef6244a6c853c27a0828a1d\n"
    },
    {
      "commit": "c108613fb8ef0fabb3f08198a52bd0877e382937",
      "tree": "df3673454690178e90343b66d5ae85e7a473d73c",
      "parents": [
        "7fbedadb62db7e11f4616499458c85976f71e637",
        "a631399f71dbc7659d2f241968f85d337726ae61"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Feb 26 17:06:42 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sun Feb 26 17:06:42 2012 -0800"
      },
      "message": "Merge \"Removed dependecies between BufferQueue and SurfaceTexture\""
    },
    {
      "commit": "f217df6819f7cdf7e4ef857dd61036c1812d09f5",
      "tree": "4482df7503bc27076312e6ceea6acab94c9b1014",
      "parents": [
        "7fbedadb62db7e11f4616499458c85976f71e637"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Feb 23 11:28:28 2012 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Feb 26 16:06:53 2012 -0800"
      },
      "message": "libutils: add a system-wide tracing utility\n\nThis change adds some utility functionality for doing userland tracing\ninto the kernel trace log.\n\nChange-Id: Id0a8cee9ea515b1d8765afd1cecf472a88b4b9e8\n"
    },
    {
      "commit": "af01feafc30152baf8e0a5cfddbf02bd14731fd2",
      "tree": "e19b244ff773d206d21ecccf29296f1848790dd6",
      "parents": [
        "cc0eaa6582563f51c98db1b232200ac4d2a9a996"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 18:25:41 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 18:26:01 2012 -0800"
      },
      "message": "remove dependency on android_native{s_priv|buffer}.h\n\nChange-Id: Ie4b95f7061c240f37c504414259f92d72c4ffc89\n"
    },
    {
      "commit": "cc0eaa6582563f51c98db1b232200ac4d2a9a996",
      "tree": "68fcede9c118f7a72de79d0402e92c97b4edfaf3",
      "parents": [
        "7b49b4bea8090bb8e5015225eb05686d3676205c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 16:42:46 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 16:42:46 2012 -0800"
      },
      "message": "remove libui dependency on libEGL\n\nChange-Id: I1194f04085637d5c384e134967249430cc43b6ee\n"
    },
    {
      "commit": "e9d4c71f47f74ee9a4a490f62769ad010a17d19b",
      "tree": "8227f4727eb45324bf96bb18e4290f206f19108f",
      "parents": [
        "2d77b5332ac4ef5b252fbd8f56a195e0fce03292"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 14:58:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 14:58:36 2012 -0800"
      },
      "message": "deprecate L_8, LA_88 and RGB_332 in sdk\n\nre-add support for pixelformats L_8, LA_88 and RGB_332 in libui\nfor backward compatibility.\n\nThis may or may not fix 6058926\n\nBug: 6049685\nChange-Id: Ic1b8b4cc994522f7fe664da64c0ef76b98bc6d53\n"
    },
    {
      "commit": "bd3db2f54edff2632bee24a595a10257a38954d7",
      "tree": "8678562341aee4f3f4824212d896b30bf9fb143c",
      "parents": [
        "be3835c64dc782c1c40ebf75badd1db47aff7b1a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 24 13:00:45 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 24 13:00:45 2012 -0800"
      },
      "message": "Fix typos and line length in AudioRecord comments\n\nChange-Id: I85cfb9a2b9b3ade098161aa7687b4d4f7eb226ea\n"
    },
    {
      "commit": "6822c97898ef6c73528d17beb161059e5032f34a",
      "tree": "22281d2edf52465ecc2ae33e83d6f0fb1d29f4be",
      "parents": [
        "afb902be6710d240bec3d98bd81d97dfb286ffdb",
        "32916f7a22f2abf5c1e7021f44c2337ca172f2e5"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Feb 23 12:22:35 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 23 12:22:35 2012 -0800"
      },
      "message": "am 32916f7a: am fc4215ee: am 2d03a93e: Merge \"Xcode 4.3 compatibility checkin\"\n\n* commit \u002732916f7a22f2abf5c1e7021f44c2337ca172f2e5\u0027:\n  Xcode 4.3 compatibility checkin\n"
    },
    {
      "commit": "a631399f71dbc7659d2f241968f85d337726ae61",
      "tree": "0005b7b149c11ed9943e679ce458282cf7d51a47",
      "parents": [
        "8181201c6e55765fd58d2ff07921a143b879edd9"
      ],
      "author": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Sun Jan 22 15:26:27 2012 -0800"
      },
      "committer": {
        "name": "Daniel Lam",
        "email": "dalam@google.com",
        "time": "Wed Feb 22 20:12:27 2012 -0800"
      },
      "message": "Removed dependecies between BufferQueue and SurfaceTexture\n\nRefactored SurfaceTexture and BufferQueue such that share\nno protected members.  Created an consumer facing interface\nfor BufferQueue in preparation of connecting SurfaceTexture\nand BufferQueue through a binder.\n\nChange-Id: Iff55e740e36a7f70c9f7a17ee7a5af38e3d21f0f\n"
    },
    {
      "commit": "5c850396b39a57baabd37a9c0c8324f1bee408ca",
      "tree": "f96a99dcb625214edb4262fc26e7f4cb6a18dcfa",
      "parents": [
        "592b213608b67b6c9a72ed080db56fa9fb2cdcf8"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 21 14:38:23 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 16:20:59 2012 -0800"
      },
      "message": "Add new APIs AMessage::(set|find)Buffer to make it safer to pass\n\nABuffer objects through messages.\n\nChange-Id: I9f8b4e4c4767d0d70a0105e0c0813b754379b49d\n"
    },
    {
      "commit": "88572f7a3e9d7ef85c26865a0150f3c2041561c2",
      "tree": "30627dcff98dfa4a4058054ef198301b374be82c",
      "parents": [
        "745e02ae45d97fd5672ffc22ea854f011895a4e6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 21 11:47:18 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 22 15:06:06 2012 -0800"
      },
      "message": "Implementation of a java media codec interface and associated tools.\n\nChange-Id: I13e54062d4de584355c5d82bb027a68aeaf2923b\n"
    },
    {
      "commit": "3e3681151a231225b2b25c996bb9e85948a345a8",
      "tree": "4f22d76c270b119b1bb9399cb524147008e5723f",
      "parents": [
        "edabdcf5acc7d607e74590f9207696702d45bf2f"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 18:56:08 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Feb 21 18:56:08 2012 -0800"
      },
      "message": "remove libui\u0027s dependency on libpixelflinger\n\nthis also remove support for unused pixelformats.\n\nChange-Id: I2c759a6d2daa740f3786ed62095def8047ae933d\n"
    },
    {
      "commit": "f65934a7213b39859966a7054ea5ae1a7530dcbe",
      "tree": "13429506d9f4fbe52d0f7b45422ac7e368ac462b",
      "parents": [
        "c10e48901c6531167dd001280ad9207023a01431",
        "745fcc0571f2143dd0c1f45309bae47788612999"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 21 11:10:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 21 11:10:35 2012 -0800"
      },
      "message": "Merge \"Limit the amount of audio record data in each buffer\""
    },
    {
      "commit": "7a4d92af9bdcf94d770bfa8313ad5b21c829ed96",
      "tree": "547b7020c3b87ee0f011ff4227f4e64b6d0b5aa7",
      "parents": [
        "44c1f012c4ffa75853a068963b212ee1c965b6ea"
      ],
      "author": {
        "name": "Al Sutton",
        "email": "al@funkyandroid.com",
        "time": "Sun Feb 19 08:31:19 2012 +0000"
      },
      "committer": {
        "name": "Al Sutton",
        "email": "al@funkyandroid.com",
        "time": "Sun Feb 19 08:31:19 2012 +0000"
      },
      "message": "Xcode 4.3 compatibility checkin\n\nThe update compiler in Xcode 4.3 (and 4.4) requires lookups into dependant\nbases of class templates to be qualified. This checkin fixes the issues\nraised by the compiler by implementing the this-\u003e recommendation from\nthe llvm page at http://clang.llvm.org/compatibility.html#dep_lookup_bases\n\nSigned-off-by: Al Sutton \u003cal@funkyandroid.com\u003e\n"
    },
    {
      "commit": "b13b9bdad2baf6ad1ec2e56b6b7598fa20f55fc4",
      "tree": "2b90dc39a35d8081ea47b038893624b69a01202d",
      "parents": [
        "6db0608dff408130b35e6f21abe746a635648b18"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 18:27:36 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 19:01:26 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nstep 2: move libutils headers to their new home: androidfw\n\nChange-Id: I14624ba23db92a81f2cb929f104386e1fab293ef\n"
    },
    {
      "commit": "b93a03f841d93498bfea6cc92a22faa34bce1337",
      "tree": "b5c2e1c097ad9dc4a3580ee661223794e0560f60",
      "parents": [
        "e97df97b6cb5e4bff8f9da9ecff7cddb7d04ff41"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 15:34:57 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 17 15:36:10 2012 -0800"
      },
      "message": "frameworks/base refactoring.\n\nFirst step. Move libui includes to their new home: androidfw.\n\nChange-Id: Ic042b52fdba72f30edc3cc6339bf30b4c1b99662\n"
    },
    {
      "commit": "d72031cee315438c4728fd3f0cce1971a9f00717",
      "tree": "1b7e0fb053ae129e69040f09066b3db1812984d6",
      "parents": [
        "4fbe95ede28e9de22404fc38645667fd3a401b14"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 09 15:09:05 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 16 13:45:12 2012 -0800"
      },
      "message": "Upintegreate AAH TX and RX players from ICS_AAH\n\nUpintegrate the android at home TX and RX players developed in the\nICS_AAH branch.\n\nChange-Id: I8247d3702e30d8b0e215b31a92675d8ab28dccbb\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "d8cf2960d0828121d67ad0234c648f193a90c86a",
      "tree": "8c1cada90151accd18c4b1a36552d7e79a77087f",
      "parents": [
        "c157673a590e670a9a509ec13d47ffada0b56335"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Feb 08 16:37:41 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 16 13:45:11 2012 -0800"
      },
      "message": "Upintegrate Audio Flinger changes from ICS_AAH\n\nBring in changes to audio flinger made to support timed audio tracks\nand HW master volume control.\n\nChange-Id: Ide52d48809bdbed13acf35fd59b24637e35064ae\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "6c929510474caa14dc9d56826b2c65552861d6b3",
      "tree": "cfa4a959e65db46ae2469104ba5ccdc63e15cd38",
      "parents": [
        "cb46d80d217899e51c3d1ad6fc930d9b61883cf9"
      ],
      "author": {
        "name": "Mike J. Chen",
        "email": "mjchen@google.com",
        "time": "Mon Aug 15 11:59:47 2011 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 16 13:45:10 2012 -0800"
      },
      "message": "Upintegrate the common_time service from ics-aah.\n\nMove the common_time service developed in the ics-aah branch back into\nmaster.\n\nThe common_time service is a small service build to synchronize an\narbitrary timeline amongst peers on a local sub-net.  While running\nand configured, the service will elect a master from the set of\navailable devices within the subnet, define a relationship between the\ncommon_time timeline the local time timeline (provided by the local\ntime HAL), and then attempt to maintain synchronization between common\nand local time by controlling the frequency of the local time clock\nvia the HAL, or by disciplining local time in the digital domain if\nthe local time HAL implementation does not support HW slewing.\n\nOn its own, the native common time service will do nothing until it is\nconfigured.  The CommonTimeManagementService (running out of the\nsystem server process) is responsible for implementing policy\nregarding configuration and operation of the common_time service and\nwill be added in a subsequent CL.\n\nChange-Id: I71292f9b9b1797665865689c4572c9d3a0552f64\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "745fcc0571f2143dd0c1f45309bae47788612999",
      "tree": "e3ca684ae193633ec29878c7385e3ad18b77e521",
      "parents": [
        "a9daa164a58fc70d08702787e69a56212f5ad8c9"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 14 14:58:20 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 15 12:54:17 2012 -0800"
      },
      "message": "Limit the amount of audio record data in each buffer\n\no The size of each input buffer should be less than or equal to kMaxBufferSize\no related-to-bug: 5977032\n\nChange-Id: I04343169aac3df56694aad4ba7967ec45337ad7e\n"
    },
    {
      "commit": "91ec0b722f659bb5e4bcc64339f2fbbe30a31287",
      "tree": "2a664637f4b65eeb528a9ff256d9380c9c089adf",
      "parents": [
        "79952ee29a8fc67b6d76a8db747bb72dd7d6ecd1",
        "91e328984c0d1e0f95b3d37f779d9d4fa9bfe8f8"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Feb 14 17:11:41 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 14 17:11:41 2012 -0800"
      },
      "message": "Merge \"Clean up InputChannel file descriptor data type.\""
    }
  ],
  "next": "39eb8074deba507e037a1596168e7b762508c63f"
}
