)]}'
{
  "log": [
    {
      "commit": "223fd5c9738e9665e495904d37d4632414b68c1e",
      "tree": "33e0afab9a7479cdc4c688a742a8977c8ead21e4",
      "parents": [
        "bc0f452b9a76dd8c8244e775bc9c5aa85cae3ddf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 11 13:43:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 21 10:41:13 2014 -0800"
      },
      "message": "audio: new routing strategies and stream types\n\nAdded new routing strategies and stream type for internal use\nby audio policy manager and audio flinger:\n- One for accessibility to allow different routing than media\n- One for re-routing (remote submix) in preparation of dynamic\npolicies\n- Added stream type for \"internal\" audio flinger tracks used\nfor audio patches and duplication.\n\nBug: 18067208.\nChange-Id: I88f884b552e51e4a49c29125e5a1204cf58ff434\n"
    },
    {
      "commit": "7de5ac1f067ec61f7ea424d5534cfd40987b11fa",
      "tree": "93d7a87cd7462d484b4ee882a70c3163ce2f73ac",
      "parents": [
        "d5923409bbcbb22954a92c2b497ef4492d7cb6a5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 09:07:11 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 09:56:18 2014 -0700"
      },
      "message": "audio policy: fix effect handle leak\n\nFix ref counting error in AudioPolicyEffect::addInputEffects()\nand addOutputSessionEffects()\n\nBug: 17675112.\nChange-Id: I5267d1024a585919f66ead83662e57b78ba53540\n"
    },
    {
      "commit": "8b1e80bf1e9f214feea219cfe981ba533b806003",
      "tree": "0d6b46a05d685e02750433f6779eb1ce09d84294",
      "parents": [
        "f0011d49c0f08753dc2dc254c5a70885a9986602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 09:08:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 12:24:30 2014 -0700"
      },
      "message": "audio policy: fix lockup during mediaserver restart\n\nWhen pre or post processing effects are applied by audio policy service\nautomatically there is a potential lockup if the first call into\nAudioPolicyService is made while creating one of those effects.\nThis is because effects are created with AudioPolicyService mutex held and\neffect creation calls into methods (e.g registerClient()) which also acquire\nthe mutex.\n\nThe fix consists in adding a new mutex to AudioPolicyEffects class and not\nhold the AudioPolicyService mutex when calling methods in of class.\n\nBug: 17830596.\nChange-Id: Ie61c3671d3147f46e99ba208f39c1a3bf180779f\n"
    },
    {
      "commit": "890a5637b3e3eb197fd2c7f5deec816c7feb13fc",
      "tree": "71a722cfba64b26c6f4d09b0e353986928d12d3d",
      "parents": [
        "8b250cb67d0cab6234c0e8e0e21342d03c1eca5d"
      ],
      "author": {
        "name": "bryant_liu",
        "email": "bryant_liu@htc.com",
        "time": "Wed Aug 20 18:06:13 2014 +0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Thu Aug 28 17:45:55 2014 -0700"
      },
      "message": "frameworks: av: AudioPolicyEffect: Add refCount for each session\n\nAudio framework stops and restarts AudioTracks on same audio session.\nSometimes the AudioTrack start() comes before a stop(). As effects\nare linked to the session, they should only be created on the last\nstop() related to that session.\n\nBug: 17201117\n\nChange-Id: I19343e293d6b7b6b794fe05ebd0dd239ed3b075c\n"
    },
    {
      "commit": "a7e04803ffa0d8d4cc51a122f68bf5038422aabb",
      "tree": "e1c60583b09461df3be42a04dbae4d51e1bd75e9",
      "parents": [
        "8bce84142802ecdc1794d59488ede629801a5cba"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 21 11:49:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 21 11:55:33 2014 -0700"
      },
      "message": "Remove execute bit\n\nChange-Id: I1cf0c0d9375779b3074af12f4cbf9c1ec07bf4ff\n"
    },
    {
      "commit": "897a408b3f9c893776d67214257ca6a6bc1751bd",
      "tree": "57f48c5fc29aae3bd1e4b54d5cd312e6e78657af",
      "parents": [
        "2db91ae0e6aa33b50cc924ad65d6dc01876d220f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 11 16:51:53 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 11 16:51:53 2014 -0700"
      },
      "message": "audiopolicy: remove debug log in AudioPolicyEffects.cpp\n\nChange-Id: Ia037807a91d6649c3f47baccf8c107df496e934e\n"
    },
    {
      "commit": "ba2b43990a7b4f0f2c425cf6cdfc63376a45772c",
      "tree": "a2253fca6136a86bb00a197fe2edb97c3438d9c4",
      "parents": [
        "2421a4ba309f082a83be9b8e385c00cd8e0043f6"
      ],
      "author": {
        "name": "bryant_liu",
        "email": "bryant_liu@htc.com",
        "time": "Wed Jun 11 16:49:30 2014 +0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 01 11:32:34 2014 -0700"
      },
      "message": "frameworks: av: services: audiopolicy: Added AudioPolicyEffects\n\nManage pre- and postprocessing effects defined in audio_effects.conf\n\nChange-Id: Idea1478e3d434f8ff66907adb3c77663db78d583\n"
    }
  ]
}
