)]}'
{
  "log": [
    {
      "commit": "f997cabca292d70d078ae828e21c28e6df62995f",
      "tree": "8e82ee801d8465366f659028f7105ee3ca38d4cc",
      "parents": [
        "46bf665ea3687f06069ebd1a0acd01ed7b5ac9cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 19 06:24:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 19 06:31:30 2010 -0700"
      },
      "message": "Fixed problems in audio effect volume control.\n\nFixed the following problems in audio effect volume control in AudioFlinger:\n- Make sure that the volumes returned by EffectChain::setVolume_l() are correct even is\nno change is detected since last call\n- Do not use isEnabled() to validate volume control but mState \u003e\u003d ACTIVE instead as the volume control\nmust be also active in STOPPING and STOPPED states.\n\nChange-Id: Id62da3164fad500ee8a5efd6cd78c77e8fdcb541\n"
    },
    {
      "commit": "cab112421da6e8eac19ffddbbe3d76067cffee78",
      "tree": "c2e8bb3057c5de25454eae1286ff0868933680aa",
      "parents": [
        "5462fc9a38fa8c9dff434cd53fa5fb1782ae3042"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 15 12:50:15 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 15 12:50:15 2010 -0700"
      },
      "message": "Several improvements in audio effects volume control.\n\n- Fixed crash when deleting an effect chained before an effect having volume control\n- Changed EFFECT_FLAG_VOLUME_CTRL to implicitely include EFFECT_FLAG_VOLUME_IND\n(not need to set both in effect descriptor).\n- Volume control changes from one effect to another if needed according to effect enable state\n- EFFECT_CMD_SET_VOLUME is only sent when their is an actual change in volume\n\nChange-Id: Ieebaf09157e2627366023569d95516646e03e26c\n"
    },
    {
      "commit": "5462fc9a38fa8c9dff434cd53fa5fb1782ae3042",
      "tree": "76ee9bdf73fb2460d074025ed451e56f8ec34a11",
      "parents": [
        "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:41:18 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:43:19 2010 -0700"
      },
      "message": "added BinderService\u003c\u003e template to help creating native binder services\n\nChange-Id: Id980899d2647b56479f8a27c89eaa949f9209dfe\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"
    }
  ]
}
