)]}'
{
  "log": [
    {
      "commit": "4beea2778db2b9c236761676d105e38d60c675a6",
      "tree": "54d25709099c3b7012e0ff3d1124fc0ba1508e00",
      "parents": [
        "d4ee847f27f99e6b15a0d74334574d21e046a5ec",
        "e5326d965afc8941f85c866ae8dcdc8884c9709c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 13 18:25:48 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 13 18:25:48 2015 +0000"
      },
      "message": "am e5326d96: Merge \"DO NOT MERGE - audio policy: fix commit dea1541f\" into lmp-dev\n\n* commit \u0027e5326d965afc8941f85c866ae8dcdc8884c9709c\u0027:\n  DO NOT MERGE - audio policy: fix commit dea1541f\n"
    },
    {
      "commit": "06871b42f3280391825532c1a24657877852bc05",
      "tree": "8041c1e0f1c40263a4fca4f55b26db2622287a95",
      "parents": [
        "8ce05c7682767b0866e9d22fec5b42e31be8bd0f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 30 14:59:13 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 16 12:57:17 2015 -0700"
      },
      "message": "DO NOT MERGE - audio policy: fix commit dea1541f\n\nFix return types in early returns added by\ncommit dea1541f in AudioPolicy binder call methods.\n\nAlso fix former similar mistakes found nearby.\n\nBug: 18001784.\nBug: 18002005.\n\nChange-Id: I088c6029ca04e2c2c2f78e560c9cb6b9576dd88f\n"
    },
    {
      "commit": "8ce05c7682767b0866e9d22fec5b42e31be8bd0f",
      "tree": "f6d521c869a9e7f0d0d94b1c86a1604b267b7f24",
      "parents": [
        "4855cc3dd5a057f435c5ce540a844e46ea76d758"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 15:46:45 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 16 12:55:22 2015 -0700"
      },
      "message": "DO NOT MERGE - audio policy: validate stream type received from binder calls.\n\nBug: 18001784.\nBug: 18002005.\nChange-Id: I8efa674dceff5a6e10251b1c7a55e9bb2d532395\n(cherry picked from commit dea1541fc0042abf05674b19c2f94ca086945dfd)\n"
    },
    {
      "commit": "36d15776c37a6512d452628673e6286f8d9cf89c",
      "tree": "6524422fc3b4c8db62f9fa69ae0f650d779dda08",
      "parents": [
        "98356ada9146e8630821b760b161cbd9993f1228"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 15:46:45 2014 -0700"
      },
      "committer": {
        "name": "Joe LaPenna",
        "email": "jlapenna@google.com",
        "time": "Thu Dec 04 01:55:46 2014 +0000"
      },
      "message": "audio policy: validate stream type received from binder calls.\n\nBug: 18001784.\nBug: 18002005.\nChange-Id: I8efa674dceff5a6e10251b1c7a55e9bb2d532395\n(cherry picked from commit dea1541fc0042abf05674b19c2f94ca086945dfd)\n"
    },
    {
      "commit": "f53eaf49df1e1e1c01708919e9e0a046543de9b6",
      "tree": "01274169d31d750a0a0e08c59aa56bd5b84f3ff2",
      "parents": [
        "e86f4be598b1d2c521e2b3fcd05101c3848e93e2"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Thu Oct 09 11:36:22 2014 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Tue Oct 14 10:38:08 2014 -0700"
      },
      "message": "    fix FM no sound issue\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/184276\n\n    Signed-off-by: Carson Liao \u003ccarson.liao@mediatek.com\u003e\n\nChange-Id: I0847c8a6e6d054a9258b52402c914105d902c573\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": "bb6c9a05840d924b502ce0f1868fca4881ada1ed",
      "tree": "aec6d28b7ab31fec27416c6e853c94c2eedfcd9b",
      "parents": [
        "a935c76f96b066941b34f81c42b3fe9d00db98c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 14:11:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 16:44:07 2014 -0700"
      },
      "message": "audio: fix stream type for accessibility usage\n\nMake sure that accessibility prompts are heard when\na ringtone is active by forcing stream type\nto AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE.\n\nBug: 17558149.\nChange-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628\n"
    },
    {
      "commit": "df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871",
      "tree": "e54724362f700e3e72fc72604a3b5f568d8cee7b",
      "parents": [
        "d0fded31e473e909c018f534d3019fb5168bdcd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:39:40 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 05 12:10:27 2014 -0700"
      },
      "message": "Add sound trigger control by audio policy\n\nAudio policy:\n- Added active capture indication to sound trigger service:\nrecognition stops if concurrent capture is not supported.\n- Added generation of reserved I/O handle and session ID for\nutterance capture.\n\nSound trigger service\n- Added sound model update callback handling.\n- Added service state callback\n- Simplified callback shared memory allocation.\n\nBug: 12378680.\n\nChange-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1\n"
    },
    {
      "commit": "4dc680607181e6a76f4e91a39366c4f5dfb7b03e",
      "tree": "5212b6ff474b8ef68a68cb1cf144f54e5348de77",
      "parents": [
        "d530d415e60373caf875a37d2d747a51470ee45c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 17:26:49 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 18:10:29 2014 -0700"
      },
      "message": "audio policy: pass session ID to capture activity methods\n\nIndicate the audio session ID when calling getInput(),\nstartInput(), stopInput(), releaseInput().\n\nBug: 12378680.\nChange-Id: I763793752f93e2f4e1445a5ab217c895af011038\n"
    },
    {
      "commit": "6a8ab05f0598f4ebdd5ef82e93cf32fde0598189",
      "tree": "ca84cc8dc21a7ae93fc2c50cb48d78072361a300",
      "parents": [
        "83b8808faad1e91690c64d7007348be8d9ebde73"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 24 14:08:35 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 24 15:38:24 2014 -0700"
      },
      "message": "audio policy: add audio_input_flags_t and mOpenRefCount\n\nChange-Id: I5f9c7b5ebf03b9bc94efe70d3677edfabb99c194\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": "b3b1660ecb67f61f9da54efced8677fa3a6f4863",
      "tree": "ee42a2462ff40938316b521138d1edfe8a122d4b",
      "parents": [
        "ec40d284218466d8f0e832e7eb88e6ea6c479c88"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 16 08:36:31 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:11 2014 -0700"
      },
      "message": "Add audio_input_flags_t to IAudioPolicyService::getInput\n\nChange-Id: I9f37be05f8dc7b85a8827a94e76ca0f45453e170\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"
    },
    {
      "commit": "5bd3f38638acab633d181359cc9ec27b80f84d43",
      "tree": "f4f234ec7e3c4649beabe5b03c1a1a0b2b3cd1f2",
      "parents": [
        "faabb51ceef13bf1e3f692219ac410c1cd75d0de"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 13 16:06:54 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 18 08:07:00 2014 -0700"
      },
      "message": "AudioPolicyManager: return output for audio attributes\n\nIn AudioPolicyManager, support querying an output\n or playback strategy for audio attributes,\n instead of a stream type,\nIn AudioTrack creation, use the output returned\n for the track\u0027s attributes.\n\nChange-Id: I0fef05845ba676404775e2e338c10e6a96237268\n"
    },
    {
      "commit": "5284ed53c14cd4d15bd793000ede7166d143e69a",
      "tree": "8a18ea6e8776d3118467d6491743edc97f231bf8",
      "parents": [
        "62aaabb3905c61bb7acd6037414c206240a31c32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 14:37:38 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 11:05:58 2014 -0700"
      },
      "message": "audio policy: add permission for routing APIs.\n\nAdd check for signature or system permission\n\"android.permission.MODIFY_AUDIO_ROUTING\" for routing\nAPIs.\n\nBug: 14815883.\nChange-Id: Iefa0b9d90127a53e03a2e6d50dc93d8f4ae63e2f\n"
    },
    {
      "commit": "6a94d69dc4f32abb53c466a96f905bb199be6417",
      "tree": "eef3552877f202429801a0b20f2ae31aad7801e7",
      "parents": [
        "32f93b7bedc44b425ba99d69dec998334e759532"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:18:06 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 17:57:55 2014 -0700"
      },
      "message": "audio policy: implement routing control\n\nAdd implementation of audio routing control via AudioSystem APIs.\n\nThe following APIs are implemented:\n- listAudioPorts(): return a list of devices and output/input mixers ports\nthat can be used as sources or sinks for audio patches.\n- createAudioPatch()/releaseAudioPatch(): create/release a connection patch between\ntwo audio ports (e.g. to connect input from an HDMI device to a speaker output device).\nOnly one client application can own a patch from a given source.\nWhen an audio port (device or mix) is part of an application created patch, its routing cannot\nnot be changed by a policy decision.\n- listAudioPatches(): return a list of existing patches.\n\nEach audio port addition/removal and each audio patch creation/release increments a generation count.\nThis generation count is used to ensure consistency betwen calls to\nlistAudioPorts() and listAudioPatches().\n\nBug: 14815883.\n\nChange-Id: I022b638c2f5f0bb41543c7cfca7488fb45cfdd80\n"
    },
    {
      "commit": "203b1a18a806e2c56c701aac49cda963bccfad5b",
      "tree": "f8dd30db10c795c93582112bba8e037aa9ea78d4",
      "parents": [
        "951f455566775e5f01e67c5ee26863d7d19209d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 01 10:34:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:30:22 2014 -0700"
      },
      "message": "DO NOT MERGE - IAudioPolicyService interface extension for patch panel\n\nChange-Id: I0a62e5416edc41c3a0e816275085ab18a23066f1\n"
    },
    {
      "commit": "dce54a1492c410ad0d93253b341fb33305337505",
      "tree": "2580556580832583ce5cd5a640684b8dc0948783",
      "parents": [
        "0fab43120972dfbf4d6f0ec19ab470131b6c8b09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 10 12:19:46 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 18 10:55:33 2014 -0700"
      },
      "message": "audio policy: add option to use new policy manager\n\nAdd build option USE_LEGACY_AUDIO_POLICY to use either new\naudio policy manager in local AudioPolicyManager.cpp\nor the legacy AudioPolicyManagerBase.cpp via the policy HAL.\n\nNew features will be implemented only by the new audio policy manager.\nPlatform customiization will be by config file or new policy HAL.\n\nAudioPolicyClientImplLegacy.cpp copied from AudioPolicyClientImpl.cpp\nAudioPolicyInterfaceImplLegacy.cpp copied from AudioPolicyInterfaceImpl.cpp\n\nNew implementations of AudioPolicyInterface and AudioPolicyClient talking directly to\nAudioPolicyManager.\n\nChange-Id: I7a320883a1de13de2c9295343e996addf2f3c154\n"
    },
    {
      "commit": "2d388eccc9dc085337c7a03a68467cbee6b809e1",
      "tree": "359f5f2873277708258f9cfd103354e470f3a4ea",
      "parents": [
        "c7e5040aa8b8e4da86814bf560346c7571e48087"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Mar 07 13:25:54 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 13:56:42 2014 -0700"
      },
      "message": "audio policy: split implementation\n\nSplit audio policy service implementation to ease\nfurther evolution:\nAudioPolicyInterfaceImpl.cpp contains the implementation of\nIAudioPolicyService interface\nAudioPolicyClientImpl.cpp contains the implementation of the\nAudioPolicyManager client interface\nAudioPolicyService.cpp contains the rest of the code mostly\ncommand threads implementation and pre processing management.\n\nAudioPolicyService.cpp:\n\nChange-Id: Ic48ba165532ef66e84a30894d01f750ed6619d02\n"
    }
  ]
}
