)]}'
{
  "log": [
    {
      "commit": "d12c68ad699ce0ed822a4d4db86e8e02324c6b03",
      "tree": "ffe2a3e44b05ad91acff86224ace0a4e8532e670",
      "parents": [
        "4f5da11df06802856bf526f16563df7d5755f653"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 23 14:04:27 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 23 14:04:27 2012 -0700"
      },
      "message": "Revert \"AudioFlinger does not need libmedia any more\"\n\nThis reverts commit c920dee060ac69684be33210ee44b99a5fc3e8b2"
    },
    {
      "commit": "4f5da11df06802856bf526f16563df7d5755f653",
      "tree": "29cc2e5196553eb5878163342787298351f71a5d",
      "parents": [
        "ab55517549170b0def3d7b625324b6a44b60d5ae"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 22 15:21:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 22 15:24:22 2012 -0700"
      },
      "message": "AudioFlinger does not need libmedia any more\n\nChange-Id: Ifd2c61882109ec36ca68072a2bf6506e08c8cf34\n"
    },
    {
      "commit": "2ee367e444e7b62e02bde8a2e47603a9ad342c6e",
      "tree": "95649f9b430efcb58ffd0dad50ea44f4ab038eb3",
      "parents": [
        "1746929ddc7592ab397c402724a61352e45df093"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 17:36:25 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 19 17:36:25 2012 -0700"
      },
      "message": "Add libmedia_native\n\nChange-Id: I3ac357c78fb89f108d15c6e5b9fa317de0e9fb9a\n"
    },
    {
      "commit": "33b383948e8f270bff30378476f00dce289004eb",
      "tree": "a42eeb76674395b36611da694166ddd4144a0fa8",
      "parents": [
        "dfaf549e3e310bc22444f4404b19f4907b24c286"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 15:59:35 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 16:44:34 2012 -0700"
      },
      "message": "Remove dependency on audio_* location\n\nChange-Id: I4bc66115fcb9ba22b057bd72db3f561dcb18a0d8\n"
    },
    {
      "commit": "01c4ebf6b794493898114a502ed36de13137f7e5",
      "tree": "7f663fdad4040a40411e79d837c14e52e11a65b9",
      "parents": [
        "d6fd85a157ce2054b2304e6d171fa87ae09c363d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Feb 22 10:47:35 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 24 13:42:13 2012 -0800"
      },
      "message": "AudioBufferProvider comments and cleanup\n\nAdd comments about which methods implement the AudioBufferProvider interface.\n\nSimplified the definition of kInvalidPts.  \u003cstdint.h\u003e is very hard to work\nwith, there seems to be no way to use it reliably to get INT64_MAX without\nhaving a separate source file, which is ugly because it means kInvalidPts\nis not a compile-time constant.  So I just deleted AudioBufferProvider.cpp\nand used a hard-coded constant instead.\n\nAdded a default constructor for Buffer so that the fields aren\u0027t random\n(especially .raw which is used to determine if the buffer is valid).\n\nMake the pts for getNextBuffer default to kInvalidPTS so code that\ndoesn\u0027t need a pts doesn\u0027t have to specify a value.\n\nRename the parameter to AudioMixer::setBufferProvider to make it clearer.\n\nChange-Id: I87e7290884d4ed975b019f62d1ab6ae2bc5065a5\n"
    },
    {
      "commit": "4ff14bae91075eb274eb1c2975982358946e7e63",
      "tree": "e9e54fddb9832d30b69c2a11c9ed2884397f2f95",
      "parents": [
        "951bd8d1ad9581a414e171ad8605a9515d0ad667"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Wed Feb 08 16:37:41 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Thu Feb 16 13:45:11 2012 -0800"
      },
      "message": "Upintegrate Audio Flinger changes from ICS_AAH\n\nBring in changes to audio flinger made to support timed audio tracks\nand HW master volume control.\n\nChange-Id: Ide52d48809bdbed13acf35fd59b24637e35064ae\nSigned-off-by: John Grossman \u003cjohngro@google.com\u003e\n"
    },
    {
      "commit": "44deb053252a3bd2f57a007ab9560f4924f62394",
      "tree": "57fac6fb14c9f7897409b54b360afebef59c2e70",
      "parents": [
        "860936d780d98a5968f40e66ca6ae800c67adbc3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Feb 05 18:09:08 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 13 10:30:23 2012 -0800"
      },
      "message": "Factor out and speed up permission-checking code\n\nUse the caching permission check for dump to save IPC.\n\nCache getpid() to save kernel call for other permission checks.\n\nThe C runtime library getpid() can\u0027t cache due to a fork\nrace condition, but we know that mediaserver doesn\u0027t fork.\n\nDon\u0027t construct String16 on the stack.\n\nChange-Id: I6be6161dae5155d39ba6ed6228e7683e67be34ed\n"
    },
    {
      "commit": "cdf2158f3b9498d6cd0eb228d8bee16e32399e16",
      "tree": "21af355df3a1f1d8d559b419fe8daf37c46dadbc",
      "parents": [
        "7ae4a2c130ec2cb5dec69d095b810698acc543b3"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 02 14:01:58 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 09 18:14:44 2012 -0800"
      },
      "message": "Disable HQ resamplers for now until qualified\n\nThis saves about 6500 bytes.\n\nChange-Id: I87102fe561c95c19c9e615dea3de914f96639257\n"
    },
    {
      "commit": "3b21c50ef95fe4e7ac3426ca14b365749e66ff08",
      "tree": "e3f9a8d6ab695bd1d4d494fbf1b9d80bcc25585c",
      "parents": [
        "eebeceec684a36222b4559e3157b0db04c0a67ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Dec 15 09:52:39 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Dec 16 11:42:03 2011 -0800"
      },
      "message": "Extract out audio DSP code to utility library\n\nChange-Id: Ib8ce72028a7ea30e82baa518e381370e820ebbd0\n"
    },
    {
      "commit": "feb0db689c17dced50afaee54c659f1676e2d505",
      "tree": "a949f6cb66c3c5886cd0682fcb3781b0fd5db0a8",
      "parents": [
        "288b66b60c9b3af3d84408885d0a4030c45eea9a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 22 09:04:31 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 25 18:41:12 2011 -0700"
      },
      "message": "Fix issue 4604090: notification sound interrupted.\n\nThe problem is that the audio HAL fails to acquire the wake lock when playing the notification.\nThis is because of a change that removed the mediaserver process form the system group for honeycomb.\n\nThe fix consists in requesting the wake lock from PowerManagerService when AudioFlinger mixer\nwakes up.\n\nA consequence of this change is that audio HALs or pcm drivers do not have to hold wake locks\nanymore as in the past.\n\nChange-Id: I4fb3cc84816c9c408ab7fec75886baf801e1ecb5\n"
    },
    {
      "commit": "e0b5bb23f0a26d248275d203885b820659da7320",
      "tree": "4d7cf07bb5fdd85a882f31f9e4eaae173efdbdde",
      "parents": [
        "4378ace44b9de477608a6c2fbf7134bc0345555f",
        "4d8d0c30abfa4b8d75866d42094cc797e05068fa"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 16:27:13 2011 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jul 15 16:27:13 2011 -0700"
      },
      "message": "Merge \"Log CPU usage\""
    },
    {
      "commit": "4d8d0c30abfa4b8d75866d42094cc797e05068fa",
      "tree": "49d5a2a3b2aa864d2780101c03b6129a0cbbbb4c",
      "parents": [
        "5895e970ae119210773a5184c019178e2516b132"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 15:26:12 2011 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 15 13:28:19 2011 -0700"
      },
      "message": "Log CPU usage\n\nChange-Id: Ie447e59be139153e526b7ad467c46c659d26816f\n"
    },
    {
      "commit": "5e0067b486c3862316aa1f293cf9690c0cf54bda",
      "tree": "104ac8491b40d6e9d8353322792fb83ce76f4c82",
      "parents": [
        "52f556b976a9caceee183d8af2118ddbee02c70a"
      ],
      "author": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "committer": {
        "name": "Jeff Brown",
        "email": "jeffbrown@google.com",
        "time": "Mon Jul 11 22:12:16 2011 -0700"
      },
      "message": "Remove the simulator target from all makefiles.\nBug: 5010576\n\nChange-Id: I04d722f258951a3078fe07899f5bbe8aac02a8e8\n"
    },
    {
      "commit": "6d8b694d999e9be7d5dcc336535832a80fb6f61f",
      "tree": "4fcdbf4a7f7fa24a16d7bf27816922031870102f",
      "parents": [
        "5895e970ae119210773a5184c019178e2516b132"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 24 07:01:31 2011 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 15:25:51 2011 -0700"
      },
      "message": "Moved and renamed effect API header files\n\nMoved specific effect header files to\nsystem/media/audio_effects/include/audio_effects\nand renamed to lower case (effect_xxx.h).\n\nChange-Id: Icfc2264bfd013cab0395d7e310ada636b9fe3621\n"
    },
    {
      "commit": "fce7a473248381cc83a01855f92581077d3c9ee2",
      "tree": "e002e1edd8a11f2be56ce9538ab1b13aa289bc9e",
      "parents": [
        "db5cb14318bb24cd6ea14ff7ceea0d5e1f83d903"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 22:30:36 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 13:10:10 2011 -0700"
      },
      "message": "audio/media: convert to using the audio HAL and new audio defs\n\nChange-Id: Ibc637918637329e4f2b62f4ac7781102fbc269f5\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "6b80e0be94d3f92ec4aa2b7cace816780d3f338d",
      "tree": "cf5fc0a267ccd922c4139de394ea7d7a506416de",
      "parents": [
        "dab0bea38ab2c2d6b52907b7f5684834c4979251"
      ],
      "author": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Tue Apr 19 22:06:30 2011 -0700"
      },
      "committer": {
        "name": "Dima Zavin",
        "email": "dima@android.com",
        "time": "Wed Apr 27 10:48:38 2011 -0700"
      },
      "message": "audioflinger: move legacy audio hw/policy out to libhardware_legacy\n\nChange-Id: I4adcec73d3c08bcbe15bb19e1ba2ff18b195af45\nSigned-off-by: Dima Zavin \u003cdima@android.com\u003e\n"
    },
    {
      "commit": "db130fbd3ccd37e247e49494a84f8a9841ecd593",
      "tree": "eddfcd84debc055e78baa446fafb3e88032577e4",
      "parents": [
        "856990b491d84b7ed4fefe337485c8997ba9dd02"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 03 17:18:19 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 03 17:18:19 2011 -0800"
      },
      "message": "Bug 3366885 Remove LVMX switch\n\nChange-Id: I0bf98c6f85f00b3296874571e1c049dcc4e2fcca\n"
    },
    {
      "commit": "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0",
      "tree": "da088916c7cadadcddf47467f20cc8b0b6ff7f41",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    }
  ]
}
