)]}'
{
  "log": [
    {
      "commit": "cef3cd79489fa7897ffbacbc4e435651fb04f10d",
      "tree": "fd0d5f2763f08b01314ec7015c0a2e027e916c20",
      "parents": [
        "a77f93f76a40128ecc3d017ead6d1105f96b282a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 10 01:03:50 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 13 09:25:13 2010 -0800"
      },
      "message": "Create base class for audio policy manager.\n\nFirst implementations of audio policy manager in Eclair branch have shown that most code is common to all platforms.\nCreating AudioPolicyManagerBase base class will improve code maintainability and readability.\n\nAudio policy manager code for platforms using generic audio previously in AudioPolicyManagerGeneric is replaced by AudioPolicyManagerBase.\nAudio policy manager test code previously in AudioPolicyManagerGeneric is moved to AudioPolicyManagerBase.\n\nAlso added a wake lock for delayed commands in AudioPolicyService.\n"
    },
    {
      "commit": "3fdb1267c1623773b4eb5e1b06d5859019275e40",
      "tree": "131abbc4c398b9008f42a9ba09163c478375c166",
      "parents": [
        "638d86535264b24b54698fca7e18e68571fe0bad"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 07 00:01:32 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Nov 07 01:18:20 2009 -0800"
      },
      "message": "More log for issue 2242381.\n\nAdded more log in system dump for AudioFlinger and AudioPolicyService to help debug issue 2242381 and other issues where the audio driver hangs.\n"
    },
    {
      "commit": "f4ee40e26ec43e17359ff5788565349a9aa71908",
      "tree": "dca4b87fd01acc9c0897e3d5553e3cbcd11cc585",
      "parents": [
        "8637759a1d34a4adda292579d5f8790587659235"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 02 10:29:02 2009 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 03 09:33:35 2009 -0800"
      },
      "message": "Log for issue 2203561.\n\nImplemented AudioPolicyService dump().\nAdded detailed dump for AudioPolicyManageriGeneric when AudioPolicyService is dumped.\n"
    },
    {
      "commit": "415f3e2875b8b0b860d0dd6a69ff6868571c36bb",
      "tree": "9ce2631d183fa93c398c4691bbb8dd9a220cb2af",
      "parents": [
        "6270d52c0dded8658733a392f3ef1f521bc5dbee"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 21 08:14:22 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 21 12:29:37 2009 -0700"
      },
      "message": "Fix issue 2192181: AudioFlinger must provide separated methods to set VOICE_CALL stream volume and down link audio volume.\n\nAdded setVoiceVolume() method to AudioSystem, AudioFlinger, IAudioFlinger, AudioPolicyService.\nRemoved call to AudioHardwareInterface::setVoiceVolume() from AudioFlinger::setStreamVolume().\n"
    },
    {
      "commit": "327c27be19ad333c4835c84397152a0b2cb33081",
      "tree": "829f4323a59b922a47f6e7a60750be8e2c64a089",
      "parents": [
        "42b1648212d31dbc63518ca8379f145fef1efcb8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 27 00:48:47 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 27 05:58:10 2009 -0700"
      },
      "message": "Fix issue 2045911: Camera Shutter tone does not play correctly while listening to music.\n\nAdd the possibility to delay routing and volume commands in AudioPolicyClientInterface. The delay is not blocking for the caller.\n"
    },
    {
      "commit": "ddb78e7753be03937ad57ce7c3c842c52bdad65e",
      "tree": "a1f4d8105448525973897933a3494dd4d439274c",
      "parents": [
        "4c35e2c59afa28f9ed3fab1788570ef933f29b1a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 28 08:44:33 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 07 00:27:19 2009 -0700"
      },
      "message": "Fix issue 2001214: AudioFlinger and AudioPolicyService interfaces should not use pointers as handles to inputs and outputs.\n\nUse integers instead of void* as input/output handles at IAudioFlinger and IAudioPolicyService interfaces.\nAudioFlinger maintains an always increasing count of opened inputs or outputs as unique ID.\n"
    },
    {
      "commit": "4192cce1f252932b6f3cae43e3da7584f4cb2c28",
      "tree": "bfad0bc2d210f173264701e4a8b1c00db91bcb9d",
      "parents": [
        "30b06eb8b98b6e6dc685cf65ad4faa25a85008c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 24 06:58:44 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 24 06:58:44 2009 -0700"
      },
      "message": "Fix issue 2001204: libaudiopolicy.so and libaudiopolicygeneric.so libraries must be pre-linked.\n"
    },
    {
      "commit": "a553c25b33c99b345cf1c8688f8df0ed8df14e5a",
      "tree": "025c461b13e66ad0ceac8d0f8d9b13fd88ae168a",
      "parents": [
        "ebd7bc54028949619bbf3fa5ed6c1188f588c230"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 17 12:17:14 2009 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 23 06:03:39 2009 -0700"
      },
      "message": "Fix issue 1795088       Improve audio routing code\n\nInitial commit for review.\nIntegrated comments after patch set 1 review.\nFixed lockup in AudioFlinger::ThreadBase::exit()\nFixed lockup when playing tone with AudioPlocyService startTone()\n"
    }
  ]
}
