)]}'
{
  "log": [
    {
      "commit": "a0c91339814f37ea78365afb436c9f3d1f0a0090",
      "tree": "b0075232d68758a314754a9293c65ea15091ca95",
      "parents": [
        "5090f7d3211b5517a7602c910c04462f7eee0727"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 19 10:01:12 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Sep 26 14:53:38 2016 -0700"
      },
      "message": "Update NBAIO to use the new audio HAL abstraction layer\n\nMoved the HAL access abstraction layer to a separate library so it\ncan be used both by audioflinger and libnbaio.\n\nBug: 30222631\nTest: manual with Loopback app, Hangouts, YouTube\n\nChange-Id: Id622c2f1aa8f55a775d34f369a596c2c4d29d5be\n"
    },
    {
      "commit": "1dc98674f701dada94143b4d31b7221c58346c6c",
      "tree": "44f80a66fdff774d2229ca3aaabdd614ed1f8013",
      "parents": [
        "9debf8f6d26f7aa12c68ddfb6cdb1323d4b5adbf"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 18 17:50:29 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Sep 21 15:58:24 2016 -0700"
      },
      "message": "Abstract away access to audio streams HAL in AudioFlinger\n\nIn this CL all direct access to audio_stream_t, audio_stream_out_t, and\naudio_stream_in_t their functions is encapsulated within the new\nhierarchy of Stream[In|Out]HalLocal classes.  AudioFlinger uses\ninterface classes Stream[In|Out]HalInterface to access these functions.\n\nNote that NBAIO still receives raw HAL stream handles and needs to be\nconverted separately.\n\nBug: 30222631\nTest: manual with Loopback app\n\nChange-Id: I6388cfa2006791c9c0aa7bb186719209726a2d48\n"
    },
    {
      "commit": "db0fd69d5dd2cb70009884458d5c78c9e7256c15",
      "tree": "4b16fae6e5bf6231de2d2a931beae3a892bc626c",
      "parents": [
        "681caefc7d3db69952daf1536513070c50b99635",
        "77b44035440f4dfc1c8d29da7d800f111ebe6376"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 10:26:09 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 10:26:09 2016 -0700"
      },
      "message": "Merge commit \u002777b44035440f4dfc1c8d29da7d800f111ebe6376\u0027 into fix_merge\n\nChange-Id: I0f1d2b605a8d90f86f8fa27cbf971018981c6c38\n"
    },
    {
      "commit": "77b44035440f4dfc1c8d29da7d800f111ebe6376",
      "tree": "16bb499a29cb5ac24acdaf0f350e6fd838972e36",
      "parents": [
        "b58c4e1bbd4e2420614e1bfe13f885e502301b63",
        "79c3335e35ce7dea158ac8bf03922c843987f5a9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 16 16:37:18 2016 +0000"
      },
      "message": "audio flinger: add support for effects without process function am: 6dd0fd92d6\nam: 79c3335e35\n\nChange-Id: I719e0379c19d6e0e4e50597726f83b3a1d0b3cd8\n"
    },
    {
      "commit": "6dd0fd92d6cdeb2cf5b7127c0e880e5eacfd4574",
      "tree": "bbc1a7a950617900e093696c6e81c589151ba65c",
      "parents": [
        "7c6bd7b17835cfa615d1f74aa7fe7c45c7190e4d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 12:44:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 15 17:27:27 2016 -0700"
      },
      "message": "audio flinger: add support for effects without process function\n\nAdd support for effects indicating they do not implement a process\nfunction and do not consume CPU or add latency.\n\nEnable those effects on RAW and FAST outputs and inputs.\nDo not call the process function.\n\nBug: 31491112.\nChange-Id: If020c8bb3b180568dec5138b087edec8c2524182\n"
    },
    {
      "commit": "e4f1f63a2c54ee8687ad8cca18df0f6639ad7c81",
      "tree": "941cdb35111e5e01ece553475e5bbf7841a7116c",
      "parents": [
        "1724ee3caa5f0b4e73979036073f0b71a115083a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 31 11:35:10 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Sep 13 16:27:15 2016 -0700"
      },
      "message": "Abstract away access to audio devices HAL\n\nIn this CL all direct access to audio_hw_device_t and its functions is\nencapsulated within the new class DeviceHalLocal. Loading of hardware\nmodules is encapsulated withing DevicesFactoryHalLocal.  AudioFlinger\nuses interface classes DevicesFactoryHalInterface and DeviceHalInterface\nto access these functions.\n\nBug: 30222631\nChange-Id: Ic88b20c55813a24b898f4a832e082c17d81935b7\n"
    },
    {
      "commit": "4a3d5c23f79189eb7ab9f31c440c7da5b15947a2",
      "tree": "6417b4b0425ae73ba9e7c7ce3e17e7dc499e0fec",
      "parents": [
        "ecb008139a952a7e5d812e7eb0f5af0f9466d25d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 15 13:47:42 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Aug 29 10:22:35 2016 -0700"
      },
      "message": "Abstract away access to audio effects HAL and factory\n\nIn this CL all direct calls to functions from EffectsFactoryApi.h\nand hardware/audio_effect.h are encapsulated within two new\nclasses: EffectsFactoryHalLocal and EffectHalLocal. AudioFlinger\nuses interface classes EffectsFactoryHalInterface and\nEffectHalInterface to access these functions.\n\nBug: 30222631\nChange-Id: Id64b9c5529319077f6f968921489a13f60daa977\n"
    },
    {
      "commit": "3366d7965645c1f9694493fa2caff361158a90f2",
      "tree": "40c92a1e1ba3eb3e460f13c7780aa99661db4545",
      "parents": [
        "c02035e964ba16dcd9188a340a9e0d6e8b2e3d4d",
        "a3e0e40218a3f1dafa7b9084615a6e80d2812d87"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:45:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:45:19 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252 am: 7b2ce5639f am: 4faee5a880\nam: a3e0e40218\n\nChange-Id: I56558cd3dff5fcafafd6fe5cd542b57bf836f544\n"
    },
    {
      "commit": "183d012ea9e1d2bea2f46fb4c784b824075ce841",
      "tree": "720958fbd1bfb98a4c4c0a38c8b5f31c50cb4e09",
      "parents": [
        "554ad9b1fa280d7bf72e420cbcdf1f46e973df6a",
        "4faee5a880c5c5363c64dd8b1d5c8f42bf85e424"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:45:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:45:19 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252 am: 7b2ce5639f\nam: 4faee5a880\n\nChange-Id: Id866cf06e00f0ca2de3229d868ef1d945def4d45\n"
    },
    {
      "commit": "a3e0e40218a3f1dafa7b9084615a6e80d2812d87",
      "tree": "c928f4c7c9836eb1eb1f4d544a78096fffd864dc",
      "parents": [
        "beafd1c1c1030c71079f765f42599a20d9e58e55",
        "4faee5a880c5c5363c64dd8b1d5c8f42bf85e424"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:41:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:41:51 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252 am: 7b2ce5639f\nam: 4faee5a880\n\nChange-Id: I238d8ce2ab24f15b9d10e01974804cfa0c647f00\n"
    },
    {
      "commit": "4faee5a880c5c5363c64dd8b1d5c8f42bf85e424",
      "tree": "58aa1791524810a5bcf8477ca93e0df508a3ef6b",
      "parents": [
        "7e822583ee1bee3408285114f8a2bd065eef2033",
        "7b2ce5639f8388e31c9b0783f4a8d3584b08c59f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:38:17 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:38:17 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be am: 1ab50af9c1 am: 18e5ce6891 am: 0330f4ce2d am: 41880fe252\nam: 7b2ce5639f\n\nChange-Id: Ic7468a587b3c709949f57bbb177cacafd9c72db0\n"
    },
    {
      "commit": "18e5ce689152760c29dbe83e68371b116a8f0605",
      "tree": "f0626a37f128d36bc34f78063e803c95a02a7000",
      "parents": [
        "1dd4973234911d447f7cae02c4beace1ef231bbd",
        "1ab50af9c1c1617a3d25dfc0458b428db69630c0"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:24:45 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:24:45 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324 am: ebd9f1029e am: d37cf46848 am: ced0dd635e am: 00acbf03be\nam: 1ab50af9c1\n\nChange-Id: I5be11eba820ccb3f6c3bb97b3fa417504306bb3f\n"
    },
    {
      "commit": "d37cf46848ff1eeedcf2c05bf00c18582941a412",
      "tree": "bec8df82d205971616059be56b15999e3e69f605",
      "parents": [
        "83cf293b73ed9ddff3162b75083f6a75dd07b7f2",
        "ebd9f1029e5e317e0fcf37163b741a0e48a39fa1"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 19 19:04:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Aug 19 19:04:15 2016 +0000"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking am: e4a1d91501 am: 19d8a61324\nam: ebd9f1029e\n\nChange-Id: Ic2fa5bba22d9ffc7b69ea97e2e4bc44d8a0fa42d\n"
    },
    {
      "commit": "e4a1d91501d47931dbae19c47815952378787ab6",
      "tree": "427ee53e773dbdbb8b60f10ac9c8ae068bd30fdd",
      "parents": [
        "17a10c50e20d934c1ac5956fe9019d3013e3f8b3"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 17 14:11:13 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 18 15:56:23 2016 -0700"
      },
      "message": "Add EFFECT_CMD_SET_PARAM parameter checking\n\nBug: 30204301\nChange-Id: Ib9c3ee1c2f23c96f8f7092dd9e146bc453d7a290\n"
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "e7449bf60c861f1dea7510f706004dfdb5efb2a7",
      "tree": "e5d8701c50e92a774437ce608f108131c660e6c8",
      "parents": [
        "fa1e123f3fffe1eb3d6c284e19014815835e22d6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 03 18:44:07 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 03 18:44:07 2016 -0700"
      },
      "message": "audioflinger: fix effect volume set on start.\n\ncommit fa1e123f forced effect volume to be re applied when\nan effect is enabled regardless of the fact that the volume was\nalready set or not on the effect chain. This caused a systematic\nvolume command to be send with an invalid value immediately\nfollowed by the correct value.\n\nBug: 30458082\nChange-Id: Ida4b5d7e96c2d4da298589c37c2ce98541a9396a\n"
    },
    {
      "commit": "fa1e123f3fffe1eb3d6c284e19014815835e22d6",
      "tree": "8ccaf58905328e2a618f15ff0952ed1fcd6a3802",
      "parents": [
        "440fa2cdb486b962fe5d65985bbf03e84f1cbb2a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 02 19:01:49 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 03 11:09:31 2016 -0700"
      },
      "message": "audioflinger: fix effect volume control delay\n\nFix delay between effect enable and forced volume update on\noffload threads.\n\nBug: 30458082\nChange-Id: I4222ccde8c6d0bb834c525d3746bd668654f50f3\n"
    },
    {
      "commit": "f3c87704fcd7f2556948d3174083cb3b3784bc4c",
      "tree": "3582b19f765a936985de9111601bdb6c91d03c9a",
      "parents": [
        "48c926f72b6c64edf6d03b91604b87695609f96e",
        "c0da99333228e88c311f6e4d52bb282b11d0d068"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 18:11:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 18:11:49 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d am: d34a9dfc5e am: 4d942ffdf7 am: 97dc689080 am: 96727e67fa am: 2072f925af am: 807b325704\nam: c0da993332\n\nChange-Id: Icd6b91a252aa1095229052c5d042de0af06dc2f1\n"
    },
    {
      "commit": "c0da99333228e88c311f6e4d52bb282b11d0d068",
      "tree": "818206d8aa2b5db785b3dc2c5bf71eb94aadf2c6",
      "parents": [
        "ef7c297ea4b61ec25f3277f83069c42997deac9a",
        "807b325704b3361cb9846450e8d3bbea96a0fa1c"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 18:09:02 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 18:09:02 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d am: d34a9dfc5e am: 4d942ffdf7 am: 97dc689080 am: 96727e67fa am: 2072f925af\nam: 807b325704\n\nChange-Id: If0a3ddbf84c520434f88ad5f6f02fd854cf8c4aa\n"
    },
    {
      "commit": "97dc6890807d2cf861bac781acad375173906e62",
      "tree": "9809fc859f6dd936c532ed064dc443bb8758eef3",
      "parents": [
        "69367123bee39b647d9c72e8f88cea4d241123e0",
        "4d942ffdf7cfbfe43133bf1c87eda4e4569f3507"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 17:52:29 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 17:52:29 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713 am: c971a59f4c am: 195f7c6125 am: 1e1b7e4c3d am: d34a9dfc5e\nam: 4d942ffdf7\n\nChange-Id: I5d59510f7bd7c8b72deef4de177193028af1f4c7\n"
    },
    {
      "commit": "195f7c6125d7c0a48c9f7f0aeb0311ba076a8df7",
      "tree": "0cf37057165f2c538565caa6eec53e26346c053b",
      "parents": [
        "719fd3c0625705777f1ef0667005b111733c2e0b",
        "c971a59f4c2491a2e5143f7118debd7c92fa3333"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 21 17:41:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jun 21 17:41:26 2016 +0000"
      },
      "message": "Check effect command reply size in AudioFlinger am: 110bc9547a am: 075c8f7713\nam: c971a59f4c\n\nChange-Id: I86d971f1a537a34e90e4f0697c9c9a43e509cfc4\n"
    },
    {
      "commit": "110bc9547a0c851ff1f20f5d7579b34f942947b8",
      "tree": "b719fae497302d432d53af62476ca1508f4854cc",
      "parents": [
        "dc7357d20175fadfabd903370094917408bf6e3e"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 20 15:22:52 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jun 20 15:22:52 2016 -0700"
      },
      "message": "Check effect command reply size in AudioFlinger\n\nBug: 29251553\nChange-Id: I1bcc1281f1f0542bb645f6358ce31631f2a8ffbf\n"
    },
    {
      "commit": "4c415062ad1bb53e9af8f644d8215837262b79bb",
      "tree": "ef03f2781c22f245b13404d321f8f1bac9e24912",
      "parents": [
        "e8a984e43504890e0f676256a0445b9917a2af91"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 17 16:14:16 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 20 12:26:30 2016 -0700"
      },
      "message": "audioflinger: add check for effect vs thread compatibility\n\nMake sure that only HW accelerated effects are added on FAST\nplayback or record threads and no effect is added on threads with\nRAW flag.\n\nMake sure that tracks with RAW and FAST flags are compatible with exiting\neffects on a playback or record threads and clear flags accordingly.\n\nBug: 4999001\n\nChange-Id: I0c060f1ee4dfb9f1e206633536e67f7c3b7b3788\n"
    },
    {
      "commit": "c42e9b462661673dff480ee71757a58b0f806370",
      "tree": "c9d53e761500f2466b7b8c4cfeb78b072d424e29",
      "parents": [
        "02c4f1c02b832868bbae2bf2c62039e54dc0b6d4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 11:35:03 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 21 12:05:28 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: Idfdaff3a7a8f60cd8817bd306bfba28020a391c8\n"
    },
    {
      "commit": "57c4e6f7464d458eb52d209c2a63524913d6406d",
      "tree": "b7fae46bbc981c62460d572b51d6f68b9f9b847d",
      "parents": [
        "560a198f1f95a085e24944b20df536e75e21cedb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 14:54:07 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 18 17:36:37 2016 -0700"
      },
      "message": "Fix build warnings\n\nChange-Id: I33178dbe0bfc087d6599579ca0529ad853c669ed\n"
    },
    {
      "commit": "d848eb48c121c119e8ba7583efc75415fe102570",
      "tree": "06733e396ad546bf39be0a6699193d041883edad",
      "parents": [
        "38246e482ea3bd1e0f88f7133934ec4537b48bbd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 08 13:42:11 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 16 14:04:22 2016 -0700"
      },
      "message": "Use audio_session_t consistently\n\nBug: 27562099\nChange-Id: I328d8226191386b163f2ace41233607294c50dcd\n"
    },
    {
      "commit": "d11da70f0e1d06ee6c7b2f83fcfb06257a1c90f2",
      "tree": "3620c1269dd9a73cf533cbed5888459edbf87abf",
      "parents": [
        "70b2313318aaf245d185b6ddb188606608bdf7c9"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu May 28 12:14:12 2015 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Thu May 28 14:28:40 2015 -0700"
      },
      "message": "Fix for audio effects in offload path for mono content\n\nEffects path is always stereo, and it should be initialized as thus even\nif the source is mono. Fixed condition check before initialization.\n\nbug: 18157592\nChange-Id: Idd7241931e4ba6085fd804345128d898c8511e11\n"
    },
    {
      "commit": "63238efb0d674758902918e3cdaac322126484b7",
      "tree": "07fdf37a2bc73a886d8ea41f69e722ed914754af",
      "parents": [
        "d7e1d08c2ac21cdd2f3b7f83fec7094f6a98fc08"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 02 15:50:29 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 03 08:50:40 2015 -0800"
      },
      "message": "Remove redundant semicolon from namespace closing\n\nChange-Id: I163f9d3d216c283ae1160ce4802e5247cf44fba7\n"
    },
    {
      "commit": "1b92868010b5c1409692a86f6b27e4a265b64c1a",
      "tree": "aa514a65d23d1bebbceef49cc6b7f2662c7bad76",
      "parents": [
        "d8b03abf1d003e2940a19f0071ea2892689dd10e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 02 19:41:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 02 19:41:47 2014 -0700"
      },
      "message": "audioflinger: fix pre processing transfer between record threads.\n\nFix two problems remaining with pre processing effects transfer from\none record thread to the next in case of tear down due to device connection:\n1 - the enabled state of the effects was not communicated to the new HAL\ninput stream.\n2 - the effects saved in orphan chains list were not transfered to the\nnew thread when a AudioRecord was created.\n\nBug: 17757378.\nChange-Id: I0923c98470db3b51154dc89846157780a4c21e86\n"
    },
    {
      "commit": "cb4b6e9f05d1c0b3fcc5be5ebe3f7d6f32669b1a",
      "tree": "7bf2965353146579d1af3a5015ec468029d1f5dc",
      "parents": [
        "a49c94ea49c8329a1bdefe980e1f7d335c0d1ec5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 01 14:26:10 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 01 16:52:30 2014 -0700"
      },
      "message": "audioflinger: fix failure to indicate volume to effect\n\nIf an effect is added and enabled after a track is started\nit will not receive current volume information because volume\nis indicated only to active effects and if there is a volume change.\n\nAdd a flag to force EffectChain::setVolume_l() to pass volume indication\nto all effects each time an effect is enabled.\n\nBug: 17572556.\n\nChange-Id: I6b68488c9aca8b2095fb210aa124d02e4f759660\n"
    },
    {
      "commit": "aaa44478a373232d8416657035a9020f9c7aa7c3",
      "tree": "95a4724c0d7ebbe065551f0aeaf5d65283ab3e04",
      "parents": [
        "f0b31e6333839972afb2e374f6d8824180d29fc2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 17:41:50 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 15 09:31:31 2014 -0700"
      },
      "message": "audioflinger: fix pre processing effect leak\n\nWhen a capture thread was closed, the effects attached to this thread\nwere left dangling and the associated effect chain destroyed.\nWhen their last client was disconnected, the effects were not released\nproperly from the effect library because the destruction process could\nnot be completed without the effect being attached to a thread.\n\nA similar problem prevented a RecordTrack to be properly released if\nits client was destroyed after the capture thread.\n\nThe fix consists in allowing the effect or record track to be properly\nreleased even if its parent thread cannot be promoted.\n\nAlso save any effect chain still present on a closed capture thread\nin case a new client wants to reuse the effects on the same session later.\n\nBug: 17110064.\nChange-Id: I5cd644daa357afd1f3548f9bcb28e6152d95fdb8\n"
    },
    {
      "commit": "726b6a7540ac997928df1a14dfede872a82f6210",
      "tree": "deb87bb07b384d104a3e1661a6ef320fa10d34f3",
      "parents": [
        "2dfe8ea7c131a045067c123efc934ef6ccdb8821"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Aug 11 12:04:54 2014 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Mon Aug 11 14:28:45 2014 -0700"
      },
      "message": "Fix to support mono in effect buffer allocation.\n\nSince effects are now enabled for recording, mono cases are possible\nand needed to be correctly allocated.\n\nBug: 16917961\nChange-Id: I760fc421f9f90fabb3f0deadd5f9dc61cd284371\n"
    },
    {
      "commit": "322bab26dc3fe9bd9c1cbb829dc62ff44f1ae810",
      "tree": "51abbc969cf66fceeebbd97199f0d9ce18aaf13c",
      "parents": [
        "63c0ce7ab7bd99d51414dcb4f765bc6faabf367d"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Aug 06 11:43:46 2014 -0700"
      },
      "committer": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Wed Aug 06 12:06:14 2014 -0700"
      },
      "message": "MediaServer crashing and audio effects not applied to TTS.\n\nA memclear in the EffectChain was out of bounds.\n\nBug 15432115\nBug 16845751\n\nChange-Id: Ib0adc7fa730d630bb71fb87d51163a26149b16e2\n"
    },
    {
      "commit": "021cf9634ab09c0753a40b7c9ef4ba603be5c3da",
      "tree": "03fb2a864179983e482cae4dac6a502a6dcef136",
      "parents": [
        "aa0315f9fdcf99e84a969a4f81192150ddaef260"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 13 10:18:14 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 13 13:09:17 2014 -0700"
      },
      "message": "AudioFlinger: add specific mutex for client lists\n\nAdd a specific mutex to protect access to mClients and\nmNotificationClients lists. This avoids locking the main AudioFlinger\nmutex from inside thread loops and allows not to worry about\ncross deadlocks when sending a config event with status reply while\nkeeping the ThreadBase or AudioFlinger mutex locked.\nAs a way of consequence, remove notification client list passed to\nprocessConfigEvents_l() and audioConfigChanged() as the list\ncan now be accessed by locking client mutex only.\n\nChange-Id: I228022204b6709a8bb60cc96d9514a6ffe59b62e\n"
    },
    {
      "commit": "1d6fa7af1288b550faabe4ec2cf98684236723db",
      "tree": "a8801ca9a0925ba1faccf17acea4aa78d71a9d29",
      "parents": [
        "b82a9f105f89d6b3684c9f626918042bd8977912",
        "566be7c33fc56ae4c34168ecbee5316374f7e3c5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:47:53 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:53:20 2014 +0000"
      },
      "message": "resolved conflicts for merge of 566be7c3 to master\n\nChange-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce\n"
    },
    {
      "commit": "377b2ec9a2885f9b6405b07ba900a9e3f4349c38",
      "tree": "b938e1d75a1beefae86244f287ca22f4a277740d",
      "parents": [
        "cdda7bf4d3ca9cad6979374a18dd5be79ea83d80"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 03 12:35:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 11:40:06 2014 +0000"
      },
      "message": "Make frameworks/av 64-bit compatible\n\nContains the necessary changes to make frameworks/av build and work\non a 64-bit machine.\n\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n\nChange-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43\n"
    },
    {
      "commit": "b1f5b0dd237c2767ad7bc0b081d03aafc87589ea",
      "tree": "ccbb2f862d303a5cac8cbaf291338ed4e0ec5199",
      "parents": [
        "43bdc1de363a3c72c7dcf9c9a898bac109dc7cb5",
        "01d3acba9de861cb2b718338e787cff3566fc5ec"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 10 18:55:32 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 10 18:55:32 2014 +0000"
      },
      "message": "Merge \"Fix clang warnings in AudioFlinger\""
    },
    {
      "commit": "01d3acba9de861cb2b718338e787cff3566fc5ec",
      "tree": "597410f74cf8cc6e3103a5f6b209c3f40cd388c6",
      "parents": [
        "ec95f0e82a680931e9c7c9011dbbd68d5ab484c8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 06 08:24:07 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 10 08:22:42 2014 -0800"
      },
      "message": "Fix clang warnings in AudioFlinger\n\nChange-Id: I0fa61025c979709ad7d655bc717df5f194b6089e\n"
    },
    {
      "commit": "b220884bf3129253cc5bc8d030bc475411ea4911",
      "tree": "def105f8d0928679900588536f8b1911c3d179fa",
      "parents": [
        "bbbb1e80f461616cd9814de125f95f5b89cf5870"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Feb 07 14:00:50 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Feb 10 08:01:14 2014 -0800"
      },
      "message": "Pretty up audioflinger dumpsys\n\nChange-Id: I57e44b4c36b99f7149542bbcf9645521c6152dfa\n"
    },
    {
      "commit": "0f11b51a57bc9062c4fe8af73747319cedabc5d6",
      "tree": "3a9156d700b18a53f856ac8ae51a44604af36fe1",
      "parents": [
        "0520e05f9083cf13fa7062629bc6606f4b39f08a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 31 16:18:54 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Feb 03 07:48:43 2014 -0800"
      },
      "message": "Fix unused parameter warnings in audio\n\nChange-Id: I665ba3358dd9502f0adec70d486e7bf8a2e1b0fe\n"
    },
    {
      "commit": "e75da4004b2c814987aa2adf8a76190f92d99c65",
      "tree": "35c6bc8914384e610eba3633a08e2f5e78b062b5",
      "parents": [
        "663c2247b71086e30bfd3192979d1dd7f15c539e"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 20 13:54:52 2013 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 20 14:51:07 2013 -0800"
      },
      "message": "Fix bug in creation of EffectHandle when out of memory\n\nIf there is insufficient client memory to create the EffectHandle,\nit was returning a handle which would be useless.  Now it correctly\nreports the out-of-memory error back to client.\n\nChange-Id: I894e65d5d17df39383032c1527be6ccd35f578bb\n"
    },
    {
      "commit": "34717c83733def81287e2b4ba2f62b416325c7ae",
      "tree": "bdc06557b16690a491298f6a73653bae249a6c84",
      "parents": [
        "cff0d41463dfa0bcb33805794f1341d029e86f04",
        "3424d6e17637e0743ddf3bf4688af8ee36e69264"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 01 20:58:58 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 01 20:58:58 2013 -0700"
      },
      "message": "am 3424d6e1: am 1adf20ce: Merge \"fix volume and effect enable delay on offloaded tracks\" into klp-dev\n\n* commit \u00273424d6e17637e0743ddf3bf4688af8ee36e69264\u0027:\n  fix volume and effect enable delay on offloaded tracks\n"
    },
    {
      "commit": "98232ab7c20bfbdfe176d2c25bb810dbb5e7b4f1",
      "tree": "1c7a424cd5c6592a4253cb8b9f9779e193d61262",
      "parents": [
        "a6c7d98033c161592a062c61eaa6b7fd635e3006",
        "a2340b3059b9d6e4286d0db7069df477c164df0c"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 30 14:13:39 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 30 14:13:39 2013 -0700"
      },
      "message": "am a2340b30: Merge \"Don\\\u0027t call audio effect process on offloaded playback threads\" into klp-dev\n\n* commit \u0027a2340b3059b9d6e4286d0db7069df477c164df0c\u0027:\n  Don\u0027t call audio effect process on offloaded playback threads\n"
    },
    {
      "commit": "59fe010bcc072597852454a2ec53d7b0a2002a3b",
      "tree": "b6b42e04a89ead77c9ecd9635a328686a8bb9863",
      "parents": [
        "5d6d86a4d102704f49b9235eaf282c428d7100b6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 27 18:48:26 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 30 12:05:38 2013 -0700"
      },
      "message": "fix volume and effect enable delay on offloaded tracks\n\nVolume: add a method to wake up the mediaserver playback\nthread when a volume command is received on an offloaded track.\n\nEffects: call effect chain process on offloaded playback threads\nasynchronously from writes to allow effect state updates while\nwaiting for async write callback.\n\nBug: 10796540.\n\nChange-Id: Id2747ae88783575d1d7ffd6fc86fbd054ab2c739\n"
    },
    {
      "commit": "fed6292af65a0b97b583ecbd3c232b3811a3f37b",
      "tree": "24d1dc7750659a108dd48ec46ba89a9a49bd019d",
      "parents": [
        "d2ac3144e201398340cc5b9bb36e5efe39edd9eb"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Sep 25 18:50:33 2013 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 26 11:43:58 2013 -0700"
      },
      "message": "Don\u0027t call audio effect process on offloaded playback threads\n\nAn audio effect process command is not meant to be called for\n playback threads belonging to offloaded playback.\n\nBug 10933817\n\nChange-Id: Idc7b6a0224791bbf8d61648474d3c288617c498f\n"
    },
    {
      "commit": "dc8cae8c118e4aef4ef1f7b2c6f79becc1df4a05",
      "tree": "ea0f76bad13db737ca85146367304b3397a111a3",
      "parents": [
        "b81332964f2f3fb83f056b539a4eeea245bb7999",
        "bf5e23979a03da96ce1d63126c480103232f174b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 18 14:26:49 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 18 14:26:49 2013 -0700"
      },
      "message": "am bf5e2397: am 5baf2af5: more support for audio effect offload\n\n* commit \u0027bf5e23979a03da96ce1d63126c480103232f174b\u0027:\n  more support for audio effect offload\n"
    },
    {
      "commit": "5baf2af52cd186633b7173196c1e4a4cd3435f22",
      "tree": "9c6752456812c4a927574a71e1d2ec2495ff6ce3",
      "parents": [
        "9a98b6de791aeb130192df10744f5b35f8b6ef1a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 12 17:37:00 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 18 11:52:40 2013 -0700"
      },
      "message": "more support for audio effect offload\n\nOffloading of audio effects is now enabled for offloaded\noutput threads. If an effect not supporting offload is enabled,\nthe AudioTrack is invalidated so that it can be recreated in PCM\nmode.\n\nFix some issues in effect proxy related to handling of effect\ncommands to offloaded and non offloaded effects.\n\nAlso fixed a bug on capture index in software Visualizer effect.\n\nBug: 8174034.\n\nChange-Id: Ib23d3c2d5a652361b0aaec7faee09102f2b18fce\n"
    },
    {
      "commit": "8136cfae9c22ae8ff42eec9ed751833dda605444",
      "tree": "b6e71058c48bcdd37046ddfa60e3da80b5cc1015",
      "parents": [
        "a041f2fce87fa7a0926365d8e8fbc66019ac0661",
        "8a910716892d17a2ac62c7e9884af0e9d75b26bc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 09 14:29:08 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Sep 09 14:29:08 2013 -0700"
      },
      "message": "am 8a910716: am 6ca83fad: Merge \"audioflinger: no effects on offloaded tracks\" into klp-dev\n\n* commit \u00278a910716892d17a2ac62c7e9884af0e9d75b26bc\u0027:\n  audioflinger: no effects on offloaded tracks\n"
    },
    {
      "commit": "813e2a74853bde19e37d878c596a044b3f299efc",
      "tree": "b95aa8b59f49b4348b2112047ee80e572637d706",
      "parents": [
        "84b7fb0c88ddd05ed7c148c82fe1691040a9404d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Aug 31 12:59:48 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 09 09:09:21 2013 -0700"
      },
      "message": "audioflinger: no effects on offloaded tracks\n\nInvalidate offloaded tracks when an effect is enabled\nso that the track is recreated in PCM mode and the effect\ncan be applied.\nThis is temporary until effect offloading is implemented.\n\nBug: 8174034.\n\nChange-Id: I77b8b54a10db6cb8334be76d863ea7e720eaad09\n"
    },
    {
      "commit": "6e2ebe97f2ad0a21907f20f9ee644c4eacbb7a40",
      "tree": "ea9d525f25620253ea86f434452bc37fbad73f76",
      "parents": [
        "e198c360d5e75a9b2097844c495c10902e7e8500"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 13 09:14:51 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Aug 13 09:55:59 2013 -0700"
      },
      "message": "Use curly braces in \u0027if\u0027 to make it easier to add logs\n\nChange-Id: I58b33fefdd8bf703647414157a99a3223be3531c\n"
    },
    {
      "commit": "bfb1b832079bbb9426f72f3863199a54aefd02da",
      "tree": "5007d22456776dc77d124be84bcfe8bc4152bbb2",
      "parents": [
        "fc5ea08326b510c6f82f71845d95a8758a6ab698"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 07 09:53:42 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 25 14:08:09 2013 -0700"
      },
      "message": "AudioFlinger: offload playback, non-blocking write\n\n- Added specialized playback thread class for offload playback,\nderived from directoutput thread.\nThis thread type handles specific state transitions for offloaded\ntracks and offloading commands (pause/resume/drain/flush..) to audio HAL.\nAs opposed to other threads, does not go to standby if the track is paused.\n\n- Added support for asynchronous write and drain operations at audio HAL.\nUse a thread to handle async callback events from HAL: this avoids locking\nplayback thread mutex when executing the callback and cause deadlocks when\ncalling audio HAL functions with the playback thread mutex locked.\n\n- Better accouting for track activity: call start/stop and release Output\nmethods in audio policy manager when tracks are actually added and removed\nfrom the active tracks list.\nAdded a command thread in audio policy service to handle stop/release commands\nasynchronously and avoid deadlocks with playback thread.\n\n- Track terminated status is not a state anymore. This condition is othogonal\nto state to permitted state transitions while terminated.\n\nChange-Id: Id157f4b3277620568d8eace7535d9186602564de\n"
    },
    {
      "commit": "153b9fe667e6e78e0218ff0159353097428c7657",
      "tree": "360a76911071e362a94af32ccf67ce9619629708",
      "parents": [
        "20f4754b7e687d3718a0a0a585f2c9ac22e2567d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jul 15 11:23:36 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 19 09:30:37 2013 -0700"
      },
      "message": "Make AudioFlinger::instantiate() more resilient when called from separate module\n\nBug: 8834855\nChange-Id: I4cd842cdfb09d2aaaaab9df9ac3bec6179709bd3\n"
    },
    {
      "commit": "7e1139c0377b6806942fb2a043737b3b9cf0ae91",
      "tree": "4058659d99edb14cb95a7b7265db54eb8c6ef867",
      "parents": [
        "62a8f67f33faf19d0ff815672dd19bb71dd0d650"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 06 18:29:01 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 06 18:33:08 2013 -0700"
      },
      "message": "AudioFlinger: do not cache audio device when 0.\n\nAudioFlinger should not cache the audio device\npassed to the audio HAL when it is AUDIO_DEVICE_NONE\nbut keep previous valid selection instead.\n\nBug: 9323399.\nChange-Id: I6f9480e55a21be4115453e6a5eebc5cf2536c476\n"
    },
    {
      "commit": "d0ebb538599cc25726b856e0f5deeb8215db8c92",
      "tree": "f8b5bfbd9332676485198bca0132bb16bedf404b",
      "parents": [
        "d2c90696403bb3c9e28d7b51d65c9468bdf8e78b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 02 16:41:41 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 02 16:47:13 2013 -0700"
      },
      "message": "audioflinger: add effect config status check\n\nCheck the result of the effect engine configuration command\nand do not attempt to send parameters to, enable, or process\nthe effect if configuration fails.\n\nBug 8512027\n\nChange-Id: I8c78a05d79fba36b1a387aa5cf2700612301ac91\n"
    },
    {
      "commit": "ca7cc8273ffd88b9b89655808ee7e3df74162b83",
      "tree": "17477e1e7a66afba5f535ba984a22cc7898797b2",
      "parents": [
        "a81a88597138de226da88fe10456d46289107e8a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 19 14:55:58 2012 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 19 19:35:38 2012 -0800"
      },
      "message": "AudioFlinger files reorganization\n\nAudioflinger.cpp and Audioflinger.h files must be split to\nimprove readability and maintainability.\n\nThis CL splits the files as follows:\n\nAudioFlinger.cpp split into:\n- AudioFlinger.cpp: implementation of IAudioflinger interface and global methods\n- AFThreads.cpp: implementation of ThreadBase, PlaybackThread, MixerThread,\nDuplicatingThread, DirectOutputThread and RecordThread.\n- AFTracks.cpp: implementation of TrackBase, Track, TimedTrack, OutputTrack,\nRecordTrack, TrackHandle and RecordHandle.\n- AFEffects.cpp: implementation of EffectModule, EffectChain and EffectHandle.\n\nAudioFlinger.h is modified by inline inclusion of header files containing\nthe declaration of complex inner classes:\n- AFThreads.h: ThreadBase, PlaybackThread, MixerThread, DuplicatingThread,\nDirectOutputThread and RecordThread\n- AFEffects.h: EffectModule, EffectChain and EffectHandle\n\nAFThreads.h includes the follownig headers inline:\n- AFTrackBase.h: TrackBase\n- AFPlaybackTracks: Track, TimedTrack, OutputTrack\n- AFRecordTracks: RecordTrack\n\nChange-Id: I512ebc3a51813ab7a4afccc9a538b18125165c4c\n"
    }
  ]
}
