)]}'
{
  "log": [
    {
      "commit": "06a864413f03627ba7671d1c19ae114e3afaad4b",
      "tree": "80350aef406318d12c2f9c4971adc8c7cccd4188",
      "parents": [
        "c83a666fe6f808f99a88a34f3fe00ee16ed48fd9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 11 15:59:22 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 09:38:23 2012 -0800"
      },
      "message": "Thread::getTid returns pid_t gettid() after run\n\nThis is needed when the parent or any other thread besides the child\nneeds access to the child\u0027s kernel tid.\n\nChange-Id: Ib148505913eb78314cfd76657c30d7b20663dffd\n"
    },
    {
      "commit": "8c17a2f0884527c3ce42a2c6dbd073014d179b53",
      "tree": "914455ede452e4c89c7c3d700fc68c6a2cb0b157",
      "parents": [
        "3c6b9cca79c872427599a325bcbb5d4a00113d80",
        "faf354dc7f8065a90174adb6e725603176f0044f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 07:27:46 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 07:27:46 2012 -0800"
      },
      "message": "Merge \"Use size_t for frame size\""
    },
    {
      "commit": "3c6b9cca79c872427599a325bcbb5d4a00113d80",
      "tree": "622dfb8e526d84be17e76a0ee91c57f51f247e33",
      "parents": [
        "a7f656206550dea94e51dd8c9bb2dd8734bcdf92",
        "bc1d77b6cbce23fbe25f7231651037ae195bc90e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 07:25:36 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 07:25:36 2012 -0800"
      },
      "message": "Merge \"Use audio_stream_type_t consistently\""
    },
    {
      "commit": "dd3ca2e268bc638fb57092a4e12df84cf2c5a6a9",
      "tree": "fb56f9e519918d3e857a2da53041b965e50b9332",
      "parents": [
        "ade420df08a40bd568df48a3b023b63aafc8e3ee",
        "4790bd8be850235e9c6f1acf1e1e6146ef2996b3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 07:18:26 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 07:18:26 2012 -0800"
      },
      "message": "Merge \"AudioTrack and AudioFlinger send level cleanup\""
    },
    {
      "commit": "4790bd8be850235e9c6f1acf1e1e6146ef2996b3",
      "tree": "1820560bc322ca1e67abee5d2a65c0539b72dbf5",
      "parents": [
        "6a78cd85867c5f22e4e82259b81fab46088331ad"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 03 14:22:33 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 13 15:25:14 2012 -0800"
      },
      "message": "AudioTrack and AudioFlinger send level cleanup\n\nAdd an API to control block for getting/setting send level.\nThis allow us to make the mSendLevel field private.\n\nDocument the lack of barriers.\n\nUse 0.0f to initialize floating-point values (for doc only).\n\nChange-Id: I59f83b00adeb89eeee227e7648625d9a835be7a4\n"
    },
    {
      "commit": "4bedb481036fbc6b72e5c0c620b569b508d3be16",
      "tree": "0642e5f28cc560e6ad9e1f5122faf31c33b1957c",
      "parents": [
        "dfef19940f2af5c043e0c6fb49909f093b8ff96b",
        "0922328270d2ec55a7f9407dfaac2d482e3f59cb"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Jan 13 15:16:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 13 15:16:59 2012 -0800"
      },
      "message": "Merge \"Fix compilation with Clang.\""
    },
    {
      "commit": "faf354dc7f8065a90174adb6e725603176f0044f",
      "tree": "8b5b80b7b9c082bd226c0e25cc75d862b2db4054",
      "parents": [
        "fcbbaf1d837e96e77d0ec45a050e8a41060ae7f3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 11 09:48:27 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 13 14:58:44 2012 -0800"
      },
      "message": "Use size_t for frame size\n\nexcept in the control block, where we don\u0027t have room.\n\nIn AudioFlinger::ThreadBase::TrackBase::getBuffer,\nread the frame size from control block only once.\n\nChange-Id: Id6c4bccd4ed3e07d91df6bbea43bae45524f9f4e\n"
    },
    {
      "commit": "bc1d77b6cbce23fbe25f7231651037ae195bc90e",
      "tree": "6936dbe05b0edbefe69c5c3452ba64ea72a2575a",
      "parents": [
        "6a78cd85867c5f22e4e82259b81fab46088331ad"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 12 16:38:12 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 13 10:20:14 2012 -0800"
      },
      "message": "Use audio_stream_type_t consistently\n\nAt native level it was a mixture of audio_stream_type_t, int, uint32_t,\nand uint8_t.  Java is still int.  Also fixed a couple of hard-coded -1\ninstead of AUDIO_STREAM_DEFAULT, and in startToneCommand a hard-coded 0\ninstead of AUDIO_STREAM_VOICE_CALL.\n\nChange-Id: Ia33bfd70edca8c2daec9052984b369cd8eee2a83\n"
    },
    {
      "commit": "0922328270d2ec55a7f9407dfaac2d482e3f59cb",
      "tree": "78372601dfa4e46926e1d65af7186b962752047f",
      "parents": [
        "e00274a5ab8d16d1050adda84412016c01a469b3"
      ],
      "author": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jan 13 15:33:54 2012 +0400"
      },
      "committer": {
        "name": "Evgeniy Stepanov",
        "email": "eugenis@google.com",
        "time": "Fri Jan 13 15:33:54 2012 +0400"
      },
      "message": "Fix compilation with Clang.\n\nwarning: extraneous template parameter list in template specialization\ntemplate\u003c\u003e\n\nChange-Id: If3e3e1d06a018343b40ac0984dfd9ecc12629f8d\n"
    },
    {
      "commit": "b5c6ff59930a4f7b7efbcfac143fd4aed4315cb9",
      "tree": "46e68851f9af64e7c6c1ad32f443dcdfc022ec43",
      "parents": [
        "dc89357810976556d20483c7fe161b68ed4d2acf",
        "d1ba6ed94543b6d2af666e01f4ffd29412511400"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 12 16:56:58 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 16:56:58 2012 -0800"
      },
      "message": "Merge \"Separate sniffing from session initialization\""
    },
    {
      "commit": "d1ba6ed94543b6d2af666e01f4ffd29412511400",
      "tree": "10d0b29f0a9b7b08cccae0a907595cc8f96f3d4a",
      "parents": [
        "1f7b23dda211f419f0a140b871de44339c4a10c7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 10 08:24:37 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jan 12 16:25:12 2012 -0800"
      },
      "message": "Separate sniffing from session initialization\n\nThis avoid lengthy/duplicate sniffing for drm plugins when a decrypt session is opened\n\no The change is backward compatibile in that no update is required\n  for existing drm plug-ins if they do not plan to provide separate\n  sniffer/extractor\n\nrelated-to-bug: 5725548\n\nChange-Id: I7fc4caf82d77472da4e2bc7b5d31060fb54fd84c\n"
    },
    {
      "commit": "2fdc357bc66b97614455c5148562a5dfb650c1b7",
      "tree": "d0eb8dd772b55bc17df5f23fa48d0166f7d200ca",
      "parents": [
        "3adbec281ee82e1054e6693f0250e106080bab77",
        "0db7590ed2785cfa8973dbcb6b93627ea02774ce"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Jan 12 10:37:10 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 10:37:10 2012 -0800"
      },
      "message": "Merge \"remove dead/usnused code\""
    },
    {
      "commit": "1c66547ba25be6a1893df0ae26857f649474843a",
      "tree": "56b751b312560ea89f4d48ed49b5bd192ae1841d",
      "parents": [
        "cc9858049ddea5a28cbd1d6ee59dd814e21ef512",
        "1c5a89d4af193e3ce9be9992ffee0ab0a4d8da5a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 12 10:30:28 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 10:30:28 2012 -0800"
      },
      "message": "Merge \"Use audio_format_t consistently\""
    },
    {
      "commit": "0db7590ed2785cfa8973dbcb6b93627ea02774ce",
      "tree": "4371c3f854095cee97dec40f23b7713c40c611f0",
      "parents": [
        "7e9a3706d9236be563341cf076ddd41098e161ea"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jan 06 15:54:37 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jan 11 22:03:41 2012 -0800"
      },
      "message": "remove dead/usnused code\n\nChange-Id: I6fa2bc6ee01790abd2c1533f043d61a5e5c8d26e\n"
    },
    {
      "commit": "c57b0631925c0dc00a023216027037a7f7db682f",
      "tree": "1e8c352e3e6a658cc0ea1181a6bbbd69db7b617b",
      "parents": [
        "1eac460122c94455d28d4189ce12e23794b04148",
        "77b6aaf62d9f4ba4c653090e4d79b46228cdcdef"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 11 11:39:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 11 11:39:06 2012 -0800"
      },
      "message": "Merge \"Fix bug in JetPlayer::loadFromFile\""
    },
    {
      "commit": "f733831fc735ec9bdf7465dd64f861ffb7f42924",
      "tree": "4f857893913b93dd8868b7834776312b1c2bc804",
      "parents": [
        "ca61ea84993df6e7a380a8a3f5823c6232258a9c",
        "798ef8e882957e3edada7539c471ecc9c3721809"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 11 10:23:34 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 11 10:23:34 2012 -0800"
      },
      "message": "Merge \"Declare IAudioTrack methods in binder opcode order\""
    },
    {
      "commit": "77b6aaf62d9f4ba4c653090e4d79b46228cdcdef",
      "tree": "a4523690932d082f561217899ea62921318eca47",
      "parents": [
        "38e90751a25606459a9e571aa1b6c992d4c64151"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 10 08:41:33 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 10 15:43:24 2012 -0800"
      },
      "message": "Fix bug in JetPlayer::loadFromFile\n\nA long pathname would corrupt the heap due to incorrect use of strncpy.\n\nAlso was using hard-coded constant 256 instead of PATH_MAX.\n\nChange-Id: Iba382bbb38624fbc41fec91449f9814f77d4ac0d\n"
    },
    {
      "commit": "8cf6d6f1480e760e6953bdea9fe9ab29f1e03aa8",
      "tree": "6093985af74d3df4cfaeac34f4aa0c7a04f26769",
      "parents": [
        "f5c491651fe7575e1b05e924b0d5326481c1678b",
        "e6810ffaa19c6ad747d6f3ae7a38c7f572e9281e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 09 10:24:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 09 10:24:40 2012 -0800"
      },
      "message": "Merge \"Clean up AudioTrack::mActive and stopped()\""
    },
    {
      "commit": "3762c311729fe9f3af085c14c5c1fb471d994c03",
      "tree": "7d4caccad80ac7327c7bff96dafc857d5f4631ad",
      "parents": [
        "7a939077bd14521c7d351af98df7ed75a8ec9c15"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Sun Jan 08 13:19:13 2012 +0000"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/157220\n\nBug: 5449033\nChange-Id: Ic9c19d30693bd56755f55906127cd6bd7126096c\n"
    },
    {
      "commit": "798ef8e882957e3edada7539c471ecc9c3721809",
      "tree": "5fa2d67cf08a5641cc380a50f1f27b518a9485c2",
      "parents": [
        "a8719ad9d53d3fe51e8031b2471e9558b8ef727f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 03 14:50:23 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 06 13:35:57 2012 -0800"
      },
      "message": "Declare IAudioTrack methods in binder opcode order\n\nThis makes it easier to match up the declarations.\n\nChange-Id: I0996c20b2903b778b356dfe52b07b0ec634855dd\n"
    },
    {
      "commit": "1c5a89d4af193e3ce9be9992ffee0ab0a4d8da5a",
      "tree": "37cbdadbb8acf18fb022b3729c37c370ccbe853f",
      "parents": [
        "a8719ad9d53d3fe51e8031b2471e9558b8ef727f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 04 09:36:37 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 05 13:34:54 2012 -0800"
      },
      "message": "Use audio_format_t consistently\n\nWas int, uint32_t, uint16_t, and uint8_t with 2-bit bitfield.\nAlso replace 0 by AUDIO_FORMAT_DEFAULT and replace 1 by\nAUDIO_FORMAT_PCM_16_BIT.\n\nChange-Id: Ia8804f53f1725669e368857d5bb2044917e17975\n"
    },
    {
      "commit": "e6810ffaa19c6ad747d6f3ae7a38c7f572e9281e",
      "tree": "215f8078fbbe1b48bc44fb114472487f8385f544",
      "parents": [
        "a8719ad9d53d3fe51e8031b2471e9558b8ef727f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 03 09:42:47 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 05 11:55:24 2012 -0800"
      },
      "message": "Clean up AudioTrack::mActive and stopped()\n\nmActive is protected by mLock; volatile is meaningless on SMP.\n\nFixed a couple of places where mActive was accessed without a lock:\n - stopped()\n - processAudioBuffer()\n\nAdded stopped_l() for cases where we already hold the lock.\n\nMade mActive a bool not int.\n\nMoved down a lock in setPosition that was being acquired too early.\n\nChange-Id: I73ff368e991c0db9f9472df0b3f96fd33fcc7311\n"
    },
    {
      "commit": "6215d3ff4b5dfa52a5d8b9a42e343051f31066a5",
      "tree": "fa31802ed64676368447b67d20567fc1e806c79d",
      "parents": [
        "c9c76a82c6d0bf2362044d899013832882f32c94"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/156801\n\nBug: 5449033\nChange-Id: Ib08fe86d23db91ee153e9f91a99a35c42b9208ea\n"
    },
    {
      "commit": "44fcb83b38b062a650ddf556fe7f5e34905df9ea",
      "tree": "f5726b3011934023b43a46eb3ce3be6742a274ba",
      "parents": [
        "3766a7a27535101e62af958b1d2d710daa166d7d"
      ],
      "author": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Wed Dec 14 20:59:30 2011 -0800"
      },
      "committer": {
        "name": "Joe Onorato",
        "email": "joeo@google.com",
        "time": "Thu Dec 15 16:16:14 2011 -0800"
      },
      "message": "Add a new ui mode for \"appliance\"\n\nThe idea is that this is a device which is more-or-less headless.  It\nmight have some limited interaction capabilities, but it\u0027s not something\nthat you want to rely on having.\n\nChange-Id: Ib92f53a120bf83de781728011721a4859def7d9f\n"
    },
    {
      "commit": "e5fb263a3625c0e6b4a9aefa86067bb9463dd06d",
      "tree": "bceb757165943cf03d96906b595c4b24bfde4218",
      "parents": [
        "e61fd281a8cb69ae45c5de4b160ab86226083152"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 14 10:28:06 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 14 14:38:26 2011 -0800"
      },
      "message": "Audio C++ comments\n\nChange-Id: I84906ebb9dfcfa5b96b287d18364b407f02a30c1\n"
    },
    {
      "commit": "d3209c1bb21ce026d4e41464740e3d8f57cdd56f",
      "tree": "1eebbf03a13b6ded6aa55537d76a33a7a5a5f26e",
      "parents": [
        "66b2ff818bdc58465e54d7fc42772857c07fa262",
        "46b9f7cc2047ac16ecf36ffb6c6d3def0a5f5ccb"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 08 18:51:03 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 08 18:51:03 2011 -0800"
      },
      "message": "Merge \"GenerationCache::get would return a random value instead of NULL Bug #5401917\""
    },
    {
      "commit": "46b9f7cc2047ac16ecf36ffb6c6d3def0a5f5ccb",
      "tree": "744df6ca395ccbac5b29af737066544c63ebe343",
      "parents": [
        "e98ae0a050d6ce4b3e2aec7c070a87922086c256"
      ],
      "author": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 08 18:19:39 2011 -0800"
      },
      "committer": {
        "name": "Romain Guy",
        "email": "romainguy@google.com",
        "time": "Thu Dec 08 18:50:27 2011 -0800"
      },
      "message": "GenerationCache::get would return a random value instead of NULL\nBug #5401917\n\nThis was causing a ton of random crashes in apps.\n\nChange-Id: I9069a060824ec89115cd3bcd38beaeb9ecc4488e\n"
    },
    {
      "commit": "6779df2c28a68616134b1988f009221652d9f2ad",
      "tree": "6e19f621e6306cdbcf49816df648e749dc384838",
      "parents": [
        "2b621bc5bb52339cc677beb89d0495b8b5d4f444"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 06 17:22:19 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Dec 06 22:43:10 2011 -0800"
      },
      "message": "Improve the VSYNC api a bit.\n\n- add the ability to set the vsync delivery rate, when the rate is\nset to N\u003e1 (ie: receive every N vsync), SF process\u0027 is woken up for\nall of vsync, but clients only see the every N events.\n\n- add the concept of one-shot vsync events, with a call-back\nto request the next one. currently the call-back is a binder IPC.\n\nChange-Id: I09f71df0b0ba0d88ed997645e2e2497d553c9a1b\n"
    },
    {
      "commit": "993b2099cee5c3ad86a5fbbd29194994336187be",
      "tree": "418b272f4f123457611c33146a53cf5ad3abb0fb",
      "parents": [
        "df96385b9acf9ec74c62edc34ffa9c8d9dae1c03",
        "55d3880eed3450748eb7b97281e030902ee29c2a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Nov 30 10:50:52 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 10:50:52 2011 -0800"
      },
      "message": "am 55d3880e: am bb1e7d43: Merge changes I7e973a35,Ib3386fcc into ics-mr1\n\n* commit \u002755d3880eed3450748eb7b97281e030902ee29c2a\u0027:\n  SurfaceTexture: add EGL_KHR_fence_sync option\n  SurfaceTexture: add a blit-to-FBO test\n"
    },
    {
      "commit": "df96385b9acf9ec74c62edc34ffa9c8d9dae1c03",
      "tree": "156e5102fa53ad3debbe864bc1780925d693fa71",
      "parents": [
        "267a4b0627f98b020725e860b0a3c128067131b1",
        "c040e1e77923d81050f2d3dbdac5d07e01be72f6"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Nov 30 10:50:49 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 30 10:50:49 2011 -0800"
      },
      "message": "am c040e1e7: am 6f1dd757: Merge \"SurfaceMediaSource: use the vid enc usage bit\" into ics-mr1\n\n* commit \u0027c040e1e77923d81050f2d3dbdac5d07e01be72f6\u0027:\n  SurfaceMediaSource: use the vid enc usage bit\n"
    },
    {
      "commit": "bb1e7d4324ff43491c526c77f405bbbf0cece611",
      "tree": "235d607f7473ec35ba7db47e9fc371166f143398",
      "parents": [
        "6f1dd757cb158d17c76baeb170f7db2271802ef8",
        "77cec6132aea6ed98812125f5ad5f79e889cf658"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 17:46:35 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 17:46:35 2011 -0800"
      },
      "message": "Merge changes I7e973a35,Ib3386fcc into ics-mr1\n\n* changes:\n  SurfaceTexture: add EGL_KHR_fence_sync option\n  SurfaceTexture: add a blit-to-FBO test\n"
    },
    {
      "commit": "6f1dd757cb158d17c76baeb170f7db2271802ef8",
      "tree": "e965c66766e6d362eca7e7b4474107740874dc7f",
      "parents": [
        "f296ee697409b4b55bef17d534edbc24a4619f0f",
        "6deb4b538ecf5cbd4418492bfb6b79df67eedfb7"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 29 17:25:09 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 17:25:09 2011 -0800"
      },
      "message": "Merge \"SurfaceMediaSource: use the vid enc usage bit\" into ics-mr1"
    },
    {
      "commit": "77cec6132aea6ed98812125f5ad5f79e889cf658",
      "tree": "57535ce4ed1806290cb04f8434d324dec7995df2",
      "parents": [
        "d6c938f04ec1e39dcbcf4d5adfcbdfbac0484540"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 14 14:51:01 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 29 17:09:01 2011 -0800"
      },
      "message": "SurfaceTexture: add EGL_KHR_fence_sync option\n\nThis change adds a compile-time option for SurfaceTexture to use the\nEGL_KHR_fence_sync extension to synchronize access to Gralloc buffers.\n\nBug: 5122031\nChange-Id: I7e973a358631fff5308acf377581b811911fe790\n"
    },
    {
      "commit": "e7b3e09a5ed21dab938a7efdc215bb20d2769702",
      "tree": "8eb7926dfeac4f205e501e55b25ea30f2cfc38d2",
      "parents": [
        "848bffd8fa07f0e16d0ac5eed95085288ff43d9f",
        "52607c5364446df6ac5b2f55cb50e146e6023a4f"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 16:33:04 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 29 16:33:04 2011 -0800"
      },
      "message": "am 52607c53: am d12dc284: Merge \"If an error occurs that prevents us from reallocating buffers during a format change\" into ics-mr1\n\n* commit \u002752607c5364446df6ac5b2f55cb50e146e6023a4f\u0027:\n  If an error occurs that prevents us from reallocating buffers during a format change\n"
    },
    {
      "commit": "848bffd8fa07f0e16d0ac5eed95085288ff43d9f",
      "tree": "b7ef7703f0a0b33df7d6a263c8cb3bfb5c371d9b",
      "parents": [
        "baeda5135bb1b4a87334c41834f3532ab73a4022",
        "074133b260f8d12e484e93b9aa5a33a4983b7349"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 16:33:02 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 29 16:33:02 2011 -0800"
      },
      "message": "am 074133b2: am 351143fb: Merge \"Updated (internal) API for IStreamSource to signal discontinuities\" into ics-mr1\n\n* commit \u0027074133b260f8d12e484e93b9aa5a33a4983b7349\u0027:\n  Updated (internal) API for IStreamSource to signal discontinuities\n"
    },
    {
      "commit": "d12dc28460f622ab29e83fa688ad83a8263e9417",
      "tree": "47fa98e5e289300bbb65f48af427b4d6d68fa54b",
      "parents": [
        "351143fb0e2fcfb7dc2ef1045d693c71eb0ea329",
        "d03e7d62d5a5eda07e19b0bbc1eaa6ed82d860c5"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 14:09:03 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 14:09:03 2011 -0800"
      },
      "message": "Merge \"If an error occurs that prevents us from reallocating buffers during a format change\" into ics-mr1"
    },
    {
      "commit": "351143fb0e2fcfb7dc2ef1045d693c71eb0ea329",
      "tree": "e62eb07e221bd3d64ecaffbcbe5483dc89d1df6b",
      "parents": [
        "405a4e34032f8a07028138266fe9f79f6753b466",
        "a10613fea8e9d8a73385d37ad92f9c56d8828ce6"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 14:08:45 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 29 14:08:45 2011 -0800"
      },
      "message": "Merge \"Updated (internal) API for IStreamSource to signal discontinuities\" into ics-mr1"
    },
    {
      "commit": "0475f82c95e6e9657580820b16b0e48d814119b5",
      "tree": "2ce0fb9ad7b9b7294bcf7a1617d45b21d246141f",
      "parents": [
        "8e6115f622ee2d6ef8023357231b6663b1c091e6",
        "c339fe302bc5083f0a110569eec06676be511088"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 29 13:17:42 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 29 13:17:42 2011 -0800"
      },
      "message": "am c339fe30: am be6ab576: Merge \"Fix application launch shortcuts.\" into ics-mr1\n\n* commit \u0027c339fe302bc5083f0a110569eec06676be511088\u0027:\n  Fix application launch shortcuts.\n"
    },
    {
      "commit": "79f39eb46055282c86815853ad94a1e01ca6675f",
      "tree": "3853d9c0c5b1877a390178558e77dd7b6c31ad75",
      "parents": [
        "f9e88fbee04f83638b07546741196bd4c242ef54"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 17:49:17 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 13:10:25 2011 -0800"
      },
      "message": "Add support for sending VSYNC events to the framework\n\nuse gui/DisplayEvent to receive the events. Events are\ndispatched through a unix pipe, so the API is compatible\nwith utils/Looper. see gui/DisplayEvent.h for more info.\n\nBug: 1475048\nChange-Id: Ia720f64d1b950328b47b22c6a86042e481d35f09\n"
    },
    {
      "commit": "f9e88fbee04f83638b07546741196bd4c242ef54",
      "tree": "a0b0da85f2411f6a025637cd082f1efced6790e5",
      "parents": [
        "e11ec1df421be0b1a18fd3cf6ec23361d86ca32a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 13:07:24 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 13:07:40 2011 -0800"
      },
      "message": "Fix build.\n\nRevert \"Add support for sending VSYNC events to the framework\"\n\nThis reverts commit f3918c5bd4bc9f02f74da42995564150ca2dd382.\n\nChange-Id: I998e3e1aa3fa310829ae973b64fe11b01f6f468f\n"
    },
    {
      "commit": "6651a638348c15e89e265b0a53c775cac9beafa2",
      "tree": "f42e59d99363cada07cdb6f4bff69fa51bfae2ad",
      "parents": [
        "500afb87a7a8b5928ef1a5196bdfd0bcc2b87e4a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 28 12:59:11 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 29 12:17:22 2011 -0800"
      },
      "message": "Fix application launch shortcuts.\n\nImproved quick launch bookmarks to support category-based shortcuts\ninstead of hardcoding package and class names for all apps.\n\nAdded a set of Intent categories for typical applications on the\nplatform.\n\nAdded support for some of the HID application launch usages to\nreduce reliance on quick launch for special purpose keys.  Some\nkeyboard vendors have hardcoded launch keys that synthesize\n\"Search + X\" type key combos.  The goal is to encourage them\nto stop doing this by implementing more of HID.\n\nBug: 5674723\nChange-Id: I79f1147c65a208efc3f67228c9f0fa5cd050c593\n"
    },
    {
      "commit": "a10613fea8e9d8a73385d37ad92f9c56d8828ce6",
      "tree": "5be4f71fbf79a2f5e1131d63b53a647ecc072f15",
      "parents": [
        "fed7a99a5294856d930e18225898828bd6755be1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 11:57:35 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 29 11:59:10 2011 -0800"
      },
      "message": "Updated (internal) API for IStreamSource to signal discontinuities\n\nChange-Id: Idd4b9d8e7cec16b3e3c91c70e75144d42be30f96\nrelated-to-bug: 5553055\n"
    },
    {
      "commit": "f3918c5bd4bc9f02f74da42995564150ca2dd382",
      "tree": "9f8a1bb871b9b5a7571a6a9cbc65d539ac947b92",
      "parents": [
        "bb9ba8bae551305acba4f60577b0f461a9421bc5"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 17:49:17 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Nov 29 11:44:05 2011 -0800"
      },
      "message": "Add support for sending VSYNC events to the framework\n\nuse gui/DisplayEvent to receive the events. Events are\ndispatched through a unix pipe, so the API is compatible\nwith utils/Looper. see gui/DisplayEvent.h for more info.\n\nBug: 1475048\nChange-Id: If4126023fc9c067e56087ec7d16a8fd542ce1794\n"
    },
    {
      "commit": "3f15700a012b1ab0097eaf90caf0540ba6caa529",
      "tree": "548cf135dc366cfd34e430024e89b8e0b58a35b4",
      "parents": [
        "16aca5197244f9066968658735611a0dbbe46403"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 17:48:35 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 28 15:21:57 2011 -0800"
      },
      "message": "split ComposerService out of SurfaceComposerClient.h\n\nChange-Id: I1eb691f7ca263d5895d871ab675bb5826e0323c6\n"
    },
    {
      "commit": "589364c7179e764f4e8b9c0d53f45a1abf528aa8",
      "tree": "630da1fa34f3bb28c799a2899b2a87d761089411",
      "parents": [
        "866103c00dd8028443ee8d7f9f3ca89f4acbc179",
        "9c151c58cb1bbd7dce97c7ad9ce7725922a850a0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Nov 28 14:54:28 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 28 14:54:28 2011 -0800"
      },
      "message": "Merge \"Make AudioTrack a RefBase so wrappers not needed\""
    },
    {
      "commit": "d03e7d62d5a5eda07e19b0bbc1eaa6ed82d860c5",
      "tree": "e64d854927bfab0c6c1982002a2a071004d5aaf6",
      "parents": [
        "e35581ad5ad635f9dcfe4ab6a432c48b46b782cd"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 28 10:54:12 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Nov 28 10:54:12 2011 -0800"
      },
      "message": "If an error occurs that prevents us from reallocating buffers during a format change\n\nwe need to transition to executing state anyway to be able to properly flush/shutdown\nin the future.\n\nChange-Id: Ie48bc09ea31942009ae3a5a45aabc9ffad9fb91f\nrelated-to-bug: 5655016\n"
    },
    {
      "commit": "bbd63f0246c9beabfc055d03f829a96e8ff512f5",
      "tree": "7d366b55c05ae0b4b8995dbece7976d6e2db7610",
      "parents": [
        "8a743d90a973e4fcf52093f2a89a5c049b626480"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 24 11:54:21 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Thu Nov 24 11:54:21 2011 -0800"
      },
      "message": "Use sized integer typedefs in hash_type specializations.\n\nChange-Id: I3f9e004db2f3be1cb43a885c3ae142f251fd6845\n"
    },
    {
      "commit": "9d61edcc0fd960f227aa0c4b8e20b05dea2aca19",
      "tree": "61daffde4cf87f4a1af612ccd93e291731215c99",
      "parents": [
        "b1e72b6826455a19a80dab14612da7f22e0e1a75"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 14 18:29:15 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 22 17:12:22 2011 -0800"
      },
      "message": "Add a basic hashtable data structure, with tests!\n\nThe basic hashtable is intended to be used to support a variety\nof different datastructures such as map, set, multimap,\nmultiset, linkedmap, generationcache, etc.\n\nConsequently its interface is fairly primitive.\n\nThe basic hashtable supports copy-on-write style functionality\nusing SharedBuffer.\n\nThe change introduces a simple generic function in TypeHelpers for\nspecifying hash functions.  The idea is to add template\nspecializations of hash_type\u003cT\u003e next to the relevant data structures\nsuch as String8, String16, sp\u003cT\u003e, etc.\n\nChange-Id: I2c479229e9d4527b4fbfe3b8b04776a2fd32c973\n"
    },
    {
      "commit": "72a845d53900048c13edf4a4ac33386f3332e838",
      "tree": "9b324d488f64d3989ed2fda81df376a9ed7b2f5e",
      "parents": [
        "5b17f73573e778c3ac22e41d13d4633f1f1d3f9f",
        "31626b3075335f4cf579342e99436bb45870cf55"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 22 08:43:28 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 22 08:43:28 2011 -0800"
      },
      "message": "am 31626b30: am cb6fbc89: Merge \"Report a runtime error instead of asserting on malformed avc configuration data.\" into ics-mr1\n\n* commit \u002731626b3075335f4cf579342e99436bb45870cf55\u0027:\n  Report a runtime error instead of asserting on malformed avc configuration data.\n"
    },
    {
      "commit": "cb6fbc89c25298643ab342b4a228e772b0e56978",
      "tree": "66e96e1e6c7aa64d5bb6a84e10b46213fbf296a0",
      "parents": [
        "631885746868cbf03f89e655a6f4fac96449e8a4",
        "0ba8660ea6d88a1809508c31bd3b1da8e8dfabd3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 22 08:39:11 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 22 08:39:11 2011 -0800"
      },
      "message": "Merge \"Report a runtime error instead of asserting on malformed avc configuration data.\" into ics-mr1"
    },
    {
      "commit": "4e2ecdd8a78f25f4c234877d5321ebd4e4c0e8f7",
      "tree": "fc7fc0c14ceeb9811298b19197bc9c132a78883a",
      "parents": [
        "24692d6c9e35e99ec77f5fb57c53bfeef30315a1",
        "d0a254566f5f0be5607b4d64839a575c888c94f6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 21 21:08:55 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:08:55 2011 -0800"
      },
      "message": "am d0a25456: am 02740dc4: Merge \"Fix log spamming during time lapse video recording\" into ics-mr1\n\n* commit \u0027d0a254566f5f0be5607b4d64839a575c888c94f6\u0027:\n  Fix log spamming during time lapse video recording\n"
    },
    {
      "commit": "07f062b6271e7ec820d1079566e7451a9cf55558",
      "tree": "57d9f1caf0e0ab9ed8d13a00f1391bdb7823edf7",
      "parents": [
        "53d42cb7d3c5c35b63363abbe9c44b8f6961afd4",
        "c25972950c2ea62fb085524dbe737c2bf0f08f4a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 21:08:21 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 21 21:08:21 2011 -0800"
      },
      "message": "am c2597295: am 53cf2020: Merge changes I37fd43b5,I91eb29db,I0491ce35 into ics-mr1\n\n* commit \u0027c25972950c2ea62fb085524dbe737c2bf0f08f4a\u0027:\n  SurfaceTexture: fix a couple tests\n  EGL: default to swap interval 1\n  SurfaceTexture: clean up some tests\n"
    },
    {
      "commit": "02740dc49df86fc94c872454aa9db98737d5e8c8",
      "tree": "bab33b5f465661bb12f982222bb678024b0893ac",
      "parents": [
        "1766b0e25de5a66f9d0f6e73a2c342272fcadc71",
        "96af14d9b013496accf40a85a66fefcba3ac0111"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 21 20:28:27 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 21 20:28:27 2011 -0800"
      },
      "message": "Merge \"Fix log spamming during time lapse video recording\" into ics-mr1"
    },
    {
      "commit": "6deb4b538ecf5cbd4418492bfb6b79df67eedfb7",
      "tree": "c7a3bb6bdbe11d49b220c53b4d1eed518b29d560",
      "parents": [
        "b8d20d028ca590f6a9c57e0e8fee5e5f80e9ae54"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 16:51:47 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 17:48:19 2011 -0800"
      },
      "message": "SurfaceMediaSource: use the vid enc usage bit\n\nThis change makes SurfaceMediaSource add the VIDEO_ENC usage bit when\nallocating its GraphicBuffers rather than the HW_TEXTURE bit.\n\nChange-Id: Ie20e225c894fdbc31cad6bb82b3b64c7e98074eb\n"
    },
    {
      "commit": "87f3265bb082160efdfdfb87a79698c67ebad447",
      "tree": "a9eb05cf1cb1a6d59d1dafe806c843aee10daa76",
      "parents": [
        "c10a94c4b8b42ef75168ad140fdb97d6cca3d2eb"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sat Nov 19 18:04:43 2011 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Nov 21 14:37:29 2011 -0800"
      },
      "message": "EGL: default to swap interval 1\n\nThis change explicitly sets swap interval 1 on the window when an\nEGLSurface is created to render to it.\n\nChange-Id: I91eb29dbee3ae4a55076b921f084d503fbe94e03\n"
    },
    {
      "commit": "96af14d9b013496accf40a85a66fefcba3ac0111",
      "tree": "0d77b5fc0a82fc4b82bb1b1df83a92473cc0fb69",
      "parents": [
        "7859c1842c1f2e3c43415dfb5337a0b005bdb1c4"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sun Nov 20 09:45:44 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Nov 21 12:09:51 2011 -0800"
      },
      "message": "Fix log spamming during time lapse video recording\n\nChange-Id: I4fc0809203684ebb02eaf217d7abad00aefc898f\n\nrelated-to-bug: 5626569\n"
    },
    {
      "commit": "36bd710a6094282c8f9a6083c3b09911bf8a5ac7",
      "tree": "d9f63cb4b22b64f342445b4f131ff3894a31446e",
      "parents": [
        "3f6114164f87567d069fe37962b3d1952f5905e5",
        "d0df44b5c979e00a19187cea35768ba26557e447"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 18 15:22:59 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 18 15:22:59 2011 -0800"
      },
      "message": "am d0df44b5: am 4d71053b: Merge \"attempt to fix bug 5313580\" into ics-mr1\n\n* commit \u0027d0df44b5c979e00a19187cea35768ba26557e447\u0027:\n  attempt to fix bug 5313580\n"
    },
    {
      "commit": "0ba8660ea6d88a1809508c31bd3b1da8e8dfabd3",
      "tree": "9e7a57f403f0bbe83e7c785b814cb03bc016c009",
      "parents": [
        "dea90a0e1c9c1d15657024893b6793dc21bc27ef"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 18 12:22:59 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Nov 18 12:22:59 2011 -0800"
      },
      "message": "Report a runtime error instead of asserting on malformed avc configuration data.\n\nChange-Id: Ibcd9c3fb5b6532eba843ed80ecdcdacaf50d8845\nrelated-to-bug: 5641069\n"
    },
    {
      "commit": "90cbbd1f7f510e7c173f706919492a95e91a87e7",
      "tree": "228bd0b3b540cdbdb52cea0a6c0fdd9bf33563b2",
      "parents": [
        "302afb93d4fd908949ac796eda8343f9683e616a"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 18:46:09 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 17 18:46:09 2011 -0800"
      },
      "message": "attempt to fix bug 5313580\n\nthe working theory here is that a Surface object has become non-promotable\nbecause it lost its last reference; later Surface::readFromParcel is called\nthe previous surface is found in the cache, but can\u0027t be promoted. this causes\na new Surface object to be created which will promptly try to connect to the\nCPU_API -- this in turn will fail because the previous (now dead) surface is\nstill connected.\n\nTo fix this, we make sure to disconnect from the SurfaceTexture when\nSurface[TextureClient] is destroyed.\n\nChange-Id: I422234868a05d7b7d283e9d5a85f7ab79e65d8a9\n"
    },
    {
      "commit": "b447e9ce1d3dc603a8879340f36a4ca4f22d6b62",
      "tree": "0d9f68cf4a74e2602a74f38f7b2b66fd27350ad9",
      "parents": [
        "77c5f4def49357a89abd9849b0bab950179d71f4",
        "9c0227a63c9903cf407da4a713ff619e49c6bc73"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 17 07:14:29 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 17 07:14:29 2011 -0800"
      },
      "message": "Merge \"JetPlayer uses C++ Thread not createThreadEtc\""
    },
    {
      "commit": "04dd4deafdbde8e4a9d12745e3d4a886ef8769f4",
      "tree": "138bed74f6d156ffe0ac11fdaccec295a19d2312",
      "parents": [
        "6c932dab1cef4fc711c4fdab938bced67b15d5df",
        "7765fc651a9519dd2f0ac9d3374a50e9865c5c99"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 17 05:46:00 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 17 05:46:00 2011 -0800"
      },
      "message": "am 7765fc65: am fd6b64f6: Merge \"SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call\" into ics-mr1\n\n* commit \u00277765fc651a9519dd2f0ac9d3374a50e9865c5c99\u0027:\n  SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call\n"
    },
    {
      "commit": "9c0227a63c9903cf407da4a713ff619e49c6bc73",
      "tree": "fa4abf755c8d500a684879a00ddfa3f38a341075",
      "parents": [
        "5a4718183340a108b55eba7bf755b4432153caa1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 23 16:43:24 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 16 15:25:30 2011 -0800"
      },
      "message": "JetPlayer uses C++ Thread not createThreadEtc\n\nThis permits leveraging future improvements to Thread.\n\nChange-Id: I60deed8565ed54f13d9f770c76504e411b154276\n"
    },
    {
      "commit": "99d544332a6e79d9f4fa6d981f95e8ba6c037ab7",
      "tree": "ca499ce5649c307ed0c7f931c74adf0d6bdab68d",
      "parents": [
        "5a4718183340a108b55eba7bf755b4432153caa1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 22 16:15:25 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 16 14:52:55 2011 -0800"
      },
      "message": "Bug 4903178 Restore priority and cgroup on stop\n\nOn AudioTrack and AudioRecord stop or failed start, restore the priority\nand cgroup of the caller to their previous values, rather than forcing\nto NORMAL.  Dependent on new thread APIs.\n\nAlso fixes bug where priority was set to AUDIO but cgroup not set.\n\nChange-Id: Ib83893918fb4fdf57c6b87884b51038997a631d8\n"
    },
    {
      "commit": "fd6b64f6ad040b4d550a5219a2576997e2c0e85d",
      "tree": "6d1557564d97571409783c88b3b88a34152c418c",
      "parents": [
        "7dc81e06e4d0554683595e8d2e318837548e249a",
        "f1e868f68204bf469a0c162b84af0e651d513ac8"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Nov 16 11:34:30 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 16 11:34:30 2011 -0800"
      },
      "message": "Merge \"SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call\" into ics-mr1"
    },
    {
      "commit": "221096fdd6963a0f7090b928cfb92b9267f32d7a",
      "tree": "300e2781bf3720d2b7e57611d6691c9fe9ea521a",
      "parents": [
        "8e56e1f3459703a9b9f5a13676428eeda68bb73f",
        "4c0e0dd29dcce33e7521b11d01d21d9431f3b264"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 15 19:43:35 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 15 19:43:35 2011 -0800"
      },
      "message": "am 4c0e0dd2: am 3e7497b4: Merge \"Eliminate hw.keyboards system properties.\" into ics-mr1\n\n* commit \u00274c0e0dd29dcce33e7521b11d01d21d9431f3b264\u0027:\n  Eliminate hw.keyboards system properties.\n"
    },
    {
      "commit": "3e7497b4eccd3db1d6ff0ce1f1f2db11f9a8eeef",
      "tree": "14b19d7f750f12c4168bb582c1cd99e93afd454a",
      "parents": [
        "cdec187a27b2acc34cd4df26b836b83362527d6a",
        "1e08fe90df18930691b0c2ec22e5db25d7fcb4cf"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 15 19:17:09 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 15 19:17:09 2011 -0800"
      },
      "message": "Merge \"Eliminate hw.keyboards system properties.\" into ics-mr1"
    },
    {
      "commit": "1e08fe90df18930691b0c2ec22e5db25d7fcb4cf",
      "tree": "772ffaafe6917d37ee65f5ed3d653230557bdc80",
      "parents": [
        "9058435dc1a741030c042c4d6f2512f5d1605e5d"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 15 17:48:10 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Tue Nov 15 18:00:10 2011 -0800"
      },
      "message": "Eliminate hw.keyboards system properties.\n\nStop using system properties to publish information about\nthe key character map path.  Instead, we can retrieve it\non demand by asking the window manager.\n\nIt was possible to exhaust the supply of system properties\nwhen repeatedly adding and removing input devices.\n\nBug: 5532806\nChange-Id: Idd361a24ad7db2edc185c8546db7fb05f9c28669\n"
    },
    {
      "commit": "9c151c58cb1bbd7dce97c7ad9ce7725922a850a0",
      "tree": "f49e533e15d3b6f4f603ef7aecb1e14880140600",
      "parents": [
        "78137d77991f129b349b258474ef8b5133b300d9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Nov 15 13:55:13 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Nov 15 14:26:09 2011 -0800"
      },
      "message": "Make AudioTrack a RefBase so wrappers not needed\n\nChange-Id: I2305abe586ac41251af04a194bc818c110a1b293\n"
    },
    {
      "commit": "cc6c20f5321e39ee75172f329450dd60a69c980f",
      "tree": "c7c3ca11811eb608a786120a3a00dbb9362f8257",
      "parents": [
        "0e02e42140d54410ec90e21e90af23cc8b4da31d",
        "716747f7cb29b45e41c2870f12d39095f4ed80c8"
      ],
      "author": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Tue Nov 15 13:07:07 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 15 13:07:07 2011 -0800"
      },
      "message": "am 716747f7: am 481ffa50: Merge \"Fix for issue  5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.\" into ics-mr1\n\n* commit \u0027716747f7cb29b45e41c2870f12d39095f4ed80c8\u0027:\n  Fix for issue  5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.\n"
    },
    {
      "commit": "f1e868f68204bf469a0c162b84af0e651d513ac8",
      "tree": "23a997a5d68fb46652460aa233ec3dd0133652f3",
      "parents": [
        "6a54a997e3dc71c5b9c5a1c7829bc3eb35404e92"
      ],
      "author": {
        "name": "Sunita Nadampalli",
        "email": "sunitan@ti.com",
        "time": "Wed Nov 09 18:23:41 2011 -0600"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Nov 15 11:43:35 2011 -0800"
      },
      "message": "SurfaceTexture: Fix to return the oldest of free buffers to Client on Dequeue call\n\nSurface Texture dequeue logic is modified to return the oldest of the\nfree buffers to Client on dequeue call.\n\nCurrently dequeue method is returning the first buffer index which is free.\nThe parsing is done in ascending order of the buffer slot indices.\nThis leads to returning the buffer which has been just queued to composer,\nand hence display, and this defeats the purpose of having minimum dequeue count\nas 2 in asynchrnouse mode.\n\nThis is fixed by checking all the free slots and returning the oldest buffer.\n\nChange-Id: Ibbac10593c3994c278c601af0480b171635ecdd4\nSigned-off-by: Sunita Nadampalli \u003csunitan@ti.com\u003e\n"
    },
    {
      "commit": "481ffa505bb1d8f5089ea98e3b5960d409b6819c",
      "tree": "e27a4ae290b172cb6afc4d7559e32994e810762d",
      "parents": [
        "ce33622aed7fb25a14ef957cdc78b78cc4602be9",
        "7eb531970305f938c8e3bdc564bed6156fbd8f06"
      ],
      "author": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Tue Nov 15 09:42:37 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 15 09:42:37 2011 -0800"
      },
      "message": "Merge \"Fix for issue  5309336 -add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.\" into ics-mr1"
    },
    {
      "commit": "bf677de46a039e07038511909576bfbf4406f7fd",
      "tree": "cb2243d4b75f084b01a65c6e9cf6c497683b2775",
      "parents": [
        "a4e3fe22762116b1bb6f40b354febf7bd2eec44d",
        "d9e688cab3015d858110fb8240cf7378c6befd82"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 14 18:28:59 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 14 18:28:59 2011 -0800"
      },
      "message": "Merge \"Clean up GenerationCache.\""
    },
    {
      "commit": "7eb531970305f938c8e3bdc564bed6156fbd8f06",
      "tree": "afc50650e68ed32d453950ec32eff0904e969945",
      "parents": [
        "88089ccc79ee7ba5f48ade9bb73a99cf05f6ec62"
      ],
      "author": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Thu Nov 10 14:54:26 2011 -0800"
      },
      "committer": {
        "name": "Hong Teng",
        "email": "hongteng@google.com",
        "time": "Mon Nov 14 13:02:59 2011 -0800"
      },
      "message": "Fix for issue  5309336\n-add videoeditor maximum prefetch YUV frames in media_profiles.xml to limit the total memory usage.\n\nChange-Id: I41ffbc192fcce4c7635e5b0a1f2835852e5ee509\n"
    },
    {
      "commit": "d8fa1ad4523b6c04cab663ff4b65181fc00594d9",
      "tree": "7ed37b59efdc59ea95e8966d0a528fdec69689ce",
      "parents": [
        "527c44e8a455dd0fdef1aeb6d7d8f99bb0839295",
        "738d8cae2239d194429676f2889cfae3c8f7ba08"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Nov 14 11:54:38 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 14 11:54:38 2011 -0800"
      },
      "message": "am 738d8cae: am c93a151f: Merge \"Define, document, and test the behavior of very large SurfaceTextures\" into ics-mr1\n\n* commit \u0027738d8cae2239d194429676f2889cfae3c8f7ba08\u0027:\n  Define, document, and test the behavior of very large SurfaceTextures\n"
    },
    {
      "commit": "d9e688cab3015d858110fb8240cf7378c6befd82",
      "tree": "806f5e09090a6cf467666009a165e5f63155ae2f",
      "parents": [
        "e3571f633a825738d785b587e91798a3d0876740"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 11 15:40:13 2011 -0800"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 11 22:14:07 2011 -0800"
      },
      "message": "Clean up GenerationCache.\n\nUse const references to keys and values where appropriate to avoid\ncopying them unnecessarily.\n\nDeleted some dead code.\n\nSimplified a few pieces that were doing unnecessary redundant work.\n\nChange-Id: Ib2145b7094a40db2d679e05dafe050fe1e87b846\n"
    },
    {
      "commit": "b89d88f531ee39927f8f554baaae5ecc9101ba9d",
      "tree": "c00601c0b328a2670e449a3afb296bd7ea30eadd",
      "parents": [
        "c51bb4d394dd47e48abc8a6d9cbc740f821546ff"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Nov 10 14:34:26 2011 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Nov 11 18:44:35 2011 -0800"
      },
      "message": "Define, document, and test the behavior of very large SurfaceTextures\n\nupdateTexImage() now throws a runtime exception when its native\ncounterpart fails\n\nBug: 5506633\n\nChange-Id: I151a6f685d465966e7df4df624412ab2da62e95f\n"
    },
    {
      "commit": "f4c3cc06cb5d748e804a81e693175e00ccf06051",
      "tree": "5aa63090d1fa4a267a49eb588d0329c63194c627",
      "parents": [
        "1333742bedc9b462024302f302e3a7f27053df66",
        "510180f162dee3ae5416a98caa07f58a754f4b3f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Nov 11 15:34:21 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 11 15:34:21 2011 +0000"
      },
      "message": "am 510180f1: am 08e42967: Merge \"Add support for retrieving location information in mp4/3gpp files\" into ics-mr1\n\n* commit \u0027510180f162dee3ae5416a98caa07f58a754f4b3f\u0027:\n  Add support for retrieving location information in mp4/3gpp files\n"
    },
    {
      "commit": "77c500c9a1f763b31fb5a03c803b3523fcb72310",
      "tree": "9feafc0d06b27223cd189b22d7bf7bc2c82c11ef",
      "parents": [
        "785fd3685a69e5b3ef9c0958dcf4ae85f818e78d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Nov 09 00:48:56 2011 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Nov 10 11:40:11 2011 -0800"
      },
      "message": "Add support for retrieving location information in mp4/3gpp files\n\nChange-Id: Ib8427704ef9ee5a4fa8fe1818c8a62d77b4ea687\nrelated-to-bug: 5560253\n"
    },
    {
      "commit": "ea427b0c87a52d5e770f50856401a81ff2658cc4",
      "tree": "9f4e0ec427bd0b9ca6c8a3575bd784fc78c9968a",
      "parents": [
        "e43a7c18ecf3de8df774362a9bc3e97d8469ac00",
        "26f70db99f483be36caa7a4c84fec5de50bec034"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 08 10:40:20 2011 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 08 10:40:20 2011 -0800"
      },
      "message": "resolved conflicts for merge of 26f70db9 to master\n\nChange-Id: Ib1536b1a4c9eeff80e0726b3e61cee12057cd120\n"
    },
    {
      "commit": "26f70db99f483be36caa7a4c84fec5de50bec034",
      "tree": "bb5e0c42bc4d564b8919a2c4fb302026a89582e6",
      "parents": [
        "99015a2464a40097c3e23e07cdf69da0f886aa66",
        "95be24585f46229f551c529104b5e92fa4316b38"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Nov 08 08:48:31 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 08 08:48:31 2011 -0800"
      },
      "message": "Merge \"Remove surface legacy APIs and code.\" into ics-mr1"
    },
    {
      "commit": "bd79a9c9f39482b3a9560d03cb045ec4e3b87486",
      "tree": "90d3ebbe31b26daa57c670ab884bbadc46a6f062",
      "parents": [
        "2abb2abea05fddd9ec2a1d6c831f1e62c37c7fa3",
        "88061d6b38cfb4bf374039846b753a3b21ac61e1"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Nov 07 15:51:31 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 07 15:51:31 2011 +0000"
      },
      "message": "am 88061d6b: am 5462bc63: Fix a leak in Parcel::writeBlob.\n\n* commit \u002788061d6b38cfb4bf374039846b753a3b21ac61e1\u0027:\n  Fix a leak in Parcel::writeBlob.\n"
    },
    {
      "commit": "88061d6b38cfb4bf374039846b753a3b21ac61e1",
      "tree": "0d4656659add969e8015e5019d85d2bf18d89940",
      "parents": [
        "2ccc47b89868d4f39683e0e2bd057ce95d7d1217",
        "5462bc6318b4b70e7a58c66994e2bd79f59d9739"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Sat Nov 05 02:35:57 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 05 02:35:57 2011 +0000"
      },
      "message": "am 5462bc63: Fix a leak in Parcel::writeBlob.\n\n* commit \u00275462bc6318b4b70e7a58c66994e2bd79f59d9739\u0027:\n  Fix a leak in Parcel::writeBlob.\n"
    },
    {
      "commit": "5462bc6318b4b70e7a58c66994e2bd79f59d9739",
      "tree": "4c5c4b7980974adb8c5fc11df32e1a523cd94306",
      "parents": [
        "348297abc0e03fb87a1d22465020b580d83fdd61"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 04 19:01:44 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Fri Nov 04 19:26:03 2011 -0700"
      },
      "message": "Fix a leak in Parcel::writeBlob.\n\nWas mistakenly assuming that Parcel::writeFileDescriptor took\nownership of the fd that was passed in.  It does not!\nAdded some comments and a default parameter to allow the caller\nto specify whether it wishes the Parcel to take ownership.\n\nBug: 5563374\nChange-Id: I5a12f51d582bf246ce90133cce7690bb9bca93f6\n"
    },
    {
      "commit": "94c10c4c8ba1c8e549324ad379a2f235897128ac",
      "tree": "867a7d5695cea739e5ca27b436c7732249864ed9",
      "parents": [
        "f55ce39224d1547cad33fed92382a1248760fd45",
        "236aea3579787961fdd41d87574760b63323c0c1"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 03 18:55:14 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 03 18:55:14 2011 +0000"
      },
      "message": "am 236aea35: Merge changes Ibc99cb1c,Ie1f4f6f8 into ics-mr1\n\n* commit \u0027236aea3579787961fdd41d87574760b63323c0c1\u0027:\n  BlobCache: implement cache serialization\n  BlobCache: remove the mutex locking\n"
    },
    {
      "commit": "236aea3579787961fdd41d87574760b63323c0c1",
      "tree": "d5dfbcbe10eb5e2d7e0535973c675a795e435cc2",
      "parents": [
        "3f9ce4c22ae9b4f0f2208c29f8c93d6ad652a1dc",
        "9d9768dbd7d8fe7af55fbd570dff9cf79a4d1807"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu Nov 03 11:51:23 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 03 11:51:23 2011 -0700"
      },
      "message": "Merge changes Ibc99cb1c,Ie1f4f6f8 into ics-mr1\n\n* changes:\n  BlobCache: implement cache serialization\n  BlobCache: remove the mutex locking\n"
    },
    {
      "commit": "25ba325ad3b358aa5af603e7745088916d7fd40f",
      "tree": "086ddaaf84c181826ec016965008f745c48f0a6a",
      "parents": [
        "219e2c782189fae0cca625a1a44a774affe11fb9",
        "11ba6da460572b9ce9cb9dc0d5a76b710e7efdb3"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Wed Nov 02 17:29:46 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 02 17:29:46 2011 +0000"
      },
      "message": "am 11ba6da4: am 4b6353ea: Merge \"Update camera continuous autofocus javadoc.\" into ics-mr0\n\n* commit \u002711ba6da460572b9ce9cb9dc0d5a76b710e7efdb3\u0027:\n  Update camera continuous autofocus javadoc.\n"
    },
    {
      "commit": "11ba6da460572b9ce9cb9dc0d5a76b710e7efdb3",
      "tree": "40faf71c301e1e374c1555b4a38e45d8716a940d",
      "parents": [
        "ff93e417a217703a635d8601b835853e07233afd",
        "4b6353ea0265bfed52d0637abd1b17596ce25ff0"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Tue Nov 01 04:05:45 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 01 04:05:45 2011 +0000"
      },
      "message": "am 4b6353ea: Merge \"Update camera continuous autofocus javadoc.\" into ics-mr0\n\n* commit \u00274b6353ea0265bfed52d0637abd1b17596ce25ff0\u0027:\n  Update camera continuous autofocus javadoc.\n"
    },
    {
      "commit": "4b6353ea0265bfed52d0637abd1b17596ce25ff0",
      "tree": "12db2c3540b8604641509a5597b231636bdcdfff",
      "parents": [
        "af675222f6340a8a9edbe9e8635014a18521e5e0",
        "0f4f97b70f6ad59b32e78720ba7357733bdef3e9"
      ],
      "author": {
        "name": "Chih-Chung Chang",
        "email": "chihchung@google.com",
        "time": "Mon Oct 31 21:04:01 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 31 21:04:01 2011 -0700"
      },
      "message": "Merge \"Update camera continuous autofocus javadoc.\" into ics-mr0"
    },
    {
      "commit": "9d9768dbd7d8fe7af55fbd570dff9cf79a4d1807",
      "tree": "8de623b36e6c49a695fe17760f2011dd4e42bb5c",
      "parents": [
        "94c1f148bb655a3dd3c2a2167476239b41305ff0"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Thu May 12 17:39:03 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Oct 31 18:49:32 2011 -0700"
      },
      "message": "BlobCache: implement cache serialization\n\nThis change adds serialization and deserialization functionality to\nBlobCache, conforming to the Flattenable interface.\n\nChange-Id: Ibc99cb1c3d015f363d57d0713eabccec07ff975e\n"
    },
    {
      "commit": "94c1f148bb655a3dd3c2a2167476239b41305ff0",
      "tree": "0a7bf345bb97a55b7cdcfa2c29d1493734027e92",
      "parents": [
        "62015f5d0d1104dfc682b3eb3b6c0be4f63b985a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Sun Oct 30 18:10:41 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Mon Oct 31 18:48:31 2011 -0700"
      },
      "message": "BlobCache: remove the mutex locking\n\nThis change removes the mutex from the BlobCache class.  The caller must\nbe responsible for thread synchronization in order to properly implement\nthe Flattenable interface, which is coming soon.  Otherwise would be the\npotential for the cache contents to change between the call to the\ngetFlattenedSize and flatten methods.  Because the caller must do this\nsynchronization anyway there\u0027s no reason to also some synchronization\ninside BlobCache.\n\nChange-Id: Ie1f4f6f82b78744f46a41ce863cac0cad276a20e\n"
    },
    {
      "commit": "95be24585f46229f551c529104b5e92fa4316b38",
      "tree": "657706c23c41575c0a6bb092d2b7f42d3e67ea3b",
      "parents": [
        "27ed12492dfbec6ec67b66ff3cf60febce370b01"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Oct 25 13:45:00 2011 -0700"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Oct 28 09:39:23 2011 -0700"
      },
      "message": "Remove surface legacy APIs and code.\n\nAll surfaces are now supported through surface textures.\n\nChange-Id: I95dd823e7099c0c32a48a1121624149dcc29d9c6\n"
    },
    {
      "commit": "e396e993a55b93d2d69c78b21a5d4ce0b8c37805",
      "tree": "856976054085a060732b9fa243df3156429cf03f",
      "parents": [
        "258f52fed38849d9150ff8ec6b5972f716a07939",
        "fc9592f8a5f2f75207e5e532655ac294eb2b334b"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Oct 28 02:53:20 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 28 02:53:20 2011 +0000"
      },
      "message": "am fc9592f8: am 08479cee: Merge \"Stagefright: ANW::connect in MediaPlayerService\" into ics-mr0\n\n* commit \u0027fc9592f8a5f2f75207e5e532655ac294eb2b334b\u0027:\n  Stagefright: ANW::connect in MediaPlayerService\n"
    },
    {
      "commit": "fc9592f8a5f2f75207e5e532655ac294eb2b334b",
      "tree": "b9067a99e0d90eff2f54c9d2cc2150c0036c734b",
      "parents": [
        "859bf0f2efb7b5518055893c17aa3a6437023633",
        "08479ceeba56c460fb52f60a24df27776f1936c3"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Fri Oct 28 02:14:01 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 28 02:14:01 2011 +0000"
      },
      "message": "am 08479cee: Merge \"Stagefright: ANW::connect in MediaPlayerService\" into ics-mr0\n\n* commit \u002708479ceeba56c460fb52f60a24df27776f1936c3\u0027:\n  Stagefright: ANW::connect in MediaPlayerService\n"
    },
    {
      "commit": "0f4f97b70f6ad59b32e78720ba7357733bdef3e9",
      "tree": "e5c7ce8445d6c74dc463530f5bf4070ee1ad3e69",
      "parents": [
        "763480fbcabedfc2f425484ed74bc1e2e1392176"
      ],
      "author": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Thu Oct 27 18:07:01 2011 +0800"
      },
      "committer": {
        "name": "Wu-cheng Li",
        "email": "wuchengli@google.com",
        "time": "Fri Oct 28 00:38:02 2011 +0800"
      },
      "message": "Update camera continuous autofocus javadoc.\n\nSuppose applications call autoFocus in CAF picture mode. If\nCAF is in the middle of scanning, the picture is very likely to\nbe blurry. Change focus callback to return when the scanning\nfinishes.\n\nbug:5514415\nChange-Id: Ibcb8f92a5263d7dbd7cce54df3617fb21c6255d4\n"
    },
    {
      "commit": "2fa0ac2e44f553e29b0d83a5dd87f7dda5422811",
      "tree": "557bc34832113716b320acc208ecdd584d83b793",
      "parents": [
        "ed12460301cf0e04ac61993aaf1142f75f504814"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 26 18:36:31 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 26 18:40:00 2011 -0700"
      },
      "message": "Stagefright: ANW::connect in MediaPlayerService\n\nThis change moves the ANativeWindow connect and disconnect logic from\nMediaPlayer to MediaPlayerService::Client.\n\nBug: 5502654\nChange-Id: Ifc43b98b01ad8f35d62d7ece43110724ec7fda3d\n"
    },
    {
      "commit": "8b5c6efdbc605cd0d24495f5e46e71cec990c79d",
      "tree": "14e2b0bb2cd751db3a44e99eac3dadfde0e0897c",
      "parents": [
        "cbb7bdff0ad8c334e23d788ca2495fa0a9beb59f",
        "5ded5fc55f2da2af0a76a9ddc52d27948b227037"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 26 20:39:25 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 26 20:39:25 2011 +0000"
      },
      "message": "am 5ded5fc5: am b7b4eaaa: Merge \"Stagefright: push blank buffers when tearing down\" into ics-mr0\n\n* commit \u00275ded5fc55f2da2af0a76a9ddc52d27948b227037\u0027:\n  Stagefright: push blank buffers when tearing down\n"
    },
    {
      "commit": "5ded5fc55f2da2af0a76a9ddc52d27948b227037",
      "tree": "56d574dfaee8cd32f7f732a90e247f5cedafc1f5",
      "parents": [
        "6f444425fe1bb62e12973c5df6a3161bc2aa2ce7",
        "b7b4eaaa05284634d50d581d924a250f1194f66d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Oct 26 20:34:38 2011 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 26 20:34:38 2011 +0000"
      },
      "message": "am b7b4eaaa: Merge \"Stagefright: push blank buffers when tearing down\" into ics-mr0\n\n* commit \u0027b7b4eaaa05284634d50d581d924a250f1194f66d\u0027:\n  Stagefright: push blank buffers when tearing down\n"
    },
    {
      "commit": "0cbdec51d1c3f2fb214f818df623825f8f44cde0",
      "tree": "492940150e366dca0cf6247e72316d0e0a0e7faa",
      "parents": [
        "50035539f02cd8d34b02c087596fbf82b042c1ef",
        "12cdf5116c312b8fb4f96bd8ea64134ce06e899d"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Oct 26 12:51:44 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 26 12:51:44 2011 -0700"
      },
      "message": "Merge \"Rename SensorChannel to BitTube\""
    },
    {
      "commit": "c0e4293794e9658da1ce9849a42c66ce19ef5f07",
      "tree": "b898e7f88b43b44cbac4f673471015c676b8d08b",
      "parents": [
        "be25d5b05639c8475b7faf312959923db86efa5d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Oct 25 14:50:16 2011 -0700"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Oct 25 18:35:02 2011 -0700"
      },
      "message": "Stagefright: push blank buffers when tearing down\n\nThis change makes OMXCodec push RGB 565 buffers filled with black to an\nANativeWindow when tearing down after decoding to protected gralloc\nbuffers.  This allows the OMX tear down to zero out any protected\nbuffers that were used without the possibility that the buffer is still\nbeing used by SurfaceFlinger or HWComposer.\n\nBug: 5483222\nChange-Id: I8acedd81a7bb67dfdc2fd15733e3375b6ce8d560\n"
    },
    {
      "commit": "28d9f024e043817212b15f04128d0464330502ea",
      "tree": "7e2c86394b95b0eae87810cca3cfa1b2dd98ef5e",
      "parents": [
        "2536b1d627c0296531a91dc519ee8d84ed505291"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Oct 12 17:27:03 2011 +0100"
      },
      "committer": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Oct 25 16:28:24 2011 +0100"
      },
      "message": "Rename (IF_)LOG() to (IF_)ALOG()  DO NOT MERGE\n\nSee https://android-git.corp.google.com/g/#/c/141576\n\nBug: 5449033\nChange-Id: I42575e7c29cf1c0f465c357a5c97ab118df6f473\n"
    }
  ],
  "next": "044966aef3c9b58e798d624138ae21c85967ecb9"
}
