)]}'
{
  "log": [
    {
      "commit": "7985dcb06e0c29d5cc12d0c0e17e03d5d863cf53",
      "tree": "e99ab2f03b3fb49d533b8cf5e8659b39f5e5d8c8",
      "parents": [
        "f0011d49c0f08753dc2dc254c5a70885a9986602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 15:45:14 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 15:45:14 2014 -0700"
      },
      "message": "AudioTrack: fix AudioTrackThread crash upon exit\n\nIn case of error during createTrack_l(), there is a possibility\nthat a newly created AudioTrackThread is resumed by requestExit()\njust after entering the Thread class _threadLoop() but before\nentering the class threadLoop(). In this case, processAudioBuffer()\nis executed once with mCblk \u003d\u003d 0 and we assert.\n\nBug: 17894033.\nChange-Id: I93d0d0d4dbf14bcb88dad23e6ad49d2ecd47badd\n"
    },
    {
      "commit": "bb6c9a05840d924b502ce0f1868fca4881ada1ed",
      "tree": "aec6d28b7ab31fec27416c6e853c94c2eedfcd9b",
      "parents": [
        "a935c76f96b066941b34f81c42b3fe9d00db98c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 14:11:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 16:44:07 2014 -0700"
      },
      "message": "audio: fix stream type for accessibility usage\n\nMake sure that accessibility prompts are heard when\na ringtone is active by forcing stream type\nto AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE.\n\nBug: 17558149.\nChange-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628\n"
    },
    {
      "commit": "dfc34daba6d6cb923683d96689a0cb7c7006eee5",
      "tree": "f215c906f1322d1ff3e893e89e11f8aaec4eb2b9",
      "parents": [
        "b0ed4e3e482cbdc2fa6c7853526597f4ae3f0972"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 19 09:05:05 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 19 09:06:01 2014 -0700"
      },
      "message": "Reduce log spam from getTimestamp errors\n\nBug: 17576481\nChange-Id: I07d99e7c42b7d4f0994b5a6d9c9fe8eb29fbbe40\n"
    },
    {
      "commit": "6aadfce1d8c972faad7f4437dcd88d8cd3557611",
      "tree": "59e128037e1ba35eab1be1595d72621ce322476e",
      "parents": [
        "2973994af39d55b58728df3dca067594e826ea2a",
        "a0fd9ca66a68baefd9d76800fd66823fd654ef45"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 22:14:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 18 22:14:00 2014 +0000"
      },
      "message": "Merge \"AudioEffect acquires session\" into lmp-dev"
    },
    {
      "commit": "a0fd9ca66a68baefd9d76800fd66823fd654ef45",
      "tree": "c3102c24d002966b7c0038e885296d77136a47c3",
      "parents": [
        "2720c8c45a0040d7007239c100591b9f092b780f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 14:07:18 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 14:07:18 2014 -0700"
      },
      "message": "AudioEffect acquires session\n\nCurrently, users of audio sessions, AudioTrack and AudioRecord,\n are acquiring and releasing audio sessions according to their\n life-cycle. AudioEffect instances were not counting as users\n of an audio session. This caused an effect used on a session\n to be purged by AudioFlinger::purgeStaleEffects_l() whenever\n the last user of that session went away.\nThis CL makes AudioEffect acquire and release a session when\n created and destroyed.\n\nBug 15432115\n\nChange-Id: I922532150009988d43872f9b5928044a830ae0b3\n"
    },
    {
      "commit": "7f1bc8af1c46695191bf7e2aba6467f3616629c0",
      "tree": "905b0091037bea59f81df3cc6e49c2cfd1d7d24d",
      "parents": [
        "90869c2bef1bc47394a9f603ccebb62b2592fd2b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 12 14:43:11 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 17 23:07:05 2014 +0000"
      },
      "message": "Fix AudioTrack offloaded timestamp handling.\n\ngetTimestamp for offloaded tracks now returns WOULD_BLOCK for\nsituations where the timestamp is unavailable due to the\nprevious track still flushing or the timestamp is stale.\nIt is fixed for normal playback conditions.\n\nBug: 14659809\nBug: 17428188\nChange-Id: Ic9ec07ccabc604236979769db5c4ea2dec252660"
    },
    {
      "commit": "200092b7f21d2b98f30b800e79d152636f9ba225",
      "tree": "35ced5107a366d0885a6a54e5473891e5ce01317",
      "parents": [
        "4953f92be5c45d7b79448e8964ecbdc39eacb782"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 15 15:13:30 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 11 09:54:52 2014 -0700"
      },
      "message": "Clean up AudioTrack position and timestamp handling\n\nReplace epoch concept by observing and accumulating server delta\npositions.  The advantage of using server deltas instead of absolute\nvalues is that they (1) are not sensitive to 32-bit wraparound,\n(2) are not sensitive to server behavior for stop(), and\n(3) prepare for future 64-bit client positions without requiring 64-bit\npositions on server.\n\nAdd comments to AudioTrack::getTimestamp() and friends\nthat the timestamp output parameter is undefined on error.\n\nDon\u0027t allow getTimestamp to return a negative frame position after stop().\n\nAccumulate the client released frames, which may be useful for a future API.\n\nBug: 11815245\nChange-Id: I652940fa2db2f34a78c012a3ead0d9204fa29c6e\n"
    },
    {
      "commit": "9520aa609c505cf8a9ee105bd78dc186cfb7770b",
      "tree": "d6027b7564032ed9f307fc758b4ca49bc997674e",
      "parents": [
        "8270e1d13a101fa946848871b9903b31ff11981f"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 09 16:18:31 2014 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 09 16:18:31 2014 -0700"
      },
      "message": "CamcorderProfile: Add QUALITY_HIGH_SPEED_2160P\n\nBug: 17059255\nChange-Id: Ic6b272e4ceec8fc852c9eb787370f4d366dad0ac\n"
    },
    {
      "commit": "b445375f50a1a619b2d7518d32387d5ea77ceb70",
      "tree": "011f7b4e9ce5ee17d4265ed0fceebc484db3cee9",
      "parents": [
        "2e97b01cecec65e690ac7da5df9433c52ff75bd8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 08 11:47:24 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 08 13:37:06 2014 -0700"
      },
      "message": "Fix potential deadlock between AudioPolicyService and AudioSystem\n\nBug: 17109761\nChange-Id: I315c1c5066f62b05e1c13b04fae1272b5fbce977\n"
    },
    {
      "commit": "640adb3cf89cc9b826372009fad8c9b3d120482e",
      "tree": "e51644f1d307b920cf35e364c7d7562a604ef9a5",
      "parents": [
        "f2a2d0d6731174f5ce2a7b9d6dfd96dd7f1727a4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 05 11:20:11 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 05 11:58:39 2014 -0700"
      },
      "message": "Cache audio attributes when player not available\n\nCache the audio attributes stored in a Parcel in the client-side\n MediaPlayer object if they are set through setParameter()\n before the server-side MediaPlayer is available. Apply them when\n the player is prepared.\n\nBug 17280746\n\nChange-Id: I72f1a7fc4e2b076fae8cbdede77a2f74e98b2a03\n"
    },
    {
      "commit": "d71233a846aca7035a851941c1530d04c6a65086",
      "tree": "a1f528af0c52fd0d78a1843743f2930a2684f2b2",
      "parents": [
        "acdae5d7865b604acaadd3be1c45c84ca4bf3952",
        "34581f44cde67960fbac3ba1f191a2c063ea5145"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 03 19:09:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 19:09:43 2014 +0000"
      },
      "message": "Merge \"Use CharacterEncodingDetector in metadataretriever\" into lmp-dev"
    },
    {
      "commit": "34581f44cde67960fbac3ba1f191a2c063ea5145",
      "tree": "9c89d859f2c9cd1c622355a767e3a7c57c658e8a",
      "parents": [
        "9dd4a2ddd7caf8cbe50d8a76e0ec3e0274d2bce6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 29 16:00:28 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 02 11:54:44 2014 -0700"
      },
      "message": "Use CharacterEncodingDetector in metadataretriever\n\ninstead of media scanner. This way the java MediaMetadataRetriever API\nwill give the same result as the media scanner.\nAlso apply some tweaks to the encoding detector to improve handling of\nISO-8859-1 tags.\n\nBug: 16302581, 17205395\n\nChange-Id: I1682a7a6a8bf04cffaa455044ba72dd7fd152d49\n"
    },
    {
      "commit": "a90cff5f7091bfb50c57e2d87bad3fc3f103f397",
      "tree": "4d1cfcfcd0ec7025b918cfefa91bd977341c3c98",
      "parents": [
        "d42173a44721af1a600b9c8599bc736394fcc724"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Sat Aug 23 09:19:27 2014 +0800"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Fri Aug 29 02:05:33 2014 +0000"
      },
      "message": "[AU]Sync libmedia/Android.mk modification from KLP-Sprout\n\nBug: 17322146\n\nChange-Id: If29fbd87252710bd794f2e0bb270bc846380ef1d\nSigned-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e"
    },
    {
      "commit": "732c6d955524ead6c31e6e1bafbd41ea4cee525d",
      "tree": "512bb207b9013da6f9c728f77a3070a7a5b99638",
      "parents": [
        "261562316c1b652ea697c99c0f24a54112bd0385"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 14 19:54:08 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 14 19:56:58 2014 -0700"
      },
      "message": "stagefright/media: add support for codec features with text value\n\nBug: 11990470\nChange-Id: I7600d999c5f4b6821d825d25fa7e8a2bb5a80c46\n"
    },
    {
      "commit": "d018b8ffd84452a7a4b992b5325713b3256e48ff",
      "tree": "a338c848af9b637f9879a7f0293d0fafbfef4489",
      "parents": [
        "2461e0cf6ae3fe5c9b52ce9e3ac764f4aff5e5eb",
        "6ff58f04f78886b07c72c0118eb71a78d08f5651"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 17:05:56 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 12 16:54:46 2014 +0000"
      },
      "message": "Merge \"MediaCodecList: handle errors gracefully\" into lmp-dev"
    },
    {
      "commit": "2461e0cf6ae3fe5c9b52ce9e3ac764f4aff5e5eb",
      "tree": "449c2a4029cc6e8048b9d9d373078e5830bd9404",
      "parents": [
        "e7a1737c92cf2e84754ffbc52cfec8edeffcbc75"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 08:55:25 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 16:30:40 2014 +0000"
      },
      "message": "MediaCodecList: don\u0027t return references\n\nBug: 16905025\nChange-Id: I5b42b294f0cc785b8e4dda0e82c8f8377a46f487"
    },
    {
      "commit": "6ff58f04f78886b07c72c0118eb71a78d08f5651",
      "tree": "99652bd3f5349e5cd8c55c261e7e06b65fc06ea1",
      "parents": [
        "e7a1737c92cf2e84754ffbc52cfec8edeffcbc75"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Aug 11 16:46:15 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 09:29:29 2014 -0700"
      },
      "message": "MediaCodecList: handle errors gracefully\n\nHandle missing OMX codecs, and codecs that do not load.\nFix NULL dereference when initializing codec with no type.\n\nBug: 16907578\nBug: 16905025\nChange-Id: I5d103db36ebb029d1aab03222bf6e9324beb1566\n"
    },
    {
      "commit": "306c92dabc524f408445f7da2524c7a5e77ade63",
      "tree": "3e7b9269223865424df13a4efc513ecfe57af69c",
      "parents": [
        "de975ca87c3dbdf9b7d92dae54b3446670b2a50e",
        "cd04484f4837b8ca0041d118286ab6a98e84fc75"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 11 20:26:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 11 18:20:32 2014 +0000"
      },
      "message": "Merge \"Extend downsampling ratios greater than 2:1\" into lmp-dev"
    },
    {
      "commit": "cd04484f4837b8ca0041d118286ab6a98e84fc75",
      "tree": "4b9e501bb71969c0ca5049201aeae42284ac9b80",
      "parents": [
        "53a1e46e559b00653eadf6f4bb5572679b0ee734"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 07 11:04:34 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 11 10:17:18 2014 -0700"
      },
      "message": "Extend downsampling ratios greater than 2:1\n\nAlso improve robustness to choice of sampling rate or buffer size\nsuch that increasing either by 10x does not cause overflow.\n\nBug: 12979141\nBug: 15933066\nChange-Id: If7989bd745d1bee3bdf811b8b7c978543ccafb65\n"
    },
    {
      "commit": "5a446aafff3020d607ad6fb14cc7ae76dd8f7947",
      "tree": "4b805d80181d7b0c8c61b4907c0f5e15a3bc3230",
      "parents": [
        "48449403a1946653074591829e8c39c8000918d1"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Tue Jul 29 16:47:56 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Aug 08 18:24:15 2014 -0700"
      },
      "message": "Added Tunneled video playback support to ACodec\n\nBug:16132368\nChange-Id: I88d2d66b8548fc203f4a2c4797196af15e56ff38\n"
    },
    {
      "commit": "1381d4b5c0385aec3741073e5998773b064c1fb0",
      "tree": "6087b737255d34703a90d1952d48bb97646e492a",
      "parents": [
        "60b1c0e79d12a1c70758bc8d060156924635f8ba"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 15:18:35 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 17:40:13 2014 -0700"
      },
      "message": "media/playerservice: add getCodecList() to MediaPlayerService\n\nBug: 11990470\nChange-Id: I8fa45946fd9b76f9b975fc59062819c57e6881ef\n"
    },
    {
      "commit": "60b1c0e79d12a1c70758bc8d060156924635f8ba",
      "tree": "300d26ea36bca500a7105b7a94497dd1c2aa9fda",
      "parents": [
        "8accee4f0e94f19866d260be6eecd6c219eb4982"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 06 16:55:46 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 17:40:13 2014 -0700"
      },
      "message": "stagefright: rework media codec list and infos\n\nThis is in preparation of serving the codec list and codec infos\nfrom the mediaserver\n\nBug: 11990470\nChange-Id: Ib8e2708679c9ce461a4ba179974a740cdcdf2731\n"
    },
    {
      "commit": "93c3d41bdb15e39dac0faea9c5b60f1637cd477c",
      "tree": "a0d739ad732f10bc9d4548923c78c590841b14da",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 14:48:35 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 00:38:23 2014 +0000"
      },
      "message": "AudioSystem: add API to query audio HW sync source\n\nAdd a method to query from the audio HAL the HW sync\nsource used for a given audio session.\nModify audio policy to select a direct output with HW sync\nwhen requested.\n\nBug: 16132368.\n\nChange-Id: I03038f9188f2d389f8a5fd76a671854013a4513e\n"
    },
    {
      "commit": "df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871",
      "tree": "e54724362f700e3e72fc72604a3b5f568d8cee7b",
      "parents": [
        "d0fded31e473e909c018f534d3019fb5168bdcd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:39:40 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 05 12:10:27 2014 -0700"
      },
      "message": "Add sound trigger control by audio policy\n\nAudio policy:\n- Added active capture indication to sound trigger service:\nrecognition stops if concurrent capture is not supported.\n- Added generation of reserved I/O handle and session ID for\nutterance capture.\n\nSound trigger service\n- Added sound model update callback handling.\n- Added service state callback\n- Simplified callback shared memory allocation.\n\nBug: 12378680.\n\nChange-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1\n"
    },
    {
      "commit": "68b15554f6dca3b056eac517fe5fa2fd4ee80a33",
      "tree": "d6842666f3d062427b56f27c0b9e6e09976389a5",
      "parents": [
        "fdefe34f40ea6c8964677eaa9107958b0bdf76d0"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 30 10:19:03 2014 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 01 17:16:16 2014 +0000"
      },
      "message": "Allow device to be unprovisioned\n\nbug: 12247651\nChange-Id: I564ac8de3da2430342a028f4058e2c5ac2d85d5e\n"
    },
    {
      "commit": "4dc680607181e6a76f4e91a39366c4f5dfb7b03e",
      "tree": "5212b6ff474b8ef68a68cb1cf144f54e5348de77",
      "parents": [
        "d530d415e60373caf875a37d2d747a51470ee45c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 17:26:49 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 18:10:29 2014 -0700"
      },
      "message": "audio policy: pass session ID to capture activity methods\n\nIndicate the audio session ID when calling getInput(),\nstartInput(), stopInput(), releaseInput().\n\nBug: 12378680.\nChange-Id: I763793752f93e2f4e1445a5ab217c895af011038\n"
    },
    {
      "commit": "de3f8392fbf380ba6f09d009b00d7172477389a2",
      "tree": "77687cb28cf7dfb34ebb6317e246b3cad5672b86",
      "parents": [
        "03524dcc1215b2c468f5c8c8abe6f1c26239fd71"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:38:22 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 21:43:16 2014 +0000"
      },
      "message": "rename AudioSystem::newAudioSessionId()\n\nRename AudioSystem::newAudioSessionId() to\nAudioSystem::newAudioUniqueId() as it can be used\nalso for I/O handles.\n\nBug: 12378680.\nChange-Id: I611ea3b5eb57a4b0774437f477ee87dc4ccc2cc2\n"
    },
    {
      "commit": "cf2c0210c8afbe7d0661ccbbae3835b5ce73c0bf",
      "tree": "26824707249d553efaabe2003381b4e9159e199d",
      "parents": [
        "97117153a0d681be70bfa9dc9876541375355c47"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 25 16:20:43 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 12:06:00 2014 -0700"
      },
      "message": "AudioFlinger: update openInput() and openOutput()\n\nAdd parameters to openInput() and openOutput(): device address,\ninput source.\nAllow caller to specify a given I/O handle\nGroup parameters in a struct audio_config.\n\nBug: 12378680.\nChange-Id: I7e9af74c0d996561cc13cbee7d9012d2daf33025\n"
    },
    {
      "commit": "6c28f1fb6d8262a327ffa8be5bb4c84c9ef7ce62",
      "tree": "48375fe535624304c80bb1f08388df1ec2757354",
      "parents": [
        "0f036bec92eca4c972f566355196acc3f4cbf804",
        "e07909715b44cc56df723750af93f0608210f94d"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Sat Jul 26 00:57:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 24 15:36:21 2014 +0000"
      },
      "message": "Merge \"CamcorderProfiles: add high speed profile constants\" into lmp-dev"
    },
    {
      "commit": "e07909715b44cc56df723750af93f0608210f94d",
      "tree": "ad5d9756f6b0fb560cd0f3adc6a0763c4e450966",
      "parents": [
        "5d76e1a639c1bae9ea7d9af1124abf1c94353344"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Jul 23 15:17:26 2014 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Jul 23 15:17:26 2014 -0700"
      },
      "message": "CamcorderProfiles: add high speed profile constants\n\nChange-Id: I8f783466f8c2560820db14488acc1a309d27ab0f\n"
    },
    {
      "commit": "db2225b2a24fa4ade5c0353730dc2d6a2f5838d9",
      "tree": "0ae5b9b18005cc429c3465a496739e2807e7197d",
      "parents": [
        "17d0842cf33464a79a81b0e78e49514c3419d1cf",
        "d88adb96ec867ed1b629c434f87514d2fabaf5e9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 23 21:00:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 23 18:02:35 2014 +0000"
      },
      "message": "Merge \"NuPlayer: save thread id in MediaPlayer::start\" into lmp-dev"
    },
    {
      "commit": "d88adb96ec867ed1b629c434f87514d2fabaf5e9",
      "tree": "96229ead860a21012650d71df5e4cf120f092da2",
      "parents": [
        "225d5b20409fd400bfa4ed5e9bc1d5babb498471"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 23 11:43:46 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 23 12:00:22 2014 -0700"
      },
      "message": "NuPlayer: save thread id in MediaPlayer::start\n\nso that when MediaPlayer::notify is called from within start,\nit doesn\u0027t try to lock itself again.\n\nBug: 15323063\nChange-Id: Idd77e892cd22538bbfe3e65c64c9dd2a216a0aee\n"
    },
    {
      "commit": "f6f4c0d7c5e2d33b38f080896466e56e2d0a97d4",
      "tree": "91469dbf726e28b68a80af692bd4160381c62e64",
      "parents": [
        "b104d5a4dfbd8415f6bc227106b9f0130350d79a",
        "114819633470ebd5b346c13c2a82a0025d2d39c0"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 23 01:31:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 22 16:13:36 2014 +0000"
      },
      "message": "Merge \"StagefrightRecorder: webm (video only) support\" into lmp-dev"
    },
    {
      "commit": "114819633470ebd5b346c13c2a82a0025d2d39c0",
      "tree": "1b18e4333bb8d3bde991fcea29e956be83e94b8b",
      "parents": [
        "d8cf55d878edddfc36bb821a95b88dfb2453c2c3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 09 20:09:43 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jul 22 14:20:38 2014 -0700"
      },
      "message": "StagefrightRecorder: webm (video only) support\n\nBug: 16329805\nChange-Id: I8a0ecd100fca397add97a1416125bcc6aeb86364\n"
    },
    {
      "commit": "df813a3ba59109ca519ce0cb00a1a9144074f40e",
      "tree": "e56950313351561dce84d6001ce25ad50cb49dac",
      "parents": [
        "8bce84142802ecdc1794d59488ede629801a5cba"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 20 17:58:33 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 20 17:58:33 2014 -0700"
      },
      "message": "audio_attributes_t for SoundPool\n\nAdd support for the audio_attributes_t structure in the\n SoundPoool constructor.\nRemove SRC quality which was never implemented.\nRemove stream types.\n\nAdd file to contain audio helper functions related to policy.\n\nChange-Id: I1720ff15e7b23ea7b713a4395fdfac26dc3fd4da\n"
    },
    {
      "commit": "7410591dad836434c72ddee66680802708b70c10",
      "tree": "697a233ffced732dbe113c927d9de61f14ea3f2c",
      "parents": [
        "b3b1660ecb67f61f9da54efced8677fa3a6f4863"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 12:28:53 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:18 2014 -0700"
      },
      "message": "Move AudioRecord frame count calculations to server\n\nBuffer frame count and notification frame count\nare now calculated by server instead of by client.\nThe server has more information and can do a better job.\n\nAlso fix a few bugs:\n\n - If a fast track was re-created, even with same pipe depth, it would fail.\n   Now it can correctly re-create a fast track provided the pipe depth is same.\n\n - Notification frame count for fast tracks was calculated by client\n   as 1/2 of the total frame count, which is a large value due to the pipe.\n   Now the notification frame count is set by server to the HAL frame count.\n   This should reduce latency for fast tracks.\n\n - EVENT_OVERRUN were happening frequently when there was sample rate conversion,\n   because the client didn\u0027t know about the sample rate conversion,\n   and under-estimated the necessary buffer size.  Now since server\n   calculates the buffer sizes, EVENT_OVERRUN is unlikely.\n\n - RecordThread::createRecordTrack_l was checking for mono and stereo\n   for fast tracks.  This is not necessary, and now we can handle a\n   multi-channel fast track.\n\nBug: 7498763\nChange-Id: I0c581618e8db33084d5ff9ed50a592990c9749e8\n"
    },
    {
      "commit": "b3b1660ecb67f61f9da54efced8677fa3a6f4863",
      "tree": "ee42a2462ff40938316b521138d1edfe8a122d4b",
      "parents": [
        "ec40d284218466d8f0e832e7eb88e6ea6c479c88"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 16 08:36:31 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:11 2014 -0700"
      },
      "message": "Add audio_input_flags_t to IAudioPolicyService::getInput\n\nChange-Id: I9f37be05f8dc7b85a8827a94e76ca0f45453e170\n"
    },
    {
      "commit": "ec40d284218466d8f0e832e7eb88e6ea6c479c88",
      "tree": "46ae774a4f3535d07374bed459b1dcf2bb9d8803",
      "parents": [
        "6e6704c06d61bc356e30c164081e5bcffb37920c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 15 15:31:26 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:07 2014 -0700"
      },
      "message": "Add audio_input_flags_t to IAudioFlinger::openInput\n\nFor backward compatibility, until flags are correctly calculated,\nwe will assume that the request is for a low latency input stream.\n\nChange-Id: I76746834e870df00833dc77cbdaa2edd2ffeec95\n"
    },
    {
      "commit": "01cab9ce4fb203fab8f5115ff866f9f0cc96a73a",
      "tree": "7ceb2156dc9f740d6e5274113b36755a5995e18e",
      "parents": [
        "bc2fb720bbd0acd122bacc67e844e982d068f6f9",
        "373e21cc119cede767dc93d75c91645dbf9ae19f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 17:46:33 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 17:46:33 2014 -0700"
      },
      "message": "resolved conflicts for merge of 373e21cc to master\n\nChange-Id: I91afd8f9cba04559d21e1c84e25c5c60c990165d\n"
    },
    {
      "commit": "373e21cc119cede767dc93d75c91645dbf9ae19f",
      "tree": "09b524de6f681834c6124c1fe1fc574616d57d57",
      "parents": [
        "aae3f86c7c9a3bce5aab0d283343455d58b133b8",
        "be44e0e0ffda04725c4864d894a7cc80bd74b5ca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 10 00:16:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 10 00:16:50 2014 +0000"
      },
      "message": "am be44e0e0: am 0bffd2e6: Merge \"Switch frameworks/av/media/libmedia to the new icu.\"\n\n* commit \u0027be44e0e0ffda04725c4864d894a7cc80bd74b5ca\u0027:\n  Switch frameworks/av/media/libmedia to the new icu.\n"
    },
    {
      "commit": "51bc26144ca9c3872e41f9864622170d528be1b0",
      "tree": "cb0715bd047ce525ea2b54f4ad356dd99974e523",
      "parents": [
        "bc0c2c2d2a4cc058ab404f940f0ca65f595e047b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:52:17 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:52:17 2014 -0700"
      },
      "message": "Switch frameworks/av/media/libmedia to the new icu.\n\nChange-Id: I45349756bac6d89b02dba082ba6d606f4c489dcf\n"
    },
    {
      "commit": "7df8c0b799d8f52d6386e03313286dbd7d5cdc7c",
      "tree": "e87404b99042b2c21ffcc0c34ac397ae14b4c2d4",
      "parents": [
        "7c6f87856c0880ee39c2107a0fc3c9b41f8c195c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 12:23:29 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 16:28:41 2014 -0700"
      },
      "message": "IAudioFlinger::openRecord now suggests notificationFrames\n\nChange-Id: I08885cc381d03c522a23289e74f0e1ed46563863\n"
    },
    {
      "commit": "d9d7fa0873796ac661c44a7fcd6ad5ff697ff01f",
      "tree": "237375ce1605b2d7bd896b23f0a2ba2f0235ae09",
      "parents": [
        "f92f22becdf7fce1f55d5ebd80ac2caa2ad55602"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 24 08:01:46 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 01 07:57:32 2014 -0700"
      },
      "message": "Support for audio attributes on audio output of media player\n\nChange-Id: Iae4995c98e64add1ab9e6c8ae6501515032755f5\n"
    },
    {
      "commit": "34fb29696b0f3abf61b10f8d053b1f33d501de0a",
      "tree": "4511e1ea03cdcfe50a4754904a507ec1ca6ac1b7",
      "parents": [
        "23307f736759efbdc6125e1ec0abbc4b48036346"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jun 18 16:30:56 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 20 07:36:25 2014 -0700"
      },
      "message": "libmedia: 64-bit compile warnings\n\nChange-Id: I600f062fa7148c01851023c1240c39939e648002\n"
    },
    {
      "commit": "ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa",
      "tree": "0d406acdfea2d44cd430ef16ee2a25b7722e4b1d",
      "parents": [
        "29a8b2fe294a34ac7f004203426961a599e725ea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 09 17:22:27 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 19 10:05:57 2014 -0700"
      },
      "message": "AudioTrack: add support for compressed audio\n\nAdd support for compressed audio playback by use\nof an AudioTrack attached to a direct output thread.\n\nBug: 9428304.\n\nChange-Id: I4a61be9cf0e31003ca85935d6e0ee38ca8192e03\n"
    },
    {
      "commit": "5bd3f38638acab633d181359cc9ec27b80f84d43",
      "tree": "f4f234ec7e3c4649beabe5b03c1a1a0b2b3cd1f2",
      "parents": [
        "faabb51ceef13bf1e3f692219ac410c1cd75d0de"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 13 16:06:54 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 18 08:07:00 2014 -0700"
      },
      "message": "AudioPolicyManager: return output for audio attributes\n\nIn AudioPolicyManager, support querying an output\n or playback strategy for audio attributes,\n instead of a stream type,\nIn AudioTrack creation, use the output returned\n for the track\u0027s attributes.\n\nChange-Id: I0fef05845ba676404775e2e338c10e6a96237268\n"
    },
    {
      "commit": "faabb51ceef13bf1e3f692219ac410c1cd75d0de",
      "tree": "ad761b6b94a1fa782774b8a3227ed7b5354112fc",
      "parents": [
        "9c68ac03f16cc32625f6965e869432eae4fded2d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 11 16:55:06 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 17 16:59:52 2014 -0700"
      },
      "message": "AudioTrack construction with audio attributes\n\nStore audio attributes in AudioTrack class.\nWhen an AudioTrack is \"set\" with non null audio\n attributes, derive a stream type that reflects\n the attributes.\nWhen an AudioTrack is \"set\" without attributes,\n and only has a stream type, derive default\n audio attributes.\n\nChange-Id: I322b91fa9a7e193118960c5e78cdddd85d66f9ad\n"
    },
    {
      "commit": "ba7a4e11a66a7044dbbd767983865e1774092dc6",
      "tree": "2a0f477d4114b6cd3c0d2624d993fb4e136efe30",
      "parents": [
        "8b8e5d45928aed8592d321fe55f560e35a4fece8",
        "90732a3be5e70156486aca94bde8aa81106329ba"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jun 13 10:22:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 13 10:22:28 2014 +0000"
      },
      "message": "am 90732a3b: Merge \"Remove dependency on Parcel::{read,write}IntPtr\"\n\n* commit \u002790732a3be5e70156486aca94bde8aa81106329ba\u0027:\n  Remove dependency on Parcel::{read,write}IntPtr\n"
    },
    {
      "commit": "8b8e5d45928aed8592d321fe55f560e35a4fece8",
      "tree": "4b3f3a52af3086587e3ac3cb741698b005c64fb1",
      "parents": [
        "2a8270e6944fb3addfcba87f6885aaad196b8b88",
        "cbd74fcbd2528e3cdb699ac26e8ed579085dd49a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jun 13 11:19:14 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jun 13 11:19:14 2014 +0100"
      },
      "message": "resolved conflicts for merge of cbd74fcb to klp-modular-dev-plus-aosp\n\nChange-Id: I00270ef6fe813c0d3649483cbc3aba6af789e033\n"
    },
    {
      "commit": "9c68ac03f16cc32625f6965e869432eae4fded2d",
      "tree": "048251826118491e784077a2cdb3e9e02dc1f208",
      "parents": [
        "20d16a8af2dc95e827be693edabde4f09eb90c32",
        "b7f24b101d43139b4c747129bfbc4ecf5c468b86"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 13 21:37:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 12 03:30:50 2014 +0000"
      },
      "message": "Merge \"AudioSystem: remove unused stream type\""
    },
    {
      "commit": "20d16a8af2dc95e827be693edabde4f09eb90c32",
      "tree": "31349f9325750c969742a7fd8daf30843d7c9255",
      "parents": [
        "0d1004ad38955dffcb911656fc191eb29af9b4d5",
        "3bcffa136909c1fb6e88ee4efd12ccac18360a85"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 13 19:20:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 13 19:20:41 2014 +0000"
      },
      "message": "am 3bcffa13: force command flush after releasing a reference to shared memory\n\n* commit \u00273bcffa136909c1fb6e88ee4efd12ccac18360a85\u0027:\n  force command flush after releasing a reference to shared memory\n"
    },
    {
      "commit": "3bcffa136909c1fb6e88ee4efd12ccac18360a85",
      "tree": "6aedd2a1ead0fa545a93229fa2965477ec627de7",
      "parents": [
        "0ac53364b79dc72ee0c09f0efc46a22ab4374dbf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 12 18:38:45 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 13 08:56:56 2014 -0700"
      },
      "message": "force command flush after releasing a reference to shared memory\n\nAfter releasing a reference to a shared memory interface,\nIPCThreadState::self()-\u003eflushCommands() must be called to ensure\nthat the corresponding reference is also cleared immediately in the\nremote process. Otherwise the binder implementaiton will not\npush the clear systematically causing the memory region not to be freed.\n\nSee issues 10711502 and 2801375.\n\nBug: 14057166.\nChange-Id: If55f36f00d452d6cf00cf83bd2fba1c8f3abcb57\n"
    },
    {
      "commit": "7903bb2b3065d58cc75637900922b434f50024d9",
      "tree": "33e825d96a3c1ca8a7778d50068e738d0cfa7272",
      "parents": [
        "14c403fbab456a4a63586a767fbae498f5f8c260",
        "2a8270e6944fb3addfcba87f6885aaad196b8b88"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 00:15:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 12 00:15:39 2014 +0000"
      },
      "message": "am 2a8270e6: am c323737d: Merge \"Offer a type-safe album art interface.\"\n\n* commit \u00272a8270e6944fb3addfcba87f6885aaad196b8b88\u0027:\n  Offer a type-safe album art interface.\n"
    },
    {
      "commit": "2a8270e6944fb3addfcba87f6885aaad196b8b88",
      "tree": "991b282008b0b02747b7b29c929e9d157dc08e62",
      "parents": [
        "ca44dc79b5a163030ab0963f80aa771871de092d",
        "c323737dd46d724b4c1ec230b283f26ae2a22b4f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 00:06:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 12 00:06:25 2014 +0000"
      },
      "message": "am c323737d: Merge \"Offer a type-safe album art interface.\"\n\n* commit \u0027c323737dd46d724b4c1ec230b283f26ae2a22b4f\u0027:\n  Offer a type-safe album art interface.\n"
    },
    {
      "commit": "b7f24b101d43139b4c747129bfbc4ecf5c468b86",
      "tree": "1d7cc6375adac742866973ab15d4d5caddf7f033",
      "parents": [
        "1a93f0cbb99fc5a59c92bd913f29409022ae236d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 11 10:05:30 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 11 10:05:30 2014 -0700"
      },
      "message": "AudioSystem: remove unused stream type\n\nThe audio stream type is not used in the getSampleRate() and\n getFrameCount() methods.\n\nChange-Id: I3d065ae272bd039204cd323cdab9b60460034f2d\n"
    },
    {
      "commit": "8b1be2ca7cee71a4920d5d31fdcbad2b1d4ca49d",
      "tree": "6a22d7fcaacca08ef7b79c20bd0e6b3e72d9e7f0",
      "parents": [
        "c323737dd46d724b4c1ec230b283f26ae2a22b4f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 02 11:05:04 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu Jun 12 13:26:03 2014 -0700"
      },
      "message": "Update OMX messages for 64 bit\n\nChange node_id and buffer_id to uint32_t.\nEnsure IOMX messages are fixed size.\nRemove 64 bit compile warnings in associated files.\n\nChange-Id: Icdbef00aca575e5dc502ebb52e3ce7d0d7883203\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "f3e80dddd7376aa9deeb27de25e1d50030a2ad98",
      "tree": "a3ebf2e96fa0bb9b0375281692adf48333bca468",
      "parents": [
        "d3af4265dca4c8ebcead5376f1c73a5dafc34778"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Tue Jun 10 16:55:38 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jun 11 14:45:27 2014 -0700"
      },
      "message": "Offer a type-safe album art interface.\n\nBug: 15514223\nChange-Id: Iddfc33a00e6cd3779ca09c01a55f62b151f6ec95\n"
    },
    {
      "commit": "c5a66b77adcdfa2a403dfddc5ef3469fada75683",
      "tree": "ef85b25442af39ad9c5d84ce373e12a0f1c0cb59",
      "parents": [
        "b9e55c4f17a91f070f78fb9fd72c08e461526e9e",
        "bcca9e072c1f288a53ce6862936f57dc36488f96"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Jun 11 22:42:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jun 11 21:23:31 2014 +0000"
      },
      "message": "Merge \"Remove dependency on Parcel::{read,write}IntPtr\""
    },
    {
      "commit": "5f6af1a8e34381ca2ac2527fcefe220a22f49b53",
      "tree": "17cee62e00cb423322c36ed322234df6f07eab13",
      "parents": [
        "31dcd338b3826928646d77f23f977ecdd52598a3"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Jun 10 08:26:33 2014 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Jun 10 22:03:55 2014 +0000"
      },
      "message": "MediaProfiles: Add 4K video related constants\n\nBug: 15287656\nChange-Id: I4c49640a349afb336f52db1636902fc216bff6ad\n"
    },
    {
      "commit": "90732a3be5e70156486aca94bde8aa81106329ba",
      "tree": "632b7aa4c23e8eaaafc1f3341161fe23aad3e58f",
      "parents": [
        "cbd74fcbd2528e3cdb699ac26e8ed579085dd49a",
        "1766b08d35a45e12a13b264a5944e1b622b8715b"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jun 13 09:26:30 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Jun 10 21:26:11 2014 +0000"
      },
      "message": "Merge \"Remove dependency on Parcel::{read,write}IntPtr\""
    },
    {
      "commit": "1766b08d35a45e12a13b264a5944e1b622b8715b",
      "tree": "b2b3d9c15530974e67da937af2b80420040451e3",
      "parents": [
        "c323737dd46d724b4c1ec230b283f26ae2a22b4f"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Jun 09 15:51:38 2014 -0700"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Thu Jun 12 18:02:30 2014 +0100"
      },
      "message": "Remove dependency on Parcel::{read,write}IntPtr\n\nbug: 15424960\nbug: 15107693\n\n(cherry picked from commit bcca9e072c1f288a53ce6862936f57dc36488f96)\n\nChange-Id: I3ba59fccb184e99a07f6f82ccdbd00e5204901f6\n"
    },
    {
      "commit": "bcca9e072c1f288a53ce6862936f57dc36488f96",
      "tree": "d705cbf92c0385ee82a2626e7bc8003df4fd6768",
      "parents": [
        "1a93f0cbb99fc5a59c92bd913f29409022ae236d"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Jun 09 15:51:38 2014 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Jun 10 13:09:46 2014 -0700"
      },
      "message": "Remove dependency on Parcel::{read,write}IntPtr\n\nbug: 15424960\nbug: 15107693\n\nChange-Id: Ic3bf37f591e620985c37f345f9a5544fd20ec4a1\n"
    },
    {
      "commit": "c263ca0ad8b6bdf5b0693996bc5f2f5916e0cd49",
      "tree": "d513a586c518ed6f061cf446a5f2e3e18017b4f2",
      "parents": [
        "cc839bd4727be02d9352f46d043a7e9cc9c7d642"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 04 20:31:46 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jun 05 03:36:20 2014 +0000"
      },
      "message": "Squashed commit of the following:\n\ncommit 9128d6ffec43731d723f9b394f243d940f4c7e41\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Tue May 13 10:38:42 2014 -0700\n\n    Use of fast capture by normal capture\n\n    Will only configure fast capture path if the input buffer size is less than\n    10 ms and the input sample rate is same as the primary output sample rate.\n\n    Change-Id: I4a7cdc6069d750845412c626d27e83f72a1ab397\n\ncommit 2e5e0806a5abe7499848358ef5fde5c26405000d\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Mon Jun 2 08:29:22 2014 -0700\n\n    Add mPrimaryOutputSampleRate\n\n    Change-Id: I46b527fc3f2b5a5720a74b4f0b9a8f2e0d570b09\n\ncommit baf1d73467923996d1b1f2a9237260cc5697e050\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 30 10:42:03 2014 -0700\n\n    Change parameter type for volume to float in AudioMixer\n\n    Change-Id: I4da1505ce852505f86f8e5b87f60e8edceeb30e0\n\ncommit 40fe20fa9760cd03c69778c2021cf7a490d75ece\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 30 10:35:47 2014 -0700\n\n    Rename UNITY_GAIN to UNITY_GAIN_INT in AudioMixer\n\n    Change-Id: Ic040311305026f0b4c4280a5b3bef7a447ac1da3\n\ncommit 37c9a2b49f876abc5ff537a9ec036d7f0a423775\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Thu May 29 21:33:13 2014 -0700\n\n    Refactor setVolumeRampVariables in AudioMixer\n\n    Change-Id: I8fcf3101bcea292de7c65433fa578f1c9cdd0974\n\ncommit 397070eca31f121d5d3993de1bfea99aaea5d4f3\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Thu May 29 18:52:38 2014 -0700\n\n    Fix floating point output from mixer\n\n    A buffer pointer was being erroneously reset to buffer start,\n    potentially causing an audio glitch. The floating point\n    output mode is not enabled at this time, but will be in\n    the future.\n\n    Change-Id: If8b6414d232f064f3a2e2c5a6da889a91b27fb24\n\ncommit 2e61aa5b33b2247bbc5d4eaa0b519df9accd4bbc\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 23 21:22:17 2014 -0700\n\n    Add multiple format capability to FastMixer\n\n    Floating point data from MixerThread into FastMixer.\n    Multiple output format capability from FastMixer to Sink.\n\n    Change-Id: I0da17810ee71381a39a006c46faec71108d22c26\n\ncommit b9ea653c702a785bbd23a66c5e588d40b4192c4e\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Thu May 29 15:53:09 2014 -0700\n\n    Avoid resetting BufferProviders in mixer unnecessarily\n\n    Change-Id: Iad85c4dfd21be1dbf89dc11906106b34219376f8\n\ncommit 7f1a6d6da21c616f80cf9ba21bea11b419ec561b\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Tue May 27 12:32:17 2014 -0700\n\n    Update dynamic resampler buffer fetching\n\n    Make the criteria tight for fetching to avoid storing\n    excessive frame data internal to the resampler.\n    This should reduce jitter in frame delivery computation.\n\n    Bug: 14962343\n    Change-Id: I7adaf714d11c272696ccdbf218bda994c7217477\n\ncommit b5e4aac07b9a02f0c803c090058602b03ac09ebb\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Tue May 27 12:30:54 2014 -0700\n\n    Allow kFastTrackMultiplier to be specified per device\n\n    Change-Id: I4eaaaf038df720cec4f5d9221d1b632970f9e3dd\n\ncommit b93cd97a52af31122df2da2cc0415cda888c8c73\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 23 21:13:31 2014 -0700\n\n    Rename mixBuffer to mMixerBuffer in FastMixer\n\n    Likewise mixBufferState becomes mMixerBufferState.\n    This harmonizes with the naming in AF::MixerThread.\n\n    Change-Id: I1255d7c07cc2c6ee925d7430925236d2bd163122\n\ncommit 8340758622b9711365a8801806cbdf934803c63f\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Mon May 12 16:51:41 2014 -0700\n\n    Add multiple format capability to AudioMixer\n\n    Change-Id: I04ac1cafd90b6ed652f8d51888ad07576678f0bc\n    Signed-off-by: Andy Hung \u003chunga@google.com\u003e\n\ncommit 6b695b9d094820c232a897a3fabbe83d2b7193fe\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Thu Mar 13 14:59:31 2014 -0700\n\n    Start adding FastCapture based on FastThread WIP\n\n    This version supports at most one fast capture client.\n\n    Change-Id: Idf609bfc80ae22433433d66a5232c043c65506df\n\ncommit e951ad05a2c388471d7e2806d91e7d51325a150a\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Mon May 12 11:06:26 2014 -0700\n\n    Move validation of frameCount from set to openRecord_l\n\n    This move is needed because frameCount is validated on server side for\n    fast tracks (as should be done for normal tracks too).\n\n    Change-Id: I6d99e80869fd90fab373cf60ef348c01f075fbca\n\ncommit 73e76992dbba794894837c38e5472312ea829cf3\nAuthor: Glenn Kasten \u003cgkasten@google.com\u003e\nDate:   Tue May 13 10:41:52 2014 -0700\n\n    Allow track buffer \"allocation\" to be from pipe\n\n    Change-Id: Ib9ac170f8e8b7746b3588157a56cbee3b753a1cb\n\ncommit 60de1d7ded05c6304037d4858b401094b1d2b4d3\nAuthor: Andy Hung \u003chunga@google.com\u003e\nDate:   Fri May 9 15:02:21 2014 -0700\n\n    Add format parameter to getTrackName() and track_t\n\n    Change-Id: Ia152a839014e235fbfb656104c15d7c1b456d02e\n    Signed-off-by: Andy Hung \u003chunga@google.com\u003e\n\nChange-Id: Ied0ade8b25d23e89bb03319a7e3135c238f735b9\n"
    },
    {
      "commit": "e40ed90293eeb0feecb5b7729cf24f8ecea9b412",
      "tree": "6b55972e93b923428542481d4d9078c98f533cb1",
      "parents": [
        "a408743e8a759b344ac95322ae336459a81edf24",
        "26594add1ec0b6255c96b39e43ccdc95b2c480aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 23:42:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 04 23:42:59 2014 +0000"
      },
      "message": "am 26594add: Merge \"audio policy: new setAudioPortConfig implementation\" into lmp-preview-dev\n\n* commit \u002726594add1ec0b6255c96b39e43ccdc95b2c480aa\u0027:\n  audio policy: new setAudioPortConfig implementation\n"
    },
    {
      "commit": "a121f90f388343dc48793cbc7eb899aba42e7664",
      "tree": "a35526f7ec819e7e539c537fcf4b1b3b5d06a6fc",
      "parents": [
        "1f2f2230900581e5de9cf01a883e5d9338f0df94"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 03 13:32:54 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 09:30:28 2014 -0700"
      },
      "message": "audio policy: new setAudioPortConfig implementation\n\nRewrite setAudioPortConfig() to take advantage of the new\nAudioPortConfig class.\n\nThe configuration is now checked against AudioPort capabilities\nand stored in the AudioPortConfig.\n\nFix a bug where the config mask was not set properly when calling\nsetAudioPortConfig at the PatchPanel interface.\n\nRemove debug log in IAudioPolicyService.\n\nBug: 14815883.\nChange-Id: I7eb7683a96e049581c13f2a212486507883d008d\n"
    },
    {
      "commit": "6dbb5e3336cfff1ad51d429fcb847307c06efd61",
      "tree": "1918b6cde40e188641e729b6bbde39cce81085bd",
      "parents": [
        "4ea00a25cf85877b48ebd1e15a657cfaab29af58"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue May 13 10:38:42 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 02 11:30:29 2014 -0700"
      },
      "message": "Use of fast capture by normal capture\n\nWill only configure fast capture path if the input buffer size is less than\n10 ms and the input sample rate is same as the primary output sample rate.\n\nChange-Id: I4a7cdc6069d750845412c626d27e83f72a1ab397\n"
    },
    {
      "commit": "72aa32f7dbbfb658097930b57659d8e50f24a953",
      "tree": "7033c38865bfdb413c5ca891fd4f6d0a98a84d99",
      "parents": [
        "cf570853ee36eeb58be38ea3dac16a17c6a5d4ba",
        "b52c152d553556b2d227ffc943489de0c60b4b02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 18:51:48 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 18:53:14 2014 -0700"
      },
      "message": "resolved conflicts for merge of b52c152d to master\n\nChange-Id: I34869bda071d511c9595ea0a5ff6571eb34da059\n"
    },
    {
      "commit": "b52c152d553556b2d227ffc943489de0c60b4b02",
      "tree": "bcaca952efbd1ffa7eefa7251beafc3d2574a04a",
      "parents": [
        "6a94d69dc4f32abb53c466a96f905bb199be6417"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:27:36 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 18:01:58 2014 -0700"
      },
      "message": "audio policy: add routing update client interface\n\nAdded IAudioPolicyServiceClient client binder interface\nfor client process to receive notifications from AudioPolicyService\nwhen audio ports are added/removed or audio patches created/released.\n\nThe audio patches owned by a given client are automatically released when\nthis client binder dies.\n\nBug: 14815883.\n\nChange-Id: I6013f6aec03b50565cffb1ad2cd1f0f8852032c5\n"
    },
    {
      "commit": "203b1a18a806e2c56c701aac49cda963bccfad5b",
      "tree": "f8dd30db10c795c93582112bba8e037aa9ea78d4",
      "parents": [
        "951f455566775e5f01e67c5ee26863d7d19209d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 01 10:34:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:30:22 2014 -0700"
      },
      "message": "DO NOT MERGE - IAudioPolicyService interface extension for patch panel\n\nChange-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1\n"
    },
    {
      "commit": "1cda6afaf6207a41303e653a6ecd7909d73186eb",
      "tree": "f484bf583d64059960409689406e6541415e68f0",
      "parents": [
        "fe9adc4850572cb04a9cf7877d0e77d0c1fde84e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 11 09:22:20 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:28:41 2014 -0700"
      },
      "message": "DO NOT MERGE - IAudioFlinger interface extension for patch panel\n\nChange-Id: Iaabe0a7e315d5725e00a74a6ed40339b98f20330\n"
    },
    {
      "commit": "8670c31fddbeadcf9627aa970c69a823f13939ff",
      "tree": "14f3f327e5b2ff589003eddab447971166710b14",
      "parents": [
        "1c333e252cbca3337c1bedbc57a005f3b7d23fdb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 01 10:34:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 27 10:54:00 2014 -0700"
      },
      "message": "IAudioPolicyService interface extension for patch panel\n\nChange-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1\n"
    },
    {
      "commit": "4b123406c10c17852734a1b691bb9ce2a4cb7caf",
      "tree": "23cb27ad387a8a17b248b63b47f813e4a6b1dda8",
      "parents": [
        "5912117110ae6efadd862fcb0e395fdcd18aa00c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 11 09:22:20 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 27 09:09:51 2014 -0700"
      },
      "message": "IAudioFlinger interface extension for patch panel\n\nChange-Id: Iaabe0a7e315d5725e00a74a6ed40339b98f20330\n"
    },
    {
      "commit": "29b703eec27b305e7b5b2343bf257643e38f6b68",
      "tree": "0612b8e650dac1f4f7c2e51afa187b4601f113ca",
      "parents": [
        "6181ffd90a436f333c43a7f812391eee2c35005a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 12 11:06:26 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 22 16:19:05 2014 -0700"
      },
      "message": "Move validation of frameCount from set to openRecord_l\n\nThis move is needed because frameCount is validated on server side for\nfast tracks (as should be done for normal tracks too).\n\nChange-Id: I6d99e80869fd90fab373cf60ef348c01f075fbca\n"
    },
    {
      "commit": "e348c5b72ad889389c7c1c900c121f0fbee221b5",
      "tree": "9c77581ad7520309c0bb90f11bba766a6cd61b28",
      "parents": [
        "9382378b6b271949bdce527ea3da748c13c4c692",
        "c0bf836f8a4e34d66c10a2bb8b8cee0db04790cc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:47:50 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:47:50 2014 -0700"
      },
      "message": "resolved conflicts for merge of c0bf836f to master\n\nChange-Id: I5cf238fa56d6fff443b212870cf9dd7f1110e7da\n"
    },
    {
      "commit": "c0bf836f8a4e34d66c10a2bb8b8cee0db04790cc",
      "tree": "b7bb591c3e6f1beb8763f6efb4db4c7a96d983d9",
      "parents": [
        "b108091734ee7668084cc1063187c2b10ddb7bb7",
        "ad71caf25e31ecfc4ecf2c925e38fd87905fbc8e"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:32:20 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 01:32:20 2014 +0000"
      },
      "message": "am ad71caf2: am 3b6da6bf: Merge \"Move frameworks/av off private API.\"\n\n* commit \u0027ad71caf25e31ecfc4ecf2c925e38fd87905fbc8e\u0027:\n  Move frameworks/av off private API.\n"
    },
    {
      "commit": "ad71caf25e31ecfc4ecf2c925e38fd87905fbc8e",
      "tree": "74b759675cdc008e10e9b4fa94344e9dd54f8868",
      "parents": [
        "acbd9492996348bf4565fbaa5a14772f0f4ace38",
        "3b6da6bfb50a1c0324fb4c87326d3a477944d5fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:28:18 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 01:28:18 2014 +0000"
      },
      "message": "am 3b6da6bf: Merge \"Move frameworks/av off private API.\"\n\n* commit \u00273b6da6bfb50a1c0324fb4c87326d3a477944d5fe\u0027:\n  Move frameworks/av off private API.\n"
    },
    {
      "commit": "ee499291404a192b059f2e04c5afc65aa6cdd74c",
      "tree": "1c1537b599b21c331b15493f776adcbff307ac2f",
      "parents": [
        "d084206d5a4a5364211af46e4201311933e83bfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 17:55:51 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:15:33 2014 -0700"
      },
      "message": "Move frameworks/av off private API.\n\nBug: 11156955\nChange-Id: Ib3bb9d66a2bf92977c2445b62aa074a2d7a45aea\n"
    },
    {
      "commit": "9382378b6b271949bdce527ea3da748c13c4c692",
      "tree": "9b20c4e7b8e8dc733937f9125cd22b4c11c046a7",
      "parents": [
        "d83062287758be57d1d0908b30bb18aa9b367f38",
        "b108091734ee7668084cc1063187c2b10ddb7bb7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:01:17 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:01:17 2014 -0700"
      },
      "message": "resolved conflicts for merge of b1080917 to master\n\nChange-Id: Iabbe3e95e29f28461ff722b550e8a9f35bd2528f\n"
    },
    {
      "commit": "b108091734ee7668084cc1063187c2b10ddb7bb7",
      "tree": "bca6f3cc448bf5e8ff669b747615a6c2eef49d0f",
      "parents": [
        "be2664dac34a6a9d9f754d4097b32158d4947cd2",
        "acbd9492996348bf4565fbaa5a14772f0f4ace38"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 00:41:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 00:41:52 2014 +0000"
      },
      "message": "am acbd9492: am d084206d: Merge \"Move frameworks/av off __futex_syscall3.\"\n\n* commit \u0027acbd9492996348bf4565fbaa5a14772f0f4ace38\u0027:\n  Move frameworks/av off __futex_syscall3.\n"
    },
    {
      "commit": "acbd9492996348bf4565fbaa5a14772f0f4ace38",
      "tree": "396267d5b424f0335491e80a95920ae200b956d9",
      "parents": [
        "4c9bde7a3e636d3ecccd7905d142dbbb80e977a0",
        "d084206d5a4a5364211af46e4201311933e83bfc"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 00:39:10 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 22 00:39:10 2014 +0000"
      },
      "message": "am d084206d: Merge \"Move frameworks/av off __futex_syscall3.\"\n\n* commit \u0027d084206d5a4a5364211af46e4201311933e83bfc\u0027:\n  Move frameworks/av off __futex_syscall3.\n"
    },
    {
      "commit": "77e1512aee8092069514973379a59a318e721be3",
      "tree": "875411e1d44b2cf12e99134af2d7cfb7f9acceae",
      "parents": [
        "ce473c32705e2d1c5fcc817198101e1220b3c8f7"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 17:31:18 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 17:31:18 2014 -0700"
      },
      "message": "Move frameworks/av off __futex_syscall3.\n\nBug: 11156955\nChange-Id: I943080bc51b6efa781059b48b5b5ecc4fa287512\n"
    },
    {
      "commit": "b4db73d022f3de3530bc2b3c9c831ccfdd1a2ead",
      "tree": "76def5c5d352697b31806a6c0b842ef1a0bc8925",
      "parents": [
        "1e54e6dfc1bb8d33089ed8857f0f194e696f85e2",
        "e541269be94f3a1072932d51537905b120ef4733"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 19 22:06:18 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon May 19 22:06:18 2014 +0000"
      },
      "message": "Merge \"Use new channel count functions for audio masks\""
    },
    {
      "commit": "c56f3426099a3cf2d07ccff8886050c7fbce140f",
      "tree": "9e486a809f9d500a70fd26c4e1d2596ded190dbe",
      "parents": [
        "7c96d53a65085f42ac2b6d416cbc16fd36ed72ff"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 21 17:53:17 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon May 19 09:46:25 2014 -0700"
      },
      "message": "Pass stereo gains as packed minifloat\n\nThis will allow (eventually) a greater dynamic range for gains.\nHowever there are still a few remaining places in effects and mixer\nthat will also need to be changed in order to get the full benefit.\n\nAlso fixes a minor bug: was not checking for NaN in AudioTrack C++.\n\nChange-Id: I63bce9e82e0a61546d8ff475fb94bcb700d99c96\n"
    },
    {
      "commit": "e541269be94f3a1072932d51537905b120ef4733",
      "tree": "39646def02d7230929eb85189f48b9193b8c23a0",
      "parents": [
        "7c96d53a65085f42ac2b6d416cbc16fd36ed72ff"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 16 11:25:07 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 16 15:05:05 2014 -0700"
      },
      "message": "Use new channel count functions for audio masks\n\nChange-Id: Ia658ab4b6320d19fdb50f123c930918724ff0ef3\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "609b815a3131d22da38b2f452faa9f89daad4039",
      "tree": "16645cc8f518457029ff97cbcdc837599846a076",
      "parents": [
        "021cf9634ab09c0753a40b7c9ef4ba603be5c3da"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 02 11:05:04 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 14 16:43:03 2014 -0700"
      },
      "message": "Update OMX messages for 64 bit\n\nChange node_id and buffer_id to uint32_t.\nEnsure IOMX messages are fixed size.\nRemove 64 bit compile warnings in associated files.\n\nChange-Id: Icdbef00aca575e5dc502ebb52e3ce7d0d7883203\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "844f88ccfcca95687e774bccb5e9065da61d33f8",
      "tree": "bfe432c13ed27513ad40db6cac889f5d580514a1",
      "parents": [
        "0fdbdd2a3909e4692fa3baaaa1f53eb91b31af56"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 09 13:38:09 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 09 16:34:39 2014 -0700"
      },
      "message": "Cache mCblk in local variable cblk\n\nThis is the style used throughout the rest of AudioTrackShared.\n\nChange-Id: I959a6be3064e087bb19eba41173fd130dfcb4a9a\n"
    },
    {
      "commit": "fe9570c7b937b49d3603ccb394aed732b79bc6be",
      "tree": "9bc651997eec71010c91543e390472a6f155f775",
      "parents": [
        "16821ec9e1619f4edcc87f21ea1537580109b14d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 07 08:42:25 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 09 16:15:49 2014 -0700"
      },
      "message": "Remove obsolete IAudioRecord::getCblk()\n\nChange-Id: Id20b5efd765b9796b0e391610e06dc928a829ebf\n"
    },
    {
      "commit": "d776ac63ce9c013c9626226e43f7db606e035838",
      "tree": "f75ca450359caa5a69b4124399d19d0522046826",
      "parents": [
        "0c5b910e6eb2b9b2a622ccc0dd66e8fcae3eb28b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 07 09:16:09 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 09 11:32:43 2014 -0700"
      },
      "message": "IAudioFlinger::openRecord returns IMemory(s)\n\nopenRecord() now explicitly returns the control block and data buffer\nas separate IMemory references.  If the IMemory for data buffer\nis 0, this means it immediately follows the control block.\n\nChange-Id: Ic098f88f0e037f8fbe30006689e18cacacf09d06\n"
    },
    {
      "commit": "96b292fd3c76f9af155ee6f7a8559258eeedc6fd",
      "tree": "a52e3ff228517b1a9b0a712e9d73ce9358cb0ad3",
      "parents": [
        "11cd9a68c3136ad5e5a5ea3bfd439fce3ce29b20",
        "b773038277ba328696832b690b91ce6e95bd1a6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 08 19:02:25 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 08 19:02:25 2014 +0000"
      },
      "message": "Merge \"Add client side support for more AUDIO_FORMAT_PCM_*\""
    },
    {
      "commit": "b773038277ba328696832b690b91ce6e95bd1a6c",
      "tree": "8c2ed603c214332d4599c564a49e057b6095bd15",
      "parents": [
        "8e085cbeccb1138d52a0a423af02e6ab41b4fee4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 30 15:50:31 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 07 14:24:58 2014 -0700"
      },
      "message": "Add client side support for more AUDIO_FORMAT_PCM_*\n\nAs much as possible, the checks for specific formats are done on server\nside.  The only exception is 8-bit, which needs a client side workaround.\n\nChange-Id: I52fe086c039460c8dac009de03b67eb54c56a836\n"
    },
    {
      "commit": "828f883a43f66f77d776a75d0ea2b87c7c826071",
      "tree": "ab16e918df8275d8460a00b72cdd6ced890350bb",
      "parents": [
        "8e085cbeccb1138d52a0a423af02e6ab41b4fee4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 07 11:17:52 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed May 07 11:28:13 2014 -0700"
      },
      "message": "Fix a couple of fast capture typo bugs\n\nAudioRecord constructor was not passing flags through to set().\nServer-side check was using wrong kind of channel mask.\n\nChange-Id: Ifaa880ec323771e9fd168262be05f3e539f53390\n"
    },
    {
      "commit": "c4b88a8d0f524666bf0f390075c334d047a104f2",
      "tree": "a2d45172a9d794b8b626ed9acadb656e346b2e9c",
      "parents": [
        "b53fc4ef8da47df8d5f580e8ee6135866ffebc33"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Apr 30 16:54:30 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 11:52:56 2014 -0700"
      },
      "message": "Fix bug for direct track with PCM !\u003d 16-bit\n\nThe AUDIO_FORMAT_PCM_8_BIT format was being converted to\nAUDIO_FORMAT_PCM_16_BIT on client side even for direct tracks.\nThat conversion was incorrect; it should only be done for mixed tracks.\n\nAlso remove checks for specific PCM formats in the generic part of\nserver side of createTrack.  Those format checks should only be done by\nthe thread.  This will allow direct tracks for PCM 8-bit, PCM 24-bit, etc.\n\nChange-Id: If5b9fd79f8642ed93e2aeabcaf4809b2ed798978\n"
    },
    {
      "commit": "b53fc4ef8da47df8d5f580e8ee6135866ffebc33",
      "tree": "e0ae90826c9f015c3f4f48faddf93b94ed84aea6",
      "parents": [
        "33ddcb6f1049cb4b6c71bb7ea605375f9492601d",
        "47c888a9fb74f8a46fbf666f0611fd1a9491466f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 08:03:58 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 08:03:58 2014 -0700"
      },
      "message": "resolved conflicts for merge of 47c888a9 to master\n\nChange-Id: I4ba2fdc6374a93a892bb7651b0d174e495f09bf6\n"
    },
    {
      "commit": "47c888a9fb74f8a46fbf666f0611fd1a9491466f",
      "tree": "ea7631cdcd94ec77ac39be13ed601cce6da89504",
      "parents": [
        "f38e190887e73bc08735af95b073ebfaabd65f95",
        "e580aa4a756d1825c440a4b4309022b1babb6de1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 14:51:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 02 14:51:37 2014 +0000"
      },
      "message": "am e580aa4a: am 86438382: Merge \"When passing a size_t via binder, use 64-bits unconditionally\"\n\n* commit \u0027e580aa4a756d1825c440a4b4309022b1babb6de1\u0027:\n  When passing a size_t via binder, use 64-bits unconditionally\n"
    },
    {
      "commit": "e580aa4a756d1825c440a4b4309022b1babb6de1",
      "tree": "689e1e7dbd0748d317f8363af7f37090929e9664",
      "parents": [
        "3d9164da1b3d58701e41c78e06839d61ed1b4ff9",
        "86438382a381eb39ed8da53fbd16cf6730fded6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 14:48:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 02 14:48:27 2014 +0000"
      },
      "message": "am 86438382: Merge \"When passing a size_t via binder, use 64-bits unconditionally\"\n\n* commit \u002786438382a381eb39ed8da53fbd16cf6730fded6c\u0027:\n  When passing a size_t via binder, use 64-bits unconditionally\n"
    },
    {
      "commit": "86438382a381eb39ed8da53fbd16cf6730fded6c",
      "tree": "46cf9cd7ccdf436fe2585e45dfb1998529846caa",
      "parents": [
        "236f8ddd23af92f98f2deae86bf6e6b5c9278857",
        "e03dd22716e688faa56467561827d9b1ea0c4214"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri May 02 14:45:29 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri May 02 14:45:29 2014 +0000"
      },
      "message": "Merge \"When passing a size_t via binder, use 64-bits unconditionally\""
    },
    {
      "commit": "33ddcb6f1049cb4b6c71bb7ea605375f9492601d",
      "tree": "bcacaacc4826f9fb40e2acf99cbac5dd65a9bb74",
      "parents": [
        "8710fb4b39e1807a5f2a4486fe0b140129b3618d",
        "877a0ac7e8677fa1cbd0e8565ad9d38ba0db5fc0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 01 22:53:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu May 01 22:53:52 2014 +0000"
      },
      "message": "Merge \"Use AUDIO_INTERLEAVE_* constants\""
    },
    {
      "commit": "8710fb4b39e1807a5f2a4486fe0b140129b3618d",
      "tree": "a7a9585f998deede697ba6de8353a9727ddbb55f",
      "parents": [
        "88014186c34dbc5c8f4cdf0936cae2a36e4b61ac",
        "f38e190887e73bc08735af95b073ebfaabd65f95"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu May 01 22:25:14 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 22:25:14 2014 +0000"
      },
      "message": "am f38e1908: am 3d9164da: am 236f8ddd: Merge \"Add missing include\"\n\n* commit \u0027f38e190887e73bc08735af95b073ebfaabd65f95\u0027:\n  Add missing include\n"
    },
    {
      "commit": "f38e190887e73bc08735af95b073ebfaabd65f95",
      "tree": "f306e4c8f7efcfa2a2af11c4094c2598f01ff649",
      "parents": [
        "ee46bd378b7a68789be9c85d8a59fa02d4aed030",
        "3d9164da1b3d58701e41c78e06839d61ed1b4ff9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu May 01 22:22:33 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 22:22:33 2014 +0000"
      },
      "message": "am 3d9164da: am 236f8ddd: Merge \"Add missing include\"\n\n* commit \u00273d9164da1b3d58701e41c78e06839d61ed1b4ff9\u0027:\n  Add missing include\n"
    },
    {
      "commit": "3d9164da1b3d58701e41c78e06839d61ed1b4ff9",
      "tree": "057a0574d4c03123ad4497104e3691c9c16417dd",
      "parents": [
        "2b0b701f57c5efebe868d0eedce8cfc399007e8a",
        "236f8ddd23af92f98f2deae86bf6e6b5c9278857"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Thu May 01 22:20:06 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 01 22:20:06 2014 +0000"
      },
      "message": "am 236f8ddd: Merge \"Add missing include\"\n\n* commit \u0027236f8ddd23af92f98f2deae86bf6e6b5c9278857\u0027:\n  Add missing include\n"
    }
  ],
  "next": "236f8ddd23af92f98f2deae86bf6e6b5c9278857"
}
