)]}'
{
  "log": [
    {
      "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": "6af1847b8ea55d9f21e75b0f0ed91dc0e8f68c32",
      "tree": "e88798e13894f9bb17f3ff310b160ebf0baa1b5d",
      "parents": [
        "5786e01d64860448d93b681a59c7d5a60bc12298"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Mon Aug 20 09:27:50 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Tue Aug 21 09:35:41 2018 -0700"
      },
      "message": "NBLog: Make separate readers for dumping logs and histograms\n\nPrior to this commit, the dumping of log contents and histograms from\nPerformanceAnalysis were in conflict because histograms obtained data\nfrom the merger\u0027s buffer, and the merger used the same readers as the\nlog dumps. One read would consume the whole buffer, which would cause\neither a lossy dump or an lossy merge. Now, both operations can exist\nwithout loss of information from sharing the same reader.\n\nThe step of merging contents of each writer\u0027s local buffer into a bigger\nbuffer has effectively been removed. PerformanceAnalysis now directly\nreads from each writer\u0027s buffer instead of reading from the merger\u0027s\nbigger buffer.\n\nTest: dumpsys media.log -r\nBug: 68148948\nChange-Id: I6d8ea6a8f6a43555183a6d8f17af567506a102f1\n"
    },
    {
      "commit": "5786e01d64860448d93b681a59c7d5a60bc12298",
      "tree": "5ac379a0d0ce652fd71b9f2fae34fb0b913ded6a",
      "parents": [
        "86be8728fb6efae5a35ed4840c45a2eafce06823"
      ],
      "author": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Wed Aug 15 09:03:47 2018 -0700"
      },
      "committer": {
        "name": "Eric Tan",
        "email": "taneric@google.com",
        "time": "Fri Aug 17 14:57:40 2018 -0700"
      },
      "message": "NBLog: Restore log dump and add new logging types\n\nMerging is temporarily disabled for now because the readers managed by\nthe merger are the same as the ones used for the dumpsys log dump, and\nreading from the log effectively consumes the buffer. Eventually, the\nreaders for the two functionalities will need to be separated to avoid\nconflict. The dump of the merged buffer is also disabled, which removes\nthe dumping of histograms.\n\nThe new types added are monotonic thread cycle time, CPU thread cycle\ntime, CPU frequency, and latency (which will need to be specified in\nfurther detail later). Logging support is added only for monotonic\nthread cycle time at the moment.\n\nTest: build, log monotonic thread cycle time in FastThread, check output\nin dumpsys media.log -r.\n\nChange-Id: I1b781d6db102fb917fd0bac964eeebd0309234c0\nBug: 68148948\n"
    },
    {
      "commit": "4ef19fa450e8b523741a22fabee8f62691abec37",
      "tree": "5d0eaaf73cebe029d1d8dd935d5c6fddb12ee70f",
      "parents": [
        "ab7ef300b74904bce6c5c810d9e5679abfa582e6"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 15 19:35:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu May 17 18:11:55 2018 -0700"
      },
      "message": "Update audio permission checking\n\nChange captureAudioOutputAllowed to check client pid.\n\nCheck calling uid with AID_AUDIOSERVER instead of calling pid with\nown pid. This is consistent, and works if AudioFlinger and\nAudioPolicyManager exist as different processes.\n\nRemove getpid_cached since getpid() is very fast. This removes\nany initialization issues.\n\nReplace getuid() with AID_AUDIOSERVER to remove ambiguity of\nmultiple native audio services for multiple users. Only\none exists regardless of users.\n\nDo not use multiuser UID checks for certain native services\nthat do not spawn for multiple users to prevent accidently exposure.\n\nMove permission checks to use ServiceUtilities for control and\nconsistency.\n\nRename isTrustedCallingUid to isAudioServerOrMediaServerUid\nso that permission check is explicitly known to caller.\n\nUpdate MediaLogService to use ServiceUtilities.\n\nTest: Basic sanity\nTest: AudioTrackTest, AudioRecordTest, SoundPool, SoundTrigger\nBug: 79485140\nChange-Id: Ib8ccb36929a9b4806c01626f32fa023a046d6020\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": "e48652674ebd4047363a79d38a6018978087223e",
      "tree": "4d7b5927da48cf1504b0b32fc01a88265dea717f",
      "parents": [
        "633adf69ae8f9aeb41bceb193afefe35e5550c7f"
      ],
      "author": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Fri Jul 14 16:24:15 2017 -0700"
      },
      "committer": {
        "name": "Sanna Catherine de Treville Wager",
        "email": "scwager@google.com",
        "time": "Fri Jul 21 15:52:40 2017 +0000"
      },
      "message": "Separate merge from dump and call merge periodically\n\nEvery time merge is called by the thread loop,\nthe data is also processed and written to\nPerformanceAnalysis. A call to dump retrieves\nthe FIFO of processed data in PerformanceAnalysis\ninstead of the unprocessed Reader FIFO, and prints\nthe result to the console.\n\nTest: dumpsys media.log\n\nChange-Id: Ic479f48e9e4fdf4523a8f15db514dbdd85b70434\n"
    },
    {
      "commit": "9c37337c402d6b19c2a2d1ee50002cbf56f3bc78",
      "tree": "a72c8a9498b94761614ffa52249f719aa3c18ebb",
      "parents": [
        "69454c63074e1c782253ec28105b2b4b387a626c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 29 14:48:31 2017 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Apr 07 14:35:16 2017 -0700"
      },
      "message": "media.log: dump all readers with dumpsys option \"r\"\n\nBug: 37153050\nTest: builds OK, \"dumpsys media.log r\" shows all readers\nChange-Id: I584dbbeb0532b019441f7aeb4793a9f4e3f6bdda\n"
    },
    {
      "commit": "dcdfaecc1fa630a799e1fdb508a9b92da55abc36",
      "tree": "407138ab3b7cef085ca4f283ea24378910ce775e",
      "parents": [
        "cca34c05ca2d5e7ac6c2fbee3ac2db88f059143d"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Tue Feb 14 10:18:39 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Mar 09 12:30:24 2017 -0800"
      },
      "message": "NBLog periodic merging thread\n\nBug: 35468674\nTest: no change in functionality, everything works as before\nChange-Id: Id2cea243bc15767ca6803c9505bf23a18411500e\n"
    },
    {
      "commit": "40a4498b967d000c93e8561db5fdd0488cc1d824",
      "tree": "a95deb459b6b0ea0de8e711a0cb545c49eb33769",
      "parents": [
        "4da7820be451847bad698ac0f687b964d9b5d34f"
      ],
      "author": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Fri Feb 03 13:39:57 2017 -0800"
      },
      "committer": {
        "name": "Nicolas Roulet",
        "email": "nicoroulet@google.com",
        "time": "Thu Feb 16 17:04:01 2017 -0800"
      },
      "message": "Implement log merging.\n\nStill missing:\n * Put in separate periodical thread\n\nBug: 35329293\nTest: manual\nChange-Id: Ie8802fb7972e20d8dec493376ea253bb782f3a46\n"
    },
    {
      "commit": "535e161e2e404dffb8389dd331be0132704b6d82",
      "tree": "61afd43df445dbf8329bd248493770ee506b5814",
      "parents": [
        "af86dcee9d97e02e9069548684ef8c9db5190ff9"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Dec 05 12:19:36 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 29 11:12:19 2016 -0800"
      },
      "message": "media.log: re-implement NBLog using audio_utils_fifo\n\nNBLog previously has its own shared memory circular buffer code.\nNow NBLog operates on top of the circular buffer code in audio_utils.\n\nTest: media.log still works\nChange-Id: Ib3026d2a96e6c0b433603e8baf19164ad97a1e1f\n"
    },
    {
      "commit": "8349a91d0dd017404800dec638298caebab6677e",
      "tree": "915e1b931d89d1790681707e46b6f1bd7105a418",
      "parents": [
        "f56a02a5e7d1bfaeabf8b918e56bf49ea509bd42"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 14 18:45:12 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 15 08:57:56 2016 -0700"
      },
      "message": "media log: do not lock mutex in dump()\n\nJust try locking the mutex when dumping media.log service\nand continue in case of failure.\n\nBug: 27408518\nChange-Id: Ib24e5fcd6b7365ab04fb145f704cecfa0f6b70e5\n"
    },
    {
      "commit": "ae0cff1d48b2cd10aeff9627398faf684894eece",
      "tree": "4aef282efa85820a4bba79027e26ea6fb394b904",
      "parents": [
        "f70077e43576f876bac08f3cf1f702b3c19b8184"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 13:57:49 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 24 15:44:12 2016 -0800"
      },
      "message": "Restore media.log service\n\nBug: 26306954\nChange-Id: I00319f4869f46941e4c814a29b2f69a62e572743\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": "0f11b51a57bc9062c4fe8af73747319cedabc5d6",
      "tree": "3a9156d700b18a53f856ac8ae51a44604af36fe1",
      "parents": [
        "0520e05f9083cf13fa7062629bc6606f4b39f08a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 31 16:18:54 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 03 07:48:43 2014 -0800"
      },
      "message": "Fix unused parameter warnings in audio\n\nChange-Id: I665ba3358dd9502f0adec70d486e7bf8a2e1b0fe\n"
    },
    {
      "commit": "587af2e6fb54a8ada61d44a998885b1e4528a856",
      "tree": "d6d89075ede44988be5d2e9918a341685d6732ad",
      "parents": [
        "005bb86bd99077283df1968958d5c514a3bfa16a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 18 15:26:47 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 18 15:26:47 2013 -0700"
      },
      "message": "Fix error message to match CTS\n\nBug: 8657725\nChange-Id: Ib608eb55f14d557d667f93e4f646c03d5ea470c1\n"
    },
    {
      "commit": "5ea77ae380a7ad9268fdbda1d7d3aa14b5839065",
      "tree": "d6bfe1b48f9bd03682922aa24bd0aa07c4e41135",
      "parents": [
        "64595e6727c478d3d80c7babbecdb470398f8c42"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 18 15:26:47 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Apr 18 15:26:47 2013 -0700"
      },
      "message": "Fix error message to match CTS\n\nBug: 8657725\nChange-Id: Ib608eb55f14d557d667f93e4f646c03d5ea470c1\n"
    },
    {
      "commit": "4ee9962da3df1b4300eccdbd20910d82c5a61f63",
      "tree": "d7a8200a0376734ebf84622860927f0ac08d3076",
      "parents": [
        "db372594bf27390d2bee089e35c5fb8f67370026"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 26 15:09:04 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 26 15:09:04 2013 -0700"
      },
      "message": "media.log dump\n\nBug: 8446008\nChange-Id: Ia47b204f5c4c91b99591eec5420a25a3dc8e7631\n"
    },
    {
      "commit": "bc5120797e0d2995b63a96306b638d1d0d8457d0",
      "tree": "1f02061c8fc385dc6b7884719bc2cc8b8ea0c77d",
      "parents": [
        "6386b50b67185a966d43ee761acdfe7add569d10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 26 15:09:04 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 26 15:09:04 2013 -0700"
      },
      "message": "media.log dump\n\nBug: 8446008\nChange-Id: Ia47b204f5c4c91b99591eec5420a25a3dc8e7631\n"
    },
    {
      "commit": "fdf4e4f1859771b95585cbc87f8cd038ea2815c6",
      "tree": "7bbc12a9d0e9c7ad29346b04b26c55d390a0b032",
      "parents": [
        "10eb4b33545a58e4b09249c30c100bc7b992250a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:31:41 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 25 15:12:14 2013 -0800"
      },
      "message": "Add media.log service based on NBLog\n\nChange-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f\n"
    },
    {
      "commit": "6f1c1918d0dfece10f728711b055441e4d135c73",
      "tree": "e82c0166e895f9c61c11ff0800d2871298e63b30",
      "parents": [
        "11d8dfcc063425ae7d59229f54b6752fd8987c10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 18 15:31:41 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 25 15:12:14 2013 -0800"
      },
      "message": "Add media.log service based on NBLog\n\nChange-Id: Ie45093df6ac9a739d05c8d408fab52a9a8a27e7f\n"
    }
  ]
}
