)]}'
{
  "log": [
    {
      "commit": "49f36ba3b4624ddd3d7efa34c95128a73bda6208",
      "tree": "9427c132f2f998021c1ae06078174c3396bc5f54",
      "parents": [
        "b3ded702104331ae35597eef28f670e407a1b519"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 06 13:02:02 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 22 20:05:46 2017 +0000"
      },
      "message": "Logs use either %#x or 0x%x for flags, channel mask, format, device\n\nPreferred is %#x but 0x%x is also permitted because it is widely used.\n\nThe benefit is that it reduces ambiguity and possible confusion,\nwithout needing to read the source code for each log.\n\nTest: builds OK and logs are less ambiguous\nChange-Id: Ie2404e071d22278b8bba1e094ad336887844212c\n"
    },
    {
      "commit": "d466435670d1beb80beeeb1a140ebe6a5bfd0d9f",
      "tree": "d6f22c53e3603b0b69a54ec9bad1a733c46b6785",
      "parents": [
        "61e916dd6b0c8701b42f3f392e51e5b52ca38e65",
        "116a49881b35f561f6ee316990d425fad56e7487"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Dec 21 21:54:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 21 21:54:59 2017 +0000"
      },
      "message": "Merge \"AudioEffect: Convert aux buffer format from q4.27 to float\""
    },
    {
      "commit": "53ad17fd64e1415d7c29480f0cc3d413f1c71936",
      "tree": "ca9dea18793fad9c9293e5f6cecb590a5d375db0",
      "parents": [
        "28288fb0b1da843cdd37edab0cdecff32abacdce"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 20 09:21:26 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 21 09:26:23 2017 -0800"
      },
      "message": "ToneGenerator: fix use of STREAM_VOICE_CALL\n\nToneGenerator is only used for signalling, never for voice.\nIn order to use proper audio attributes usage and content type, convert\nrequests to play on stream VOICE_CALL to stream DTMF.\nThis will produce consistent routing and volume behavior when apps use\nDTMF or VOICE_CALL streams.\nAlso use audio attributes when creating the AudioTrack\n\nTest: CTS for ToneGenerator, voice and VoIP calls\nChange-Id: Ic67abaeed0ea09f08ad5586cebe858e74fe21af9\n"
    },
    {
      "commit": "0a7885e717e498167520a6ed2fdec45fb472ceee",
      "tree": "b87587a81592d90cc382b1df6bdb999a2ca08096",
      "parents": [
        "724a1816e7bd503d7a1f491a90f76c8cf3ca6a16"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 06 16:48:41 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 14:29:33 2017 -0800"
      },
      "message": "add test for AudioRecord constructor\n\nThis test contructs a number of AudioRecords from arguments\nlisted in an input file and outputs dumps of the constructed\nAudioRecords to an output file.\nThe output file can be compared to previous iterations to spot regressions.\nAn reference input file and the corresponding output file are added for\nfurther comparison.\n\nTest: run this test\nChange-Id: I0d1b596ca91c3c58f159887fbd48aa3f04ae38c2\n"
    },
    {
      "commit": "724a1816e7bd503d7a1f491a90f76c8cf3ca6a16",
      "tree": "e556dc3d59e6b5ad93c7015012017f914ea5ea19",
      "parents": [
        "896c9670846cc66d54ba86a978109817818c3929"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 06 16:59:56 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 14:29:33 2017 -0800"
      },
      "message": "add dump() method to AudioRecord\n\nAdd a dump() method to AudioRecord.\nCan be used by dumpsys or tests.\n\nTest: run test_create_audiorecord\nChange-Id: I4b3133601eeff4d5447ca2c5b13a01ff3451b6c7\n"
    },
    {
      "commit": "b1cc36b5d52de7cb3d78426d41dee87f25d7164a",
      "tree": "aa88693bc980e3209f20133052fd33e059af1334",
      "parents": [
        "f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ff"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 11 12:14:16 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 14:29:28 2017 -0800"
      },
      "message": "Revert \"Revert \"restrict binder transactions to audioserver\"\"\n\nThis reverts commit 009c1e37d07936178b59346ee8f7cb19484644b6.\n\nBug: 70388312\nTest: AudioRecord CTS, Audio smoke tests\nChange-Id: I263aa1ed7ef832d593bc0fb02000d986ad1a3f69\n"
    },
    {
      "commit": "f14db3c3ebc1ea29b3eb5b7e9b944cabcb5f83ff",
      "tree": "ebe89d037006cc16ed8a9284563a475b6eee3348",
      "parents": [
        "ea5523d88c6dc9662621db5fc62bf50eff0fe4ba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 08 14:20:36 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 12 14:28:41 2017 -0800"
      },
      "message": "Revert \"Revert \"refactor AudioRecord and AudioFlinger openRecord()\"\"\n\nThis reverts commit 0aa3c6eba07f987fe84b5fa450274a8e730971e3.\n\nBug: 70388312\nTest: AudioRecord CTS, Audio smoke tests\nChange-Id: I45394bccf82b922aa2b68fee3e02afc280f6729c\n"
    },
    {
      "commit": "3700e162a5526ada762d081de34c9abdd085c5fe",
      "tree": "87a9cf3e64431512fc413fd5833e7cb02b2bfa2a",
      "parents": [
        "cef7b7a656aaa1d6e875a0f0ffdf6e31f17d1aa6",
        "009c1e37d07936178b59346ee8f7cb19484644b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 09 01:13:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 09 01:13:29 2017 +0000"
      },
      "message": "Merge \"Revert \"restrict binder transactions to audioserver\"\""
    },
    {
      "commit": "009c1e37d07936178b59346ee8f7cb19484644b6",
      "tree": "0d5dc5b43b751d7ae701cf8d1afee1835b8b1d45",
      "parents": [
        "4db794441a5ef63733e109213269bb6324387b36"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 09 01:12:24 2017 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 09 01:12:24 2017 +0000"
      },
      "message": "Revert \"restrict binder transactions to audioserver\"\n\nThis reverts commit 4db794441a5ef63733e109213269bb6324387b36.\n\nChange-Id: Ifae4f59e4aed489bb22958674cf96d556b170d2d\n"
    },
    {
      "commit": "cef7b7a656aaa1d6e875a0f0ffdf6e31f17d1aa6",
      "tree": "800a56dafa0a81c311b839a71e1184912733c9a9",
      "parents": [
        "316c3176b8b839a8465d0c0dfa3878a14d3454c0",
        "0aa3c6eba07f987fe84b5fa450274a8e730971e3"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Dec 08 21:23:29 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 08 21:23:29 2017 +0000"
      },
      "message": "Merge \"Revert \"refactor AudioRecord and AudioFlinger openRecord()\"\""
    },
    {
      "commit": "0aa3c6eba07f987fe84b5fa450274a8e730971e3",
      "tree": "69c1c59218c8ae0e5165f71a392a8666c8b74ad6",
      "parents": [
        "3e1acc0c58b337dec4054d78c28b48b2e77e0784"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 08 18:13:22 2017 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 08 18:18:50 2017 +0000"
      },
      "message": "Revert \"refactor AudioRecord and AudioFlinger openRecord()\"\n\nThis reverts commit 3e1acc0c58b337dec4054d78c28b48b2e77e0784.\n\nbug: 70388312\n\nChange-Id: I6782d6eceeece1bad998b02af26c0119da70a13d\n"
    },
    {
      "commit": "116a49881b35f561f6ee316990d425fad56e7487",
      "tree": "26d80d6e59138bcf42902cfee61713817cc06c09",
      "parents": [
        "fa69ca3012fb4065dd892f363957a4f9a6d24757"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Nov 30 10:15:08 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 06 19:48:37 2017 -0800"
      },
      "message": "AudioEffect: Convert aux buffer format from q4.27 to float\n\nTest: Solo Tester aux reverb\nBug: 69853407\nChange-Id: I72ca2377036e5ccfd5f4631ac6cc5e86d2e40433\n"
    },
    {
      "commit": "4db794441a5ef63733e109213269bb6324387b36",
      "tree": "b191586e568eb3c75505c5624e1e5ed3ab805c76",
      "parents": [
        "1b2de88f1659106dadf31794907f4fb66d8baec1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 05 14:11:40 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 06 11:13:56 2017 -0800"
      },
      "message": "restrict binder transactions to audioserver\n\nPrevent other processes from sending reserved binder transactions\nto IAudioFlinger and IAudioPolicyService.\n\nTest: Manual audio smoke tests\nTest: CTS: AudioRecordTest, AudioTrackTest, AudioEffectTest,\nAudioPreProcessingTest, AudioManagerTest\n\nChange-Id: I3643e03cb056236f5e88476d0a575cc28c220f2c\n"
    },
    {
      "commit": "2d8876492d9031978a917764bb3e38c2927284ea",
      "tree": "9a59021ff6c1e016067be3d5509089e79f741c94",
      "parents": [
        "ad95755fa20a6a058e61d4a836acbadbc7bb6364",
        "3e1acc0c58b337dec4054d78c28b48b2e77e0784"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 05 18:36:05 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 05 18:36:05 2017 +0000"
      },
      "message": "Merge \"refactor AudioRecord and AudioFlinger openRecord()\""
    },
    {
      "commit": "3e1acc0c58b337dec4054d78c28b48b2e77e0784",
      "tree": "effae4bc8d462d03cb0bc1507ac0222ac47c90eb",
      "parents": [
        "eda72c27cab52c41016d8ce138438a2d59973231"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 01 16:07:37 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 05 17:33:35 2017 +0000"
      },
      "message": "refactor AudioRecord and AudioFlinger openRecord()\n\nRefactor the mechanism used by audio record tracks to query and\nattach to an input mixer/stream in audio flinger. This will:\n - reduce the number of binder transactions needed to create a record track\n - move sample rate, framecount and flags validations to audio server side\n - move audio session allocation to audio server side\n - prepare restriction of certain binder transactions to audioserver only\n\nAlso:\n - renamed openRecord() to createRecord() for consistency with AudioTrack\n - make AudioRecord mStatus update consistent when calling default\n contructor + set() or constructor with arguments\n - make AudioClient, CreateTrackXXX and  CreateRecordXXX classes derive\n from Parcelable\n - restore audio session ID validity check in AudioFlinger::createTrack()\n\nTest: CTS tests: AudioRecordTest, AudioRecordingConfigurationTest, AudioPreProcessingTest\nTest: manual test for capture use cases: camcorder, OK Google, VoIP calls\nChange-Id: I72edaa7ddef1da11c77df21e88378e3aa9012d58\n"
    },
    {
      "commit": "0225a1883b85466e59ba479314ca7056f2c5de98",
      "tree": "ecc079816676630723bef3b4fcbd30fdd8622187",
      "parents": [
        "9c036d8c32187c1e2612d1341ac9713f13252eab",
        "6bf135b03e58c8b6399df2937358242977c77b2b"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Sat Dec 02 23:20:51 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 02 23:20:51 2017 +0000"
      },
      "message": "Merge \"Export AIDL files as a filegroup for framework.jar\""
    },
    {
      "commit": "9c036d8c32187c1e2612d1341ac9713f13252eab",
      "tree": "221fb86439deccc4d9ce736c297b92df4ce0f9c3",
      "parents": [
        "62b3e7a87d1b0554cf347ba9b06978f9344c46f7",
        "f3cb11a0bc9e7b397c2ae84c56ae0574c68f9379"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Dec 01 23:37:36 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 01 23:37:36 2017 +0000"
      },
      "message": "IAudioPolicyService: Add attribute tags sanitization am: 39fdbd097a\nam: f3cb11a0bc\n\nChange-Id: I4334fc550cd5c2660e2e6f128d2cdd7429917a56\n"
    },
    {
      "commit": "f3cb11a0bc9e7b397c2ae84c56ae0574c68f9379",
      "tree": "91c85857527bf75c13a162ca28dcf2b5712390fb",
      "parents": [
        "a774d5f64cd710013197b842fa33f2164a1c2789",
        "39fdbd097a147b5c719dac9ad2759e6c44eb3a4e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Dec 01 23:33:52 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Dec 01 23:33:52 2017 +0000"
      },
      "message": "IAudioPolicyService: Add attribute tags sanitization\nam: 39fdbd097a\n\nChange-Id: I2bccade7b7164dd3b912a1f891c4bf077120812a\n"
    },
    {
      "commit": "39fdbd097a147b5c719dac9ad2759e6c44eb3a4e",
      "tree": "a0a4b68c895c0603bfa7eea77f0115e06ea1dacd",
      "parents": [
        "28565390a1094b3d33ccec23ab5325e0442dead3"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Nov 13 11:15:27 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Dec 01 19:29:52 2017 +0000"
      },
      "message": "IAudioPolicyService: Add attribute tags sanitization\n\nWhen audio_attributes_t was read from the binder parcel,\nthe string tags field was copied without checking that\nit contained a \u0027\\0\u0027.\n\nThis could lead to read past the end when tags were used.\n\nThis patch always adds a \u0027\\0\u0027 at the end of the buffer when\ndeserializing.\n\nBug: 68953950\nTest: manual playback/record\nTest: send binder payload without \\0 in tags attribute, check that only\n      AUDIO_ATTRIBUTES_TAGS_MAX_SIZE - 1 char are printed.\nChange-Id: I285258cbf7cfaf26b191d1f31b3b1e2d724c4934\nMerged-In: I285258cbf7cfaf26b191d1f31b3b1e2d724c4934\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "f32d7814f56f0a07b8aaacc88a0d8d00349fc916",
      "tree": "59bb1786ea61480ec92be9fb482480e96a83c5de",
      "parents": [
        "eda72c27cab52c41016d8ce138438a2d59973231"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 30 14:44:07 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 30 16:44:25 2017 -0800"
      },
      "message": "AudioTrack: fix status reporting\n\nMake sure mStatus is updated when set() is executed\nfrom outside of the constructor\nAlso update mStatus when createTrack_l() is executed.\n\nTest: manual test of audio playback use cases\nTest: AudioTrack contructor test.\nChange-Id: I70700c84800e144cbf34dac2f9d1526eaf7df292\n"
    },
    {
      "commit": "4473d78d092ffc442edeaed022c7e56366e1c504",
      "tree": "b14afb3cdeb329d4be2e687dcb7c1d96b797e445",
      "parents": [
        "cc25a713d9c3ea87299324d0f44864e78710020e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 28 11:53:36 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 30 12:15:23 2017 -0800"
      },
      "message": "add test for AudioTrack constructor\n\nThis test contructs a number of AudioTracks from arguments listed in an input file\nand outputs dumps of the constructed AudioTracks in an output file.\nThe output file can be compared to previous iterations to spot regressions.\n\nAn reference input file and the corresponding output file is added for\nfurther comparison.\n\nTest: run this test\nChange-Id: I88e458a194a18c9ec919e1e903d49686632c18bf\n"
    },
    {
      "commit": "6bf135b03e58c8b6399df2937358242977c77b2b",
      "tree": "64a1245f079864eb8a450028ca82999bb976732b",
      "parents": [
        "b6549b6297c7f6dcbd2c0b27b61407cde144530c"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Tue Nov 14 13:05:37 2017 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Wed Nov 29 11:05:37 2017 -0800"
      },
      "message": "Export AIDL files as a filegroup for framework.jar\n\nPut AIDL files into a filegroup so they can be imported as sources\nfor framework.jar.\n\nBug: 69917341\nTest: m checkbuild\nChange-Id: Ia500ff881bcc8d4a6f0aa66e12d9e6bb5a07ecc1\n"
    },
    {
      "commit": "fec2f93fae282ad10bbb5e3fcce9f60eff2cfb48",
      "tree": "3c2dc6668d62b13c4fe5e53bb0a4e821f8cf8a6d",
      "parents": [
        "b6549b6297c7f6dcbd2c0b27b61407cde144530c"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Oct 24 10:10:53 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Nov 28 17:44:09 2017 -0800"
      },
      "message": "Add AudioRouting interface in AudioRecorder.\n\nBug: 64038649\nTest: Run cts in RoutingTest\n      Switching input device when using MediaRecorder\n\nChange-Id: I53f22974f8c3dacaef6044ea742e62951961c1fd\n"
    },
    {
      "commit": "d114b624ea2ec5c51779b74132a60b4a46f6cdba",
      "tree": "e9abd0ce3d951d80d5831e49d3ba5d6623fc4ab8",
      "parents": [
        "a221a7c81776add538e6cd82cddfa427364beb79"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 27 18:37:04 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 28 08:53:15 2017 -0800"
      },
      "message": "audio track: dump more data\n\nAdd more information to AudioTrack::dump();\n\nTest: run dumpsys media.player\nChange-Id: Ia0799c65c02dd27b623b53d550ebf08c5c1b724c\n"
    },
    {
      "commit": "ee9ab22ebabab3e3669b38badf8b0a0f504fc3b4",
      "tree": "dae301adca07186dee680107492ef68403febfbb",
      "parents": [
        "e9f825a08817134810be42d6a2b4b444d68a2843",
        "21da647792c0b78ab3943be0f32066015d5e8c34"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Nov 21 00:36:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Nov 21 00:36:49 2017 +0000"
      },
      "message": "Merge \"refactor AudioTrack and AudioFlinger createTrack()\""
    },
    {
      "commit": "602417cd10c569783c2cc32bb7c13b1e02d9645e",
      "tree": "f722f2e2c33fd9104f8abc591d8062892a90092b",
      "parents": [
        "e0ce8445a111156fcbf8cb77f928a38d0abc8ac3",
        "db5b6cb6c35a69d236fcd62dcb41c8a4682fa295"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sonymobile.com",
        "time": "Thu Nov 16 20:28:12 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 16 20:28:12 2017 +0000"
      },
      "message": "Merge \"Support Ireland specific supervisory tone\" am: 289cce6034 am: 899b78c12b\nam: db5b6cb6c3\n\nChange-Id: I7308f696e575344a9a8d887d63b765942905ef78\n"
    },
    {
      "commit": "21da647792c0b78ab3943be0f32066015d5e8c34",
      "tree": "15ad0b64bf6eaabf24223d7fd376ef9ac00eb9cc",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 09 16:29:26 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 16 11:33:12 2017 -0800"
      },
      "message": "refactor AudioTrack and AudioFlinger createTrack()\n\nRefactor the mechanism used by audio tracks to query and attach\nto an output mixer/stream in audio flinger. This will:\n- reduce the number of binder transactions needed to create a track\n- move sample rate, framecount and flags validations to audio server\nside\n- move audio session allocation to audio server side\n- prepare restriction of certain binder transactions to audioserver only\n\nTest: CTS tests for AudioTrack\n\nChange-Id: If4369aad6c080a56c0b42fbfcc97c8ade17a7439\n"
    },
    {
      "commit": "899b78c12b25fa381b1d6c90330ce45f758ef28d",
      "tree": "32ca133d8b81f781b8cc298375f421ed43568814",
      "parents": [
        "4593b04bdad2ae66b22c5d3fb78276b523b7e942",
        "289cce603494363f9d0f6d42b16289b632205f77"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sonymobile.com",
        "time": "Thu Nov 16 18:58:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Nov 16 18:58:38 2017 +0000"
      },
      "message": "Merge \"Support Ireland specific supervisory tone\"\nam: 289cce6034\n\nChange-Id: I857c315649c27d6424ff97775aab813d330f5aaa\n"
    },
    {
      "commit": "289cce603494363f9d0f6d42b16289b632205f77",
      "tree": "2c18e7a2faaad9c450fbb76d7f6de78798138803",
      "parents": [
        "2eb29c0d79d88be7dcf2ce7092773d246a8abe6a",
        "599ca05559f93c608f00f2ad13846bf27ba82648"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Nov 16 18:50:06 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Nov 16 18:50:06 2017 +0000"
      },
      "message": "Merge \"Support Ireland specific supervisory tone\""
    },
    {
      "commit": "4593b04bdad2ae66b22c5d3fb78276b523b7e942",
      "tree": "d855fc3d7505c608fc720474d2af565feb131738",
      "parents": [
        "ea8dd2c787f88e7289ffb8f226237587f95d8a93",
        "79edadcea74151b573d5b973d5a421baee693ec1"
      ],
      "author": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:29:40 2017 -0800"
      },
      "committer": {
        "name": "Xin Li",
        "email": "delphij@google.com",
        "time": "Fri Nov 10 15:33:45 2017 -0800"
      },
      "message": "Merge commit \u002779edadcea74151b573d5b973d5a421baee693ec1\u0027 from\noc-mr1-dev-plus-aosp into stage-aosp-master\n\nChange-Id: I04234f284e3117e8343e7c888646400c81f5a131\nMerged-In: Icf228c701afe37dd3c7f00ea9e6fb740b0d450f1\n"
    },
    {
      "commit": "8f8932c41e7c0a1f65e3556733ed33bbc88793ce",
      "tree": "b93e401ecbe5c0e5152a227b604dcc99999a6ddc",
      "parents": [
        "7c92ffe076acb119ba58777519b9d2d2efc0f627",
        "f4e63452b37c799c9387a6a88b46e6191f6a5f7e"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Nov 06 21:37:01 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 06 21:37:01 2017 +0000"
      },
      "message": "Merge \"Revert \"Revert \"audio policy: refactor getOutput() method\"\"\""
    },
    {
      "commit": "f4e63452b37c799c9387a6a88b46e6191f6a5f7e",
      "tree": "5c46fb22c92c574b84335fedca13f98e13434db8",
      "parents": [
        "e198f26cae6f0b5c67340935c291363fdfff87f1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 06 19:31:46 2017 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 06 19:31:46 2017 +0000"
      },
      "message": "Revert \"Revert \"audio policy: refactor getOutput() method\"\"\n\nThis reverts commit e198f26cae6f0b5c67340935c291363fdfff87f1.\n\nChange-Id: I65eb2905adb45c3809a499d85c1a8ef68cec7ed5\n"
    },
    {
      "commit": "70fa3f429beb5f3a0d6468010668d901c117e03f",
      "tree": "938505dac9ec93fe56a1dde00f1a7d8d38420424",
      "parents": [
        "e7cdd4646d3bfdf4dc76a2a575f2ab2de5c88eb6",
        "e198f26cae6f0b5c67340935c291363fdfff87f1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 04 00:16:44 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Nov 04 00:16:44 2017 +0000"
      },
      "message": "Merge \"Revert \"audio policy: refactor getOutput() method\"\""
    },
    {
      "commit": "e198f26cae6f0b5c67340935c291363fdfff87f1",
      "tree": "a08455486befa3d1ed0ebd6d3eb8257f51dcfb7d",
      "parents": [
        "e1dd2075105317ef8ff2b924423c88856e8fe8ea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 04 00:13:42 2017 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 04 00:13:42 2017 +0000"
      },
      "message": "Revert \"audio policy: refactor getOutput() method\"\n\nThis reverts commit e1dd2075105317ef8ff2b924423c88856e8fe8ea.\n\nChange-Id: I4b7a2177af5bff5013ec4fe7fcdeb722f6b158c5\n"
    },
    {
      "commit": "98b1b5ec9122dde302879878b255b44ce03cfec9",
      "tree": "27a3a6b4cf4d2593e0da167a601a28e8a2bb1133",
      "parents": [
        "874987b60abede914f4a645868a3de2d03d74a9d",
        "e1dd2075105317ef8ff2b924423c88856e8fe8ea"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 03 20:38:46 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 03 20:38:46 2017 +0000"
      },
      "message": "Merge \"audio policy: refactor getOutput() method\""
    },
    {
      "commit": "e1dd2075105317ef8ff2b924423c88856e8fe8ea",
      "tree": "5c46fb22c92c574b84335fedca13f98e13434db8",
      "parents": [
        "9a60e1ad4762bd428ddc158e5a50641649698ec4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 03 09:26:21 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 03 09:26:21 2017 -0700"
      },
      "message": "audio policy: refactor getOutput() method\n\ngetOtuput() was long replaced by getOutputForAttr() for the purpose of\nquerying an appropriate HAL output stream for a given playback use case.\nIt is now only used internally by AudioSystem to find an existing output\ncorresponding to a given stream type in limited cases.\n\nThis CL simplifies getOutput() by removing unused arguments and just\nreturning an output from already opened outputs.\nThis is in preparation of limiting access to audio policy binder calls\nto what is strictly needed by apps.\n\nTest: test main playback, capture and call use cases.\nChange-Id: I137c5526aa7e82303b43948326c77ec798f432f5\n"
    },
    {
      "commit": "156c6873a5e69af71f3c28b236c5831b9cb2ac95",
      "tree": "3e36c1490f5f2d22e6e79fac3d4f59a9559403ee",
      "parents": [
        "ef9fc7792d4995da68cb71a3e9f2304e565a016d"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Oct 06 09:47:15 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Nov 02 11:14:55 2017 -0700"
      },
      "message": "Add AudioRouting interface for MediaPlayer\n\nBug: 64038649\nTest: Run cts in RoutingTest\n      Switch output device when playing music/video with MediaPlayer\n\nChange-Id: I5b5c288e6557199b0a6986785f9335a18a80ab89\n"
    },
    {
      "commit": "bdfaf7e6081a3a4fc5b0b613d9b2d42f488cb0a9",
      "tree": "dab6953412fc5b7013c2772a808c1b875bb9a2d0",
      "parents": [
        "67d876b17e6589a47c5f8906201ec2494119104f",
        "53a82d0a1ae2875cff9d8253f9b6ba2fff5f93a4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Tue Oct 31 16:08:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 31 16:08:30 2017 +0000"
      },
      "message": "Merge \"Limit notification period when a fast track denied\" am: 89a1e53856 am: 66446e6135\nam: 53a82d0a1a\n\nChange-Id: Idf2b0e981ddbae38aeb4838595e303d0b8b1da2f\n"
    },
    {
      "commit": "53a82d0a1ae2875cff9d8253f9b6ba2fff5f93a4",
      "tree": "6f8a316ed5da93173aa8a5dd91096cf007f255d7",
      "parents": [
        "db42765c36920975fbe0c02252397d1a5813197b",
        "66446e6135fa9acbfffb96f3c70a8889e60a9a79"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Tue Oct 31 16:06:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 31 16:06:25 2017 +0000"
      },
      "message": "Merge \"Limit notification period when a fast track denied\" am: 89a1e53856\nam: 66446e6135\n\nChange-Id: I4403db70ddcbcc5f29332342531c33eb12563661\n"
    },
    {
      "commit": "9bf34d542787dd322f7ad56f8bb8607633004009",
      "tree": "f2918d263cb486b80e38917c3f5a809b370a4deb",
      "parents": [
        "55c45b33092551b11ba79a35b7dae6c3fba999f5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 24 14:26:23 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Oct 27 10:45:37 2017 -0700"
      },
      "message": "Limit notification period when a fast track denied\n\nIf client requests a fast track and this request is denied, then don\u0027t\nallow notification period to exceed FMS_20.  FMS_20 is the minimum task\nwakeup period in ms for which CFS operates reliably.  This reduces\nglitching when an app uses a buffer size that is too small for the endpoint.\nThe theory is that if the app wanted a fast track but couldn\u0027t get it,\nthen at least wake it up as often as possible (while still not waking\nup so often than CFS can\u0027t handle it).\n\nAlso clarify in the log when the denial is by client vs server.\n\nTest: as described in bug\nBug: 63040475\nChange-Id: I2c171bda7929a8f309c2286d868e09887680d234\n"
    },
    {
      "commit": "599ca05559f93c608f00f2ad13846bf27ba82648",
      "tree": "48fc5a4cd64da1dcd66212ac1885afd699c9d987",
      "parents": [
        "55c45b33092551b11ba79a35b7dae6c3fba999f5"
      ],
      "author": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sonymobile.com",
        "time": "Mon Oct 23 09:54:36 2017 +0900"
      },
      "committer": {
        "name": "Tomoharu Kasahara",
        "email": "tomoharu.kasahara@sony.com",
        "time": "Fri Oct 27 19:30:09 2017 +0900"
      },
      "message": "Support Ireland specific supervisory tone\n\nRingtone and call waiting tone for Ireland are not\nfollowing ITU-T specification.\nThis patch implements them as per ITU-T specification.\n\nBug: 68294204\nTest: Build and test ringback tone for Ireland\nChange-Id: I2cf3f425aec47b9dbc6ecf2ffb3aef44ca4f783c\n"
    },
    {
      "commit": "ec8aec0d83678ab4fea92639610f234fa0f01a65",
      "tree": "9271643859af55bd93c42eb7928c89e50e5334a2",
      "parents": [
        "80b3165a6ad328dc6b864bdb096066689de6a422",
        "d60b9de7c4594be831d23b9614a2475ff08e0633"
      ],
      "author": {
        "name": "tomoki hanzawa",
        "email": "tomoki.x.hanzawa@sonymobile.com",
        "time": "Tue Oct 03 20:17:03 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 20:17:03 2017 +0000"
      },
      "message": "Merge \"Support Hong Kong specific supervisory tone\" am: 78041ba297 am: cbb79ebda5 am: 593f9251c8\nam: d60b9de7c4\n\nChange-Id: I21fe2515577cc09f649ae38141ad65d6ed76d737\n"
    },
    {
      "commit": "80b3165a6ad328dc6b864bdb096066689de6a422",
      "tree": "ad34c3e230f1392786086cf005ec91b345956e6b",
      "parents": [
        "bfb6e108a3f4869166fbc53f7f6e153f3283016a",
        "d3bce141edb95bd06fe6d1ff593f7a9a8f66460e"
      ],
      "author": {
        "name": "Johan Gustavsson",
        "email": "johan1.gustavsson.x@sonymobile.com",
        "time": "Tue Oct 03 20:16:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 20:16:26 2017 +0000"
      },
      "message": "Merge changes I86076b07,I7409732e,I248b1b27 am: d773fbbb5c am: 160741e742 am: c9d45b85a4\nam: d3bce141ed\n\nChange-Id: I7982b3733c6142d4694004fe7ea0e3a06f8a7820\n"
    },
    {
      "commit": "d60b9de7c4594be831d23b9614a2475ff08e0633",
      "tree": "064a745cc171c8de9161720509b9de633a1227a6",
      "parents": [
        "d3bce141edb95bd06fe6d1ff593f7a9a8f66460e",
        "593f9251c8abd3023a75507723865eace5fc62d3"
      ],
      "author": {
        "name": "tomoki hanzawa",
        "email": "tomoki.x.hanzawa@sonymobile.com",
        "time": "Tue Oct 03 20:08:21 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 20:08:21 2017 +0000"
      },
      "message": "Merge \"Support Hong Kong specific supervisory tone\" am: 78041ba297 am: cbb79ebda5\nam: 593f9251c8\n\nChange-Id: I7176f17472b32753ef0342eec954d6e18a58025f\n"
    },
    {
      "commit": "d3bce141edb95bd06fe6d1ff593f7a9a8f66460e",
      "tree": "ea2bfaa5d46c9e796ad18e9866df20c0e2266e61",
      "parents": [
        "838ec2d2ab4b6ae2f9037323caf341ff90c85b77",
        "c9d45b85a4bc8b59b60caea58517e8031a3ede89"
      ],
      "author": {
        "name": "Johan Gustavsson",
        "email": "johan1.gustavsson.x@sonymobile.com",
        "time": "Tue Oct 03 20:07:36 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 20:07:36 2017 +0000"
      },
      "message": "Merge changes I86076b07,I7409732e,I248b1b27 am: d773fbbb5c am: 160741e742\nam: c9d45b85a4\n\nChange-Id: I797853c94c87b0a183accafb2a43f74434edf223\n"
    },
    {
      "commit": "cbb79ebda5f4aec6ef5309d965d693f26ba33bd8",
      "tree": "82dab2cf5c5161474bff57d62878c074b0a345fe",
      "parents": [
        "160741e7425ba50f428a8b9982301bb5139cf2d8",
        "78041ba297e0c9e8d3550f79d751683a4dd2a332"
      ],
      "author": {
        "name": "tomoki hanzawa",
        "email": "tomoki.x.hanzawa@sonymobile.com",
        "time": "Tue Oct 03 19:59:13 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 19:59:13 2017 +0000"
      },
      "message": "Merge \"Support Hong Kong specific supervisory tone\"\nam: 78041ba297\n\nChange-Id: I4a22b757e2e55155b041c97581118d3d02813afa\n"
    },
    {
      "commit": "160741e7425ba50f428a8b9982301bb5139cf2d8",
      "tree": "065755b50f9958882ed1f6632cc2c5fa402f4a4f",
      "parents": [
        "848fa50927b712748103ca9cc8c45bc39139ae8b",
        "d773fbbb5c23ae7b67eba52eca79a19926157025"
      ],
      "author": {
        "name": "Johan Gustavsson",
        "email": "johan1.gustavsson.x@sonymobile.com",
        "time": "Tue Oct 03 19:58:04 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 03 19:58:04 2017 +0000"
      },
      "message": "Merge changes I86076b07,I7409732e,I248b1b27\nam: d773fbbb5c\n\nChange-Id: I7ad0e8ccb29f5f626b6f4ef4b951f4f321a607e1\n"
    },
    {
      "commit": "78041ba297e0c9e8d3550f79d751683a4dd2a332",
      "tree": "ed6da26f681b273b9e059b478289986c5992f4de",
      "parents": [
        "d773fbbb5c23ae7b67eba52eca79a19926157025",
        "ef8d73a77cb2a4a344ce29a9aaaacbc7ca4f2206"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 03 19:38:44 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 03 19:38:44 2017 +0000"
      },
      "message": "Merge \"Support Hong Kong specific supervisory tone\""
    },
    {
      "commit": "d773fbbb5c23ae7b67eba52eca79a19926157025",
      "tree": "a3a7cb45c0384574684b9e82ad92d417ffeba2eb",
      "parents": [
        "24287d0bd55ccb779ca800647f39f266c584e3f6",
        "0f6500b61b7aaf3299eef8309c67ba2e86d2d065"
      ],
      "author": {
        "name": "Treehugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Oct 03 19:34:13 2017 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Tue Oct 03 19:34:13 2017 +0000"
      },
      "message": "Merge changes I86076b07,I7409732e,I248b1b27\n\n* changes:\n  Support Singapore specific supervisory tone\n  Support Australia specific supervisory tone\n  Support GB specific supervisory tone\n"
    },
    {
      "commit": "158482dcc8a81172ef6ac5725bee2bf7329b1e96",
      "tree": "08ce7b3f080f2f692305670e0a8bdc425f77d354",
      "parents": [
        "3463e1de5b6c4fc99724cdff249aa6abaa8ebdf5",
        "8589ce7045fd4f5520aabbc773f00c7136925fd7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 03 15:53:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 03 15:53:43 2017 +0000"
      },
      "message": "Merge \"Split nblog off from nbaio\""
    },
    {
      "commit": "930d7fc3ca11c4628aea2e8ed0c953f47eb2873e",
      "tree": "337a8f59fbeae9929c3ca3005ca3039d48e3cf0c",
      "parents": [
        "2fc41c8889714fa0dfa527de8a84a70e9199604e",
        "7e23edf1844198b4b31c3ce384c8f535a9aad155"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 22 15:32:46 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 22 15:32:46 2017 +0000"
      },
      "message": "Merge \"ToneGenerator: fix dual sim ringback tone\" am: 85e8823fc7 am: fe08c18918 am: 831da6ee4c\nam: 7e23edf184\n\nChange-Id: I085f1ede562c6a21a476774b4f1200b44f67a699\n"
    },
    {
      "commit": "7e23edf1844198b4b31c3ce384c8f535a9aad155",
      "tree": "7f5a941f55e83c6674a0f307706f4d6b8fb1a526",
      "parents": [
        "05fd15038ea2f3f43123949b929e34e60adc2452",
        "831da6ee4cadc46163a4d9b793a413e72c504486"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 22 15:27:54 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 22 15:27:54 2017 +0000"
      },
      "message": "Merge \"ToneGenerator: fix dual sim ringback tone\" am: 85e8823fc7 am: fe08c18918\nam: 831da6ee4c\n\nChange-Id: Iea171fc613f8449a88593dcb4c07e63d57b586a6\n"
    },
    {
      "commit": "fe08c18918afc6c15e9f0a0b36d0cb735d330b10",
      "tree": "e7b221ceb3485f25e600338cdb7159234013d64c",
      "parents": [
        "d473cae4d0ac3ca19f926fcb80dfd68034b41697",
        "85e8823fc77c9028c18156c0e1a58a2df16607f7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 22 15:19:25 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 22 15:19:25 2017 +0000"
      },
      "message": "Merge \"ToneGenerator: fix dual sim ringback tone\"\nam: 85e8823fc7\n\nChange-Id: Ic77a7c6723b0483aeaac6c83e42722e7f6e6b7c5\n"
    },
    {
      "commit": "eae07a40aeadf4f0e339c331487c80d3216e3b6e",
      "tree": "53a457290a626d3eb24d1df3ac4d64fde1eaebb5",
      "parents": [
        "69545369eef7dcaf81b889a2fc216ec7923c9622"
      ],
      "author": {
        "name": "Krzysztof Semko",
        "email": "krzysztof.semko@sonymobile.com",
        "time": "Tue Feb 07 10:50:40 2017 +0100"
      },
      "committer": {
        "name": "Shuhei Miyazaki",
        "email": "Shuhei.Miyazaki@sonymobile.com",
        "time": "Thu Sep 21 20:39:10 2017 +0900"
      },
      "message": "ToneGenerator: fix dual sim ringback tone\n\nIf dual sim device has two SIM cards inserted,\nin airplane mode it sets \"gsm.operator.iso-country\" prop\nto a single comma, which prevents ToneGenerator to access\nprop for \"gsm.sim.operator.iso-country\" - SIM provider\ncountry code. When VoWifi is used to make a call,\nincorrect ringback tone is being played (generic one),\ninstead if one being read from gsm.sim.operator.iso-country.\n\nThis patch fix this, and allows ToneGenerator to correctly\nrecognize SIM country code.\n\nBug: 65859291\nTest: Check ringback tone during SIM2 VoWiFi in flight mode\n\nChange-Id: Ibb57d38432f3d99f2eac568aec2a949af5e2a9cd\n"
    },
    {
      "commit": "92197f86b1184133107ee66314467f4676850ab8",
      "tree": "2e35076e4f171f06c8d3e441dd7b3784226f917f",
      "parents": [
        "5d81cf35fb108d6a2412f770087861ad4be5020c",
        "282ca695834f9cf9f63536cab2d6592b18fc011a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 18 22:47:16 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Sep 18 22:47:16 2017 +0000"
      },
      "message": "Fix various AAudio device selection issues am: ad2e7b902c\nam: 282ca69583\n\nChange-Id: I051d56560608444c47b5a827ef921b878e8f4a4e\n"
    },
    {
      "commit": "ad2e7b902c0432a0db40906a4b1f5b693ce439dd",
      "tree": "c4830cedbf63c641325e082fd30484a3bff58e49",
      "parents": [
        "b92c988ffc48f093ab8615896b02b8c8e10e19b2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 14 20:06:42 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 18 12:58:30 2017 -0700"
      },
      "message": "Fix various AAudio device selection issues\n\nBug: 65292224\n- Audio policy manager should not use an unavailable device when an explicit\nroute is requested. This causes a device selection made by a client to\nbecome sticky after device disconnection.\n\nBug: 64945845\n- Remove spurious device change callback occuring after registering a\nnew client to audio server by creating a specific configuration event\nfor client registration.\n- Do not keep strong references to device callback interfaces in\nAudioTrack, AudioRecord and AudioSystem.\n- Do not update selected device in AudioTrack and AudioRecord when\nnot active as the new device selection on the stream is because of other\nclients activity which is not relevant to an inactive client.\n\nBug: 65693340\n- Fix missing increment of SessionRoute ref count in getInputForAttr() for\nMMAP inputs\n\nTest: AAudio CTS tests\n\nChange-Id: I2a01b02e8b064d352004f6065495fd99aee55745\n"
    },
    {
      "commit": "f89090e284b8ef61eb8cae68c657c8a60877b9fb",
      "tree": "37656620e850132bfd6cc0ffed14e5fd9fcc4c20",
      "parents": [
        "19c197a3bc4c73a06a38513884da392d3fd0a49e",
        "c0e75a7d57df751ec1cb49da91cf64ab0c4c4938"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 14 01:43:23 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 14 01:43:23 2017 +0000"
      },
      "message": "Merge \"AudioTrack, AudioRecord: Fix latency computation\" into oc-mr1-dev am: 5deda0e784\nam: c0e75a7d57\n\nChange-Id: I1f95a6372752e2e47e7f022db0333517c387eadf\n"
    },
    {
      "commit": "13969262f704ca27c82d60e3c7cf4b271e3b5918",
      "tree": "b71db061faee7352cada209170bd02dd80fc7055",
      "parents": [
        "49997ac32b61c3e3b8e0053c8c82f06e6a438f06"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 11 17:24:21 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 11 18:03:20 2017 -0700"
      },
      "message": "AudioTrack, AudioRecord: Fix latency computation\n\nForce 64 bit arithmetic to avoid integer overflow on 32 bit\nplatforms.\n\nTest: CTS AudioTrackTest\nBug: 65536481\nChange-Id: I774a7811fce08c7cbe59f0a062fd2c2d72220203\n"
    },
    {
      "commit": "8589ce7045fd4f5520aabbc773f00c7136925fd7",
      "tree": "a02b3ba722bc13f798c9c10cc51d19b670388452",
      "parents": [
        "f24d95960d85c891fc40db6f1e9644385efb4eb3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 08 17:03:42 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 08 17:06:32 2017 -0700"
      },
      "message": "Split nblog off from nbaio\n\nnbaio is an acronym for \"non-blocking audio I/O\", and nblog means\n\"non-blocking logger\" so nblog does not belong with nbaio.\n\nThere are a lot of improvements planned for nblog, and having the\nrestructuring done will make it clearer as more files are added.\n\nTest: builds OK\nChange-Id: Ib28bada2566c1d64bdbe9f5d7a5ce40e080178ef\n"
    },
    {
      "commit": "5d874b5bcc9577b4e9054b6fb1d41cb6462dbb58",
      "tree": "fb0fef58c699fd188ec09c34d663c055babf11a4",
      "parents": [
        "72b054de2c3549b4186daf1a83b041fee4607158",
        "fd513fff31baea5bf8a067c70a92e4a01681e169"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 07 20:09:30 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 07 20:09:30 2017 +0000"
      },
      "message": "Merge \"Fix failure at AudioTrack_ListenerTest#testAudioTrackCallback\" into oc-mr1-dev am: 310dd0a2d9\nam: fd513fff31\n\nChange-Id: Ic28d34a8cf8bed962642a7e2535d6936d69495f4\n"
    },
    {
      "commit": "310dd0a2d96e97d4f3983a6e70b5e0653a521030",
      "tree": "1400f29c182aeaaf88e2be0cdd6f130a97e902a3",
      "parents": [
        "7dca8d75871e8f275932ddcd184d45fec763ac16",
        "c7bb8324c7c19ed4ab5bdafae0d750bf41c299f1"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Sep 07 20:01:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 07 20:01:37 2017 +0000"
      },
      "message": "Merge \"Fix failure at AudioTrack_ListenerTest#testAudioTrackCallback\" into oc-mr1-dev"
    },
    {
      "commit": "c7bb8324c7c19ed4ab5bdafae0d750bf41c299f1",
      "tree": "525bf9e32a2c8c1101d6633c9101c46235eedccd",
      "parents": [
        "da071c34f3378a36d39ee0f89cdef4e1f98c3750"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Sep 06 18:20:11 2017 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Thu Sep 07 10:18:36 2017 -0700"
      },
      "message": "Fix failure at AudioTrack_ListenerTest#testAudioTrackCallback\n\nAfter cold start, running the test will cause failure. The reason is\nthat with cold start, the buffer is being processed faster than the\nposition callback.\nCalling the callback earlier at the very start will fix this issue.\n\nBug: 63056426\nTest: adb shell am instrument -e class \u0027android.media.cts.AudioTrack_ListenerTest#testAudioTrackCallback\u0027\n      -w \u0027android.media.cts/android.support.test.runner.AndroidJUnitRunner\u0027\n\nChange-Id: I7416cecb2837fac4a966e832412948c357e7b8dc\n"
    },
    {
      "commit": "a488402046bffd51803cc98815824a27f510d1c5",
      "tree": "fcb4480d47b663335ef5d48cb6fa3daed4a44614",
      "parents": [
        "b8ba103f7fd4a2695d20463689d898ddf5431dac",
        "12131a23cbb03c083c6f53a30c58b9182de5e5fb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 07 16:52:17 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Sep 07 16:52:17 2017 +0000"
      },
      "message": "Merge \"AudioTrack: Fix extended timestamp offset\" into oc-mr1-dev am: 7966b44126\nam: 12131a23cb\n\nChange-Id: Icc86ada7ecf279827f7a43bd93dbdae1ff445cb0\n"
    },
    {
      "commit": "c4e60eb165608f08cd85ed2fccbdaa6700f271cd",
      "tree": "8f73643165520a2d88fb83353eb330f9e478b684",
      "parents": [
        "cea54cf940630bd0f462f2c9dcb2bfb75e5ebd68"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 06 11:14:57 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 06 12:03:53 2017 -0700"
      },
      "message": "AudioTrack: Fix extended timestamp offset\n\nThe extended timestamp server and kernel location positions\nneed the proper client side delta offset for native AudioTrack API calls.\nThe client location position is unaffected along with the legacy timestamp.\n\nTest: test_timestamp, Photos, kill audioserver\nBug: 65386236\nChange-Id: Idd71b6a31e0e86a323d0e5e343a2836e34c08673\n"
    },
    {
      "commit": "e247023e785e581349d8fb926c4a1bed239b623c",
      "tree": "850157e9f268725e25dd0e1b98dfd729e61e0e76",
      "parents": [
        "fdf4151313d35e0ef504955ae738550b6ffd338b",
        "0fbd5badd563360827c81b9096381096e9eadf9c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 06 16:26:55 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Sep 06 16:26:55 2017 +0000"
      },
      "message": "Merge \"AudioTrack: Limit timestamp time lag after start\" into oc-mr1-dev am: cea54cf940\nam: 0fbd5badd5\n\nChange-Id: I910d96c6901bad81987191ea2485435a6fcf8a7f\n"
    },
    {
      "commit": "ef8d73a77cb2a4a344ce29a9aaaacbc7ca4f2206",
      "tree": "8e7c1d82c20914fc983506e990bed804d840cf58",
      "parents": [
        "0f6500b61b7aaf3299eef8309c67ba2e86d2d065"
      ],
      "author": {
        "name": "tomoki hanzawa",
        "email": "tomoki.x.hanzawa@sonymobile.com",
        "time": "Tue Sep 15 13:33:28 2015 +0900"
      },
      "committer": {
        "name": "Shuhei Miyazaki",
        "email": "Shuhei.Miyazaki@sonymobile.com",
        "time": "Wed Sep 06 15:17:23 2017 +0900"
      },
      "message": "Support Hong Kong specific supervisory tone\n\nAdded the conditions that determine the region for HK,\nthen support Hong Kong specific ring tone and busy tone.\n\nBug: 63120797\nTest: Build and test ringback tone for Hong Kong\nChange-Id: Ifc836321ca1ac1f670d4640305727f4ea3800716\n"
    },
    {
      "commit": "0f6500b61b7aaf3299eef8309c67ba2e86d2d065",
      "tree": "8764a29c54a72f3e16def10d45026beda69c5b5b",
      "parents": [
        "879996a5f7419819cf9318917d6c82068950a034"
      ],
      "author": {
        "name": "Johan Gustavsson",
        "email": "johan1.gustavsson.x@sonymobile.com",
        "time": "Tue Mar 18 18:21:29 2014 +0100"
      },
      "committer": {
        "name": "Shuhei Miyazaki",
        "email": "Shuhei.Miyazaki@sonymobile.com",
        "time": "Wed Sep 06 15:17:12 2017 +0900"
      },
      "message": "Support Singapore specific supervisory tone\n\nSingapore use CEPT standard supervisory tones except\nfor busy and ringtone. The Singapore mapping will be\nused if gsm.operator.iso-country \u003d\u003d \"sg\".\n\nBug: 63120560\nTest: Build and test ring back tone for Singapore\nChange-Id: I86076b0799a741ad8c54968799e400622d223ccd\n"
    },
    {
      "commit": "879996a5f7419819cf9318917d6c82068950a034",
      "tree": "913c079e4127843b3413b812b9b87aa3814d5ac5",
      "parents": [
        "5babf61cddbd02100e5a4017deec09eb55fc1d32"
      ],
      "author": {
        "name": "Toshikazu Saito",
        "email": "toshikazu.x.saito@sonymobile.com",
        "time": "Fri Mar 03 18:04:14 2017 +0900"
      },
      "committer": {
        "name": "Shuhei Miyazaki",
        "email": "Shuhei.Miyazaki@sonymobile.com",
        "time": "Wed Sep 06 15:03:02 2017 +0900"
      },
      "message": "Support Australia specific supervisory tone\n\nThe change in \"Australia Supervisory DIAL tone\"\nseems not following ITU-T specification.\nThis patch implements TONE_AUSTRALIA_DIAL as per ITU-T\nspecification.\n\nBug: 63120712\nTest: Build and test ringback tone for Australia\nChange-Id: I7409732e57cf8d39ac2248e7e3e10217e30a118e\n"
    },
    {
      "commit": "5babf61cddbd02100e5a4017deec09eb55fc1d32",
      "tree": "33c34ab7ec17c9e94886ed345faae1cffbd21798",
      "parents": [
        "69545369eef7dcaf81b889a2fc216ec7923c9622"
      ],
      "author": {
        "name": "tomoki hanzawa",
        "email": "tomoki.x.hanzawa@sonymobile.com",
        "time": "Tue Sep 15 14:24:08 2015 +0900"
      },
      "committer": {
        "name": "Shuhei Miyazaki",
        "email": "Shuhei.Miyazaki@sonymobile.com",
        "time": "Wed Sep 06 14:59:27 2017 +0900"
      },
      "message": "Support GB specific supervisory tone\n\nModified gb\u0027s SupervisoryTone\nwhen the following ToneType is selected to cover\nGB market/operators requirement.\n - TONE_SUP_DIAL\n - TONE_SUP_BUSY\n - TONE_SUP_CONGESTION\n\nBug: 63121347\nTest: Build and Test ringback tone for UK.\nChange-Id: I248b1b27f4156de37fd07bc878be719e3f6d6b95\n"
    },
    {
      "commit": "ffa3695a012d22c6c81cf311232c5c84c06f9219",
      "tree": "9efbe30bf98b6a75977fe842083808e8b9d69806",
      "parents": [
        "90153cae7ffd321338f90678a80abd62fb56e877"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 17 10:41:51 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 05 17:02:15 2017 -0700"
      },
      "message": "AudioTrack: Limit timestamp time lag after start\n\nTest: Photos with long pause and resume\nBug: 63614330\nBug: 63976584\nChange-Id: I81ac650c821600fee507c72c3b0c1be60f5e7ab6\n"
    },
    {
      "commit": "8cf3a0788df2ee184b498086b1b8da322eeadcca",
      "tree": "1bd36129bbd4afa491689deca23977dbf30930f6",
      "parents": [
        "a5ec8b0ec9c94fd9474fae1d1d1dc798ae6c4d2d"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Aug 09 09:01:33 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Fri Sep 01 10:14:30 2017 -0700"
      },
      "message": "Generate the IPlayer interface with AIDL.\n\nThis removes the manually rolled IPlayer implementation and instead uses\nan aidl generated implementation. The IPlayer aidl file is moved from\nframeworks/base/.\n\nTest: run cts --module CtsMediaTestCases\nBug: 64223827\nChange-Id: Ia609f7ba1cc6f71ce919d6174dd8b5e0e1b05575\n"
    },
    {
      "commit": "5b506f21b1bf4e49cbcb341b46881a77e2f98bf7",
      "tree": "c15d6fd9c06b1d69a4cf8564b6f5cfff260cb829",
      "parents": [
        "c4a226e8584b3d87c2503ddfcde336f63e7c6487"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 19 17:54:29 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 31 16:10:23 2017 +0000"
      },
      "message": "audio effects: Eliminate the cause warning logs about unreleased interface\n\nThe cause of frequent \"EffectModule 0xxx destructor called with unreleased\ninterface\" messages was due to not releasing the effects when purging\nstale effects.\n\nThe cause of \"Effect handle 0xxx disconnected after thread destruction\"\nmessage was due to late binder call for disconnecting already purged\neffect handle.\n\nAlso improved logging to communicate uuids of the effects causing\nthese issues.\n\nBug: 62267926\nTest: no aforementioned warnings in the log when opening the Effects\n      panel in Play Music\n\nChange-Id: I6ec6f60c46dc704226931fb59a641e4cd74c2fd1\n(cherry picked from commit 424c4f5b76a6ed11f2c713b42246a7220cfbb240)\n"
    },
    {
      "commit": "ff6900d8f991aac0b67b625f8a1d4d0461b4c50e",
      "tree": "1c81319f27784e4d611f7895d519b7754f869c26",
      "parents": [
        "ce10f65fb5b48d81798caa2c2914b016082b5089"
      ],
      "author": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Tue Aug 01 15:47:38 2017 -0700"
      },
      "committer": {
        "name": "Ivan Lozano",
        "email": "ivanlozano@google.com",
        "time": "Wed Aug 09 09:15:59 2017 -0700"
      },
      "message": "Generate IAudioRecord with AIDL.\n\nUse AIDL to generate the IAudioRecord interface rather than using\na manually implemented interface.\n\nBug: 64223827\nTest: Ran the AudioNativeTest and CtsMediaTestCases CTS tests.\n\nChange-Id: Iade23c73253a97c358050bbd697ebe592b89a4c0\n"
    },
    {
      "commit": "05c9731cff68ff785ebef22403ef5c7aea7a3581",
      "tree": "b9210fd9797f3ebdd816659575ec4df787add322",
      "parents": [
        "ddf531258d6bfe47ff2f2fbaff5c0c313f98f5ba",
        "bfe83e8158f2c7e3cba81a0c2e5786e1eef005cb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 04 01:10:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 04 01:10:59 2017 +0000"
      },
      "message": "Merge \"AudioTrackShared: Log more detail on fatal errors\" into oc-dr1-dev am: c8adbea083 am: ca5104eb94\nam: bfe83e8158\n\nChange-Id: I49f629176dd646929e19cd929eb9ba83d9967cd4\n"
    },
    {
      "commit": "bfe83e8158f2c7e3cba81a0c2e5786e1eef005cb",
      "tree": "63baf4fe6aa4c618007983df4337a12661572510",
      "parents": [
        "90025976791da44d104572201d3f40cec981fc72",
        "ca5104eb946179b7659f42e027ca2adb4bcc15e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 04 01:04:10 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 04 01:04:10 2017 +0000"
      },
      "message": "Merge \"AudioTrackShared: Log more detail on fatal errors\" into oc-dr1-dev am: c8adbea083\nam: ca5104eb94\n\nChange-Id: If662b76ab0c1c2c760c42cf24f70bb8aeab57e0b\n"
    },
    {
      "commit": "4679313133edebc90b42f2b5f35ce2090d09fa52",
      "tree": "d265c6aa7483af5155912a33e2ca379243e1270b",
      "parents": [
        "75dbc733ebc44710e1aa25d05f7be3d44a554348",
        "c8adbea08392bb0a6d16abbd6e8111e516b54e3c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 04 00:58:40 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 04 00:58:40 2017 +0000"
      },
      "message": "Merge \"AudioTrackShared: Log more detail on fatal errors\" into oc-dr1-dev\nam: c8adbea083\n\nChange-Id: I6e183fe47b885c94b632335da5cc6727e972c3e0\n"
    },
    {
      "commit": "9c64f34be9e56c70eb1aa22ea8e7ce28fe1a2970",
      "tree": "c7f58fcd10f810f70500671d8a8021efafab7728",
      "parents": [
        "71ee06d081d814b079ed22d2e1a50e1a0bbb490e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 02 18:10:00 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 03 15:46:01 2017 +0000"
      },
      "message": "AudioTrackShared: Log more detail on fatal errors\n\nTest: basic audio use regression test\nBug: 63868320\nChange-Id: Ia4caba9a878b308e6fa0c96ec124443cd96f125f\n"
    },
    {
      "commit": "424c4f5b76a6ed11f2c713b42246a7220cfbb240",
      "tree": "4e99cdf9a79663ff3820a0a5ab7893afd54daeee",
      "parents": [
        "71e4dfef2cd7a43cd61f376311911ea7563a2418"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jul 19 17:54:29 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jul 21 13:55:45 2017 -0700"
      },
      "message": "audio effects: Eliminate the cause warning logs about unreleased interface\n\nThe cause of frequent \"EffectModule 0xxx destructor called with unreleased\ninterface\" messages was due to not releasing the effects when purging\nstale effects.\n\nThe cause of \"Effect handle 0xxx disconnected after thread destruction\"\nmessage was due to late binder call for disconnecting already purged\neffect handle.\n\nAlso improved logging to communicate uuids of the effects causing\nthese issues.\n\nBug: 62267926\nTest: no aforementioned warnings in the log when opening the Effects\n      panel in Play Music\n\nChange-Id: I6ec6f60c46dc704226931fb59a641e4cd74c2fd1\n"
    },
    {
      "commit": "24f8801b22a68204e5ac8187963f07098e9da34a",
      "tree": "2b11c13a2573d734bb82d327666507857c253b3a",
      "parents": [
        "4ecf14419c0857986c1cff6c59cd1f71a9c6013f",
        "d4ee4db973192806809caab637dc0ef081990754"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 18 02:37:19 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 18 02:37:19 2017 +0000"
      },
      "message": "Merge \"AudioTrack: Fix flush problem with integer sanitization\""
    },
    {
      "commit": "9584601561ad1d3b4fc1b0035c3f3e5bbd3e499e",
      "tree": "0f3268ed27ec2f843c79924a4b779afa06fc2b98",
      "parents": [
        "6c3359f522fa5c528d7eef5deaaf0d2c9c365089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:34:02 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:56:37 2017 -0700"
      },
      "message": "Append additional owners to projects\n\nThis releaves reviewing burden from the frameworks/av owners.\nNote that the lists of owners are inherited from the parent\ndirectories thus the people listed in these files are owners\n*in addition* to people listed in frameworks/av/OWNERS,\nand frameworks/av/{media|services}/OWNERS.\n\nChange-Id: I5e2db1c40cb807b906b2701fe446c874a8d19983\nTest: not needed\n"
    },
    {
      "commit": "d4ee4db973192806809caab637dc0ef081990754",
      "tree": "655b94a105b89826fedbef24cbd5639ab804b26b",
      "parents": [
        "8280e4156628d53c0a90c405fa57d4c40c33b62b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 12 15:26:04 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 12 17:53:49 2017 -0700"
      },
      "message": "AudioTrack: Fix flush problem with integer sanitization\n\nAnd other more rare cases of counter overflow.\n\nTest: Custom flush test\nBug: 63544101\nChange-Id: I48ee46966db79ab191ca948d00822e3b6e0cb865\n"
    },
    {
      "commit": "cb4dae216758d9e9a28050f65097f1ce905c03e9",
      "tree": "4c3c49679384d70006675e9e06c7e8e8117e206c",
      "parents": [
        "0acb3209107802e2ab116f8374aab886579729bb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 12 12:17:33 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nMerged-In: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\n"
    },
    {
      "commit": "a54f1283fdd9adbd64ecca4e14af56aaa0e8c825",
      "tree": "cdadd19276119f775480482778c2df15a6ae264f",
      "parents": [
        "20e6916035865710b7a30ac7f2eac1311e2c2e70"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jul 01 19:39:32 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 11 18:21:40 2017 -0700"
      },
      "message": "aaudio: indicate client UID and PID to audio flinger\n\nImplement correct indication of client UID and PID to audio flinger\nfor AAudio MMAP streams in both exclusive mode and shared mode.\n- Add start/stop client methods on MMAP streams used only when the MMAP\nstream is in AAudio service and carries a mix of shared streams.\n- Add \"In Service\u0027\" indication from \"client\" side to AAudioServiceStreamMMAP\nso that the behavior can be adapted accordingly.\n- Modify logic on audio flinger side with regard to mmap tracks and\naudio HAL stream activity:\n  - use same audio session for all clients on a same stream to match\n  audio policy logic to share same direct output stream for clients on same\n  session. This is also more consistent with current volume and effect\n  handling as all MMAP  clients sharing the same output stream have the\n  same volume and use case.\n  - start/stop the HAL when the stream is started/stopped with the initial client\n  handle (returned when the stream is opened) but do not create a track.\n  AAudioService implementation will always send an additional start command before\n  first client starts and a stop command after last client stops,\n  in both shared and exclusive mode.\n  - start/stop a track only if the start/stop stream command is received\n  with a handle different from the initial handle.\n- Allow more than one active client from the same UID on a MMAP input in audio policy.\n\nBug: 62950008\nTest: verify playback and capture in mmap mode\nChange-Id: I86151bbb637ff172d2fd5f813056eab13a7bcd3c\n"
    },
    {
      "commit": "2b01f009428797ee9154649411a64b522946e966",
      "tree": "4a92acd2cccf15d8d916bbdaa7fea1265911ab93",
      "parents": [
        "38217e0d53b14e634243d1ce36fa5d3267c71056"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 05 12:01:36 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 05 12:45:52 2017 -0700"
      },
      "message": "Replace old audio time conversion macros and functions\n\nTest: Play Movies, Youtube, CTS\nBug: 25569135\nChange-Id: Ib6e304f149c381dc7af7f4aa959c3d79d7bdb2aa\n"
    },
    {
      "commit": "66feec9ff333bbf0b2590f1b321fbf880e1405a4",
      "tree": "ebb1043a6aaf48ac109eb7022a999ae4bc31f0cc",
      "parents": [
        "d4ef5f1eafa099eb40e68a1dfc7b701e4a8d0b1a",
        "2ac7694396640821f6723672e25b2372220bf060"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jun 27 01:18:39 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jun 27 01:18:41 2017 +0000"
      },
      "message": "Merge \"Set initial audio device for AudioTrack and AudioRecord\" into oc-dr1-dev"
    },
    {
      "commit": "325b2997d92c4ba2c116b47e6c3d0d0045c5386b",
      "tree": "111e8c240efa9f7574f454babb623ce8d3b1de78",
      "parents": [
        "912c1c196c0783efa90ef35e73dc8efd170a6ba8",
        "9ae8c597d9a0c8cedc4047fc4716d7361453f6ab"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jun 26 19:35:24 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 26 19:35:28 2017 +0000"
      },
      "message": "Merge \"Set initial audio device for AudioTrack and AudioRecord\""
    },
    {
      "commit": "4a0a5c364867f8ad29848c861824d724f6e168b9",
      "tree": "a4d26ec9536ce14c1eb6251d81822c4eb5936174",
      "parents": [
        "5af194cf79f280034430f2f65b02a89f261dbbc8",
        "df4846c344cedb14f59da7f684d792910df6671a"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 26 17:17:56 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Jun 26 17:17:56 2017 +0000"
      },
      "message": "Merge \"AudioTrack: explain why FAST mixer denied\" into oc-dr1-dev am: f7b279fbd4\nam: df4846c344\n\nChange-Id: Ia2b1ac76494ed43242f5f063acd98b28214142df\n"
    },
    {
      "commit": "f7b279fbd419846cdeb2aa55ecdfd74d7fd35b8c",
      "tree": "07f44b89620287361f027816d2b389a4e169c7a2",
      "parents": [
        "ec89b2e2f8c84a7d3936db1a888034f4a4b0df16",
        "adbb75af4d3224194b9b772855db93fae19cf4ce"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Jun 26 17:03:37 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jun 26 17:03:39 2017 +0000"
      },
      "message": "Merge \"AudioTrack: explain why FAST mixer denied\" into oc-dr1-dev"
    },
    {
      "commit": "2ac7694396640821f6723672e25b2372220bf060",
      "tree": "0cd5a8c58898fcb145f4b879ea64aeb260266ce2",
      "parents": [
        "ffd80b92df8521dd28ab5fd08b1098a58cb280e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 17:17:09 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 26 16:29:08 2017 +0000"
      },
      "message": "Set initial audio device for AudioTrack and AudioRecord\n\nBug: 62090113\nTest: run AAudio test and verify a valid device is reported just\nafter opening playback or capture streams in legacy mode.\n\nMerged-In: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n\nChange-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n"
    },
    {
      "commit": "9ae8c597d9a0c8cedc4047fc4716d7361453f6ab",
      "tree": "4c8824f15e744d82243f4a3caab1d67b208afd47",
      "parents": [
        "5af194cf79f280034430f2f65b02a89f261dbbc8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 17:17:09 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 26 08:04:19 2017 -0700"
      },
      "message": "Set initial audio device for AudioTrack and AudioRecord\n\nBug: 62090113\nTest: run AAudio test and verify a valid device is reported just\nafter opening playback or capture streams in legacy mode.\n\nChange-Id: Ic8be42e1735690eb00c811ef0cb8b5abb36172d6\n"
    },
    {
      "commit": "7013d1e8eefbc36661f7e52c4eec3aa94920812c",
      "tree": "c143daa5ea432dcbf4df3ac4365b209ba391cff0",
      "parents": [
        "8ebfadb1d9782d91458b1930eb4ef49c4594743e",
        "2bccce464ce5d919cd537624bde316f8d761fd2c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 24 01:40:59 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 24 01:40:59 2017 +0000"
      },
      "message": "Merge \"aaudio: implement IPlayer for MMAP playback streams\" into oc-dr1-dev am: 06797a2d83\nam: 2bccce464c\n\nChange-Id: Iffc49b40a07f7105a72790a2e50a015d28bb6041\n"
    },
    {
      "commit": "c912054e99a1a285b78d5a94e2a50b94de6d35a4",
      "tree": "f33b2e90545bf4385a7b3937db547a8e33acc3fb",
      "parents": [
        "96521b2b71efb194315277a520cb06e4ade7187a",
        "2c6c3bb76b2fa18ed3536331a1700250bd04c7ce"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 23 22:19:45 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 23 22:19:48 2017 +0000"
      },
      "message": "Merge \"AudioFlinger: Log Record and MMap thread events\""
    },
    {
      "commit": "2c6c3bb76b2fa18ed3536331a1700250bd04c7ce",
      "tree": "2bdd2a6e5f8a2ba988a41d76b390827bfa68a964",
      "parents": [
        "2da80c13523113c4d93c3fe1b11ac16cd22b6d0e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 16 14:01:45 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jun 22 15:01:28 2017 -0700"
      },
      "message": "AudioFlinger: Log Record and MMap thread events\n\nAlso update track dump for better grouping and consistency.\n\nTest: adb shell dumpsys media.audio_flinger\nBug: 62700410\nBug: 62701585\nChange-Id: I3a6e76eac871cb08ff14d45f7d3992a6e7fba045\n"
    },
    {
      "commit": "adbb75af4d3224194b9b772855db93fae19cf4ce",
      "tree": "e413225939c034dd790d41acbd9dd298e0a310ca",
      "parents": [
        "a2f10fb5a0731dc54c06bd55f54ade38800069cd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Jun 16 12:19:42 2017 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Thu Jun 22 10:39:58 2017 -0700"
      },
      "message": "AudioTrack: explain why FAST mixer denied\n\nAlso for AudioRecord\n\nBug: 62692443\nTest: write_sine.cpp\nChange-Id: I5b281476af4703798129df66584d813b9a8db8bb\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "a2f296e06bee54cc83130a17f136cab1006f55d5",
      "tree": "d3545a9d1aafb8485b2addd671f51079308e5d2a",
      "parents": [
        "ffd80b92df8521dd28ab5fd08b1098a58cb280e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 21 18:51:47 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 22 10:22:09 2017 -0700"
      },
      "message": "aaudio: implement IPlayer for MMAP playback streams\n\nMake AudioStreamInternal derive from PlayerBase to\nprovide playback and volume control via IPlayer interface.\n\nBug: 62027849\nTest: verify aaudio playback in MMAP mode and registration of aaudio\nplayers in AudioService when active\n\nChange-Id: Ia0878d46637c0a954d8a6259868a2d3bccf19119\n"
    },
    {
      "commit": "ac4e42982d4537732b30e71c9a00ba0077944984",
      "tree": "1774e0b1cba1a173c29aaca85d4147e178c69346",
      "parents": [
        "c407bd4b32b99cab78e773ac51a57f49cd0985ea"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Dec 22 11:39:31 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jun 19 18:03:28 2017 +0000"
      },
      "message": "Monitoring of recording: uid of recording session\n\nPass uid of recording session along with other existing information\n  in the recording monitoring callback.\nDefine new structure, record_client_info, to group uid (new),\n  session id (existing) and source (existing) and simplify\n  method signatures and marshalling code.\n\nTest: run cts -m CtsMediaTestCases -t android.media.cts.AudioRecordingConfigurationTest#testAudioManagerGetActiveRecordConfigurations\nBug 62579636\n\nChange-Id: I18f66d7e55640a21f31021416a12a3e8094c3690\n"
    },
    {
      "commit": "ac9cef5f3288df6e65cb4488e2615cc3c07b70d0",
      "tree": "3369bd965510d5c3e8ea6257bb1368a677e535c6",
      "parents": [
        "3c1ba2cd6276ee4304ba082fbe40fd870c1746c8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 09 15:46:26 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 15 10:42:59 2017 -0700"
      },
      "message": "audio policy: add method to query dB attenuation for a certain volume and device\n\nBug: 62492975\nTest: Check dB value returned to AudioService when stream volume is\nchanged\n\nChange-Id: I8d0a945e9151d230b93634e4b9e57bab68f44fa8\n"
    },
    {
      "commit": "0b86e57b61b46652585008679e48b6961b40122d",
      "tree": "1bea7921ede728cd7589235175d0d1a8a3b78de6",
      "parents": [
        "c1c9b13223230f8d0e8bddd41e63c7046b7a98a5"
      ],
      "author": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Wed Jun 07 18:56:27 2017 -0700"
      },
      "committer": {
        "name": "Andreas Gampe",
        "email": "agampe@google.com",
        "time": "Thu Jun 08 02:02:39 2017 +0000"
      },
      "message": "audio: Fix read of uninitialized memory\n\nFollow-up to fb12e20e426bc6bcff06e39fba45a931cf787040.\n\nBug: 62425341\nTest: m\nTest: Device boots, com.android.phone doesn\u0027t crash\nChange-Id: Ib54c7efae88cb0bff0f92e1cf1bd20a22fdcbdba\n"
    },
    {
      "commit": "9e8f432a99d78191a42ffc070230d34ebf77102d",
      "tree": "d680e026da8f520bdd0ab8b0e0a1829efc6745ba",
      "parents": [
        "405408c26b05dc4b694c5cb5afc1fe2ae9b7c419",
        "88e94d3c1e3644d1c36b9e9c2f161cfe891ce4e1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 03 01:36:44 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 03 01:36:44 2017 +0000"
      },
      "message": "aaudio: implement native IPLayer for legacy playback streams am: 1d32e9f8e5\nam: 88e94d3c1e\n\nChange-Id: Ic94f6da387d73dfcb727f98bfb67913d0927b3d3\n"
    },
    {
      "commit": "88e94d3c1e3644d1c36b9e9c2f161cfe891ce4e1",
      "tree": "46d368549cb4555b89f5f7d91b6f330665eb6a9e",
      "parents": [
        "e5ed4fc299dce4783cdd015595f733a51da92c19",
        "1d32e9f8e5ba52d69c6319270c8a63a995d2c4f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 03 01:32:26 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Jun 03 01:32:26 2017 +0000"
      },
      "message": "aaudio: implement native IPLayer for legacy playback streams\nam: 1d32e9f8e5\n\nChange-Id: I2763b2e5fcfa1f4d234195c40e955aadbcce2fa3\n"
    }
  ],
  "next": "1d32e9f8e5ba52d69c6319270c8a63a995d2c4f2"
}
