)]}'
{
  "log": [
    {
      "commit": "43089daaf82bd2b8e5f9a29b80af5abaae4657b3",
      "tree": "f02db6abff1cd9d35151468dee35fc0b741e80d3",
      "parents": [
        "5ec58d925520e6913fba3fc54413881af751c610"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 09 11:53:57 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 09 15:02:08 2012 -0800"
      },
      "message": "Finish up B frame support in MPEG4Writer\n\no optimize to reduce the size of the size of the ctts box\no change the type for the time offset field in ctts table entry from int32_t to uint32_t according to the mp4 file spec\no also moved away from MediaDebug and used ADebug instead.\n\no related-to-bug: 4232183\n\nChange-Id: I19364303728da64359c63169eec7487508c1d0f8\n"
    },
    {
      "commit": "5ec58d925520e6913fba3fc54413881af751c610",
      "tree": "d833f4cf3772a3f3b8a68d2cc1060ed58840b82f",
      "parents": [
        "7ae4a2c130ec2cb5dec69d095b810698acc543b3"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 09 09:55:45 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Feb 09 14:32:08 2012 -0800"
      },
      "message": "Experiment with seeking to closest frame instead of closest syncframe\n\nAlso supports SEEK_CLOSEST mode in the Matroska/Webm extractor.\n\nChange-Id: I257771648dfe41392a4cf8932f625489dcb9f234\n"
    },
    {
      "commit": "7ae4a2c130ec2cb5dec69d095b810698acc543b3",
      "tree": "40ab500ed6b99d4662be5abee1a8fe98f2d58902",
      "parents": [
        "98ec94c5854daccc3474758524e7f4adfe535ce0",
        "000e18370baae60ffd9f25b509501dd8c26deabf"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 08 10:42:35 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 08 10:42:35 2012 -0800"
      },
      "message": "Merge \"Enable B frame support in MPEG4Writer\""
    },
    {
      "commit": "72ef00de10fa95bfcb948ed88ab9b7a177ed0b48",
      "tree": "beeaffd33a57a6cc5fa48f2fa905fc680c4746d1",
      "parents": [
        "dbfafaffe2e97eaf8d74ec6b6c468418a1ad2443"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 11:09:42 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 08 10:06:32 2012 -0800"
      },
      "message": "Use audio_io_handle_t consistently instead of int\n\nOther:\n - add a comment to nextUniqueId\n - made ThreadBase::mId const, since it is only assigned in constructor.\n\nChange-Id: I4e8b7bec4e45badcde6274d574b8a9aabd046837\n"
    },
    {
      "commit": "5e92a7861196ddae14638d4b7a63fc4892b7ef59",
      "tree": "6772b944a26acb22381a2eb38871b46cff9d856a",
      "parents": [
        "0a20fa9c41c96e31fa20e071074a4b6e7f6c41c3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 30 07:40:52 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 08 09:21:39 2012 -0800"
      },
      "message": "Effect UUID inputs passed by pointer are const\n\nChange-Id: I1f5c338bcb7368e3dd8cd5f804b2e6d9fbe087f8\n"
    },
    {
      "commit": "4f9b0c54011eb8fd2ccfb393c2dcd51cd07800e0",
      "tree": "318b28bb04ce0b4ce39f75f6a8dbac27cee1455c",
      "parents": [
        "86feafe15b3f9609e1e9f64184688c2b6f2e4834",
        "0e265cf36d201a7ccc0238b5c60b50f43d1dc450"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 08 08:34:33 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 08 08:34:33 2012 -0800"
      },
      "message": "Merge \"Remove dead mutex in AudioTrack/AudioRecord thread\""
    },
    {
      "commit": "f22147e5d2982e0c461f7ce8058c2d596d518bd4",
      "tree": "a0358efa5118e6a644c735b44c2378161ae0a8c6",
      "parents": [
        "1579d7948117e3e6541b0cfda02cc5234a3280ea",
        "a5224f319e2ba4b51ddb4287705ccf8d4b8ecc51"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 08 07:42:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 08 07:42:40 2012 -0800"
      },
      "message": "Merge \"AudioTrack declare more methods const\""
    },
    {
      "commit": "e98bbd36d67243fe987b09904956550a68af1cc7",
      "tree": "3ad396f50bb4ad8e1bbf9fa939c4978851ec998b",
      "parents": [
        "dfa75555098a385ac8f4d29a73b32d66501f133d",
        "f587ba5b991c7cd91e4df093d0d796bd419e5d67"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 08 07:39:27 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 08 07:39:27 2012 -0800"
      },
      "message": "Merge \"Declare more IAudioFlinger methods const\""
    },
    {
      "commit": "000e18370baae60ffd9f25b509501dd8c26deabf",
      "tree": "e447e9ceb46428f5f961534c38cef023e7206b3d",
      "parents": [
        "60c2b4ece6528d6d3f4e9e2c7e45772b65c4b87d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 06 23:46:37 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Feb 07 18:32:29 2012 -0800"
      },
      "message": "Enable B frame support in MPEG4Writer\n\nThis patch allows us to automatically detect whether ctts box is needed in MPEG4Writer.\nMPEG4Writer uses ctts version 0 (non-negative offset value) store the composition time\noffset on a needed basis.\n\nCurrently, the size of the ctts box is not optimized. Optimization will be addressed\nin a subsequent patch.\n\no also changed the private method retrieveDecodingTime(bool) in OMXCodec\n  to getDecodingTime()\n\no related-to-bug: 4232183\n\nChange-Id: Ic6dc7b25ecd258c2506ca4b9c25156e922456e51\n"
    },
    {
      "commit": "f83463148fbe344989ee1da07d15b94c38a61582",
      "tree": "9c1f35749defb3acf0217182e4155ba351def261",
      "parents": [
        "60c2b4ece6528d6d3f4e9e2c7e45772b65c4b87d",
        "132e88ee86e4f11d1b649c336cd2d6eb5980c3fc"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 07 10:43:08 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 07 10:43:08 2012 -0800"
      },
      "message": "Merge \"MatroskaExtractor: to support MPEG4 and MP3 codec.\""
    },
    {
      "commit": "60c2b4ece6528d6d3f4e9e2c7e45772b65c4b87d",
      "tree": "3df99c3e31172c3ffcb9361a46b68890891f5a0b",
      "parents": [
        "f9289a4ca88d8f72cb0d6b3ca16fbc44ef4a2aeb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Feb 04 06:19:50 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Feb 06 12:17:44 2012 -0800"
      },
      "message": "Don\u0027t call virtual function in destructor of SurfaceMediaSource\n\nChange-Id: I3cbc2b1222335b61c814b5cdcfaefa495148b0ec\n"
    },
    {
      "commit": "f9289a4ca88d8f72cb0d6b3ca16fbc44ef4a2aeb",
      "tree": "72b693683dfd6405f6f8f70cdfde38b4b563c4c6",
      "parents": [
        "f3623993b78669a624d9b3a703b361ed6c035ad9",
        "b44c9d2bdc0d5b9cb03254022a58e017b516e9e6"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Feb 04 05:54:53 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Feb 04 05:54:54 2012 -0800"
      },
      "message": "Merge \"Don\u0027t call virtual functions in the destructor for audio and camera source classes\""
    },
    {
      "commit": "a5224f319e2ba4b51ddb4287705ccf8d4b8ecc51",
      "tree": "eb36f63045d044c840072ad95398d49b743cd6bd",
      "parents": [
        "787bae0578fbaab6219ebf23494866b224d01438"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 04 12:41:44 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 15:48:25 2012 -0800"
      },
      "message": "AudioTrack declare more methods const\n\nChange-Id: I4999e984460893961d0d8092cff17f3cf07d7214\n"
    },
    {
      "commit": "f587ba5b991c7cd91e4df093d0d796bd419e5d67",
      "tree": "0fe274cdfa6dcae81617725b5ea376c86245b104",
      "parents": [
        "787bae0578fbaab6219ebf23494866b224d01438"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 26 16:25:10 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 15:40:56 2012 -0800"
      },
      "message": "Declare more IAudioFlinger methods const\n\nThis is just documentation, as C++ method const-ness doesn\u0027t mean anything\nfor a binder API.  Instead, here const means \"no side effects\".\n\nChange-Id: Iaa9cd2fe477db10ae9a40cac4f79f0faa9b4e5e6\n"
    },
    {
      "commit": "f3623993b78669a624d9b3a703b361ed6c035ad9",
      "tree": "a32c965376cfb2dfbb826a357907f3780a86711f",
      "parents": [
        "aad5bdff98ac5bc9be4288b5acf445465750711e",
        "8bcc65c753085fe3328592cceda0cf0e8f8b0a45"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 03 15:37:40 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 15:37:40 2012 -0800"
      },
      "message": "Merge \"Don\u0027t call virtual functions in destructors for the writer classes\""
    },
    {
      "commit": "aad5bdff98ac5bc9be4288b5acf445465750711e",
      "tree": "100f6bd4818912764f1e82820ac0a14d38a2c96f",
      "parents": [
        "787bae0578fbaab6219ebf23494866b224d01438",
        "c71f6e2392bf55cc85ee7c1a376441e9b9aae4c8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 03 11:29:59 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 11:29:59 2012 -0800"
      },
      "message": "Merge \"Keep AACEncoder around for a bit longer to have more time fix issues related to video editor engine\""
    },
    {
      "commit": "c71f6e2392bf55cc85ee7c1a376441e9b9aae4c8",
      "tree": "276014eca0b627f7500e404940c3a08ce49e0e73",
      "parents": [
        "d45ee9d9d61af0791c7c3c51f8d4fe6794ef02a5"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 03 11:03:56 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Feb 03 11:20:03 2012 -0800"
      },
      "message": "Keep AACEncoder around for a bit longer to have more time fix issues related to video editor engine\n\no this should be reverted after the problem is fixed.\no related-to-bug: 5947347\n\nChange-Id: Iaec4b59d2c99c975e83f0588a813e9a4bfcb7ee2\n"
    },
    {
      "commit": "787bae0578fbaab6219ebf23494866b224d01438",
      "tree": "935422276579d6f7c3b4e835e1a79bc9082a2b26",
      "parents": [
        "ff3c83e04ae459c4252b86dd4440b4e37ee92c16",
        "de9719b3ec71472e6bf75117152176af51d1a515"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 08:31:01 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 08:31:01 2012 -0800"
      },
      "message": "Merge \"Use audio_in_acoustics_t consistently\""
    },
    {
      "commit": "ff3c83e04ae459c4252b86dd4440b4e37ee92c16",
      "tree": "8de4de832991dd2086313b6168f8523d002f6251",
      "parents": [
        "a0d68338a88c2ddb4502f95017b546d603ef1ec7",
        "3d2f877c1cb4e4ae4ddde7f57f4353de9341f11b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 08:00:52 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 08:00:52 2012 -0800"
      },
      "message": "Merge \"Use ToneGenerator::tone_type consistently\""
    },
    {
      "commit": "a0d68338a88c2ddb4502f95017b546d603ef1ec7",
      "tree": "f052125f4720fde00179d41d4ee04e02934052e4",
      "parents": [
        "87f155d6655b2d3b27e69281a29e85c6407e4d26"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 16:47:15 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 07:57:01 2012 -0800"
      },
      "message": "Use NULL not 0 for raw pointers\n\nUse if (p !\u003d NULL) instead of if (ptr)\n\nChange-Id: Iaec3413a59ccbf233c98fcd918cc7d70ac5da9fa\n"
    },
    {
      "commit": "62da7fbd60bee2dd57f503126266e9f04311d400",
      "tree": "22c9118701f42b77ed573001779390437d96872c",
      "parents": [
        "d45ee9d9d61af0791c7c3c51f8d4fe6794ef02a5",
        "83d86538c4c479a9225c75ab27938e8f05abb9c8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 03 07:18:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 03 07:18:06 2012 -0800"
      },
      "message": "Merge \"Make AudioTrack control block volume field private\""
    },
    {
      "commit": "b44c9d2bdc0d5b9cb03254022a58e017b516e9e6",
      "tree": "06a30f5984b5fd11da06bbc6bc7d8294f21d1ac2",
      "parents": [
        "2af955b7437ac5345d75a5e528ebbb749667af7e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 18:04:02 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 18:11:53 2012 -0800"
      },
      "message": "Don\u0027t call virtual functions in the destructor for audio and camera source classes\n\nChange-Id: Ia74ffc1c0cbd7971697f5e3c476e340ec5c7727a\n"
    },
    {
      "commit": "8bcc65c753085fe3328592cceda0cf0e8f8b0a45",
      "tree": "f7f9cff24dbf50e02f135b65bc1041e534c39d9c",
      "parents": [
        "2af955b7437ac5345d75a5e528ebbb749667af7e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 15:07:52 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 15:13:56 2012 -0800"
      },
      "message": "Don\u0027t call virtual functions in destructors for the writer classes\n\nHave not found any concrete bugs related to these calls yet, but we should avoid\ncalling virtual functions in destructors, regardless.\n\nChange-Id: I2d47b79d3fb2d29f418619bee83aa147d232a5d4\n"
    },
    {
      "commit": "914b33354be650a5213dd545ace49c6e81828043",
      "tree": "1a42885010a5da3815df7aee2389ecfee9fe6753",
      "parents": [
        "1fb41b40037b4cad585cbd4e08c58b66c61afed7",
        "928170837b9dec2b90f7a01b85182a8b00b45972"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 13:30:49 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 13:30:51 2012 -0800"
      },
      "message": "Merge \"Removed a loop for buffer lookup\""
    },
    {
      "commit": "457d4c01ec0e922771ef57158431f48e4d267905",
      "tree": "b0218b14a0b83343e151f2e5e3ec637210547abc",
      "parents": [
        "e336de43a7cf186fe9d5070f5badfad6e302d9e3",
        "211eeaf17e5565b68447d29799dbf158a33cf4cf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 02 13:26:12 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 13:26:12 2012 -0800"
      },
      "message": "Merge \"More audio_stream_type_t\""
    },
    {
      "commit": "0e265cf36d201a7ccc0238b5c60b50f43d1dc450",
      "tree": "395a2c8f3685c1d1140f3ad12d2dff884d7db6ad",
      "parents": [
        "bf6954598193147cac980b8b5d7ad5215f1dec16"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 02 10:52:34 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 02 11:23:30 2012 -0800"
      },
      "message": "Remove dead mutex in AudioTrack/AudioRecord thread\n\nThe client callback threads had mutexes called AudioTrackThread::mLock\nand ClientRecordThread::mLock.  These mutexes were only used by start()\nand stop(), and were unused by the thread itself.  But start() and\nstop() already have their own protection provided by AudioTrack::mLock\nand AudioRecord::mLock.  So the thread mutexes can be removed.\n\nChange-Id: I098406d381645d77fba06a15511e179a327848ef\n"
    },
    {
      "commit": "928170837b9dec2b90f7a01b85182a8b00b45972",
      "tree": "9b12a61e0043eb9673ca3d2968135e5dcb65d103",
      "parents": [
        "bb62819aa34b0e89090ccc50e5915e25bc137583"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 01 19:28:54 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Feb 02 10:24:25 2012 -0800"
      },
      "message": "Removed a loop for buffer lookup\n\no used the nInputPortIndex and nOutputPortIndex from header instead\n  of assuming that the # of ports \u003d\u003d 2\n\nChange-Id: I4b615912b088b4e2bac9c00e89986e811a5c58bb\n"
    },
    {
      "commit": "e336de43a7cf186fe9d5070f5badfad6e302d9e3",
      "tree": "231b23aa55532cd05bef6e0ce9648471e0285a69",
      "parents": [
        "bf6954598193147cac980b8b5d7ad5215f1dec16",
        "5387696d25bc710f8cd0e6d08079e2aa8d6c1417"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 02 09:39:28 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 02 09:39:28 2012 -0800"
      },
      "message": "Merge \"modifications for new webrtc modules\""
    },
    {
      "commit": "bf6954598193147cac980b8b5d7ad5215f1dec16",
      "tree": "ce13d6787dda7611c607ff6c8215c6a35a96c159",
      "parents": [
        "83f70f4472e9b0cacc5d372eddfcef4b02662d10",
        "4e260ab948787c2a814543077832847deae890fd"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 01 18:53:50 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 01 18:53:50 2012 -0800"
      },
      "message": "Merge \"Remove the restriction that the width must be a multiple of 4 or 2 for thumbnail generation\""
    },
    {
      "commit": "4e260ab948787c2a814543077832847deae890fd",
      "tree": "fe76a9e4ebc7cf4e6ae681b57594a417dbdc656f",
      "parents": [
        "2af955b7437ac5345d75a5e528ebbb749667af7e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 01 13:33:33 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Feb 01 13:37:36 2012 -0800"
      },
      "message": "Remove the restriction that the width must be a multiple of 4 or 2 for thumbnail generation\n\no simply applying the change in commit a161af9d1e2baa3f23e32634ef7dd9b4bbce9a6c to other formats\no related-to-bug: 5947196\n\nChange-Id: I95de10263b8ad9ec941f1d6b907fca6aeff0a90f\n"
    },
    {
      "commit": "83f70f4472e9b0cacc5d372eddfcef4b02662d10",
      "tree": "a6756b7f6de5233c37b9a244a129c79fd13464a1",
      "parents": [
        "252353088a5ebf8508fbc01439ff417805ef1417"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 01 11:47:54 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 01 12:16:40 2012 -0800"
      },
      "message": "The AMR WB software encoder is now an OMX component.\n\nChange-Id: Iebfb2696783a0163369ba4e8ef72e19ee76ad893\n"
    },
    {
      "commit": "5387696d25bc710f8cd0e6d08079e2aa8d6c1417",
      "tree": "32b5c99149c72f0a7ef23dc17d0ddbb4d810eef4",
      "parents": [
        "bb62819aa34b0e89090ccc50e5915e25bc137583"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 31 12:35:20 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 01 10:59:17 2012 -0800"
      },
      "message": "modifications for new webrtc modules\n\nAdapt include files path in makefile and source to new\ndirectory structure in webrtc library.\n\nAlso changed the default AGC parameters to less extreme settings.\n\nChange-Id: Ia6a41c816dc44645f8f867937b722eede88c06ea\n"
    },
    {
      "commit": "252353088a5ebf8508fbc01439ff417805ef1417",
      "tree": "6abbd71af66f1d24791e5151aa41649f9b649b44",
      "parents": [
        "2af955b7437ac5345d75a5e528ebbb749667af7e"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 31 14:34:59 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Feb 01 10:39:26 2012 -0800"
      },
      "message": "The software AMR NB encoder is now an OMX component.\n\nChange-Id: I890eab052a7c36409b8b694c964884e28dd8d8fc\n"
    },
    {
      "commit": "2af955b7437ac5345d75a5e528ebbb749667af7e",
      "tree": "a179f97b8985e4b7e485b3aa42d725a8de5f7673",
      "parents": [
        "10a5a34b0a8ba44343d0c7e0d3f261af49b5cf4c",
        "8a0f85fec2e28a97ba8fdda89c2a9b957098c114"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 31 17:36:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 17:36:37 2012 -0800"
      },
      "message": "Merge \"add tests module tag to omx_tests\""
    },
    {
      "commit": "8a0f85fec2e28a97ba8fdda89c2a9b957098c114",
      "tree": "c677dab5c2a22ef25758dd412ea3e8c556663e65",
      "parents": [
        "bb62819aa34b0e89090ccc50e5915e25bc137583"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 31 12:24:17 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 31 12:27:10 2012 -0800"
      },
      "message": "add tests module tag to omx_tests\n\nChange-Id: I5dcb5187f09a7ae980ac5857b7ade81001d459f8\n"
    },
    {
      "commit": "10a5a34b0a8ba44343d0c7e0d3f261af49b5cf4c",
      "tree": "92e700a77e45cca2a63ca4b78275a2207854b914",
      "parents": [
        "d459b485c61bd3e7fd81c5cd3af8ada27fc3e8d3",
        "6655174826330afe66ef766258181ae8c11f3f6c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jan 31 12:06:43 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 12:06:43 2012 -0800"
      },
      "message": "Merge \"First step of refactoring \u0027timedtext\u0027 code.\""
    },
    {
      "commit": "d459b485c61bd3e7fd81c5cd3af8ada27fc3e8d3",
      "tree": "394810d0fda09babebb89e1eff80ec54509c5a14",
      "parents": [
        "bb62819aa34b0e89090ccc50e5915e25bc137583"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 31 11:16:24 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Jan 31 11:16:24 2012 -0800"
      },
      "message": "Slighly improve the API to discover if the OMX stack is running in the local\n\nprocess.\n\nChange-Id: Idd3c2f0d4a9542af01a3fdfd3b0bfab90e083505\n"
    },
    {
      "commit": "6655174826330afe66ef766258181ae8c11f3f6c",
      "tree": "5a2e4d563aede4d242cbe2b48e07e00ea6221cde",
      "parents": [
        "e59542680aa0e83cacbc471fbd3945b0509a849c"
      ],
      "author": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Wed Jan 11 22:03:12 2012 +0900"
      },
      "committer": {
        "name": "Insun Kang",
        "email": "insun@google.com",
        "time": "Tue Jan 31 14:44:32 2012 +0900"
      },
      "message": "First step of refactoring \u0027timedtext\u0027 code.\n\nGoal\n1. Removed dependency of TimedTextPlayer on AwsomePlayer.\n2. Generalized TimedTextParser to TimedTextSource and its subclasses.\n\nSummary\n1. Introduced TimedTextDriver, TimedTextPlayer (new implementation),\nTimedTextSource (and its subclasses).\n2. Removed TimedTextParser.\n\nRemaining TODOs\n1. Revise VideoVidew, Gallery3D app, AwesomePlayer to check if\n\u0027pause\u0027 and \u0027resume\u0027 works well.\n2. Consider revising MediaPlayer APIs such as setParameter() -\u003e\naddTextSource(). Need more thoughts.\n\nChange-Id: Ie0c4f15b9690102de755cef6940f8c31ccf78e27\n"
    },
    {
      "commit": "530f752a8191ccc6bde82fb2012aa3cd032257c0",
      "tree": "17261fdb4651dda30761b94ef24045a522f75ee1",
      "parents": [
        "e9c52da6fdb755ed832325c2fe4fe5b3bc4c9eed"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 30 16:45:28 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 30 16:45:28 2012 -0800"
      },
      "message": "Make sure our aac decoder handles this parameter.\n\nChange-Id: I212ef0c21776b99d0c6662b118ca0ec16b1d3d5e\n"
    },
    {
      "commit": "e9c52da6fdb755ed832325c2fe4fe5b3bc4c9eed",
      "tree": "1f700612e12023ffbd774406f064d5da9c2ca8e2",
      "parents": [
        "fd267d7cf640225bb57f0ed1af44efc153275f6d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 30 11:48:02 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Mon Jan 30 11:48:02 2012 -0800"
      },
      "message": "Instantiate software codecs locally whenever possible.\n\nChange-Id: I58d5c30b9de9873a239e91955a8900e2c72518a7\n"
    },
    {
      "commit": "211eeaf17e5565b68447d29799dbf158a33cf4cf",
      "tree": "5b309757ae12403d5edd39f7e7d99cc3b405766c",
      "parents": [
        "fd267d7cf640225bb57f0ed1af44efc153275f6d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 09:37:45 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 16:33:43 2012 -0800"
      },
      "message": "More audio_stream_type_t\n\nChange-Id: I1260259efe0aa3fc1ef13de69758aaa592e1f815\n"
    },
    {
      "commit": "3d2f877c1cb4e4ae4ddde7f57f4353de9341f11b",
      "tree": "02ba1339028105733ff3897c5c72952781dc793d",
      "parents": [
        "a3a2cd4072aaa2d93c91251a786eb7323f8d2c27"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 15:25:25 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 16:01:44 2012 -0800"
      },
      "message": "Use ToneGenerator::tone_type consistently\n\nAlso remove defaults in startToneCommand(), they\u0027re not needed and the\ndefault for tone type was nonsense.\n\nChange-Id: I70fa8cee4f3dbb8c66ceb3719c8d3d2f447f05b9\n"
    },
    {
      "commit": "de9719b3ec71472e6bf75117152176af51d1a515",
      "tree": "d745196f8aa6832a18e380d78ad1bd1eae1e9e8f",
      "parents": [
        "a3a2cd4072aaa2d93c91251a786eb7323f8d2c27"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 12:32:34 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 13:31:54 2012 -0800"
      },
      "message": "Use audio_in_acoustics_t consistently\n\nChange-Id: I0a9dd668fb2e57b1c3ece3190588194974b99062\n"
    },
    {
      "commit": "fd267d7cf640225bb57f0ed1af44efc153275f6d",
      "tree": "c97f1923f3cf143a7a8cd94184335283100c6437",
      "parents": [
        "a3a2cd4072aaa2d93c91251a786eb7323f8d2c27",
        "eba51fb3a361f67a6a64d5a16eba6084fe27d60e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 27 09:06:00 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 27 09:06:00 2012 -0800"
      },
      "message": "Merge \"Use audio_source_t consistently\""
    },
    {
      "commit": "eba51fb3a361f67a6a64d5a16eba6084fe27d60e",
      "tree": "2d3dc41818d33d596e66486dcf509086b9dde1e0",
      "parents": [
        "80a0d2de0a7db5cdcaf40fe33b14523b65d19423"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 23 13:58:49 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 26 16:50:19 2012 -0800"
      },
      "message": "Use audio_source_t consistently\n\nWas a mix of audio_source_t, uint8_t, and int.\n\nRelated fixes:\n - fix comments in MediaRecorder.java\n - AudioPolicyService server side was not checking source parameter at\n   all, so if the client wrapper was bypassed, invalid values could be\n   passed into audio HAL\n - JNI android_media_AudioRecord_setup was checking source for positive\n   values, but not negative values. This test is redundant, since already\n   checked at Java and now checked by AudioPolicyService also, but might\n   as well make it correct.\n\nChange-Id: Ie5e25d646dcd59a86d7985aa46cfcb4a1ba64a4a\n"
    },
    {
      "commit": "710272b2da6b32c050770378db74f8197e8b8dc6",
      "tree": "90d8cd2881a75e25423eb015223273f31e2d1512",
      "parents": [
        "2857b47a2731579772c76d46285660972c0ba23d",
        "2b1892db4a2ab47bfc09e59a4c11751aea99e4ea"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 26 16:00:38 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 26 16:00:38 2012 -0800"
      },
      "message": "Merge \"The software AAC encoder is now an OMX component.\""
    },
    {
      "commit": "2b1892db4a2ab47bfc09e59a4c11751aea99e4ea",
      "tree": "7880f7f60262ced7a16fa7439ac0827b78c07d8d",
      "parents": [
        "244ffc8b98c8b59cf64ef3d368c3373014a2f230"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 26 14:39:50 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 26 15:45:38 2012 -0800"
      },
      "message": "The software AAC encoder is now an OMX component.\n\nYay.\n\nChange-Id: I74938a20b4e0a622836ea5184d3761180eb0f5de\n"
    },
    {
      "commit": "2857b47a2731579772c76d46285660972c0ba23d",
      "tree": "ae1d5eced0947671a1ce2d0e55c70f225a10ec0b",
      "parents": [
        "244ffc8b98c8b59cf64ef3d368c3373014a2f230"
      ],
      "author": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Wed Jan 25 13:42:42 2012 -0800"
      },
      "committer": {
        "name": "Ben Cheng",
        "email": "bccheng@google.com",
        "time": "Thu Jan 26 10:34:52 2012 -0800"
      },
      "message": "Preserve NEON callee-save registers d8-d15.\n\nBUG:5918479\nChange-Id: I574bd5845d9e7e007c637aabbf170d03217d10ad\n"
    },
    {
      "commit": "244ffc8b98c8b59cf64ef3d368c3373014a2f230",
      "tree": "3e6d7b37be4c6d88bae65f86bbc0452fc2b567e3",
      "parents": [
        "2d96e2965b3118c4e3cb21a76c9f07e0c8ccfc6e",
        "11484788dd0c2ec9fce29c523a7748de34fb9b8a"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jan 25 10:33:42 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 25 10:33:42 2012 -0800"
      },
      "message": "am 95306d85: am 64085d03: am 12045502: Merge \"stagefright aacenc: Fix type definitions for 64 bit platforms\"\n\n* commit \u002795306d85005f165e10a25ad45cadadec6e1f6a31\u0027:\n  stagefright aacenc: Fix type definitions for 64 bit platforms\n"
    },
    {
      "commit": "395584e473cc096c84d6657d07380d65dd711e14",
      "tree": "8f9fbe49ae5228b83f80239e8dcb8d773b78175b",
      "parents": [
        "fa521a76c4fc14b01b46930cd0d04856d57fdcc1",
        "013b73bfc4d5fb21082ccccf45fa08c18f86aa08"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jan 25 10:27:41 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 25 10:27:41 2012 -0800"
      },
      "message": "am 12045502: Merge \"stagefright aacenc: Fix type definitions for 64 bit platforms\"\n\n* commit \u002712045502c49bfee40d7d3cb806d9b70d3b5d3ed3\u0027:\n  stagefright aacenc: Fix type definitions for 64 bit platforms\n"
    },
    {
      "commit": "013b73bfc4d5fb21082ccccf45fa08c18f86aa08",
      "tree": "d1f5ef6a098384c3ce2ed502c9b0e8db8572bf1d",
      "parents": [
        "ceec4ae3ba8c3c3d5e243647ad7ee2fc39c71c9c",
        "2db3b238966f5f326010321b698fa938d65b8e8a"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jan 25 09:17:45 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Wed Jan 25 09:17:46 2012 -0800"
      },
      "message": "Merge \"stagefright aacenc: Fix type definitions for 64 bit platforms\""
    },
    {
      "commit": "2d96e2965b3118c4e3cb21a76c9f07e0c8ccfc6e",
      "tree": "bb1ab3664118d4b6187b3fb5796accdb18fba8d0",
      "parents": [
        "4787cfeb9cfe6027c7634b09ede309f37a8b0a75",
        "bfd99cb8261a8a1ae65dc2e956b5fce8484713bb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jan 25 08:57:36 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 25 08:57:36 2012 -0800"
      },
      "message": "am e2594b85: am 4cd2b343: am 98539a4e: Merge \"stagefright amrwbenc: Make the mem_malloc function 64-bit safe\"\n\n* commit \u0027e2594b85093441e03150c7cfc540abc626884eaf\u0027:\n  stagefright amrwbenc: Make the mem_malloc function 64-bit safe\n"
    },
    {
      "commit": "4787cfeb9cfe6027c7634b09ede309f37a8b0a75",
      "tree": "8262bacb56748bc27830a0700378d8d7120f6ecc",
      "parents": [
        "9365ea9bf2e439b3e71abbabe22ce7382ebc4b3a",
        "f27286d86de720e2b0af9f4facf671f3a5de1d85"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Jan 25 08:57:32 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 25 08:57:32 2012 -0800"
      },
      "message": "am a3946104: am fc2ea24b: am d80cbb8c: Merge \"stagefright aacenc: Add missing newlines at the end of files\"\n\n* commit \u0027a39461047eae6022e2c0ef873ffa2c7241b393a9\u0027:\n  stagefright aacenc: Add missing newlines at the end of files\n"
    },
    {
      "commit": "fa521a76c4fc14b01b46930cd0d04856d57fdcc1",
      "tree": "6739824d3eb9aff3fe2b538e41ef458a721cd83f",
      "parents": [
        "a70de78001281b44e8a05da60d81b551850c57bf",
        "ceec4ae3ba8c3c3d5e243647ad7ee2fc39c71c9c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 15:13:45 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 15:13:45 2012 -0800"
      },
      "message": "am 98539a4e: Merge \"stagefright amrwbenc: Make the mem_malloc function 64-bit safe\"\n\n* commit \u002798539a4eba7677c0b1ddc12f800c7075851ef302\u0027:\n  stagefright amrwbenc: Make the mem_malloc function 64-bit safe\n"
    },
    {
      "commit": "a70de78001281b44e8a05da60d81b551850c57bf",
      "tree": "cb830065e0f7aee4a0489413ffc8197e385c871d",
      "parents": [
        "5e37bc8d9ba68d6bc42e70a263f7c2969cc3c787",
        "a078e9b727156c76ef864ac2d8b3f6a99df9e604"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 15:13:42 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 15:13:42 2012 -0800"
      },
      "message": "am d80cbb8c: Merge \"stagefright aacenc: Add missing newlines at the end of files\"\n\n* commit \u0027d80cbb8c7b13203704c00e2f5941588811c15665\u0027:\n  stagefright aacenc: Add missing newlines at the end of files\n"
    },
    {
      "commit": "ceec4ae3ba8c3c3d5e243647ad7ee2fc39c71c9c",
      "tree": "0ab7debc48c0bed46932a39cd506edb4320bdd6d",
      "parents": [
        "a078e9b727156c76ef864ac2d8b3f6a99df9e604",
        "417f62c84261ea17e17a011b1e9706eb997a6ba1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 14:26:30 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 14:26:32 2012 -0800"
      },
      "message": "Merge \"stagefright amrwbenc: Make the mem_malloc function 64-bit safe\""
    },
    {
      "commit": "a078e9b727156c76ef864ac2d8b3f6a99df9e604",
      "tree": "d8d3c75ca7ff1b3720686ab160ef2a8f23dfb289",
      "parents": [
        "9c7ebfd56cef49f9a26572b44790868689599e34",
        "891abc0ee089f2ba5b92dcc014e5efc2ef07f01e"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 10:34:24 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 10:34:25 2012 -0800"
      },
      "message": "Merge \"stagefright aacenc: Add missing newlines at the end of files\""
    },
    {
      "commit": "f06a99bbc159a691ad618865c4faecbf185371cd",
      "tree": "a4dec391951c077b0c84b2b6d03557af49046e3b",
      "parents": [
        "bd1b8756295539dd329b9eb41a9e5d2bbb805108",
        "d9f088521782f071fc615df0ebbc80e53e21b2b1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 08:46:26 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 08:46:26 2012 -0800"
      },
      "message": "am 10c4641c: am 2ae5805c: am 164a9842: Merge \"stagefright aacenc: Properly terminate a comment\"\n\n* commit \u002710c4641c2e2f747f8fef7d217d550b7f9a6de588\u0027:\n  stagefright aacenc: Properly terminate a comment\n"
    },
    {
      "commit": "5e37bc8d9ba68d6bc42e70a263f7c2969cc3c787",
      "tree": "be8c3dc3c8d2a781020eba7fb165c440f81ff38c",
      "parents": [
        "a3db30f7c53936a3acb87d2c44807ee2f0cfa16e",
        "9c7ebfd56cef49f9a26572b44790868689599e34"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 08:40:50 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 24 08:40:50 2012 -0800"
      },
      "message": "am 164a9842: Merge \"stagefright aacenc: Properly terminate a comment\"\n\n* commit \u0027164a984224f5d430757628028f2522329987350f\u0027:\n  stagefright aacenc: Properly terminate a comment\n"
    },
    {
      "commit": "9c7ebfd56cef49f9a26572b44790868689599e34",
      "tree": "934f0a94824dd4f5888569302f9b8f63cf1ee644",
      "parents": [
        "39fd8eb956dea32692d3d72b10b64a8597df0a40",
        "60866592ed6953f2b0e12cefcd58f1ced26546d0"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Tue Jan 24 07:51:11 2012 -0800"
      },
      "committer": {
        "name": "android code review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jan 24 07:51:12 2012 -0800"
      },
      "message": "Merge \"stagefright aacenc: Properly terminate a comment\""
    },
    {
      "commit": "83d86538c4c479a9225c75ab27938e8f05abb9c8",
      "tree": "72fdff9fb9bb7e41fe48c41bfed65ab83b64f85f",
      "parents": [
        "58f30210ea540b6ce5aa6a46330cd3499483cb97"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 14:39:34 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 16:19:59 2012 -0800"
      },
      "message": "Make AudioTrack control block volume field private\n\nThis is part of the process of abstracting the control block\nto make it easier to maintain.\n\nChange-Id: Idb8f461e68dab3bcf268159cc0781651c6fb7094\n"
    },
    {
      "commit": "af0b82748ed900efab48068137114740cc84ee8f",
      "tree": "576307fdbeb7b1501f97f846aa4af7c2ae4af17f",
      "parents": [
        "58f30210ea540b6ce5aa6a46330cd3499483cb97",
        "112ab3e11b9992814363e0f9c629ef7fba86950b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 15:06:01 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 15:06:01 2012 -0800"
      },
      "message": "Merge \"Fix warning for redundant typedef\""
    },
    {
      "commit": "58f30210ea540b6ce5aa6a46330cd3499483cb97",
      "tree": "8c559ac8ca7892803b62e5e6d6018e9a4f4533a3",
      "parents": [
        "9bf3a2f69bbfa2562664181b779941e776b7e835"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 12 12:27:51 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 14:41:34 2012 -0800"
      },
      "message": "Use audio_format_t consistently, continued\n\nWas int or uint32_t.\n\nWhen AudioFlinger::format can\u0027t determine the correct format,\nreturn INVALID rather than DEFAULT.\n\nInit mFormat to INVALID rather than DEFAULT in the constructor.\nSubclass constructors will set mFormat to the correct value.\n\nChange-Id: I9b62640aa107d24d2d27925f5563d0d7407d1b73\n"
    },
    {
      "commit": "41159044c6764712bb6de54a507aeabc513b90cb",
      "tree": "dfeeff2f42d2d08fb64a3a34aeb6aea70c3a4200",
      "parents": [
        "4a98a7c95f3c7d1e8c2913086ce35533a7d5cbf3",
        "7e73e44c2d2208a7079e562f7b0b9b73ef6a29f1"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 20 13:43:39 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 13:43:39 2012 -0800"
      },
      "message": "Merge \"Starhub RTSP apparently does not establish time on all tracks\""
    },
    {
      "commit": "7e73e44c2d2208a7079e562f7b0b9b73ef6a29f1",
      "tree": "f0d1a0eab6914865bfe576d427d6fa2ee5480a6f",
      "parents": [
        "6f444c95d86936217bf49fc11d279851b0fa364d"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 20 13:30:03 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Fri Jan 20 13:30:03 2012 -0800"
      },
      "message": "Starhub RTSP apparently does not establish time on all tracks\n\ni.e. the \"SR\" RTCP packet is sent for only one of the two tracks.\n\nfake timestamps if that\u0027s the case, previously we\u0027d only fake timestamps\nif we didn\u0027t receive _any_ \"SR\" packets.\n\nChange-Id: Id63d4940d453ba6c04c62e02ab9a0ad843936bc1\nrelated-to-bug: 5669027\n"
    },
    {
      "commit": "4a98a7c95f3c7d1e8c2913086ce35533a7d5cbf3",
      "tree": "b2b8fe52281fcb953146b8cb620a1a72babd7bdf",
      "parents": [
        "31acba114c686e7364fd8875c89e48acb32f9733",
        "9096f3471434d7f0d2419ac0ee2a618045489718"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 12:16:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 12:16:06 2012 -0800"
      },
      "message": "Merge \"Fix typos in string constants\""
    },
    {
      "commit": "d967f0a099db2b71597a3127134afd4a46287a4a",
      "tree": "6428f1e6df83934c1ae6b46c10d6ee19cfe35c6a",
      "parents": [
        "05bfe50e13793404a78c20c850d467d17734d496",
        "7fc9a6fdf146ded90b51c52f4a05d797294dcb85"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 12:14:32 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 12:14:32 2012 -0800"
      },
      "message": "Merge \"Remove redundant get()\""
    },
    {
      "commit": "05bfe50e13793404a78c20c850d467d17734d496",
      "tree": "170ad8aee42f47bf510dcae85e1b0e6657ab6e32",
      "parents": [
        "ea3cc3bca949139e401b77f2ac0cce7ac6e76f8f",
        "511754b5839fd9b09fc56b89ae007fbc39084a33"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 11:49:04 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 11:49:04 2012 -0800"
      },
      "message": "Merge \"Move memcpy_to_i16_from_u8 to audio_utils\""
    },
    {
      "commit": "7fc9a6fdf146ded90b51c52f4a05d797294dcb85",
      "tree": "215cbb16f9babb95e8598123219abc9fed6156b9",
      "parents": [
        "27a0d83f53ddbfd6449ab0e3c786742a2cd135a9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 10 10:46:34 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 11:44:26 2012 -0800"
      },
      "message": "Remove redundant get()\n\nget() is almost always unnecessary, except in a LOG.\nAlso no need to check for !\u003d 0 before calling get().\n\nChange-Id: Ib06e7a503f86cf102f09acc1ffb2ad085025516d\n"
    },
    {
      "commit": "112ab3e11b9992814363e0f9c629ef7fba86950b",
      "tree": "881b2166b745db93ca10fe26e7274fdc11a52f87",
      "parents": [
        "ea3cc3bca949139e401b77f2ac0cce7ac6e76f8f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 11:11:08 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 11:11:38 2012 -0800"
      },
      "message": "Fix warning for redundant typedef\n\nframeworks/base/media/libmedia/autodetect.cpp:22: warning: \u0027typedef\u0027 was ignored in this declaration\n\nChange-Id: I8c7404b9f5aa515c0fe92a5a46f24248d6fe96bf\n"
    },
    {
      "commit": "ea3cc3bca949139e401b77f2ac0cce7ac6e76f8f",
      "tree": "461e74fe9f5d14b718732ff58edc35164827ae01",
      "parents": [
        "6f444c95d86936217bf49fc11d279851b0fa364d",
        "0b07b8085d7b837b4dd5f09e0c8c39408f6bdbf7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 20 10:07:06 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 20 10:07:06 2012 -0800"
      },
      "message": "Merge \"Remove dead setRingerMode(mode, mask)\""
    },
    {
      "commit": "a3db30f7c53936a3acb87d2c44807ee2f0cfa16e",
      "tree": "195b8ec38f5b1e95a375d4a49503a3d923780f69",
      "parents": [
        "d746737921074e2a6c39c52b06022c5166689df5",
        "39fd8eb956dea32692d3d72b10b64a8597df0a40"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 17:26:16 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 19 17:26:16 2012 -0800"
      },
      "message": "am 9d25b82d: Merge \"Rename LOG_ASSERT to ALOG_ASSERT\"\n\n* commit \u00279d25b82d280c2d979d500e7da4447148f32f820b\u0027:\n  Rename LOG_ASSERT to ALOG_ASSERT\n"
    },
    {
      "commit": "d746737921074e2a6c39c52b06022c5166689df5",
      "tree": "62cfd5c53cafbf8a2a9f5d3f5095aa68a59eadf2",
      "parents": [
        "daef36f5d4934bd055c694a8d54b86e2b50a6159",
        "9a8ded7348c5b2302dd27b285b395416bc842c49"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 17:26:12 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 19 17:26:12 2012 -0800"
      },
      "message": "am 6df477be: Merge \"Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)\"\n\n* commit \u00276df477be186233e36fc370c4d2db6c1ed928a740\u0027:\n  Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)\n"
    },
    {
      "commit": "daef36f5d4934bd055c694a8d54b86e2b50a6159",
      "tree": "b9b371d7ce18951afafc597c2bc3fb01e9b63768",
      "parents": [
        "3734cbca25c6d902677cfb5e59dff7a1cb17a45d",
        "aa70226152d2084f85a96b52359dbc8476a86a45"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 17:26:08 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 19 17:26:08 2012 -0800"
      },
      "message": "am a826f9e2: Merge \"Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)\"\n\n* commit \u0027a826f9e2c4f6329d8d48c927f6e942e78ffaf92f\u0027:\n  Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)\n"
    },
    {
      "commit": "3734cbca25c6d902677cfb5e59dff7a1cb17a45d",
      "tree": "b7dda06a4111a2c7da34d41949cf288ad535a768",
      "parents": [
        "e744a90eb52bf9547848c08380cfb7ba7e63ffbc",
        "53feeb42c721e8fc9285e35e679906a951f3277c"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 17:26:03 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 19 17:26:03 2012 -0800"
      },
      "message": "am 4f367f33: Merge \"Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)\"\n\n* commit \u00274f367f3387887c538c81c34cc8becaea6fa5e430\u0027:\n  Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)\n"
    },
    {
      "commit": "e744a90eb52bf9547848c08380cfb7ba7e63ffbc",
      "tree": "6154d54c66881857e2bd851a59273e15b6adb769",
      "parents": [
        "ca05a87f4c69670a06bdee4b4f98bcdcd838beda",
        "52546c0ef96aa3e7e21482e0f9b6e982557c8da9"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 17:25:58 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 19 17:25:58 2012 -0800"
      },
      "message": "am ba7f0d2a: Merge \"Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)\"\n\n* commit \u0027ba7f0d2a03643ce429421b81febf18fd50473070\u0027:\n  Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)\n"
    },
    {
      "commit": "ca05a87f4c69670a06bdee4b4f98bcdcd838beda",
      "tree": "2b8556647f7fa9b8fd3c9355cda3bb26779bf725",
      "parents": [
        "90a607163f793b968d96295b876532e4d03b642c",
        "3812256de32e73e38ba16e50ac0451c10223d4eb"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 17:18:25 2012 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 17:18:25 2012 -0800"
      },
      "message": "Merge ee4618bc\n\nChange-Id: Ie1dc6ad38e7c30636d80f6caef11cf6673144940\n"
    },
    {
      "commit": "39fd8eb956dea32692d3d72b10b64a8597df0a40",
      "tree": "28e2a2d467c3f71d60114859641320f97c99c64a",
      "parents": [
        "9a8ded7348c5b2302dd27b285b395416bc842c49"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Mon Jan 09 18:35:44 2012 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:45:08 2012 -0800"
      },
      "message": "Rename LOG_ASSERT to ALOG_ASSERT\n\nChange-Id: Ie2c7ea6560656d65bad791a61996174c75677517\n"
    },
    {
      "commit": "9a8ded7348c5b2302dd27b285b395416bc842c49",
      "tree": "6244771b557279b7b8b8b574821b0afd80f252b2",
      "parents": [
        "aa70226152d2084f85a96b52359dbc8476a86a45"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Fri Jan 06 19:20:56 2012 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:45:03 2012 -0800"
      },
      "message": "Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF)\n\nChange-Id: I1de629b4632a4b3187ca1a28d6416daccd35f924\n"
    },
    {
      "commit": "aa70226152d2084f85a96b52359dbc8476a86a45",
      "tree": "d9514686932670c9cd427232b9653b53ea6c5ca7",
      "parents": [
        "53feeb42c721e8fc9285e35e679906a951f3277c"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Jan 05 23:22:43 2012 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:59 2012 -0800"
      },
      "message": "Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF)\n\nChange-Id: I8fbdfa7a7581f481968dbb65aa40f7042936d7cb\n"
    },
    {
      "commit": "53feeb42c721e8fc9285e35e679906a951f3277c",
      "tree": "bb48afd280bf7429d61229bfba2e733aa2805711",
      "parents": [
        "52546c0ef96aa3e7e21482e0f9b6e982557c8da9"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Wed Jan 04 20:05:49 2012 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:56 2012 -0800"
      },
      "message": "Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF)\n\nChange-Id: I26f76452ac49e2890b14d133c065493d8df0fb4a\n"
    },
    {
      "commit": "52546c0ef96aa3e7e21482e0f9b6e982557c8da9",
      "tree": "54c28e0c5bf254aa29169a58baba8c1ff10b468e",
      "parents": [
        "3812256de32e73e38ba16e50ac0451c10223d4eb"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Tue Dec 20 16:23:08 2011 +0000"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:50 2012 -0800"
      },
      "message": "Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF)\n\nChange-Id: I44f267700356967dc51e8f85ebf457dc85cfb229\n"
    },
    {
      "commit": "3812256de32e73e38ba16e50ac0451c10223d4eb",
      "tree": "36738b11682c48374dc44c0b7c2a48a04986a019",
      "parents": [
        "b676a05348e4c516fa8b57e33b10548e6142c3f8"
      ],
      "author": {
        "name": "Steve Block",
        "email": "steveblock@google.com",
        "time": "Thu Oct 20 11:56:00 2011 +0100"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Thu Jan 19 14:44:31 2012 -0800"
      },
      "message": "Rename (IF_)LOGV(_IF) to (IF_)ALOGV(_IF)\n\nChange-Id: I5321ebd12e9c6248a108529e82c4e1af2a4405e3\n"
    },
    {
      "commit": "bd9c9a80fd487b3e83861c32b388eac146f8a299",
      "tree": "4adb463b60a3b74d19dcab75ae68c996529e2066",
      "parents": [
        "27a0d83f53ddbfd6449ab0e3c786742a2cd135a9"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 19 14:17:49 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Thu Jan 19 14:17:49 2012 -0800"
      },
      "message": "Make sure the ThrottledSource reports the proper mime type\n\nof the underlying source.\n\nChange-Id: I7cfd5c9f10d4b07781ed82fbdc9bf3db2e86cf84\n"
    },
    {
      "commit": "9096f3471434d7f0d2419ac0ee2a618045489718",
      "tree": "ea05feac3518a0f1f8daaf5a43750dd3bbfde9da",
      "parents": [
        "27a0d83f53ddbfd6449ab0e3c786742a2cd135a9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 19 08:14:08 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 19 08:18:22 2012 -0800"
      },
      "message": "Fix typos in string constants\n\nThese were copy/paste errors in code that was copied from AudioTrack.\n\nChange-Id: I64a04d6026667884ddb1fefba67a71d69c691d62\n"
    },
    {
      "commit": "27a0d83f53ddbfd6449ab0e3c786742a2cd135a9",
      "tree": "6bb67bb1bf2d9c069053a98a0a6d6a31bfa2fd02",
      "parents": [
        "241fc78866b2aefd75cd1890df5a75b7008728e8",
        "a3f1fa308728976fc9ca1b4f37d26e633b32b9ac"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 19 06:10:37 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 06:10:37 2012 -0800"
      },
      "message": "Merge \"Fix incorrect includes of AudioTrack.h\""
    },
    {
      "commit": "241fc78866b2aefd75cd1890df5a75b7008728e8",
      "tree": "e7bb3a3c5ee9749b09a3a914f348f13c77334216",
      "parents": [
        "86905f445c96743b037eed6360afa956a85b019c",
        "347966c827883711d1ec631f204e4a6ab74e9d99"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 19 06:09:20 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 06:09:20 2012 -0800"
      },
      "message": "Merge \"Simplify range check for audio_mode_t (continued)\""
    },
    {
      "commit": "a3f1fa308728976fc9ca1b4f37d26e633b32b9ac",
      "tree": "613598b5d86ce915b4f505c0d9c19592fa8f7d79",
      "parents": [
        "04eaf3e5f20d7faa956c0d672024ffb5117f4c26"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 18 14:54:46 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 18 16:06:47 2012 -0800"
      },
      "message": "Fix incorrect includes of AudioTrack.h\n\nRemove unnecessary includes of AudioTrack.h.\nUse forward declaration of class names in preference to #include when possible.\n\nChange-Id: I12982811fa75c2c7695d8bbfa595a7aaec047dc0\n"
    },
    {
      "commit": "347966c827883711d1ec631f204e4a6ab74e9d99",
      "tree": "fb6dccc3b6a583c319cf0a82395c93461835a5ae",
      "parents": [
        "04eaf3e5f20d7faa956c0d672024ffb5117f4c26"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 18 14:58:32 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 18 15:57:40 2012 -0800"
      },
      "message": "Simplify range check for audio_mode_t (continued)\n\nMissed one place in earlier CL of same name\n\nChange-Id: I0dd25364d0b8d5d731c02d352f139a0c8d4df1a8\n"
    },
    {
      "commit": "0b07b8085d7b837b4dd5f09e0c8c39408f6bdbf7",
      "tree": "97068573fa84e254ad129147682603d5818c2ae2",
      "parents": [
        "04eaf3e5f20d7faa956c0d672024ffb5117f4c26"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 18 14:56:06 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 18 15:10:31 2012 -0800"
      },
      "message": "Remove dead setRingerMode(mode, mask)\n\nChange-Id: Ia4cc8be8424a40b3dcb7ebd0264fdff4e5247f7f\n"
    },
    {
      "commit": "b93db88344829d02f114768b5f8a8e30f78b88fc",
      "tree": "d2f33fa270c77346dfc28f8459b337912c697b5b",
      "parents": [
        "77418fc9b4131cabfe9a85963604bdd535a04df8",
        "c813985abd8ba61e999b3505f6a332574f87a1be"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 18 11:01:00 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 11:01:00 2012 -0800"
      },
      "message": "Merge \"Temporarily restore AudioSystem/AudioTrack APIs with their former signatures\""
    },
    {
      "commit": "c813985abd8ba61e999b3505f6a332574f87a1be",
      "tree": "d87c4ec564d4f3d19db4c1032661799cce847617",
      "parents": [
        "04eaf3e5f20d7faa956c0d672024ffb5117f4c26"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 18 10:51:55 2012 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 18 10:51:55 2012 -0800"
      },
      "message": "Temporarily restore AudioSystem/AudioTrack APIs with their former signatures\n\nuntil we get updated prebuilts from vendor.\n\nChange-Id: I8aae81d2513edca0ab268053a11c8c4206879e61\n"
    },
    {
      "commit": "77418fc9b4131cabfe9a85963604bdd535a04df8",
      "tree": "c9681f491ca6547bc49acc764c1c0a7753afe3e0",
      "parents": [
        "6c90884d683f00b56f2050c598b2cc40b7ca60d3",
        "ec2e74b538b899aac54f55ed1aa60286624f8895"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 18 09:29:56 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 09:29:56 2012 -0800"
      },
      "message": "Merge \"AVIExtractor: adding a H264 fourCC which is also specified in the reference. (H264 code can be found avi file which is encoded with FFmpeg.)\""
    },
    {
      "commit": "6c90884d683f00b56f2050c598b2cc40b7ca60d3",
      "tree": "8d2705d96eb8a19696f4f84c096202c18ed07d05",
      "parents": [
        "04eaf3e5f20d7faa956c0d672024ffb5117f4c26",
        "40a4e1440869b2e3981f261b0d301cd16c0cf0aa"
      ],
      "author": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Wed Jan 18 08:58:19 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 08:58:19 2012 -0800"
      },
      "message": "Merge \"Make sure seek triggers a reconnect if needed.\""
    },
    {
      "commit": "04eaf3e5f20d7faa956c0d672024ffb5117f4c26",
      "tree": "a1c32a1cd2e94f80e11748b6e56c0d7899492c11",
      "parents": [
        "63ad6aacc6ce6b729bf25f41376cfea731a2c1eb",
        "b1cf75c4935001f61057989ee3cf27bbf09ecd9c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 18 07:46:18 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 07:46:18 2012 -0800"
      },
      "message": "Merge \"Track volume cleanup\""
    },
    {
      "commit": "40a4e1440869b2e3981f261b0d301cd16c0cf0aa",
      "tree": "ba4dc1613a6ca3b4b8fc762fd3e9c7a20b79429f",
      "parents": [
        "63ad6aacc6ce6b729bf25f41376cfea731a2c1eb"
      ],
      "author": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Wed Jan 18 13:40:07 2012 +0000"
      },
      "committer": {
        "name": "Bryan Mawhinney",
        "email": "bryanmawhinney@google.com",
        "time": "Wed Jan 18 13:43:16 2012 +0000"
      },
      "message": "Make sure seek triggers a reconnect if needed.\n\nPreviously, if we had disconnected at the high watermark,\nthe read immediately following a seek would fail, and would\nnot be retried, resulting in an error.\n\nChange-Id: I45a53563fe17d6b54893815abc7750a7dfb0a124\n"
    },
    {
      "commit": "63ad6aacc6ce6b729bf25f41376cfea731a2c1eb",
      "tree": "7f5a8de6e8540f2424668e5c650dee567194fb4d",
      "parents": [
        "f237a30e9344d43f832ba11db6f62c6ad2084444",
        "83844cc2f95dc279015b47fd1e18c7cb4eabe9a1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 17 17:35:03 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 17:35:03 2012 -0800"
      },
      "message": "Merge \"audio framework: manage stream volume per device\""
    },
    {
      "commit": "b1cf75c4935001f61057989ee3cf27bbf09ecd9c",
      "tree": "e3daaea6160475e36dedfccaabf5d8b94406d05e",
      "parents": [
        "f237a30e9344d43f832ba11db6f62c6ad2084444"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 12:20:54 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 16:25:17 2012 -0800"
      },
      "message": "Track volume cleanup\n\nAlways read and write track volumes atomically. In most places this was\nalready being done, but there were a couple places where the left and\nright channels were read independently.\n\nChanged constant MAX_GAIN_INT to be a uint32_t instead of a float.\nIt is always used as a uint32_t in comparisons and assignments.\nUse MAX_GAIN_INT in more places.\n\nNow that volume is always accessed atomically, removed the union\nand alias for uint16_t volume[2], and kept only volumeLR.\n\nRemoved volatile as it\u0027s meaningless.\n\nIn AudioFlinger, clamp the track volumes read from shared memory\nbefore applying master and stream volume.\n\nChange-Id: If65e2b27e5bc3db5bf75540479843041b58433f0\n"
    },
    {
      "commit": "511754b5839fd9b09fc56b89ae007fbc39084a33",
      "tree": "7db3e4ac83e2d108dd2190c37887a001faa3664f",
      "parents": [
        "f237a30e9344d43f832ba11db6f62c6ad2084444"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 11 09:52:19 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 17 15:15:06 2012 -0800"
      },
      "message": "Move memcpy_to_i16_from_u8 to audio_utils\n\nThis will make it easier for this kind of code to be optimized\nfor each target architecture.\n\nChange-Id: I9efd27d6c0175b00b9a784353244805cec63c0b8\n"
    },
    {
      "commit": "83844cc2f95dc279015b47fd1e18c7cb4eabe9a1",
      "tree": "3e9f329efec962076a0904ce7f093a9a51bac6b1",
      "parents": [
        "263709e7be37c7040aaef385bc5c9389a9b5f514"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 18 16:43:31 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 17 15:15:04 2012 -0800"
      },
      "message": "audio framework: manage stream volume per device\n\nImprove volume management by keeping track of volume for each type\nof device independently.\nVolume for each stream (MUSIC, RINGTONE, VOICE_CALL...) is now maintained\nper device.\n\nThe main changes are:\n- AudioService now keeps tracks of stream volumes per device:\n volume indexes are kept in a HashMap \u003c device , index\u003e.\n active device is queried from policy manager when a volume change request\n is received\n initalization, mute and unmute happen on all device simultaneously\n- Settings: suffixes is added to volume keys to store each device\nvolume independently.\n- AudioSystem/AudioPolicyService/AudioPolicyInterface: added a device argument\nto setStreamVolumeIndex() and getStreamVolumeIndex() to address each\ndevice independently.\n- AudioPolicyManagerBase: keep track of stream volumes for each device\nand apply volume according to current device selection.\n\nChange-Id: I61ef1c45caadca04d16363bca4140e0f81901b3f\n"
    }
  ],
  "next": "3f6448e020969be59ad4d8df99c5296f237ffbd9"
}
