)]}'
{
  "log": [
    {
      "commit": "68e0df70cdd57dbe32f11b5de50dd83c6492d075",
      "tree": "487ed1ea1849844493c436ccde9d432724fd652f",
      "parents": [
        "63dc6cf50582fa13702c59f43155f6c18312178b"
      ],
      "author": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Mon Mar 18 17:55:35 2019 -0700"
      },
      "committer": {
        "name": "jiabin",
        "email": "jiabin@google.com",
        "time": "Tue Apr 02 17:31:42 2019 -0700"
      },
      "message": "Use package name, pid, uid to check permission of capturing hotword.\n\nPackage name will be cached in ModuleClient when attaching a client. It\nwill be used when querying permission of capturing hotword.\n\nTest: test with logging.\nBug: 74078996\nBug: 122721589\nChange-Id: Icd2911f5d331d243c9eb5d58003ce5525c70c81e\n"
    },
    {
      "commit": "959e2d068b21e6b9443d5e98fa25a607d1f93993",
      "tree": "c889e8fbdd9d07065759b82e354b3ef42ad255d0",
      "parents": [
        "c70268aa433e7d307819184ae5c2ec96a3e5b6af"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Mar 28 11:08:19 2019 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Mar 28 11:23:00 2019 -0700"
      },
      "message": "audioserver: Use timed lock instead of bouncing for dumps\n\nThe technique of bouncing lock attempts does not work well\nin the case when another lock has higher priority and acquires\nthe lock frequently. Timed lock works better in this case\nbecause the acquiring thread is then put in a queue and gets\nthe lock as soon as another thread releases it. The wait time\nin the worst case (deadlock) is the same.\n\nBug: 118842894\nTest: Run VOICE_COMMUNICATION capture + AEC effect, dump audioflinger\nChange-Id: Idc4fc2b6f5faf6988979f9354dd92441af33e600\n"
    },
    {
      "commit": "fd018728e2e5cc8611724a2f60ba56a105e1eecf",
      "tree": "ed9a49014aa4e37e9f5702e00c87d37396523185",
      "parents": [
        "d34de4d88273ea4252cc35e3b122512733b259eb"
      ],
      "author": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Fri Jan 04 09:31:31 2019 +0100"
      },
      "committer": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Tue Jan 08 10:56:08 2019 +0100"
      },
      "message": "Make the framework treat getModelState recognition events the same\nas regular recognition events\n\nThe application will differentiate between DSP and app triggered\nregcognition events.\n\nTest: manual test with STTA and NowPlaying app on p19\n\nBug: 119386757\n\nChange-Id: Ia93aea9f56f8b9fcd31347169245f21724ac93c8\n"
    },
    {
      "commit": "68c09c94a3f22ed64e8bb0467ae4777924de9434",
      "tree": "e7afc8541dab9f68fb76da4a6c63f065d315ad1c",
      "parents": [
        "13f6f2a23a116e23af5ce3224fbcfd4e6a869b90"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 20 12:24:39 2018 -0800"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Tue Nov 20 12:48:56 2018 -0800"
      },
      "message": "Remove USE_LEGACY_LOCAL_AUDIO_HAL in libsoundtriggerservice\n\nThis had been removed from libaudiohal last year in\n9e79c70529c07f2157f8077f024f42fa5c9e22f9\n\nTest: treehugger\nChange-Id: I8feb2eb88f8f0ba76b3417cf6f724cd6aa55bd0e\n"
    },
    {
      "commit": "6e189b19bbcdb21692924b90d6b33181e490b3fa",
      "tree": "19c789d8d68b7a3f87d54525ff50173fa14fedd3",
      "parents": [
        "fd1c998237da395af546e0e3143a4133f966559b"
      ],
      "author": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Wed Nov 07 15:44:37 2018 +0100"
      },
      "committer": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Fri Nov 09 20:05:44 2018 +0100"
      },
      "message": "Converting sound trigger v2.2 getModelState to be asynchronous\n\nTest: built android with checkbuild flag\n\nChange-Id: Ic12dbfe46aae08666ab02a1a8ee0dbb5c2d9381f\nBug-Id: 70206501\n"
    },
    {
      "commit": "67e3d41769f202522970ab45a50892a0bb6518cd",
      "tree": "c0e11ea1905288361d1a9a459a7d6604504587fa",
      "parents": [
        "6dd21efefed9d570d5ce07f602686d01321795eb"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Tue Oct 16 19:51:16 2018 +0000"
      },
      "committer": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Tue Oct 16 19:51:16 2018 +0000"
      },
      "message": "Revert \"Revert \"Adding getModelState API to sound trigger\"\"\n\nThis reverts commit 6dd21efefed9d570d5ce07f602686d01321795eb.\n\nReason for revert: rolling forward with fix\n\nChange-Id: I07d6c471681abffeb596817dfb00de40c853560c\n"
    },
    {
      "commit": "6dd21efefed9d570d5ce07f602686d01321795eb",
      "tree": "14ed5d5d11af36880f87a3d856b8f55b9cbb671a",
      "parents": [
        "19a2dc31ab87bcc992a9725a0a6a3698d5855025"
      ],
      "author": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 16:08:30 2018 +0000"
      },
      "committer": {
        "name": "Michael Dooley",
        "email": "mdooley@google.com",
        "time": "Fri Sep 14 16:08:30 2018 +0000"
      },
      "message": "Revert \"Adding getModelState API to sound trigger\"\n\nThis reverts commit 19a2dc31ab87bcc992a9725a0a6a3698d5855025.\n\nReason for revert: fix build breakage\n\nChange-Id: I9f58d4c7cfbd871259b4d3186b81de2af6c5021f\n"
    },
    {
      "commit": "19a2dc31ab87bcc992a9725a0a6a3698d5855025",
      "tree": "c0e11ea1905288361d1a9a459a7d6604504587fa",
      "parents": [
        "f8219e1b52a2aa634176e9dcf7822f526a82b852"
      ],
      "author": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Wed Aug 22 14:57:53 2018 +0200"
      },
      "committer": {
        "name": "mike dooley",
        "email": "mdooley@google.com",
        "time": "Thu Sep 13 21:42:00 2018 +0200"
      },
      "message": "Adding getModelState API to sound trigger\n\nTest: built android\nBug-Id: 70206501\nChange-Id: Ib0c7dfa74bbab196516330a222ae9dcb78a6a9e3\n"
    },
    {
      "commit": "9b11c026344077dab9591bb8b9afdf3e7bd93eb1",
      "tree": "44bd2406c5d45c730437b4003535983df4d404f9",
      "parents": [
        "7e19897b405318df20eccb1d697a8ecccd70fbc7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 06 19:19:22 2018 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 07 16:50:45 2018 -0700"
      },
      "message": "sound trigger: more checks on IMemory received from client\n\nAdd a verification on actual size of the fd backing up the IMemory\nrecevied for sound model or recognition config.\n\nFix similar problem for AudioTrack shared buffer.\n\nBug: 78596657\nTest: run POC. OK Google regression.\nChange-Id: I7cb02785f8ba46c437c7fcaa5b821f4b7e3240a0\n"
    },
    {
      "commit": "ab7ef300b74904bce6c5c810d9e5679abfa582e6",
      "tree": "dadb05ba8da176c046139ca43c3fae48a14191c3",
      "parents": [
        "1f2bfd3ac9d61982acb348d2c78f95c7d4b0bf05"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue May 15 19:35:29 2018 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed May 16 18:49:09 2018 -0700"
      },
      "message": "Move ServiceUtilities from audioflinger to libmediautils\n\nTest: Play Music, Play Movies, Camera, Photos\nBug: 79485140\nChange-Id: Ib8382547828e386024145c416321d24e4af182db\n"
    },
    {
      "commit": "07405ee8c22bf9184de5a4ea15e683f45b20bd89",
      "tree": "e651d7d77526e7f15c94fc4d0d2b2d694621a806",
      "parents": [
        "7db8b99d00f2399faba9de2f8b2c13b05d10aec5"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Nov 14 20:45:27 2017 -0800"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Nov 14 20:47:51 2017 -0800"
      },
      "message": "ServiceStateEvents don\u0027t need to called with the mServiceState lock anymore.\n\nTest: On taimen with sound trigger test app.\nChange-Id: I2520ba9fa7d3736ea04df1abe6229ad973932768\n"
    },
    {
      "commit": "02b7421d9473499440f441f75b0a22515f95597c",
      "tree": "5ed341f50c6d2f971abb39d542332a5fd61a4bc6",
      "parents": [
        "8f8932c41e7c0a1f65e3556733ed33bbc88793ce"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Mon Nov 06 14:45:30 2017 -0800"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Mon Nov 06 16:04:27 2017 -0800"
      },
      "message": "Fix race when handling callback in SoundTrigger Module\n\nDuring the callback event processing loop in the SoundTrigger::Module,\nit used to grab the ISoundTriggerClient from the ModuleClient that it\nneeded to send an event to. However, this could be removed/destroyed\nwhile the callback thread is trying to snapshot it, since there was no\ncommon locking between the model client and the module.\n\nBy now using the ModuleClient directly in the Module\u0027s callback, the\nappropriate locks can be obtained to prevent segfaults.\n\nTest: On device with GSA/Now Playing\nChange-Id: I9e3d150aa77051caab1fc009c3fc1ae8eec61a72\n"
    },
    {
      "commit": "79c5661ca806673cc33f8d5b35742305c4ad20b6",
      "tree": "f22bba4019c53aa169c156ebc5d7dea6496d9eab",
      "parents": [
        "068ba821bca6f2d7a2a8335e85fcdb059ea85274"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Wed Oct 25 14:47:44 2017 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Thu Oct 26 11:40:22 2017 -0700"
      },
      "message": "Avoid deadlock between recognition events and SoundTriggerHwService.\n\nIf an event is generated from the HAL on a separate thread, it is\npossible to enter a deadlocked state. This is due to the HAL typically\nholding a lock when it starts the callback, which then needed to grab\nthe SoundTriggerHwService\u0027s main lock. However, if there was another\ncall coming down from somewhere else in the framework, it typically\ntries to grab the service\u0027s main lock, then enter the HAL (which also\nwill likely try to grab a lock).\n\nBy removing the need to grab the mServiceLock on any of the paths that\nrespond to events generated by the HAL, this deadlock can be avoided.\n\nTest: Manually on device.\nChange-Id: Iac5f96ea67f618ce70e7f75300165f3588613947\n"
    },
    {
      "commit": "338e8ba374432cc4ee853f4fcefcf7bd7bae3bb9",
      "tree": "0f22e5975405924e3935701ae973ab3201f7524e",
      "parents": [
        "7b7f4e0f8bdf7542561ece15c4ffc2542fb7750d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 05 10:58:38 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 05 11:56:38 2017 -0700"
      },
      "message": "Soundtrigger service: fix cross deadlock with audio policy service\n\nDo not hold Module mutex when calling into audio policy manager to\navoid cross deadlock with audio poicy service mutex: Audio policy manager\ncan call into sound trigger service with its mutex held in methods like\nstopInput().\n\nRegression introduced by fix for b/64340921 commit f759b8c4\n\nBug: 64340921\nBug: 67310830\nTest: repro steps in b/67310830\nChange-Id: Ie50b2e7c55fe9828a3fd8de6b31eb4a492791583\n"
    },
    {
      "commit": "de22f8acdc8e3adf94a9770b867b355e3ca88f62",
      "tree": "2e8cd7f543888c4d51d9abdd86aa0e86c11e69a3",
      "parents": [
        "aba0e98b085cc613003bf42dbfe1ad0a3bb2348e"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Tue Aug 29 16:46:37 2017 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Wed Aug 30 15:53:37 2017 -0700"
      },
      "message": "If stopAllRecognitions is supported, do not call stopRecognition again.\n\nBug: 65174683\nTest: NA\nChange-Id: I2c179a64d4f14d0c97bc908ad83c0d964217adfd\n"
    },
    {
      "commit": "7504b9eb4561df88550f874cf0ce95b6f4d09927",
      "tree": "0991a83bf78a67170a0707d8e300578c9c46727f",
      "parents": [
        "2c8c51d4aeffc4d561a67b06d20fff67d9a5a5aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 15 18:17:26 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 16 08:29:05 2017 -0700"
      },
      "message": "soundtrigger: require RECORD_AUDIO permission for DSP hotword\n\nCheck android.permission.RECORD_AUDIO permission in addition to\nandroid.permission.CAPTURE_AUDIO_HOTWORD for DSP hotword operations\nas those require access to device microphone.\n\nBug: 62265680\nTest: check \"OK Google\" detection with and without DSP\nChange-Id: Icba2520331164bcd618e91916ca701e677d419b8\n"
    },
    {
      "commit": "0012417ddc1320c6df79258266da1e869036b211",
      "tree": "db6a61c659018ec85124991458d95c73d9788c1b",
      "parents": [
        "80ab5ab91c9a31192bc42c4326173d38e42bcc24"
      ],
      "author": {
        "name": "Dhananjay Kumar",
        "email": "dhakumar@codeaurora.org",
        "time": "Tue Feb 28 15:08:29 2017 +0530"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Sat Mar 04 04:18:07 2017 +0000"
      },
      "message": "soundtrigger: Modify conditional check in detach\n\n- All the required SoundTrigger models of a module client\nare not getting unloaded and removed as part of detach.\n- mModels.size() is evaluated for every iteration which\ngives current size of vector which results in exit of\nloop without checking for all models in case elements\nare removed in loop.\nremoveItemsAt would modify the vector indices for each\niteration and this would result in skipping access of\nsome models.\n- Iterate from end of models to check and unload.\n\nBug: 35910617\nTest: mmm frameworks/av/services/soundtrigger/\nAuthor: Chaithanya Krishna Bacharaju \u003cchaithan@codeaurora.org\u003e\nChange-Id: I72415e53d2e6f366f8ba6e6eeb0cd8323364a231\n"
    },
    {
      "commit": "c8a9f4ad35f24ac59645bb262bd8f16fd4f6f0d8",
      "tree": "2ef88bd1513a4daacee04c0d5ca924d3605aca39",
      "parents": [
        "db0d4cc3184f400dcbb841f274d5b6f4c8400550"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Mon Feb 06 18:31:42 2017 -0800"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Wed Feb 08 01:13:55 2017 +0000"
      },
      "message": "Fix potential null dereference in SoundTriggerHwService\n\nIdentified by static analysis as a potential problem.\n\nTest: mmma frameworks/av/services/soundtrigger\nChange-Id: If24519faeec260c3d357b369d53d0f68689bdf8a\n"
    },
    {
      "commit": "e52c500c096fce010c99e92c4fc3ef51832e67c6",
      "tree": "e4a08578d00ba723205a6263bf223d98e3d81f7f",
      "parents": [
        "26a8ba63104f3c7d4e0a750b58d56ad76dbce373"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Wed Oct 12 17:27:18 2016 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Mon Dec 05 17:12:48 2016 -0800"
      },
      "message": "Support multiple clients attaching to a module\n\nCurrently service allows only a single client to be attached to a Module.\nThis limits only a single client can use sound trigger at a time.\n\nAdd changes to attach multiple clients to a given Module through ModuleClient\ninterface so that multiple clients can paralelly use sound trigger on a given\nModule. ModuleClient class is introduced as a client interface to a Module.\nService provides a unique instance of ModuleClient to each client being attached\nand adds this client to the module clients list.\n\nTest: Manual with modified version of SoundTriggerTestApp that talks to\nthe module directly\n\nBug:32030191\nChange-Id: I66912e862b8c4232a49d92c0464a9a8b876bdb26\n"
    },
    {
      "commit": "7a544b44b7872b300f50e16fef480f76e9145fbb",
      "tree": "0b9c81b6183c8c0aa6deaf808b1d8b704f00d677",
      "parents": [
        "2103044be5c8fefbd97da410bbca47239fd3348d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 05 19:01:13 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 21 09:16:53 2016 -0700"
      },
      "message": "Add support for treble sound trigger HAL\n\nFirst implementation of Treble HAL in sound trigger hardware service.\n\nIf ENABLE_TREBLE build option is true, the treble HAL and HW\nsevice is used. Otherwise the legacy HW module is loaded.\n\nBug: 30222631\n\nChange-Id: Ibe5be680b7b7a3b261dd62913869e0bb412f438b\n"
    },
    {
      "commit": "bb00d8f139ff51336ab3c810d35685003949bcf8",
      "tree": "f89d860c485f98e71a7c633c88014643b0df913b",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 17 06:19:32 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 17 10:25:35 2016 -0700"
      },
      "message": "soundtrigger: add size check on sound model and recogntion data\n\nBug: 30148546\n\nChange-Id: I082f535a853c96571887eeea37c6d41ecee7d8c0\n"
    },
    {
      "commit": "df76b9605008434bb1fd520c8affe4fa3955e981",
      "tree": "781de842c1212ada21ba264b3b5791ac2ec1b8f9",
      "parents": [
        "dd25bc5143da1db9081e7d95b66928b0ddf873c1",
        "3ba2cb78bfe38cfb9a44a183bb66c82a5f2d4daa"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 23:31:39 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Aug 09 23:31:39 2016 +0000"
      },
      "message": "Merge \"Fix clang-tidy warnings in soundtrigger.\"\nam: 3ba2cb78bf\n\nChange-Id: Ib9481a6bb666c75b8c0c1db5fc8f480cc85a266a\n"
    },
    {
      "commit": "85f8a73d29ae4aa4ed7a6445a88ded802077a58b",
      "tree": "59568728fe6c44a198c05a96c819d63f089cdc60",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:10:03 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:11:09 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in soundtrigger.\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: I28b251c99c78286a2da1e039df470a3f0bd8abe2\n"
    },
    {
      "commit": "ad65899e5f7d46e30a4dcca07aa0503fc014a3b9",
      "tree": "7c0eebcbca42fe8f982da9e4c6505c1b361d39ad",
      "parents": [
        "dd3e7a1be829243c6db6ad82e41e6a3a8dce174b"
      ],
      "author": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Mon Apr 11 14:25:21 2016 -0700"
      },
      "committer": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Mon Apr 11 14:25:21 2016 -0700"
      },
      "message": "Return error instead of unloading existing model\n\nWe were previously favoring KeyphraseSoundModels at this layer.\nWe now have better state handling in SoundTriggerHelper, and\nwill defer the loading problem to SoundTriggerHelper and above\nto sort out.\n\nBUG:28119841\nChange-Id: I438a620d6f6e6c593216a8a39bec6d969d6a5311\n"
    },
    {
      "commit": "efcf16c9fd2a2f0d865a2bcca98527d3804f83d6",
      "tree": "6826b1ac5743a7fe70c40f6379e4a4cc35c957ee",
      "parents": [
        "034c20eab5e5d13591278bd415ea78fe0bb779b7"
      ],
      "author": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Sun Mar 27 17:13:28 2016 -0700"
      },
      "committer": {
        "name": "Chris Thornton",
        "email": "thorntonc@google.com",
        "time": "Wed Mar 30 11:24:05 2016 -0700"
      },
      "message": "Use new stop_all_recogntions when changing sound trigger state.\n\nIf no implementation is provided to the hal or uses an earlier version,\nwill fallback to using the single stop_recognition on all running\nmodels.\n\nChange-Id: Ifc1bd3f2887ad9397499bfd291241fd907b55421\n"
    },
    {
      "commit": "2c561209f00320f7ca2b75998bbe72ecec527210",
      "tree": "8db775d93127fbb35defc277e8d274b72cf07c5f",
      "parents": [
        "d25c45526d9598218433b0fa59e1f5accbd5b639"
      ],
      "author": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Tue Feb 16 14:17:31 2016 -0800"
      },
      "committer": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Fri Feb 19 23:11:04 2016 +0000"
      },
      "message": "Prevent dumping sound models when max reached\n\nThere are currently cases when SoundTriggerHelper may get out of sync \nwith SoundTriggerHwService, specifically which and how many sound models\nare loaded.\n\nIf SoundTriggerHelper attempts to load a sound model and it would be \nexceeding the maximum allowable number of sound models:\n\n1) If the new sound model is not a KeyphraseSoundModel:\n\tThrow an error\n2) If the new sound model is a KeyphraseSoundModel:\n\tSee if there is an existing KeyphraseSoundModel to unload\n\tFailing that, unload the first SoundModel in the index\n\n\nBUG: 27225762\nBUG: 22860713\n\nChange-Id: I74db1be36bbc5887f5bf4751c3138de102976722\n"
    },
    {
      "commit": "9609a91f8560622735f6725f7f597be47a8e2f5f",
      "tree": "df3a632e50696920de74bb46e39be27a01b7628f",
      "parents": [
        "2e5408ac3e51cb459160b9cd392f1809b0758316"
      ],
      "author": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Thu Jan 28 19:22:29 2016 -0800"
      },
      "committer": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Mon Feb 01 16:05:43 2016 -0800"
      },
      "message": "Restore Abort Event for Unknown Sound Models\n\nRestore abort event when setting capture state\nfrom active to inactive for Unknown Sound Models\nThis was taken out mistakenly in change 853028\nAlso fix/improve log messages\n\nChange-Id: I58771de47ea357bb99a4ba3cfeea412490746443\n"
    },
    {
      "commit": "00a727c430c474f77f8835675a9d773f0314fb68",
      "tree": "b1ee872a8c6eb7983243f3ddced1d6a10d344853",
      "parents": [
        "e0db30868d9734f95a02df516dd0dc6a7226474b"
      ],
      "author": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Tue Jan 26 21:56:19 2016 -0800"
      },
      "committer": {
        "name": "Ryan Bavetta",
        "email": "bavetta@google.com",
        "time": "Thu Jan 28 02:05:10 2016 +0000"
      },
      "message": "Add SoundTrigger GenericSoundModel type\n\nBUG: 22860713\nChange-Id: I462ba039577511674a08aee42e3f1941ff7005ce\n"
    },
    {
      "commit": "7b56f2e1e9495915ad9dea9afdc13e9e5d5b7536",
      "tree": "57549b41a4d8bda27199346169dd27863d758b56",
      "parents": [
        "4a95e69406aa2e9896d865962d6d947ebbdac6fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 22 11:39:53 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 22 11:39:53 2015 -0700"
      },
      "message": "sound trigger: fix abort event init.\n\nInitialize unused fields of recognition abort event\nto avoid argument type check exception in JNI.\n\nBug: 20951546.\nChange-Id: I65ed3284464bd9a32406b5305d562fa434abedce\n"
    },
    {
      "commit": "58cc16ef6b3a6d0e26566203cc6c094a8c036bc7",
      "tree": "d427e75aaaeb24337f720fcb7a549ad3daeeaab0",
      "parents": [
        "c63c09738772133e9b20a7c8576ad116ff855ee2",
        "30dee177d25bf75f8b3fb8a70573de2c04306759"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 21 02:54:54 2014 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Nov 21 02:54:54 2014 +0000"
      },
      "message": "am 8052d933: Merge \"SoundTrigger: allow sound model reloading\" into lmp-mr1-dev\nautomerge: 30dee17\n\n* commit \u002730dee177d25bf75f8b3fb8a70573de2c04306759\u0027:\n  SoundTrigger: allow sound model reloading\n"
    },
    {
      "commit": "02eb47cf18793effe9fc7ab34e1b0fe9ea6635bc",
      "tree": "2e133219ce8c75a56dc19ba73795f7e6dab69370",
      "parents": [
        "ec9459c63d1c2969505ffdc4a100646fd07223bd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 10:10:20 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 14:27:00 2014 -0800"
      },
      "message": "SoundTrigger: allow sound model reloading\n\nAllow reloading a sound model without unloading it before.\n\nBug: 18308781.\nChange-Id: I31c83b81a03ee1c1e80f4339ca62e6d06fb1a33b\n"
    },
    {
      "commit": "f888020c6e2735624f2b2a30e72aca24e17b8b4d",
      "tree": "76d92b7a91a4bebd4e84d6afdc2ef4a2e4943df8",
      "parents": [
        "d02641098b16df2fd4cd32b72a30eb6f3b64e12b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 14 07:58:25 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 17 10:05:07 2014 -0800"
      },
      "message": "Update calls to IInterface::asBinder()\n\nto use the new static version.\n\nChange-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a\n\nConflicts:\n\tmedia/libmedia/IAudioFlinger.cpp\n\tmedia/libmedia/IMediaPlayer.cpp\n\tmedia/libstagefright/CameraSource.cpp\n"
    },
    {
      "commit": "886561f06ddaea86a51def1e918367430240b5ac",
      "tree": "37fdd77b38668b665492bc28297382149dcc172a",
      "parents": [
        "890a5637b3e3eb197fd2c7f5deec816c7feb13fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 19:45:37 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 19:45:37 2014 -0700"
      },
      "message": "sound trigger: fix cross deadlock between service and client\n\nDo not call callback methods on ISoundTriggerClient with the service mutex\nlocked: the client implementation will lock its mutex to process\nthe callback and if a request from the same client with client\nmutex locked was waiting for the service mutex a deadlock occurs.\n\nBug: 16873049.\nChange-Id: Ifc3b31fdfaed525981fa59876c041478f38b42e8\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": "8ba53d87a2d311ff4b3f04e30b2e09309ae7421c",
      "tree": "47cb17d1d16a65915d71056c7f588c46b5d4eea7",
      "parents": [
        "936c84a5b743dce2a2572fdf54b37b187bc88b60"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 23:15:05 2014 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 23:15:05 2014 +0000"
      },
      "message": "Revert \"Revert \"sound trigger: added permission checks\"\"\n\nThis reverts commit 936c84a5b743dce2a2572fdf54b37b187bc88b60.\n\nBug: 16374803.\nChange-Id: I9d3137faeddf119b13f9cdb73c14ca49e1ee3d1c\n"
    },
    {
      "commit": "936c84a5b743dce2a2572fdf54b37b187bc88b60",
      "tree": "dcf40715022acc8c80619e431931008c9af69c6f",
      "parents": [
        "7b24ee381e806dcb53308c1cafc8a45f4e2d8300"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 17 10:26:04 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 17 10:26:04 2014 -0700"
      },
      "message": "Revert \"sound trigger: added permission checks\"\n\nThis reverts commit dcb162f3aed807d1e51f29e2454ade584439992e.\n"
    },
    {
      "commit": "dcb162f3aed807d1e51f29e2454ade584439992e",
      "tree": "d5430215f699eb9feea7cdf01751dcc2c83da123",
      "parents": [
        "671160ffe81592efa376dc1ff0fc3f4ddcdebc35"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 11 09:14:45 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 16 17:48:26 2014 +0000"
      },
      "message": "sound trigger: added permission checks\n\nAdd check for android.permission.CAPTURE_AUDIO_HOTWORD\nto all sound trigger binder calls on server side.\n\nBug: 12378680.\nChange-Id: Ic3fd70e947882cdf5f4d4a4fe609a2c5a8236fd5\n"
    },
    {
      "commit": "0832b2d7d190f4fbe6f134446b2610df0cccdbbb",
      "tree": "9980a8d4bf652a31d89918171ed7dc617af12bbf",
      "parents": [
        "3d638b30dcc67ef9eaa389160ef285cda055ed64"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 06 16:17:25 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 08 11:28:51 2014 -0700"
      },
      "message": "sound trigger: update HAL\n\nNew start_recognition() prototype with recognition\nconfiguration structure.\nNew recognition event format.\n\nBug: 12378680.\nChange-Id: I57b430eb076e6baa58118a0ed45ce4afaacb998c\n"
    },
    {
      "commit": "1a1cba8f9a93db188b09d9754987354029129113",
      "tree": "29e1dae92ddbac430d3334cf6644f8109d27f599",
      "parents": [
        "7e45ef9db7446d33c941961c14555413641e444b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 09 16:20:05 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 09 16:20:05 2014 -0700"
      },
      "message": "sound trigger: stop recognition on sound model unload\n\nForce a stop recognition command to the HAL when\nunloading a sound model and recognition is still active.\n\nChange-Id: I7379a64a37bbc3eeea08e0e1d59e427de9544a10\n"
    },
    {
      "commit": "b7a11d83f749ad0200778c4815e907d011d4b5d3",
      "tree": "28c744c0e8fe9c1f198ddd0999b4c5d95de9610a",
      "parents": [
        "24c01a8417fe195e5ba2187dbbdf9bd1e3a6553f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 18 17:40:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 15:34:20 2014 -0700"
      },
      "message": "add sound trigger native service\n\nChange-Id: I0cd954c1c7d28a334e786d0004431d4f6a1227ec\n"
    }
  ]
}
