)]}'
{
  "log": [
    {
      "commit": "245cdd91559873aeacf21b7c780655ef43c01682",
      "tree": "336ec5eaea56659c21e9441c0d2b5a03102b9b32",
      "parents": [
        "dce8f8cc41cb6be63d13ad0099d61807746ff5d7"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Fri Dec 07 17:55:15 2018 -0800"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Wed Dec 12 11:33:47 2018 -0800"
      },
      "message": "Support audio-haptic coupled playback.\n\nWhen trying to play with haptic channel mask, use adjust channels\nbuffer provider to make the haptic channel the same as the output one.\nIf haptic playback is supported, use adjust channel non destructive\nbuffer provider to output haptic data to the end of the sink buffer.\nOtherwise, haptic data will be ignored.\n\nTest: Manually\nBug: 111454766\nChange-Id: Ic5f780de48c1e71de6ba5c4774d1ed2e9c8c51a0\n"
    },
    {
      "commit": "0513b5dfd08a813dd29b95b79e5a52677500206f",
      "tree": "4f780d0d72ace741eaf3bc3631f353452dc357f8",
      "parents": [
        "cfa7c4b96ced4a086bffabdd4394fb19c9400524"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Mon Sep 17 10:32:48 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Mon Sep 17 18:29:49 2018 -0700"
      },
      "message": "Add options to dumpsys media.log and dump visualizations\n\nOther Changes:\n- added thread_params_t type to NBLog\n- rearranged ordering of macros in TypedLogger.h\n\nTest: dumpsys media.log with --json, --pa, and --plots options\nBug: 68148948\nChange-Id: If97714271a085a99bba0ab3ae0c268a9f407f053\n"
    },
    {
      "commit": "ace588cc1e78f3a83a0e410113009fb31a0f9af7",
      "tree": "7b82d5a4892f8ea53620c937927b6c9eb363cdb6",
      "parents": [
        "c5fee0a8854f5decd3b567d2383cd38f0aada4f4"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Sep 12 11:44:43 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Sep 14 15:57:50 2018 -0700"
      },
      "message": "nblog: split NBLog.cpp into multiple files\n\nNBLog.cpp was deleted and split up into Entry.cpp, Merger.cpp,\nReader.cpp, Timeline.cpp, and Writer.cpp. NBLog.h was split up into\nEntry.h, Events.h, Merger.h, Reader.h, Timeline.h, and Writer.h. NBLog.h\nnow includes all of these new headers except Merger.h, which is managed\nexclusively by MediaLogService.\n\nOther changes:\n- changed NBLog from a class to a namespace\n- changed NBLog::thread_info_t.type to enum and replaced magic numbers\n- fixed some fragile build dependencies in libaudioclient and medialog\n\nNo other changes were made, and all functionalities that existed prior\nto this commit remain the same.\n\nTest: build, dumpsys media.log\nBug: 68148948\nChange-Id: I1ce6dcb7b30d004f90584edfad7103a89f7bab0c\n"
    },
    {
      "commit": "fefe316501e06c96ce0d905c793b4d872d60e976",
      "tree": "cd6bb858c1de4d0bba5d7a321a5db065247fc3fc",
      "parents": [
        "bc2a77308b7c197a30a3289e5b75d0f089e65982"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Sep 07 10:09:11 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Mon Sep 10 19:05:08 2018 -0700"
      },
      "message": "NBLog: log and store warmup times, underruns, overruns, and thread info\n\nTest: dumpsys media.log\nBug: 68148948\n\nChange-Id: Ib6ea96760f7886cba47c8e2f0334114237a2434b\n"
    },
    {
      "commit": "e98dd6f5496aaba009ed27be8e83af1cd10869c5",
      "tree": "2d3c6b7f683b781d961d22d541d7193ec08f0642",
      "parents": [
        "6af1847b8ea55d9f21e75b0f0ed91dc0e8f68c32"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Aug 22 18:23:50 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Aug 29 15:10:40 2018 -0700"
      },
      "message": "NBLog: add latency logging and histogram serialization\n\nReportPerformance::writeToFile and the recording of PerformanceAnalysis\nFastMixer timestamps are disabled for now.\n\nTest: dumpsys media.log -r\nBug: 68148948\nChange-Id: I4ba55fc20521ad2278348e6a3f713f9db04d951b\n"
    },
    {
      "commit": "5b13ff8f66e4b376127af9cfb6fa3f075f17eaa2",
      "tree": "e2f3cd20f0d8dc994356e5b5451492360b3481ba",
      "parents": [
        "19283e9de83b5ade80a93b43589ea9a799414290"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Jul 27 11:20:17 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Jul 27 14:32:42 2018 -0700"
      },
      "message": "audioflinger: Replace cpustats/CentralTendencyStatistics with audio_utils/Statistics\n\nRevert CPU_FREQUENCY_STATISTICS macro in Configuration.h.\n\nTest: build with different #define, dumpsys media.audio_flinger\nChange-Id: I91680c462b069779d8db3b7a10603fb11a81a135\n"
    },
    {
      "commit": "2e2c0bbe19c4cc50ee9ae8bef7955229fe2fb058",
      "tree": "c7c8defc8161838cd5f7dd8f3d221493a9d441ff",
      "parents": [
        "14dc10deebda497664a5ec0943c1083f64d2ed9d"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 11 19:13:11 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 18 15:16:41 2018 -0700"
      },
      "message": "Timestamp: Collect and dump statistics\n\nTest: Audioflinger dumpsys\nBug: 80502521\nChange-Id: I8c7c8b0c2f0f51dc898ed96f6a973e20490022f1\n"
    },
    {
      "commit": "f6ab58dfbc394e88115eb1483aaf47db91279981",
      "tree": "3a1c63e4a0e66fcb960201ec9852cc8c7e8dc8c0",
      "parents": [
        "59fef32845e5fec2f5c97c9637965b8c3ca24a6f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 25 12:50:39 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 25 14:03:16 2018 -0700"
      },
      "message": "AudioFlinger: Add latency measurements from timestamp\n\nReplaces main and aux buf from track dump.\n\nBug: 80272001\nTest: adb shell dumpsys media.audio_flinger\nChange-Id: I5d6565410e652ec7fc6701b171d299dea9f7bc3e\n"
    },
    {
      "commit": "8946a28aaaadf426ee22b098b4aec7be4d9edc00",
      "tree": "85a9520841616e8c1188d51fd44591543148e874",
      "parents": [
        "acb7d9ddc1955682379ea514082511b9ea44482e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 19 20:04:56 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 21 11:37:46 2018 -0700"
      },
      "message": "AudioFlinger: Fix Tee logging\n\n1) Fix bad WAV files for tee sources that aren\u0027t 16 bit PCM.\n2) Allow multiple RecordThread tees instead of one.\n3) Allow dump from non-fast MixerThreads (e.g. deep buffer).\n4) Parallelize tee dumping for improved concurrency;\n   dump outside of AF lock.\n5) Async dumping to allow dump to be issued in time critical code.\n6) Improve file naming to distinguish record vs playback tracks,\n   threads, and dump reason.\n7) Allow Tee insertion anywhere in code with global running\n   Tee management.\n8) Increase resolution of filename time to msec avoid file overwrite.\n9) Dump track data upon removal from active tracks to improve\n   timeliness of dumped data.\n10) Dump tee data on tee destruction.\n11) Refactor Tee code out of AudioFlinger.cpp; minimize footprint.\n\nAudioFlinger enabling code requires Configuration.h define TEE_SINK;\nthis is disabled, hence avoiding regression risk.\n\nTest: Enable tee log, repeatedly call dumpsys, examine files.\nBug: 78369241\nChange-Id: I7b22cfa7dbbc1601828de931522065a509ab4047\n"
    },
    {
      "commit": "860d10a72cc760b4be280277e86c526ad171e4bb",
      "tree": "786d6f2648ecf9481fea855a82def4cef131b47d",
      "parents": [
        "ed4f0147db29c87d0404f78eb68dc7b7b81deed8"
      ],
      "author": {
        "name": "Dhananjay Kumar",
        "email": "dhakumar@codeaurora.org",
        "time": "Mon Apr 16 12:40:29 2018 +0530"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 27 13:40:50 2018 -0700"
      },
      "message": "Remove usage of undeclared and unused variable mFastTrackNames\n\nCRs-Fixed: 2220445\nBug: 78683817\nTest: at bug\nAuthor: Ramjee Singh \u003cramjee@codeaurora.org\u003e\nChange-Id: I3c51cd30bd5ab0ab25f6a49460895c889ea8fc33\n"
    },
    {
      "commit": "1bc088a918d7038603230637d640941953b314d4",
      "tree": "e231c2b22d944eaed29445fe4a35861fddb50e54",
      "parents": [
        "e54461ae132a79d0ffa9d3ec4631df13eb5c7809"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 09 15:57:31 2018 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 16 15:50:32 2018 -0800"
      },
      "message": "Call AudioMixer only from MixerThread threadLoop.\n\nAs part of change:\nRemove track name offset by TRACK0.\nMove track name management to the Tracks class.\nSync mixer track name to FastMixer track index.\n\nFixes regression introduced by commit 8ed196a.\n\nTest: SoundPool, AudioTrack CTS, Usability\nBug: 72937362\nBug: 73004420\nChange-Id: I2f1a33f6f0da66bcd7aa91e2a4b663ff822df645\n"
    },
    {
      "commit": "857689453ed225e34488d4b02bd723dee8556606",
      "tree": "5692a2c4e2d902c25a9895e820b229a67b9fa03d",
      "parents": [
        "0a3959e84386d8e6fe40832309eeec36a599dc14"
      ],
      "author": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Wed Jul 26 20:17:30 2017 -0700"
      },
      "committer": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Mon Jul 31 10:26:04 2017 -0700"
      },
      "message": "Fixed timestamp outlier bug\n\nTest: dumpsys media.log\n\nChange-Id: I8b03feed956100d4cec0a2d9683a8a436323d171\n"
    },
    {
      "commit": "a8a8a47da86e181d835eab7f858d6b1d2c3a8357",
      "tree": "a5a3c4afcd188433b61e22c9dcaa267544810743",
      "parents": [
        "41cad59d28749b397c35a246a670603cd311be19"
      ],
      "author": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Tue Jul 11 09:41:25 2017 -0700"
      },
      "committer": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Wed Jul 12 14:45:13 2017 -0700"
      },
      "message": "Restored audio onStateChange log\n\nCalls flushTsSeries when a state change was detected\nto avoid logging idle audio time as a buffer period.\n\nTest: dumpsys media.log\nChange-Id: Ia33bec8829dcd5d2de5c40f904e5ea19c5a2b453\n"
    },
    {
      "commit": "d4a68f6a2102282ede5331c47df8f04188bdffb8",
      "tree": "0c146e872168b10bcffb9e82f6d8f90ef3e4a104",
      "parents": [
        "d0dfe43a46bd1705c11b405f5f376524391bfb1a"
      ],
      "author": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Fri Jun 23 16:09:41 2017 -0700"
      },
      "committer": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Mon Jun 26 10:45:16 2017 -0700"
      },
      "message": "Removed LOG_HIST_FLUSH\n\nTurning audio on and off does not cause this event to be\nwritten to the buffer. Now, a call to dumpsys media.log\nsimply writes to console an analysis of the data in memory,\nand does not delete it afterwards.\n\nTest: dumpsys media.log\n\nChange-Id: Ie75fb27ec4050fb3891635f4c7933196cfd03643\n"
    },
    {
      "commit": "eef598c5539aa2be5a106f2483b19e368e4b8c0e",
      "tree": "677e3f98c4f1b3deb9d653dc5ad00b4a7e881028",
      "parents": [
        "3ab8d66ad1c47a5ee1f87ad9f5ee2666cf89b32d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 03 14:41:13 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:46:35 2017 -0700"
      },
      "message": "Add histograms for FastMixer\n\nBug: 37153050\nTest: dumpsys media.log shows histograms for audio activity on FastMixer\nChange-Id: I6bb4bf19d62da1ed1d8cda43d428b03153a35de3\n"
    },
    {
      "commit": "3ab8d66ad1c47a5ee1f87ad9f5ee2666cf89b32d",
      "tree": "4e0b0664033e13a14ad1c05652b7ccded31ee87c",
      "parents": [
        "8ae038e457b0b01c4f082ff5504f8b880b087f77"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 03 14:35:09 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:46:29 2017 -0700"
      },
      "message": "Rename symbols to be more consistent\n\nBug: 37153050\nTest: builds OK\nChange-Id: I7e55a03ca8e1f22901db6c8f6f2ad32e4c95a0cd\n"
    },
    {
      "commit": "6bf707f4c0752643757a7389384817da41d34fab",
      "tree": "4b5fc278ee8a74ae100b2aadea46a6f9b4c2da1b",
      "parents": [
        "0012417ddc1320c6df79258266da1e869036b211"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 23 16:53:58 2017 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 10 15:34:17 2017 -0800"
      },
      "message": "Rename audio_utils/conversion.h to mono_blend.h\n\nThere is only one function declared in that header file, and it is\nmono_blend, so a more specific filename may be easier to understand.\n\nTest: compiles OK\nChange-Id: Ie2aec6c706b1822581b34d3702818b8200a1db8a\n"
    },
    {
      "commit": "068561c8e84569d51df2adbbb53b56fdfd09c06b",
      "tree": "67e6c9c383b4667adc502b0ed6928a672a6a5b6d",
      "parents": [
        "ee454fcb25bff0f9c5d3455775a4cb66429e875e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 03 17:09:32 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jan 10 17:06:46 2017 -0800"
      },
      "message": "AudioFlinger: Split off audio processing library\n\nTest: native AudioResampler test, general playback test\nBug: 31015569\nChange-Id: Ifb248f4402a583438d756c014dcd7a4577aef713\n"
    },
    {
      "commit": "b54c854d1ef1bb66e093c94099f915178eac570e",
      "tree": "e07e0f670a489ddc829a95054a835bcf1754539c",
      "parents": [
        "b5ae35c5cf5cc7176661eea9bf725437c85693b0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 21 12:55:15 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 22 16:20:39 2016 -0700"
      },
      "message": "Add logging of written frame counts\n\nBug: 31591209\nChange-Id: Ife5917aa65b02c3b0791dfe1975c70ccf58f9a75\n(cherry picked from commit 2c45393d842a5d2968ef78fa7a08667efdf15f2a)\n"
    },
    {
      "commit": "f9715e43ea73361321663514c44129c939c5db2f",
      "tree": "60a0f90c5c13c59bd9f41ba26e7c9e8d6f59db31",
      "parents": [
        "9f6392250bf6d02a514bd83b743906dda748dee9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:02:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 08:27:55 2016 -0700"
      },
      "message": "Distinguish systrace timelines for playback and capture\n\nBug: 30120068\nChange-Id: If416540f0785e83e7b1e8ba986ee55b5b9298a2a\n"
    },
    {
      "commit": "07eee80b3422c0304491f24bbc415deb0badbefc",
      "tree": "9fca1712dc24e9e7ca66ea8c394c6bbf6c5c2946",
      "parents": [
        "37a9de26f6403955a19b81ce5ffe87998e9bf46e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 16:47:16 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 22 18:37:59 2016 +0000"
      },
      "message": "Limit cached timestamp use if HW fails to provide them\n\nOn some devices, if the HDMI cable is disconnected during use,\ncached timestamp info can become very old.\n\nBug: 29423451\nChange-Id: Ieecf5e98bad14d00b4f5f14b032c2cf66ae94ceb\n"
    },
    {
      "commit": "dc2c50bad491d2c0c8a2efc0e24491076701c63c",
      "tree": "b1b2eead0896ffa4b095bee9fb0a00c8cc8d5944",
      "parents": [
        "ecd0a41d9a2cc9efbc4ad6d4c91d417461772933"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 21 08:13:14 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 28 15:17:09 2016 -0700"
      },
      "message": "Make max fast tracks configurable using a property\n\nro.audio.max_fast_tracks\n\nRename the currently configured maximum number of fast tracks\nfrom FastMixerState::kMaxFastTracks to FastMixerState::sMaxFastTracks.\n\nThere is no guarantee that the CPU will be able to handle\nthe configured number of fast tracks.\n\nBug: 27564141\nChange-Id: If9af226d839b226503488c3cb20a4bb8950b429d\n"
    },
    {
      "commit": "c42e9b462661673dff480ee71757a58b0f806370",
      "tree": "c9d53e761500f2466b7b8c4cfeb78b072d424e29",
      "parents": [
        "02c4f1c02b832868bbae2bf2c62039e54dc0b6d4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 11:35:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 12:05:28 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Idfdaff3a7a8f60cd8817bd306bfba28020a391c8\n"
    },
    {
      "commit": "7be6866af78a86a89113e9b680f1a6416ae1f711",
      "tree": "e89bc6fbcaecddfe83a01af125880b284f7ed496",
      "parents": [
        "76f27134fb546340154216212d84243d56a8928a",
        "57c4e6f7464d458eb52d209c2a63524913d6406d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sat Mar 19 00:40:45 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Mar 19 00:40:45 2016 +0000"
      },
      "message": "Merge \"Fix build warnings\" into nyc-dev"
    },
    {
      "commit": "57c4e6f7464d458eb52d209c2a63524913d6406d",
      "tree": "b7fae46bbc981c62460d572b51d6f68b9f9b847d",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:07 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:36:37 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: I33178dbe0bfc087d6599579ca0529ad853c669ed\n"
    },
    {
      "commit": "947ffa37beced7cca943477b4d748b0f6b279b0b",
      "tree": "e14e199cd3eb0e77491de7d317acfd65011c31b7",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Mohan Kumar",
        "email": "mkumard@nvidia.com",
        "time": "Fri Dec 12 15:16:46 2014 +0530"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:24:32 2016 -0700"
      },
      "message": "audioflinger: clear mMixerBuffer if frame is not ready\n\nClear the mMixerBuffer if frame is not ready before the FastMixer\nstarts processing. Otherwise it might result in large glitches on\noutput device due to junk data present in the mixbuffer.\n\nChange-Id: I9f025234d4ac100f85d2ec67c06a8df4195bea98\n"
    },
    {
      "commit": "818e7a32ce3633980138aff2c2bfcc5158b3cfcc",
      "tree": "61104149c08955e55a10b9353f80ed140ad3df26",
      "parents": [
        "6ae5843c281301a9ffd1059d185620a9337e15a2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Feb 16 18:08:07 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Feb 19 13:15:16 2016 -0800"
      },
      "message": "Implement server side playback timestamps with 64 bit accuracy\n\nProvide server timestamps if the HAL doesn\u0027t provide it.\nProvide monotonic - boottime translation.\nIntegrate record timestamps and playback timestamps together.\n\nBug: 17472992\nBug: 22871200\nBug: 26400089\nBug: 26682703\nChange-Id: If1974f94232fcce7ba0bbcdf63d9e54ed51918ff\n"
    },
    {
      "commit": "03c48d5afcb3dfc1e43df93e1f3b3b3e9292e148",
      "tree": "14e38bde5515cc54b0295faf92c13c37097f53e7",
      "parents": [
        "16558ea318c3cf25a945fc1771572f489763527e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 27 17:25:17 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 01 11:11:51 2016 -0800"
      },
      "message": "Add limiter for mono blend\n\nBug: 26904791\nChange-Id: I76b16e70871cd9fc0a9b8badc66f27069fabe1cb\n"
    },
    {
      "commit": "d79072e9dff59f767cce2cda1caab80ce5a0815b",
      "tree": "cab9cab36ddf4bb61675c4508d923b283fd3edd6",
      "parents": [
        "a7b723715bab4ddf6db364c825135a9bc003c7c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jan 06 08:41:20 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 25 15:34:04 2016 -0800"
      },
      "message": "Remove TimedAudioTrack and associated code\n\nBug: 8278435\nChange-Id: I095c1a4888e645e14d93b0b15fbef4524a831ca1\n"
    },
    {
      "commit": "64f1901bdddf464c8f29bed34e3449762873b3e9",
      "tree": "78b461038b8ee9ab49825d180c9d21347831c9a0",
      "parents": [
        "38b85c29b5be56e660b162da8a13129ac20f8daf",
        "2ddee19245641e86bca436dda23a0f5089bf2ab5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 08 23:17:57 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 08 23:17:57 2016 +0000"
      },
      "message": "Merge \"Add setMasterMono and getMasterMono\""
    },
    {
      "commit": "2ddee19245641e86bca436dda23a0f5089bf2ab5",
      "tree": "ee665bb2097db2710211eb1d834510201b02ab59",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Dec 18 17:34:44 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jan 08 14:09:31 2016 -0800"
      },
      "message": "Add setMasterMono and getMasterMono\n\nBug: 15283594\nBug: 22700363\nChange-Id: I32dc1fcecf285967a61bd508af3bb299595db57d\n"
    },
    {
      "commit": "cb4432af8dc3abc8dc4cc8e5d6080cc68a862ea1",
      "tree": "3193b181150fb60e2462244c9b3a356024e0e4f0",
      "parents": [
        "df9e6aaf716279baf0e27b99acf10005924245ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 16 07:26:30 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jan 05 10:43:18 2016 -0800"
      },
      "message": "Use FCC_2 and FCC_8 to highlight channel count assumptions\n\nBug: 21656069\nChange-Id: I7678adaac2c4cb429465e2eef03c1c711e550e99\n"
    },
    {
      "commit": "60c545dfc4160a6d46febb9aa6684f6d300ec74d",
      "tree": "a5a24b638cb8641e971909ba1a741e64bcaf098a",
      "parents": [
        "b36bc776545d9758f3bc9a853a5a0fd51280e9fb"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 17:34:53 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 19 17:34:53 2015 -0700"
      },
      "message": "Fix FastMixer high bit depth Hal support\n\nBug: 21959591\nChange-Id: Ia3351ea5644b36852a1f0dad1314beac97d840e1\n"
    },
    {
      "commit": "f59497bd3c190e087202043de5450ef06e92b27d",
      "tree": "52ff88a5a4bd358358850e0ca16d0f9527fded4e",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 26 16:35:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 16:22:16 2015 -0700"
      },
      "message": "Update comments\n\nChange-Id: I37d3c4ce22b74fe8581a886fe5a7f9fef8266dad\n"
    },
    {
      "commit": "4dd03b5b68dcd8eb5f5ffe2cfe93d26b8f08b848",
      "tree": "203ce41ac6f50f6a4c90cefd3b33f6d351037163",
      "parents": [
        "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:32:04 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:56:00 2015 -0800"
      },
      "message": "Remove redundant this-\u003e\n\nChange-Id: Iaa11bcce94dd331425197aab49065939e226a6a2\n"
    },
    {
      "commit": "e4a7ce250cb94a00aa2f76e5edca1c4479dc5401",
      "tree": "90743cbfc56a46b815fc5118b0695f5130e8d6a5",
      "parents": [
        "d702a568cb62e5aebe048147350bb3c76f9386ba"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 11:23:17 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 15:55:56 2015 -0800"
      },
      "message": "Add \"m\" prefix to fields\n\nChange-Id: Ifdb8fa886d1ff53cd7c8aff3c2f8286e6e18dec2\n"
    },
    {
      "commit": "214b406c813e5baca3e4b5cdc1d986de35f09bbb",
      "tree": "9e39728f873648da62d84e101b8dfcb25c58f4f7",
      "parents": [
        "bf31b3301676ad86151f632e9ca186fd02445d86"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:15:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 14:17:05 2015 -0800"
      },
      "message": "Rename FAST_MIXER_STATISTICS to FAST_THREAD_STATISTICS\n\nChange-Id: Idb5f5bf0c20bffff8536cf4a46f696e12e99e81b\n"
    },
    {
      "commit": "d2123e631834a887c2d8600c3ac43dda02d47cb9",
      "tree": "1b0fbc7dd7ffb18d7a7084f2cff34f82c61a25b2",
      "parents": [
        "ad8510a339ffab330c2c46e5c247dd1cf9e15c22"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 29 10:02:44 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:44 2015 -0800"
      },
      "message": "Warmup cycles must be in range and consecutive\n\nChange-Id: Ie8a40ec3547bdd62a1e2e05b11fb107c25841784\n"
    },
    {
      "commit": "ad8510a339ffab330c2c46e5c247dd1cf9e15c22",
      "tree": "f8643e6711ce756876c02cbb2c0ed4ed459c6187",
      "parents": [
        "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:24:07 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:41 2015 -0800"
      },
      "message": "Include what you use\n\nChange-Id: I1967861f383bb5ed6743fb69e3bd439907ed7033\n"
    },
    {
      "commit": "04333cdc8d6a3c8e4a11835371e8ad13adf3f7f0",
      "tree": "ff205682f760786e3d195f297d60207af0e40792",
      "parents": [
        "658fc18d8e632441cd5d83a4f74b53620cbac1fe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 17 16:23:03 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 19 09:47:39 2015 -0800"
      },
      "message": "Pull out FastCaptureDumpState and FastMixerDumpState\n\nChange-Id: I8e44dbfe02338622eb69193b234743b50f0dd79f\n"
    },
    {
      "commit": "b187de1ada34a9023c05d020a4592686ba761278",
      "tree": "31dea84d078f6198ce17ca856fcbb76c402f37b6",
      "parents": [
        "64cbdee08a18b25448a5fb0b058d3b83d5630d7f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 30 08:18:15 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Dec 30 08:18:15 2014 -0800"
      },
      "message": "Line length 100\n\nChange-Id: I6c8fe626a3825fa9e139319656d682a57b887c97\n"
    },
    {
      "commit": "329f6511ee4e03a4605c70bbda8d3a96d2544884",
      "tree": "7c80c71e7eb84ba39106205214c9e58b5f6aed1e",
      "parents": [
        "9dd4a2ddd7caf8cbe50d8a76e0ec3e0274d2bce6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 28 16:23:16 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 02 13:54:21 2014 -0700"
      },
      "message": "Restore the ability to build tee sink for debugging\n\nThis changelist does not enable tee sink, but makes it possible to do so.\nTee sink had suffered some bit rot since it is not built by default.\n\nAlso fixes a crash for \u003e 2 byte per sample or \u003e 2 channels.\nStill does not write correct header for floating-point;\nthat will be best solved by moving to libsndfile.\n\nBug: 16990102\nChange-Id: I8e92c588ccc513d7802d696fcfb324e815772df6\n"
    },
    {
      "commit": "9a59276fb465e492138e0576523b54079671e8f4",
      "tree": "e3e51544dc4e641cdfe0b38bfaac530167656eb8",
      "parents": [
        "e93b6b7347a7846c8fd746542364ec11b0cd5124"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 21 21:56:01 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Jul 24 18:57:27 2014 -0700"
      },
      "message": "Add multichannel capability to AudioFlinger\n\nBut not enabled (kEnableExtendedChannels \u003d\u003d false).\n\nChange-Id: I62f7e31fbd29ad703a9a02f5d1a280b6972dd423\n"
    },
    {
      "commit": "6be494077f8d7970f3a88129c5d139c5a0c88f6d",
      "tree": "8c77f163bd84e808693832666d29b42f73361fc5",
      "parents": [
        "97ae82408469286426d8dc57a361350f74e24a8b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 10:42:03 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 30 17:07:44 2014 -0700"
      },
      "message": "Change parameter type for volume to float in AudioMixer\n\nChange-Id: I4da1505ce852505f86f8e5b87f60e8edceeb30e0\n"
    },
    {
      "commit": "1258c1ab592a899fabb1e31eb5db2ef413b6f38a",
      "tree": "17bd7e0084b3089a8a66afeaf9a560a58ef4715d",
      "parents": [
        "798ce934571bc7eb5715bf1c03cbe5436a1220e3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 21:22:17 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 29 18:17:02 2014 -0700"
      },
      "message": "Add multiple format capability to FastMixer\n\nFloating point data from MixerThread into FastMixer.\nMultiple output format capability from FastMixer to Sink.\n\nChange-Id: I0da17810ee71381a39a006c46faec71108d22c26\n"
    },
    {
      "commit": "b9e722bdf00333557578497c5abfc77c5d779ecb",
      "tree": "358849da7593a03312599c17cb2c970b92eccd09",
      "parents": [
        "7b2b401a1decf286890171a6791b7a6aa8b80ca7",
        "45d68d366d07b10733c1e8af6a6984befbc08ce1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 27 22:29:46 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 22:29:46 2014 +0000"
      },
      "message": "Merge \"Rename mixBuffer to mMixerBuffer in FastMixer\""
    },
    {
      "commit": "018d324dc599c5f4238a4cd631baac47c28d59fe",
      "tree": "3c45f7d16bb23590c06eae6fa59852882c16f897",
      "parents": [
        "1a83b736737e7f625371093519ff7a10b05e0c63",
        "ef7c7fbd0e3fb36af14cd7d39f64c949031516a5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 27 18:32:15 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 27 18:32:15 2014 +0000"
      },
      "message": "Merge \"Add multiple format capability to AudioMixer\""
    },
    {
      "commit": "45d68d366d07b10733c1e8af6a6984befbc08ce1",
      "tree": "b79d525dc649db24fdbd4c11feb5f3d9eb12f17e",
      "parents": [
        "ef7c7fbd0e3fb36af14cd7d39f64c949031516a5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 21:13:31 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 22:13:50 2014 -0700"
      },
      "message": "Rename mixBuffer to mMixerBuffer in FastMixer\n\nLikewise mixBufferState becomes mMixerBufferState.\nThis harmonizes with the naming in AF::MixerThread.\n\nChange-Id: I1255d7c07cc2c6ee925d7430925236d2bd163122\n"
    },
    {
      "commit": "ef7c7fbd0e3fb36af14cd7d39f64c949031516a5",
      "tree": "94f9ef7ecba0cfdbfae659013923d261ccf19e40",
      "parents": [
        "e8a1ced4da17dc6c07803dc2af8060f62a8389c1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 12 16:51:41 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 22:11:16 2014 -0700"
      },
      "message": "Add multiple format capability to AudioMixer\n\nChange-Id: I04ac1cafd90b6ed652f8d51888ad07576678f0bc\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "c62476f0c0c1cf9283a38852bde0a4c9434df712",
      "tree": "6249b263dba1e91017e9debfe4c2e8f79b1be2c7",
      "parents": [
        "7a470c375c2cef8b186fbadd9915b30e5d757453",
        "e8a1ced4da17dc6c07803dc2af8060f62a8389c1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 23 23:51:17 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 23 23:51:17 2014 +0000"
      },
      "message": "Merge \"Add format parameter to getTrackName() and track_t\""
    },
    {
      "commit": "24ffe7a9161943c8ba2353e956653a71af564b5d",
      "tree": "8bcf08421a8dc8e92b61c5877a7378ef23a86098",
      "parents": [
        "d6b1efbc99de43d56aa6a4123126e994e7c2c30e",
        "79262cfc14a9d8b5aa29d43e84ea91eedb9492ba"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Fri May 23 19:34:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 23 19:34:00 2014 +0000"
      },
      "message": "am 79262cfc: am 5b756bfd: am 8b187f4a: Merge \"Move frameworks/av off \u003csys/atomics.h\u003e.\"\n\n* commit \u002779262cfc14a9d8b5aa29d43e84ea91eedb9492ba\u0027:\n  Move frameworks/av off \u003csys/atomics.h\u003e.\n"
    },
    {
      "commit": "63492411cf4abff452b47f59ec7ff6f3e9925c84",
      "tree": "cc6cb58344fecd61be2dc08fac556340b4206ef2",
      "parents": [
        "d551633916d3677da4dda10aba6837bdc6803ee0"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 14:20:39 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 14:20:39 2014 -0700"
      },
      "message": "Move frameworks/av off \u003csys/atomics.h\u003e.\n\nBug: 14903517\nChange-Id: I92cdfc618d83fd914cfb558a07b1deae0255fccb\n"
    },
    {
      "commit": "87cebadd48710e42474756fc3513df678de045ce",
      "tree": "6f8a07d9ec9b4ebad70367430190a689cb1a5db3",
      "parents": [
        "77a3374a6170fb5f0168169bc4bc3fa9baf318eb",
        "f285c91efbae23783fe94dc5ad19a2560e157685"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 10:14:43 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 10:14:43 2014 -0700"
      },
      "message": "resolved conflicts for merge of f285c91e to master\n\nChange-Id: I4c995e297d09c0854a42142cc57dce8b771acf65\n"
    },
    {
      "commit": "8b5f642eb2364ea7fe46a5b3af51b48b58f12183",
      "tree": "3804f0168793993d3558bcb33970904f45db8949",
      "parents": [
        "85e6e87c41bba51729cee8958a5c30157c8dc674"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:22:06 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu May 22 01:22:06 2014 -0700"
      },
      "message": "Move frameworks/av from fdprintf to POSIX dprintf.\n\nBug: 11156955\nChange-Id: Ia98cd16b4c1f7be87cf060b7456de4f40896bacb\n"
    },
    {
      "commit": "22f22ffcb111b38eb7a303bfde39aed108b43e07",
      "tree": "c2a1d2f6aaf08d90b1efda93c66899b4f5add6af",
      "parents": [
        "3b6da6bfb50a1c0324fb4c87326d3a477944d5fe"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:44:27 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed May 21 18:44:27 2014 -0700"
      },
      "message": "Restore accidentally-removed NULL timeout.\n\nChange-Id: I933c80fea50950243f109acf8d6350013aaa811f\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": "00ddac6f47a066a545342a81c40425e3a153e8a1",
      "tree": "c9d3c9e845b5467c55fe05e0936f7af3956b7d3a",
      "parents": [
        "ddde219f2f93c1d81ff1cfaf4d3d31d95156f7a3",
        "68112fc4f77ab8c4a744782f78e9792afe0cbfc1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 20 01:04:48 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue May 20 01:04:48 2014 +0000"
      },
      "message": "Merge \"Update AudioMixer::getTrackName to save channelMask\""
    },
    {
      "commit": "e8a1ced4da17dc6c07803dc2af8060f62a8389c1",
      "tree": "eadb47a0d9349451773ef55adaa60317e1dbafad",
      "parents": [
        "68112fc4f77ab8c4a744782f78e9792afe0cbfc1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 09 15:02:21 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon May 19 12:27:46 2014 -0700"
      },
      "message": "Add format parameter to getTrackName() and track_t\n\nChange-Id: Ia152a839014e235fbfb656104c15d7c1b456d02e\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "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": "68112fc4f77ab8c4a744782f78e9792afe0cbfc1",
      "tree": "4b7441d8f494bc9081de5c451794796d5a8693c8",
      "parents": [
        "e541269be94f3a1072932d51537905b120ef4733"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 14 14:13:23 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri May 16 16:20:54 2014 -0700"
      },
      "message": "Update AudioMixer::getTrackName to save channelMask\n\nChange-Id: I4fb4abbff1b05bdd0f6e21b5f5f4c3f2a57ae28d\nSigned-off-by: Andy Hung \u003chunga@google.com\u003e\n"
    },
    {
      "commit": "2234002b0710c8db73f82d397cb945cd541c6bbb",
      "tree": "be662712131225845bb0afd7d32e7c37a7f295ad",
      "parents": [
        "67ee990d324229ab0565ce632bd5a04297e16a01"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 07 12:04:41 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 28 12:26:11 2014 -0700"
      },
      "message": "Start pulling bits of FastMixer up to FastThread\n\nChange-Id: I4c6f7b8f88fcf107bb29ee6432feecd4ab6554d2\n"
    },
    {
      "commit": "bc6ae9bd4ee93e91e212ad35be038f21797ef31e",
      "tree": "848701c25988f69b4a2c10ae1c25afb28cf84725",
      "parents": [
        "c51db0a6bfb71ea9c934fb7971cb5ae1f1cf03a0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 07 13:02:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 07 13:03:40 2014 -0700"
      },
      "message": "Fix regression in FastMixer statistics\n\nAt some point, the mSampleRate in FastMixerDumpState stopped being\ninitialized correctly.  I\u0027m not sure when this happened, it doesn\u0027t seem to\nbe introduced in recent CLs.  This lack of initialization caused\nsome of the FastMixer statistics based on sample rate to be useless.\n\nChange-Id: Id2a96d606130a90c4c4f1bddd59778f6c6428a9c\n"
    },
    {
      "commit": "adad3d7d935da176ff24941b4ae9edf7340e9b96",
      "tree": "7a8a2f8e31c7dd690805c1cfd9982d218c66296b",
      "parents": [
        "1392eb3d1802e9f894f87d7a7387207d1b6faca1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 21 14:51:43 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 14:46:28 2014 -0700"
      },
      "message": "Use LOG_ALWAYS_FATAL instead of LOG_FATAL\n\nLOG_FATAL is compiled out in most builds, so the\nassertion checks were not being performed.\n\nChange-Id: I774f0985ab9c5ccecd8989a0f1c940386b73fc35\n"
    },
    {
      "commit": "1d6fa7af1288b550faabe4ec2cf98684236723db",
      "tree": "a8801ca9a0925ba1faccf17acea4aa78d71a9d29",
      "parents": [
        "b82a9f105f89d6b3684c9f626918042bd8977912",
        "566be7c33fc56ae4c34168ecbee5316374f7e3c5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:47:53 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:53:20 2014 +0000"
      },
      "message": "resolved conflicts for merge of 566be7c3 to master\n\nChange-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce\n"
    },
    {
      "commit": "377b2ec9a2885f9b6405b07ba900a9e3f4349c38",
      "tree": "b938e1d75a1beefae86244f287ca22f4a277740d",
      "parents": [
        "cdda7bf4d3ca9cad6979374a18dd5be79ea83d80"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 03 12:35:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 11:40:06 2014 +0000"
      },
      "message": "Make frameworks/av 64-bit compatible\n\nContains the necessary changes to make frameworks/av build and work\non a 64-bit machine.\n\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n\nChange-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43\n"
    },
    {
      "commit": "4b76d27d6c4751b31a1cb8ac5e6da1d4b7724a7b",
      "tree": "6267e0bfdad4d8d5c0e8b768629d13f963a7872a",
      "parents": [
        "3523e8c40bc60af0c95d1aa71a51a13d69ec80a2",
        "5a458ede3b7d303723fde4b856532bdc3b94971b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Mon Feb 10 18:17:03 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 10 18:17:03 2014 +0000"
      },
      "message": "am 5a458ede: am 5930e8eb: Merge \"AudioFlinger: Remove code for supporting resampling in fast tracks\"\n\n* commit \u00275a458ede3b7d303723fde4b856532bdc3b94971b\u0027:\n  AudioFlinger: Remove code for supporting resampling in fast tracks\n"
    },
    {
      "commit": "b220884bf3129253cc5bc8d030bc475411ea4911",
      "tree": "def105f8d0928679900588536f8b1911c3d179fa",
      "parents": [
        "bbbb1e80f461616cd9814de125f95f5b89cf5870"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 07 14:00:50 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 10 08:01:14 2014 -0800"
      },
      "message": "Pretty up audioflinger dumpsys\n\nChange-Id: I57e44b4c36b99f7149542bbcf9645521c6152dfa\n"
    },
    {
      "commit": "3ce28aa3cb5262775180a8b423cfb4a5670ebc59",
      "tree": "c033ef7bb7e98903661266d30f22259d12f5bc43",
      "parents": [
        "398f21348e5100289f6e5be30c8b5257fa04aaf9"
      ],
      "author": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Feb 05 19:49:05 2014 +0200"
      },
      "committer": {
        "name": "Martin Storsjo",
        "email": "martin@martin.st",
        "time": "Wed Feb 05 19:56:50 2014 +0200"
      },
      "message": "AudioFlinger: Remove code for supporting resampling in fast tracks\n\nThis isn\u0027t used at the moment.\n\nChange-Id: I4e0fb2af5f7d959dbafd5ddb7defa1c6b8e8636a\n"
    },
    {
      "commit": "6e0d67d7b496ce17c0970a4ffd3a6f808860949c",
      "tree": "e9d0c68908bcbbcb3eb5ef28b2b2c0db5488fa39",
      "parents": [
        "cc1e0e807ee9a9f163a4685cbd6efd6ae55849cf"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 31 09:41:08 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 03 17:10:57 2014 -0800"
      },
      "message": "Use Format_isValid() and Format_isEqual() instead of direct comparison\n\nChange-Id: Ie87607aa514976947540a77775e6425c4e56e7d9\n"
    },
    {
      "commit": "b9258d930d67fc314373f94ab4423974e5f87e1a",
      "tree": "b1ff07dab920a778fe73ecc6b6e8d2ac9c198e47",
      "parents": [
        "1462a2b84a578b5541683c824e0f77ebf2aa82ae",
        "97992cc71fd0bbd4aa22e5195ee7e5cde09ac254"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 16:11:24 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Sep 03 16:11:24 2013 -0700"
      },
      "message": "am 97992cc7: am 732845c7: FastMixer computes presentation timestamps for fast tracks\n\n* commit \u002797992cc71fd0bbd4aa22e5195ee7e5cde09ac254\u0027:\n  FastMixer computes presentation timestamps for fast tracks\n"
    },
    {
      "commit": "732845c7e8d294bb1aaa4cd9687da62b51f1f6e6",
      "tree": "775ccbda50c8bb2403af5cb52b8891a6130ded5d",
      "parents": [
        "6466c9e6e6278c740aed77f695f679be9f5db478"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 23 09:26:31 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Sep 03 15:12:20 2013 -0700"
      },
      "message": "FastMixer computes presentation timestamps for fast tracks\n\nand forwards them to each track\u0027s ExtendedAudioBufferProvider::onTimestamp().\n\nChange-Id: I06fb9586bb7e20d5c0289abdc8cac6cd3fd2f6e8\n"
    },
    {
      "commit": "6e2ebe97f2ad0a21907f20f9ee644c4eacbb7a40",
      "tree": "ea9d525f25620253ea86f434452bc37fbad73f76",
      "parents": [
        "e198c360d5e75a9b2097844c495c10902e7e8500"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 13 09:14:51 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 13 09:55:59 2013 -0700"
      },
      "message": "Use curly braces in \u0027if\u0027 to make it easier to add logs\n\nChange-Id: I58b33fefdd8bf703647414157a99a3223be3531c\n"
    },
    {
      "commit": "7fc97ba08e2850f3f16db704b78ce78e3dbe1ff0",
      "tree": "ada9fda1321150cc75295eece5f7f82e35f0c9f3",
      "parents": [
        "fc5ea08326b510c6f82f71845d95a8758a6ab698"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 16 17:18:58 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 25 12:22:18 2013 -0700"
      },
      "message": "HAL stream format for mixer output threads must be stereo 16-bit PCM\n\nDirect and tunnel output threads can support various HAL stream formats,\nincluded encoded.  But currently there are stereo 16-bit PCM assumptions\nin several places for mixer and duplicating output threads:\n - mMixBuffer and mixBuffer()\n - AudioMixer including resampler\n - FastMixer\u0027s mixBuffer\n - effects\n - NBAIO_Format\n - anywhere FCC_2 is used\n - possibly other places\n\nUntil those assumptions are removed, this CL enforces stereo 16-bit\nPCM in mixer and duplicating threads at the place where the HAL format\nis read.  It was already being checked in checkForNewParameters_l(),\nbut not in readOutputParameters().\n\nChange-Id: Ibe344cc922743da234299097aa1bb1f54795cc9b\n"
    },
    {
      "commit": "4182c4e2a07e2441fcd5c22eaff0ddfe7f826f61",
      "tree": "c7ed5d9b71f919bf664dd0cb6cbdd1c3de2f9241",
      "parents": [
        "0d61251648b5110bfc33ef5b3d19bbf65db0a7b5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 15 14:45:07 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 19 09:30:37 2013 -0700"
      },
      "message": "Use AudioSystem::setLowRamDevice() to configure memory\n\nBug: 9798886\nChange-Id: I9321e3f369f1ed9429ae222e3926ebdeb012b8b0\n"
    },
    {
      "commit": "153b9fe667e6e78e0218ff0159353097428c7657",
      "tree": "360a76911071e362a94af32ccf67ce9619629708",
      "parents": [
        "20f4754b7e687d3718a0a0a585f2c9ac22e2567d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 15 11:23:36 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 19 09:30:37 2013 -0700"
      },
      "message": "Make AudioFlinger::instantiate() more resilient when called from separate module\n\nBug: 8834855\nChange-Id: I4cd842cdfb09d2aaaaab9df9ac3bec6179709bd3\n"
    },
    {
      "commit": "3d1982595cb9cb0856841f1f57fbdb4581189e99",
      "tree": "411fe41a4645e65de97c1073fccc6c6ec0e87bbe",
      "parents": [
        "551ababe67ce31778000d52958e53e1c56e1a294"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 10 17:20:54 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 10 17:20:54 2013 -0700"
      },
      "message": "Fix indentation\n\nChange-Id: Ia28720a7d0fad8cf110c2448b967d5648d42e017\n"
    },
    {
      "commit": "a07f17ca46db04c9d5d9e7d6b2878db59ca2b9ea",
      "tree": "5f35039b1b7ed7518280e9a436536600a5aac5c9",
      "parents": [
        "5e43772296d7c5b8faf4b0ce4efe68778729bc74"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 23 12:39:37 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 23 14:18:18 2013 -0700"
      },
      "message": "Remove timing jitter during startup of audio\n\nThis fixes a regression introduced recently, that increased timing jitter\nduring the startup of the FastMixer and AudioTrack callback threads.\n\nThe regression was to make requestPriority() asynchronous as a way to\navoid an apparent priority inversion in system_server.  This means that\nthe target thread could run briefly with the initial priority, before\nthe new priority takes effect.\n\nThis change removes the startup jitter for FastMixer, by making the\nrequestPriority() synchronous again for that case.  It doesn\u0027t matter\nthat this restores the priority inversion involving normal mixer thread,\nbecause it happens during startup of both threads.\n\nThe change also removes the startup jitter for the AudioTrack callback\nthread, by having the target thread check whether the requestPriority()\nhas completed yet.  If not, the target thread blocks with a timeout\nuntil the priority boost finishes.\n\nFinally, we now log an error message if the expected priority boost\ndoesn\u0027t happen.\n\nBug: 8698989\nChange-Id: Id590e9a274b70ec1ba85b44a585ee37a22e41cbc\n"
    },
    {
      "commit": "c9b2e20f7c9a71e07ef398152709c76079decbcd",
      "tree": "7e3cbee883fbe1462e24a31b8b4af5a5911e8276",
      "parents": [
        "bf04b5860182d8f4130dcb5d6d88ee68a58c99cd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 26 11:32:32 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 04 12:58:21 2013 -0800"
      },
      "message": "Miscellaneous cleanup\n\nAbbreviation framesReady to fRdy for new systrace.\nPut inline const on one line.\nUse local copy of mState in state.\nImprove logging.\nLine length 100.\n\nChange-Id: I8201c3ce0e53fd464fd33d02544e52c342d40b68\n"
    },
    {
      "commit": "ab7d72f0804fbb7e91ad9d2a16f826d97e20e5d0",
      "tree": "9eda6276ab70724dcc98e56f7ca16afeb70ff079",
      "parents": [
        "3605ab3c02516e4123c39062de301bacc8ea8d9f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 27 09:05:28 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 01 15:36:26 2013 -0800"
      },
      "message": "media.log cleanup\n\nRemove almost all of the specific logs, but leave the media.log\nlogging infrastructure in place for the next time we need it.\n\nRe-apply a few good changes that were reverted earlier:\n - check logf format vs. argument list compatibility\n - distinguish potentially modified and actually modified tracks in FastMixer\n - fix benign bug where sq-\u003eend() was called more than once\n - fix a build warning\n\nBug: 6490974\nChange-Id: I02d3e83646c738acaebb415bd0d6b548638b4ef5\n"
    },
    {
      "commit": "7f5d335f7b4caecd0dfb8f1085f352f1d2da5d2e",
      "tree": "dda17a3e4149815397c7bef198e64bc81dee3552",
      "parents": [
        "32584a7d672864b20ab8b83a3cb23c1858e908b7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 15 23:55:04 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 15 23:55:04 2013 +0000"
      },
      "message": "Revert \"Temporary additional logging to investigate bug\"\n\nThis reverts commit 32584a7d672864b20ab8b83a3cb23c1858e908b7\n\nChange-Id: I9dc680578b955b1af462eeb7a49d61a0d45eb81b\n"
    },
    {
      "commit": "32584a7d672864b20ab8b83a3cb23c1858e908b7",
      "tree": "87a3d8c3b801d13ceee09abab5048aef46e65332",
      "parents": [
        "ab89ac209fd1c3b0a2227168a48d7f3ae9bc43f3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 13 14:46:45 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 15 15:44:50 2013 -0800"
      },
      "message": "Temporary additional logging to investigate bug\n\nThe bug appears related to continuing to use an invalid buffer provider\nin fast mixer after track destruction, so focus the added logs in that area.\n\nAlso includes a bug fix: was calling log in an unsafe place\nnear Threads.cpp AudioFlinger::PlaybackThread::createTrack_l line 1250.\n\nDetails:\n - include caller pid or client pid where appropriate\n - increase log buffer size\n - log mFastIndex when AudioMixer sees an invalid bufferProvider.\n - log both potentially modified and actually modified tracks in FastMixer.\n - fix benign bug where sq-\u003eend() was called more than once.\n - log StateQueue push() call and return.\n - increase StateQueue size from 4 to 8 entries\n - log mixer-\u003eenable(), bufferProvider, and currentTrackMask\n - log buffer provider addresses\n - increase fast mixer log buffer again\n - check logf format vs. argument list compatibility\n - add logging to AudioMixer\n - add checking of magic field in AudioMixer to detect overwrites\n - add bool AudioMixer::enabled()\n - increase log buffer sizes yet again\n - enable assertion checking without ALOGV\n - improve a few log messages\n - check for corruption in more places\n - log in all the process hooks\n - add new mixer APIs so we can check for corruption of mixer state\n - fix a build warning\n\nBug: 6490974\nChange-Id: Ib0c4a73dcf606ef9bd898313b3b40ef61ab42f51\n"
    },
    {
      "commit": "e186b51e0a9834b287d7a509e960eaf1b688db75",
      "tree": "82b017a4c77a82fca62571eccaa3723ee93738d1",
      "parents": [
        "639482c24c911b125398b31883ba6d55faebe28b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 14 23:57:02 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 23:57:02 2013 +0000"
      },
      "message": "Revert \"Temporary additional logging to investigate bug\"\n\nThis reverts commit 639482c24c911b125398b31883ba6d55faebe28b\n\nChange-Id: I11f2829072ab11e18b0663024f27bf31192f1d39\n"
    },
    {
      "commit": "639482c24c911b125398b31883ba6d55faebe28b",
      "tree": "698e25baf47d4e6a10663d21ca86c3a0702fe606",
      "parents": [
        "085205bd23c3604c1b792c3046fdae0a489c04be"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 13 14:46:45 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 14 14:35:29 2013 -0800"
      },
      "message": "Temporary additional logging to investigate bug\n\nThe bug appears related to continuing to use an invalid buffer provider\nin fast mixer after track destruction, so focus the added logs in that area.\n\nAlso includes a bug fix: was calling log in an unsafe place\nnear Threads.cpp AudioFlinger::PlaybackThread::createTrack_l line 1250.\n\nDetails:\n - include caller pid or client pid where appropriate\n - increase log buffer size\n - log mFastIndex when AudioMixer sees an invalid bufferProvider.\n - log both potentially modified and actually modified tracks in FastMixer.\n - fix benign bug where sq-\u003eend() was called more than once.\n - log StateQueue push() call and return.\n - increase StateQueue size from 4 to 8 entries\n - log mixer-\u003eenable(), bufferProvider, and currentTrackMask\n - log buffer provider addresses\n - increase fast mixer log buffer again\n - check logf format vs. argument list compatibility\n - add logging to AudioMixer\n - add checking of magic field in AudioMixer to detect overwrites\n - add bool AudioMixer::enabled()\n\nBug: 6490974\nChange-Id: I1f3f18aa62d9fbd35bc32285b669f5ba40efe28e\n"
    },
    {
      "commit": "51eb3965caa8ba135bcdd8ffb7a2024a042ecdc0",
      "tree": "0444520a23aa61553f9cf8bb67ee0f8127096b6a",
      "parents": [
        "0ddd56316262ac74a95e9edb595697c163136d6d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 14 00:02:36 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 14 00:02:36 2013 +0000"
      },
      "message": "Revert \"Temporary additional logging to investigate bug\"\n\nThis reverts commit 0ddd56316262ac74a95e9edb595697c163136d6d\n\nChange-Id: I180a928af6f5a38d15a5efe44cd1fe927b5d961c\n"
    },
    {
      "commit": "0ddd56316262ac74a95e9edb595697c163136d6d",
      "tree": "2ed313557a019eeba286e27a3f4ce2e0a45fba17",
      "parents": [
        "cd27b0798f6abb34e464acc7c7e97e066cd3c6c7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 13 14:46:45 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 13 14:51:50 2013 -0800"
      },
      "message": "Temporary additional logging to investigate bug\n\nThe bug appears related to continuing to use an invalid buffer provider\nin fast mixer after track destruction, so focus the added logs in that area.\n\nAlso includes a bug fix: was calling log in an unsafe place\nnear Threads.cpp AudioFlinger::PlaybackThread::createTrack_l line 1250.\n\nDetails:\n - include caller pid or client pid where appropriate\n - increase log buffer size\n - log mFastIndex when AudioMixer sees an invalid bufferProvider.\n - log both potentially modified and actually modified tracks in FastMixer.\n - fix benign bug where sq-\u003eend() was called more than once.\n - log StateQueue push() call and return.\n\nBug: 6490974\nChange-Id: Iee7c8f40e20b6000cd8286c0ec6a14fff4a37af1\n"
    },
    {
      "commit": "ecd9389c8712aedeb2a79823ea0e4fb842684269",
      "tree": "32635746bbb3c6f4b4297754d0d388fae41c6574",
      "parents": [
        "3051df27261e9952c0e642dec548515250e85f6a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 12 20:43:58 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Feb 12 20:43:58 2013 +0000"
      },
      "message": "Revert \"Temporary additional logging to investigate bug\"\n\nThis reverts commit 3051df27261e9952c0e642dec548515250e85f6a\n\nChange-Id: I8bf5c3e91b65bd20de26f480c367c2854b62373c\n"
    },
    {
      "commit": "3051df27261e9952c0e642dec548515250e85f6a",
      "tree": "848a1795333131b9fac0c7be0b791f7f69a330d4",
      "parents": [
        "272ab546940054ad7991bef4b3a36f15175721cd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 12 12:12:42 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Feb 12 12:40:18 2013 -0800"
      },
      "message": "Temporary additional logging to investigate bug\n\nThe bug appears related to continuing to use an invalid buffer provider\nin fast mixer after track destruction, so focus the added logs in that area.\n\nAlso includes a bug fix: was calling log in an unsafe place\nnear Threads.cpp AudioFlinger::PlaybackThread::createTrack_l line 1250.\n\nDetails:\n - include caller pid or client pid where appropriate\n - increase log buffer size\n\nBug: 6490974\nChange-Id: I4c030f171343fe4b483eae0ddea4427118d8d4b1\n"
    },
    {
      "commit": "9e58b552f51b00b3b674102876bd6c77ef3da806",
      "tree": "7b01e1d9f788cbfb49a4c4fa8699334f630ea89a",
      "parents": [
        "a416756864e2c7750d59d967ec2185532fa5c2e0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:09:48 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jan 31 16:40:24 2013 -0800"
      },
      "message": "AudioFlinger uses media.log service for logging\n\nChange-Id: Ia0f8204334f6b233f644d897762a18c95d936b4b\n"
    },
    {
      "commit": "cb02ba7c2666b72db030b8bf4a3f2cddc3c23ead",
      "tree": "776b9595273fb31b58b5cef46242d6e4f76b88cf",
      "parents": [
        "534f712969d647b2e7a040581ac148e03ffa7585",
        "a3d2628a22f2b3d682495044897a40ea1399a662"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 20 07:39:48 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Dec 20 07:39:49 2012 -0800"
      },
      "message": "Merge \"Add warning about following the design rules\""
    },
    {
      "commit": "b3a8364eeea621ef63b983e4c1b0771f62069fe0",
      "tree": "646bee189a8f77d41e87ffc42af3dd097f5ec254",
      "parents": [
        "ece53e018b38794f7cdf978a605f943f9ec96c3b"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Nov 30 19:42:28 2012 -0800"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Nov 30 19:44:24 2012 -0800"
      },
      "message": "audioflinger: define ANDROID_SMP, remove conditional tracing\n\nWith ANDROID_SMP set, tracing functionality is completely inline, and\nwithout the performance hits of external library calls, tracing does\nnot need to be conditionally compiled.\n\nChange-Id: I4b29a9a52c403f0d2ea137c5b7bc05a518a7ca4b\n"
    },
    {
      "commit": "371eb9756c32109ea572b91216b19bb623f6d3fd",
      "tree": "dcdd0d3ed708466f6f32b41a79d91926294dcaba",
      "parents": [
        "45f7c446777171a728f9eb257f48145dde5d19e2"
      ],
      "author": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Nov 30 11:11:54 2012 -0800"
      },
      "committer": {
        "name": "Alex Ray",
        "email": "aray@google.com",
        "time": "Fri Nov 30 11:11:54 2012 -0800"
      },
      "message": "Remove conditional compilation of ATRACE functions\n\nTracing functions are meant to be dynamically controlled via sysprops.\nConditional compilation removes this functionality.\n\nChange-Id: I26bc473d104d0b3c50a228dddfda3fa2428d157a\n"
    },
    {
      "commit": "a3d2628a22f2b3d682495044897a40ea1399a662",
      "tree": "cd30e8394783418c94a49aeb41f046e364860810",
      "parents": [
        "2546219a54970e0ad53bd218586cdc48d6039b20"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 30 07:57:43 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Nov 30 07:59:09 2012 -0800"
      },
      "message": "Add warning about following the design rules\n\nChange-Id: Ic4895ed5682bad10b03e97d8015e642ee1696533\n"
    },
    {
      "commit": "2d590964aa58e137d17a43e095e6443dd0fe2e98",
      "tree": "6327d555b89f3e7222f6db7aa1a0c3a8f0b293c6",
      "parents": [
        "c67d057596d81aea8fcd4868453cfcb501157297"
      ],
      "author": {
        "name": "Simon Wilson",
        "email": "simonwilson@google.com",
        "time": "Thu Nov 29 15:18:50 2012 -0800"
      },
      "committer": {
        "name": "Simon Wilson",
        "email": "simonwilson@google.com",
        "time": "Thu Nov 29 15:19:46 2012 -0800"
      },
      "message": "Use ATRACE macros instead of Tracer statics\n\nATRACE_BEGIN and ATRACE_END have replaced the static\nTracer::traceBegin and Tracer::traceEnd functions, so\nuse them instead.\n\nFixes compilation errors when tracing is enabled.\n\nChange-Id: I4d1147d2f76afcdf113e9986f0544cb848802b15\n"
    },
    {
      "commit": "80b3273cea8660fe8a5868d024d2788a1e083ffc",
      "tree": "e9d4e782be64fe03b80331cf62f98ca27c16be6f",
      "parents": [
        "94a68ecf2b56bd56994d0352cbaad56e58dcf0dc"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 24 11:29:00 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 24 11:48:20 2012 -0700"
      },
      "message": "Check clock_gettime(CLOCK_MONOTONIC) for failure\n\nBug: 7100774\nChange-Id: I15a84a19bb6d6ef1d9dac4beaa03587638196404\n"
    },
    {
      "commit": "fe3156ec6fd9fa57dde913fd8567530d095a6550",
      "tree": "2c4b8250d0089a7d9f396d40005f4fefd95f46f3",
      "parents": [
        "66765846726c02db16a0f024f2217990a90802c0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 10 18:58:27 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 10 18:58:27 2012 -0700"
      },
      "message": "Communicate audio session ID to downmixer\n\nThe audio downmixer effect might need the audio session Id, pass it\n from the track creation in AudioFlinger to the downmix effect\n creation in AudioMixer.\n\nChange-Id: I5e29540542ae89cf4a0cdb537b3e67f04442a20a\n"
    },
    {
      "commit": "1ab212cf5cfa5b88c801840e11e3191cd10f48e4",
      "tree": "247292feb5fe019488a87ff64926643fa84e766e",
      "parents": [
        "d06ab147394b0b49679c924a51d77c91dea04d82"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 07 12:58:38 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 07 12:58:38 2012 -0700"
      },
      "message": "Add outlier statistics for fast mixer cycle times\n\nChange-Id: I31c964caeb8b5d9ae0a426224f030cdcb01114a0\n"
    },
    {
      "commit": "0d27c65ddb5c968baa6db0c26e80f5c451bc52bc",
      "tree": "62cdadd7e272d5f5f5f187767984ecb0c12b5080",
      "parents": [
        "e983aa4ff4d80af7702888e230b9aaa93a7b7e57"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 07 10:38:59 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 08 14:28:42 2012 -0700"
      },
      "message": "Tune the overrun correction\n\nThe new overrun correction is: if the previous write() cycle time is \u003c\n50% of expected, then sleep enough extra to make the total cycle time \u003d\n95% of expected.  This should help compensate for HAL implementations\nthat have uneven cycle times due to sample rate conversion.\n\nBug: 6881638\nChange-Id: I5ab58afdfceee7ac523177f021fbf62d743d571a\n"
    },
    {
      "commit": "2c3b2da3049627264b7c6b449a1622f002210f03",
      "tree": "f99fadbfef22ff3b7709a505623371c22e39566c",
      "parents": [
        "ee578c0330319f04a48bccbdb26b53fea0388d04"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Aug 02 17:08:54 2012 -0700"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Aug 08 11:28:15 2012 -0700"
      },
      "message": "AudioFlinger: fix timed audio\n\n(cherry picked from commit e20ac92c564a2f4e8123885807abdf0a78de0dd7)\n\n\u003e AudioFlinger: fix timed audio\n\u003e\n\u003e Addresses Bug 6900517.\n\u003e\n\u003e Finish up support for timed audio in the new FastMixer world.  Pay special\n\u003e attention to remaining lock-less and voluntary yield free on the FastMixer\n\u003e thread.  This fixes audio playback for Q on JB.\n\u003e\n\u003e Change-Id: Iaf815e58a1b1d0a0190051794bec8dc5c9231785\n\u003e Signed-off-by: John Grossman \u003cjohngro@google.com\u003e\n\nChange-Id: I9bd687acc345a05867af48e71116690fdb0ce1b5\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "eb15716b59020f342df62bce5b293f0603b94861",
      "tree": "d230ab42f45394837dffc52deb8d31c8fef9c1c1",
      "parents": [
        "972af221ae7253e406e0e1ea853e56a3010ed6b1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 14:59:07 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 15 14:53:31 2012 -0700"
      },
      "message": "Change definition of warmup period\n\nPreviously, warmup was considered done as soon as any write() took\nmore than 0.5 nominal cycle time.  In practice, this was always the\nfirst write() that turned on power to the output path, and it didn\u0027t\naccurately account for filling the full kernel buffer queue, or for\nbuffering in the HAL sample rate conversion.\n\nNow warmup is considered done when a write() _after_ the first write\ntakes more than 0.5 nominal cycle time.\n\nThis will throttle the initial pull rate after coming out of standby.\nWhen combined with another change to throttle the pull rate for\ndevices with HAL sample rate conversion, it may help reduce some of the\nnotification glitches.  The only downside is that it will increase the\nwarmup time a bit.\n\nBug: 6508317, 6650846, 6607056\nChange-Id: I39f324c5195578170a55308e9601d3a1b41db3e0\n"
    },
    {
      "commit": "972af221ae7253e406e0e1ea853e56a3010ed6b1",
      "tree": "77175ced586c67275d09b73524b935b15eab3090",
      "parents": [
        "fc42e16d96b7e1b18b573f40df1319c56f8ab933"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jun 13 17:14:03 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jun 15 10:21:47 2012 -0700"
      },
      "message": "FastMixer compensates for SRC jitter in audio HAL\n\nForce a sleep if audio HAL write() returns too quickly.\n\nBug: 6661275\nChange-Id: Ie810f5a087b89fb24dab229a0e500af1dee53571\n"
    }
  ],
  "next": "0a14c4ce1a41bc09eb7855fa531a3af629a69139"
}
