)]}'
{
  "log": [
    {
      "commit": "b9cfbf1fdcfcf3e09f894c8dbf32ce915489a3e2",
      "tree": "3ee86d4f8aebd548528dc07cab6a59c828833a6b",
      "parents": [
        "51e076a8fc69d4275cabc3e6d54eab44d590280d"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Feb 23 19:11:06 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 06 11:30:49 2018 -0800"
      },
      "message": "Audio V4: Introduce 4.0 shim to HIDL\n\nThe difference between the 2.0 and the 4.0 is very small\nby design and most of the modification have been made in a\nretro compatible way\nThe intent is to be able to merge the two implementation\nbut it could not be done in this patch due to time constrains.\n\nBug: 38184704\nTest: compile\nChange-Id: I4738928313b7fd1f6332c0f22bb802d4fba41d82\nMerged-In: I4738928313b7fd1f6332c0f22bb802d4fba41d82\nCherry-picked from master\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "51e076a8fc69d4275cabc3e6d54eab44d590280d",
      "tree": "14552fd00b86764988015f3208a517d7ab60dc52",
      "parents": [
        "4bcd67fbb4eca3654ea929742bdf6ccc7c70daec"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 28 14:36:53 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 06 11:30:49 2018 -0800"
      },
      "message": "Audio V4: Update namespace and version of 4.0 shim\n\nPut the shim in a V4_0 namespace to comply with the ODR.\nMake the include guard unique.\nSplit from the error prone interface adaptation change for safer review.\n\nPatch generated with:\nsed -i \u0027s/V2_0/V4_0/g\u0027 *\nsed -i \"/include.*2.0/s/2\\.0/4.0/\" *\nsed -i \u0027/namespace android *{/anamespace V4_0 {\u0027 *\nsed -Ei \u0027s/(ifndef|define|endif)(.*)_H/\\1\\2_4_0_H/\u0027 *\nsed -Ei \u0027s#}(.*)namespace android$#}\\1namespace V4_0\\n\\0#\u0027 *\n\nBug: 38184704\nTest: Compile\nChange-Id: I7d3aa46b3dfec664cbeea8a6b946456b8e8f06e3\nMerged-In: I7d3aa46b3dfec664cbeea8a6b946456b8e8f06e3\nCherry-picked from master\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "4bcd67fbb4eca3654ea929742bdf6ccc7c70daec",
      "tree": "0f75367d70828f4caca61ad0404300631e891f91",
      "parents": [
        "174e1094a41828111c86793232d9492ab8e29395"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Feb 28 14:33:38 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Tue Mar 06 11:30:49 2018 -0800"
      },
      "message": "Audio V4: Copy 2.0 audiohal to 4.0\n\nFor easier review of the changes, first copy 2.0 to 4.0, the changes\nare made in the following patch.\n\nBug: 38184704\nTest: compile\nChange-Id: I5bf16e5f8e7b61cc13e86c06b899ec4e6624a961\nMerged-In: I5bf16e5f8e7b61cc13e86c06b899ec4e6624a961\nCherry-picked from master\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "07be14fb96fc5c106ea2b874faf2b768f468eb8e",
      "tree": "01cd8f75542d7581505bef8a5b9e2f09790ac0e1",
      "parents": [
        "f8ad7f85e9891b2614338330c75ae9e946fccc5a"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 24 06:14:03 2018 +0000"
      },
      "message": "Revert \"Audio V4: Split system and vendor Audio.h\"\n\nThis reverts commit f8ad7f85e9891b2614338330c75ae9e946fccc5a.\n\nReason for revert: Breaks the build of multiple devices\n\nChange-Id: I24f17a0fa0c7ba171c4a3639f890e7f4e42f6b1e\n"
    },
    {
      "commit": "f8ad7f85e9891b2614338330c75ae9e946fccc5a",
      "tree": "957d47ddc7419c688dda1d4c1ac3068eda6d894f",
      "parents": [
        "6d7582e9ad858301b3eeff7b187af6c34808cb7e"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Wed Jan 17 15:57:39 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 21:39:40 2018 -0800"
      },
      "message": "Audio V4: Split system and vendor Audio.h\n\naudio.h and its dependencies (audio-effect.h, sound_trigger.h...)\nused to be shared between system and vendor code.\n\nThis led to multiple problems:\n\n1) Such sharing contradicts the Treble policy of\nstrict independence of framework and vendor code.\n\n2) When audio.h was changed, every vendor needed to update\nits code in the next release. This meant that audio*.h\nheaders were mostly changed in backward compatible manner.\nNevertheless, for P the HIDL interface and thus the audio.h\ninterface are changed in backward incompatible way.\n(Some enum are becoming 64 bit long).\n\n3) As the headers were common, some API used only by the framework\nneeded to be visible to the vendors (mostly enum values).\n\n4) Treble policy is to support at least one previous HAL version\n\nAs a result the audio*.h headers are now duplicated,\none set for the framework, and one for the vendor.\n\nEach set will evolve independently. After this split,\nthe framework-only APIs will be removed from the vendor headers\nand vice versa.\n\nThe split is implements as such:\n\n + for system code\n\n    - NOT moving the libaudio_system_headers\n      Eg: system/audio.h and system/audio_effects/effect_equalizer.h\n          are still in system/media/audio\n\n    - the legacy audio HAL API that were in libhardware headers\n          are now in libaudiohal_legacy_headers\n      Eg: hardware/audio.h and hardware/audio_effect.h\n          are now in frameworks/av/media/libaudiohal/legacy/\n\n + for vendor code\n\n    - moving libaudio_system_headers and the legacy audio HAL API\n          that were in libhardware_headers in\n          android.hardware.audio.common.legacy@2.0\n      Note that those headers are now versioned, so migrating to a @4.0\n          HIDL HAL will mean changing the legacy dependency too.\n      Eg: system/audio.h, system/audio-effect.h, hardware/audio.h\n          are now in hardware/interfaces/audio/common/2.0/legacy\n\n    - the legacy audio effect HAL API that was in libaudioeffects\n          is now moved in android.hardware.audio.effect.legacy@2.0\n      Eg: audio_effects/effect*.h are now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\n    - the legacy sound trigger HAL API that were in libhardware_headers\n          is now moved in android.hardware.soundtrigger.legacy@2.0\n      Eg: hardware/sound_trigger.h is now in\n          hardware/interfaces/audio/effect/2.0/legacy\n\nlibaudioutil being used by both system and vendor, had\nto be renamed for system to libaudioutil_system.\n\nVendor libs that now depend on the audio.h of a specific\nversion and are not extensively referenced in non google code,\nappend @2.0 to their name.\n\nNote that headers that are not expected to change in the 4.0 HAL are\nleft in all-versions folder to avoid duplication.\nThis is an implementation detail as the versioned libraries export\nthe all-versions headers.\n\nNote that strict vendor-system separation is enforced by the\nbuild-system. The system headers are not available for vendor\nlibs and vice-versa.\n\nNote that this patch is split between numerous git repository (\u003e10),\nall the commits having the same Change-id for searchability.\n\nNote that audio_policy.h is no longer exposed to vendors\nas the legacy audio policy HAL API was never officially supported.\nAs a result the audiopolicy stub implementation has been removed.\n\nTest: compile taimen-userdebug walleye-userdebug\n              sailfish-userdebug marlin-userdebug\n              gce_x86_phone-userdebug gce_x86_phone\n              full-eng aosp_arm aosp_x86-eng\nTest: check that the emulator booted and played audio\nTest: full QA on sailfish-userdebug and taimen-userdebug\nBug: 38184704\nChange-Id: I950f4e0a55613d72e32eba31bd563cb5bafe2d1a\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "7588ff418aca63b1dc43a85afc1e86c40dd889a3",
      "tree": "bdb7ba0ca788a16d48d8e9945aa76f52f1683245",
      "parents": [
        "51ac542df4beb18dc1cf0285826124644f189c3b"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Mon Jan 08 11:11:30 2018 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 10:49:56 2018 -0800"
      },
      "message": "Audio V4: Split HAL wrapper for versioning\n\nBoth core and effect Hal now have one single point of entry.\nThis point of entry is their respective factories:\n - DevicesFactoryHalInterface::create\n - EffectsFactoryHalInterface::create\n\nEach entry point looks for their respective services supported\nversion, starting from the highest (currently only 2.0) and\nreturning the subclass wrapping this version to the most recent audio.h\nframework api.\n\nNote that EffectBufferHalInterface were previously created from static\nmethods (mirror and allocate) which broke the single point of entry\nrequirement.\nAs a result, buffers have now to be created from the factory like the\nother classes.\n\nNote that the death handler also need to be its own library as it is\nused by versioned code and is version independent.\n\nBug: 38184704\nTest: compile\nChange-Id: Iac9b1fda561bb486193d5b9e025a870f50cda530\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "51ac542df4beb18dc1cf0285826124644f189c3b",
      "tree": "da4a862435136cecffeabd874916df27958d7882",
      "parents": [
        "8f3585691717dd36d7124849e52fda983bf35618"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Dec 15 14:22:34 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 10:49:56 2018 -0800"
      },
      "message": "Audio V4: Move audio HIDL wrapper in a 2.0 folder\n\nThis will allow for an easy review of the next patch that splits the\nimplementation to support multiple version.\n\nBug: 38184704\nTest: compile\nChange-Id: I3e8fc3b41aaf2dd8061bd2a3566810efa67c7f9f\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "8f3585691717dd36d7124849e52fda983bf35618",
      "tree": "580e594388bae4bb995aac2e9aa685e942c6892a",
      "parents": [
        "65a438c6429c7f46cb0ab056c7f672ea0aa9e7f5"
      ],
      "author": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Fri Dec 15 14:22:34 2017 -0800"
      },
      "committer": {
        "name": "Kevin Rocard",
        "email": "krocard@google.com",
        "time": "Sat Jan 20 10:49:56 2018 -0800"
      },
      "message": "Audio V4: Move Utils in a versioned namespace\n\nBug: 38184704\nTest: compile\nChange-Id: I2eb3fb23dcbfbde7d2888c07514be2c63af13ce9\nSigned-off-by: Kevin Rocard \u003ckrocard@google.com\u003e\n"
    },
    {
      "commit": "c15aaeec42f2b14cff0f29bb84e58f4388975d91",
      "tree": "05370ca87ddc350edc876e351f82938f29a172c2",
      "parents": [
        "664d6012afe348c6fe906cb05fb981d1a4dbd593"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Nov 27 17:02:40 2017 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 28 12:48:08 2017 -0800"
      },
      "message": "Allow clearing effect hal buffers\n\nTest: SoloTest with int effects\nBug: 69855634\nChange-Id: I273c9da600f3ab04890a7a1cb74b606cc28bea53\n"
    },
    {
      "commit": "ef6cf3fc6cfb12e089e787efcbf1fc485ed54931",
      "tree": "a197eb396f5e84684d937da00e091a27c7de7f2e",
      "parents": [
        "693cb2bde52b4d73c391c529f1c6bf7a02be9f72",
        "94a1ee822686e920a33e312f4032f991731aea07"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Nov 22 19:39:53 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Nov 22 19:39:53 2017 +0000"
      },
      "message": "Merge \"Converting effect chains to float point by default.\""
    },
    {
      "commit": "94a1ee822686e920a33e312f4032f991731aea07",
      "tree": "5a8e84b19269529153e94fa2f0a6b927823f6848",
      "parents": [
        "c275189ccbfe8ca29437a24256195c61de2f2a6d"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Fri Jul 21 15:11:02 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Nov 21 20:39:19 2017 -0800"
      },
      "message": "Converting effect chains to float point by default.\n\nRemoved additional conversions from/to int16/float.\nFixed config file restrictions.\nDetection of native format (int16/float) of effects.\nOn-the-fly conversion to/from 16 bit effects if necessary.\nWIP: testing effects in all possible configurations.\n\nBug: 63935479\nTest: Bufflog dumps, frequency analysis comparison, SoloTester\nChange-Id: Id4cabc5c5698befc90a5d68b0b996a9b9adebfc4\n"
    },
    {
      "commit": "10edfcf70857cc0a22afbbd3fc8f57f0c8a2953a",
      "tree": "4d26b37f91720dd435ed96cdd94850a8745c34a1",
      "parents": [
        "068fe16a1b8f511046ba787f33605c0ac64f1ab5",
        "ebe144c6709aeb1a09ca2223f7f9c0acb4f9f22d"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Nov 17 18:26:34 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Nov 17 18:26:34 2017 +0000"
      },
      "message": "Merge \"libaudiohal: Add optional \"msd\" devices factory\""
    },
    {
      "commit": "ebe144c6709aeb1a09ca2223f7f9c0acb4f9f22d",
      "tree": "4c6dc161fc735dc407e969761c07b21a6c209db5",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 09:38:18 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 09:43:05 2017 -0800"
      },
      "message": "libaudiohal: Add optional \"msd\" devices factory\n\nAdding code that attempts to get an instance of \"msd\" devices\nfactory. The factory isn\u0027t yet used, but having the code in place\nensures that we would know about any changes in HIDL services\ndiscovery protocol.\n\nBug: 63901775\nTest: audioserver starts even if \"msd\" HAL service is absent\nChange-Id: Ia897127ba383fc05d139b633717992a5d5a4f920\n"
    },
    {
      "commit": "7f16ea4d1f6554f653babd0a63b7e97ce1061826",
      "tree": "df8f17772ce517fda38d1120e849effc463e0d9e",
      "parents": [
        "a4fa4760fa417473324e009b3f4117a2d539c486"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 08:29:49 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Nov 16 08:31:52 2017 -0800"
      },
      "message": "libaudiohal: Use \u0027exit\u0027 in HalDeathHandler instead of fatal log\n\nFatal log is registered as a process crash. Since these crash\nreports do not bring in any useful info, it\u0027s better to just\nexit the process instead.\n\nBug: 69379459\nTest: kill audio HAL, check logcat\nChange-Id: I0d83d496998248faf3669a1fe8c31944b839bb3e\n"
    },
    {
      "commit": "f33e4b858cdc9a7fdfbd3094620191c86aa42aa6",
      "tree": "0b44cf9b4f73ab2062fe0b90fba74c5c2166ca89",
      "parents": [
        "9e79c70529c07f2157f8077f024f42fa5c9e22f9"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Mon Oct 23 17:41:46 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 26 15:05:46 2017 -0700"
      },
      "message": "Convert libaudiohal to Android.bp\n\nSee build/soong/README.md for more information about Soong.\n\nUSE_LEGACY_LOCAL_AUDIO_HAL isn\u0027t supported directly with this model, you\nwould need to change the defaults: [] line to point to the other\ncc_defaults module.\n\nTest: mmma frameworks/av/media/libaudiohal\nChange-Id: I4244d085a4856232fd8230ce0663da2f3fb78a53\n"
    },
    {
      "commit": "9e79c70529c07f2157f8077f024f42fa5c9e22f9",
      "tree": "690d9594c05b31b1a21ab8c5a96b9cbffc6458ff",
      "parents": [
        "fa1288bef246761a138f3e073c3e04aa84fe8a6a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Oct 25 22:57:10 2017 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Thu Oct 26 15:05:46 2017 -0700"
      },
      "message": "Remove USE_LEGACY_LOCAL_AUDIO_HAL from libaudiohal\n\nBug: 64425558\nTest: mmma frameworks/av/media/libaudiohal\nChange-Id: I16fff7142e66fcf16fa5d07abcea9c8100539928\n"
    },
    {
      "commit": "4aa53352a209a0c7ef3982f41529cc1353bbf425",
      "tree": "bd22a1231a693c8d2c533bb96d8a22d047af3c23",
      "parents": [
        "81ae83bd1dff600d4b219227bbe5538006cf8ce8"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 10 09:23:03 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Aug 10 09:23:03 2017 -0700"
      },
      "message": "libaudiohal: Fix crash due to uninitialized field\n\nEffectHalHidl::mEfGroup could be left uninitialized leading\nto a crash when trying to delete the event flag.\n\nBug: 64495982\nBug: 64553871\nTest: see repro steps on b/64553871\nChange-Id: Ifd2f76f2d8cc845ad46949c18050655bea946a42\n"
    },
    {
      "commit": "0bbad33c6384959226f7c73eb4a48db8ca2bf7ff",
      "tree": "6f347a575ad96c454b351d78668142033c1cde74",
      "parents": [
        "e88fd530455d39e4c770870c74c1198820f62bfe"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 09 09:29:02 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 09 09:29:02 2017 -0700"
      },
      "message": "libaudiohal: Fix EventFlag leak\n\nAdd EventFlag deletion in the effect wrapper\u0027s destructor.\n\nBug: 64495982\nTest: make\nChange-Id: I3a5bbe36ce064468790c35259aa621e1012ddcb6\n"
    },
    {
      "commit": "10fd056c636861b9e45e3df8456c95a5ddbcc556",
      "tree": "46757a1f84a0ace8c6527711654cee9df3d5887a",
      "parents": [
        "80d070f5dfc00c82218e341acb71d47c4cdc5d2c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Aug 01 17:20:24 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Aug 02 08:49:39 2017 -0700"
      },
      "message": "libaudiohal: When starting write, consider the stream buffer size\n\nWhen starting writing into a stream, use the bigger value from\nthe requested bytes to write and the stream buffer size.\n\nThis fixes a corner case when offload playback starts close\nto the end of the track, and then jumps to the middle.\n\nBug: 63979005\nTest: checked HAL logs for the repro case,\n  confirmed that Loopback, PM, YT, Camcoder, still work, also over BT\n\nChange-Id: I924468619d2185fd679b739747c423babfb36ada\n"
    },
    {
      "commit": "9584601561ad1d3b4fc1b0035c3f3e5bbd3e499e",
      "tree": "0f3268ed27ec2f843c79924a4b779afa06fc2b98",
      "parents": [
        "6c3359f522fa5c528d7eef5deaaf0d2c9c365089"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:34:02 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jul 17 10:56:37 2017 -0700"
      },
      "message": "Append additional owners to projects\n\nThis releaves reviewing burden from the frameworks/av owners.\nNote that the lists of owners are inherited from the parent\ndirectories thus the people listed in these files are owners\n*in addition* to people listed in frameworks/av/OWNERS,\nand frameworks/av/{media|services}/OWNERS.\n\nChange-Id: I5e2db1c40cb807b906b2701fe446c874a8d19983\nTest: not needed\n"
    },
    {
      "commit": "39e88a617aa8e291bc21fcc73a30c10f8fcbb5c5",
      "tree": "b04c4664068e1b1bd7515aad96226c9bded127d1",
      "parents": [
        "04f7a67df16512832be4ef94fae71f955d6e2249",
        "26cd4e41c01ae0e1c1fa4037d7d670ab86e10415"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jul 05 19:53:16 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 05 19:53:16 2017 +0000"
      },
      "message": "Merge changes Idc8aecad,I7d28827f,Iafe731d0\n\n* changes:\n  Fix nbaio headers by moving them to include/media/nbaio\n  Fix audioprocessing headers by moving them to include/media\n  Fix audiohal headers to be under include/media/audiohal\n"
    },
    {
      "commit": "9063fa7966a6d531595d8ada46d7667c569fc308",
      "tree": "8b7396248f5625fd6523107f221de9fba432067a",
      "parents": [
        "cd6d380e4f526476a11adface7680b3981c6a7d7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jun 30 15:33:51 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jun 30 15:33:51 2017 -0700"
      },
      "message": "audiohal: Avoid making unneeded calls to HIDL inteface\u0027s ::castFrom\n\nInstead of calling \u0027::castFrom\u0027 every time a conversion from\nIDevice to IPrimaryDevice is needed, make this conversion at\ninitialization.\n\nThis is to avoid additional IPC calls that are required\nfor \u0027castFrom\u0027.\n\nBug: 63142881\nChange-Id: Ic4192c729011ce2653772847e83da426116f9e94\nTest: audio works\n"
    },
    {
      "commit": "a48289c0f7dcc5a8f3e379c9d9fc0bee2916d9ef",
      "tree": "c3595eac6dd49bb02c78a0957ac619236cc48f2e",
      "parents": [
        "cd6d380e4f526476a11adface7680b3981c6a7d7"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:20:00 2017 -0700"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Jun 30 14:36:50 2017 -0700"
      },
      "message": "Fix audiohal headers to be under include/media/audiohal\n\nBug: 63172425\nTest: Build target\nChange-Id: Iafe731d02a5c7ebd1a3a41143150a80a793ceb86\n"
    },
    {
      "commit": "953608fabc2b1253850f9922b15fd1392bde784c",
      "tree": "a5de07ddf5f9c679a3c6c5ca301b81cebfb8a96b",
      "parents": [
        "ef48dc956a4fef50688090ae3e0036ffbf0221fe"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jun 13 15:21:49 2017 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Jun 16 11:59:16 2017 -0700"
      },
      "message": "StreamHal: Add power logging\n\nTest: adb shell dumpsys media.audio_flinger\nBug: 62307033\nBug: 62381511\nChange-Id: Ie15863f3c207e5651ce0b8818b9e38737bad77d8\n"
    },
    {
      "commit": "3ed9daf7766fac289c891387479648052390f1da",
      "tree": "38d9a25ba17fe01dba88fa680abca3f001cdc709",
      "parents": [
        "38ad5e22885a4b02d0429ecb4c1b4446373a3551"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 17 19:22:11 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 18 09:22:45 2017 -0700"
      },
      "message": "libaudiohal: fix get supported parameters queries in HIDL mode\n\nAdd a special case for keyStreamSupportedChannels and\nkeyStreamSupportedSamplingRates in ConversionHelperHidl::keysFromHal().\nIn this case, the query also contains a key\u003dvalue pair specifying\nthe audio format to consider and it must be passed to the audio\nHAL including the value.\n\nBug: 38326193\nTest: verify format specifier is sent to HAL for supported sampling\nrates and channels queries\n\nChange-Id: I14ac40da920122ec0242ab027a2a4ac1d92381c8\n"
    },
    {
      "commit": "3a85e5623164d7dce0912224962d6ad85bdffea4",
      "tree": "6092d1cc4603c12810f3d39c833a4ff4e223b0d5",
      "parents": [
        "77994d70fe8d4805126361bbd0afbcac1cd1d2f0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 11 18:08:51 2017 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 11 18:08:51 2017 -0700"
      },
      "message": "fix mmap fd leak inn HIDL audio stream\n\nDo not dup the fd received from HAL in StreamHalHidl::createMmapBuffer()\n\nBug: 38232872\nTest: verify that MMAP streams can be opened and closed multiple times\nChange-Id: I4813f78bd1ae1e8c705d1769a59710c9437bf246\n"
    },
    {
      "commit": "6b111f32247800dccd34dd396e731b9e7888b185",
      "tree": "bc10d592cb78523898360b28da29ba639c66266f",
      "parents": [
        "6f85f6533a25f7eeaaacba53281572c00e63759a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 27 18:52:37 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 28 20:02:40 2017 +0000"
      },
      "message": "audiohal: Always load A2DP module locally\n\nThis makes legitimate unix socket interaction between A2DP\nmodule and the Bluetooth stack.\n\nImplemented by allowing both \"local\" and \"hidl\" interface\nwrappers to co-exist for devices and streams. A \"hybrid\" device\nfactory is introduced to create an appropriate implementation\nof a device depending on the requested module name.\n\nBug: 37640821\nTest: Play Music over BT headset\nChange-Id: I5592961dd5b56840418fb122680979d11a261b6c\n"
    },
    {
      "commit": "40be8a343e8ceb7ae087bfb8988247731fa5ae75",
      "tree": "3b17c99232f656388afa202ad719ecdb226da783",
      "parents": [
        "9ba03c881f92f1bd62b28f1c38dc7579382ebdbc"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 26 17:22:00 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Apr 27 13:51:36 2017 -0700"
      },
      "message": "audiohal: Support stateful downmixer effects\n\nFraunhofer\u0027s downmixer has additional buffering, this is incompatible\nwith how DownmixerBufferProvider used to process incomplete buffers.\n\nNow the effects HIDL wrapper delivers frameCount updates in\naudiobuffers to the server side. This fixes playback of multichannel\nsound streams.\n\nBug: 36181621\nTest: play 5.1 track from Play Music\nChange-Id: I3b2cd097d61873c6ba329f1a574235ac88b21cac\n"
    },
    {
      "commit": "f823ac7390cc6ad6c387d0b4d9ea824f03b0372e",
      "tree": "ad182274218d4b68d8edaf34bd862cf84a2f9c6d",
      "parents": [
        "bf6b34cf26323ff49758c67408a4e87954a4a396"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 14 15:17:45 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 14 15:17:45 2017 -0700"
      },
      "message": "libaudiohal: Fix broken \"legacy audio HAL\" build\n\nRestore accidenally removed #include directive\n\nBug: 33241851\nTest: build with USE_LEGACY_LOCAL_AUDIO_HAL\u003dtrue\nChange-Id: I191233f533cea11eb95bc72eb06a9ce12dcc19d0\n"
    },
    {
      "commit": "159e03c9c1b6993f7649dcfe468fad2753994f02",
      "tree": "07bf10cd883a446bae0dd6e76bcd3c3ddbb06196",
      "parents": [
        "9e7dd63dfff0cc967f025ea9e27a299aaa99fd69"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 14 09:21:50 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Apr 14 09:21:50 2017 -0700"
      },
      "message": "libaudiohal: Remove dependencies on libeffects and libhardware\n\nThese dependencies are only needed when building with\nUSE_LEGACY_LOCAL_AUDIO_HAL\u003dtrue.\n\nTest: adb shell lsof | grep libeffects\nBug: 33241851\nChange-Id: I9c5eaf52d02c2101c55ea420780d0eb435d6493a\n"
    },
    {
      "commit": "1ba4041b6248aff42c01d27832995ebdf431bbd1",
      "tree": "61f80ecb4c40f27880485c630c0974abadc5ce43",
      "parents": [
        "5a1ebf934b4313b64b10130da3b9498d5cf72f74"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 20 10:58:07 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Mar 20 11:00:54 2017 -0700"
      },
      "message": "audiohal: Exit instead of crashing when HAL factory can\u0027t be obtained\n\nReplace LOG_ALWAYS_FATAL with ALOGE + exit, so the process still\nrestarts, but without a crash. This avoids confusion in bug triaging\nand also helps to eliminate noise in bug reports statistics.\n\nBug: 36424777\nChange-Id: I623cbc6a5b0d3351f849810dd67708d421efd61a\nTest: reproduced error condition, checked that audio server restarts\n"
    },
    {
      "commit": "425a50282ebdcc68a4fc01a268be87426889152e",
      "tree": "2ffb313e940724f89a47dd01cafa56103ec6c607",
      "parents": [
        "1ac2e2bdf0d232b4518020de7b923c0241b27137"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 14 13:35:37 2017 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Mar 14 13:35:37 2017 -0700"
      },
      "message": "audiohal: Restart audioserver if HAL services can\u0027t be obtained\n\nHAL services are crucial for the audioflinger to work.\nIf for some reason device or effect factories can\u0027t be obtained,\nlog a error message and crash af. If the problem with obtaining\nservices is transient, restarting af helps to restore audio.\n\nBug: 36153684\nChange-Id: Iec17a6c6e19650cf1d1de1ec30caf05753b9bce1\nTest: reproed the bug, checked that af restarts and finds devices\n"
    },
    {
      "commit": "a843e7bac59fd8a97ab3b4d5171c5d21bbd325fd",
      "tree": "1ad51e5020f71bb07ea9ac4dd7d5d52aa9745d36",
      "parents": [
        "c7700a8abb2102c41bc4778a54143818c45e220f"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sun Mar 12 21:41:12 2017 -0700"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Sun Mar 12 21:51:49 2017 -0700"
      },
      "message": "audio: remove unused using statements.\n\nBug: 36099713\nTest: pass\nChange-Id: Ib7a48469788a60778186368667c7043c33129e91\n"
    },
    {
      "commit": "4ec4e6b1073b0dc1b608aeeaf4e3129ea1a725c8",
      "tree": "f42a53bfd8e47fb76e9721d83c4df808bb5691ef",
      "parents": [
        "832fcce0c4bdc748bc4cb75101615e77769ec4e8",
        "d2ae9cd57cfbb6f2f4dd0a91dbc7ea2e9e5fc447"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Mar 03 18:49:48 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 03 18:49:48 2017 +0000"
      },
      "message": "Merge \"audiohal: Check for EINTR and retry when waiting for EventFlag\""
    },
    {
      "commit": "d2ae9cd57cfbb6f2f4dd0a91dbc7ea2e9e5fc447",
      "tree": "457d4d95e4dd0575af0e884ecc8124e1f9465647",
      "parents": [
        "881fc5c65fc7d8c56af0dea181d751fcec3a2b1c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 03 09:15:01 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Mar 03 09:15:01 2017 -0800"
      },
      "message": "audiohal: Check for EINTR and retry when waiting for EventFlag\n\nEINTR can be returned in the case when a futex wait has been\ninterrupted by a signal. We need to retry in that case.\n\nBug: 35813113\nChange-Id: I7eaee5298f5c0bc5cd62309c3fd8349ee3eae629\nTest: make\n"
    },
    {
      "commit": "d15f127a54b4b04a89ca07f52c0508326bf46a92",
      "tree": "69c682b727a6d95f4ec54536957a207c7ea9d53c",
      "parents": [
        "881fc5c65fc7d8c56af0dea181d751fcec3a2b1c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 28 09:10:43 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 28 09:10:43 2017 -0800"
      },
      "message": "audiohal: Add diagnostic message to check the number of bytes written\n\nTemporary change for investigating b/35813113. Need to test\nthe hypothesis that sometimes either legacy HAL, or the wrapper\nreports more bytes written than being asked for.\n\nBug: 35813113\nChange-Id: I6916d39e40d332b45a95aad05674009266e9cd96\nTest: make\n"
    },
    {
      "commit": "c7fdfdff8582cc78938c49f9fde0e74301a503a5",
      "tree": "249bf084ed629b13eac3a365ca71439dc2a3df05",
      "parents": [
        "76f4bc38916fce8a9901168e411859e45ab8473a",
        "b1f9f0bf84f6c5a72a44a48c99ddd141e55829fb"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Feb 27 19:25:59 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Feb 27 19:26:00 2017 +0000"
      },
      "message": "Merge \"audiohal: Do not extract value from Result unless it is Ok\""
    },
    {
      "commit": "b1f9f0bf84f6c5a72a44a48c99ddd141e55829fb",
      "tree": "89aea67a13998db5d58a7592c85b63941a72cd80",
      "parents": [
        "b4d5ec0d8f3755ccb8d5ce51798c3004330e1120"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 24 17:12:55 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 24 17:12:55 2017 -0800"
      },
      "message": "audiohal: Do not extract value from Result unless it is Ok\n\nThe 2-parameter version of processResult used to call the 3-param\nversion, and for that it was extracting the value from Result.\nNow HIDL framework checks that it shouldn\u0027t be done if the transaction\nwasn\u0027t OK.\n\nChange the code so the 2-param version now only extracts the result\nvalue if the transaction has been successful.\n\nBug: 35758741\nChange-Id: I42cb5f5220e3a952b1c304840ccb3952c1707cd0\nTest: make\n"
    },
    {
      "commit": "e2b43843fd12783188edd2c54188ea8d26864788",
      "tree": "baab518964134359128ed35e5ebfc36cf977cde4",
      "parents": [
        "b4d5ec0d8f3755ccb8d5ce51798c3004330e1120"
      ],
      "author": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Thu Feb 02 13:35:37 2017 -0800"
      },
      "committer": {
        "name": "Vijay Venkatraman",
        "email": "vijaykv@google.com",
        "time": "Fri Feb 24 11:47:45 2017 -0800"
      },
      "message": "Moved headers from include/ to appropriate libs\n\ninclude/camera -\u003e camera/include/camera\ninclude/media/audiohal -\u003e media/libaudiohal/include\ninclude/media/AudioResampler*.h -\u003e media/libaudioprocessing/include\ninclude/media/Audio*.h,IAudio*.h,IEffect*.h,ToneGenerator.h -\u003e media/libaudioclient/include\ninclude/media/EffectsFactoryApi.h -\u003e media/libeffects/include\ninclude/media/stagefright -\u003e media/libstagefright/include\ninclude/media/nbaio -\u003e media/libnbaio/include\ninclude/media/\u003crest of files\u003e -\u003e media/libmedia/include\ninclude/cpustats -\u003e media/libcpustats/include/cpustats\n\nAdded symlinks from old location to new ones\n\nBug: 33241851\n\nTest: VNDK linked modules will need to add explicit lib dep.\nAll other modules should compile the same\n\nChange-Id: I0ecf754a2132640ae781a3cc31428fb8c0bd1669\n"
    },
    {
      "commit": "8cd8df2d1f94b1a59efa19a4becdb7d8cf01ce38",
      "tree": "2e29c8191b49244748b54c85bc81ccb7304a6059",
      "parents": [
        "c61a1f2939cf8924dfc680428fdb984f0eea0a93",
        "23feba2593973e8ab251db8b63d8c2e228acbd51"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Fri Feb 24 00:48:52 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 24 00:48:52 2017 +0000"
      },
      "message": "Merge \"audiohal: Enforce flush of hwbinder commands queue after cleaning client refs\""
    },
    {
      "commit": "23feba2593973e8ab251db8b63d8c2e228acbd51",
      "tree": "816f326cb47823013305838386933af97fae9f06",
      "parents": [
        "9b2cd918052fdfda587c45b7b2b9a9e132ce6b7b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 23 11:00:55 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 23 11:06:49 2017 -0800"
      },
      "message": "audiohal: Enforce flush of hwbinder commands queue after cleaning client refs\n\nIn binderized mode, the exact time of destroying the server object\nis not defined. Enforce destruction by flusing hwbinder commands\nqueue after releasing the last client reference.\n\nBug: 35394629\nTest: capture trace while following repro steps, verify that server-side object\n      gets destroyed\n\nChange-Id: Id2756cab0f36ed4eaf290d3f5a1c750c9c75b1d3\n"
    },
    {
      "commit": "3516b25e0ef2cdc8fe9f13234d10b48612db8bbb",
      "tree": "ffc49fe261deb8765e9ecb3ca34f7b3d5560f274",
      "parents": [
        "231653e95d7343481b343d2d25e70ae8937ee77e"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Feb 21 19:51:27 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Tue Feb 21 20:14:04 2017 -0800"
      },
      "message": "Remove waitForHwService for ashmem.\n\nNow that b/34772726 is fixed, we can remove this temporary code.\n\nBug: 34772726\nTest: audio works on marlin\nChange-Id: I1a268e7030d27b4e944659bd7d82ba321be13a6e\n"
    },
    {
      "commit": "b9ad8c49766cc2682015a75cc42c59e3df0c346f",
      "tree": "74929e12ff0a22a84c06959a531def21e35dbb9a",
      "parents": [
        "929e786a8600ce26c562d19bb96574afe6cf7944",
        "dfa54faf298f6b617bf1d7684418fc8a2e6e4858"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Feb 22 03:28:06 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Feb 22 03:28:07 2017 +0000"
      },
      "message": "Merge \"audio_effects HAL uses \"default\" service name\""
    },
    {
      "commit": "dfa54faf298f6b617bf1d7684418fc8a2e6e4858",
      "tree": "c73f79d78f213856bd81c4dc7c8a4314a5e8bf48",
      "parents": [
        "673774d14c3d7e9964f94e1c0aabfce5cf72acc8"
      ],
      "author": {
        "name": "Chris Phoenix",
        "email": "cphoenix@google.com",
        "time": "Tue Jan 24 13:46:36 2017 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Feb 22 01:10:23 2017 +0000"
      },
      "message": "audio_effects HAL uses \"default\" service name\n\nThe getService() and registerAsService() methods of interface objects\nnow have default parameters of \"default\" for the service name. HALs\nwill not have to use any service name unless they want to register\nmore than one service.\n\nTest: builds; VTS HalAudioEffectHidlTargetBasicTest passes\n\nBug: 33844934\nChange-Id: I5283bf7c2d0645bd38a16e92cab05103c1bcdf26\n"
    },
    {
      "commit": "eea329e9db5244e4156f9f2a066362c47ff23c63",
      "tree": "dbc311d73c36bf127577121fcc2b0ede003650ef",
      "parents": [
        "673774d14c3d7e9964f94e1c0aabfce5cf72acc8"
      ],
      "author": {
        "name": "Chris Phoenix",
        "email": "cphoenix@google.com",
        "time": "Wed Jan 25 15:04:54 2017 -0800"
      },
      "committer": {
        "name": "Yifan Hong",
        "email": "elsk@google.com",
        "time": "Wed Feb 22 00:19:17 2017 +0000"
      },
      "message": "AudioDevices HAL uses \"default\" service name\n\nThe getService() and registerAsService() methods of interface objects\nnow have default parameters of \"default\" for the service name. HALs\nwill not have to use any service name unless they want to register\nmore than one service.\n\nTest: builds\n\nBug: 33844934\nChange-Id: Ifc6d297d0bbf7b28be560700c027c07acaa2466c\n"
    },
    {
      "commit": "13a926879249276771b0097538459c7550e2f5ce",
      "tree": "dcf98d4122999450a70164d3ae6d3d2522c114d8",
      "parents": [
        "09b92c347ddcaf751571363e54a769eb4b95edd3"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 17 12:22:38 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Feb 17 12:22:38 2017 -0800"
      },
      "message": "Use hidl.allocator for IAllocator.\n\nandroid.hidl.memory is being split into android.hidl.memory and\nandroid.hidl.allocator since the former is a passthrough hal and the\nlatter is a binderized service.\n\nBug: 35327976\nTest: hidl_test, lshal, youtube/camera works\nChange-Id: I7a2e72dcd3721d2689eb7ef95f5b140ecc1c446f\n"
    },
    {
      "commit": "ed01be521e6e265dd8a27e43b581d13342e2528b",
      "tree": "c22cbf29774b526fce061288bc9282fff0f65ca5",
      "parents": [
        "55cd7161c37396c0ec41b3a3814b778f412160c4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 16 15:57:07 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 16 17:36:58 2017 -0800"
      },
      "message": "audiohal: Support 64-bit audioflinger with 32-bit hal. Part II\n\nAlso convert \"get config\" effects command. It doesn\u0027t seem to\nbe really used, but nevertheless nice to have it called correctly\nin mixed ABI case.\n\nChange-Id: Ib29124933f5bfb8fd164f29a3059b3a5a3e8052b\nTest: none\n"
    },
    {
      "commit": "f508bd4692736e1455553099f3276f43f4229e27",
      "tree": "8d76c2292bb1f6931ca4ab66350f1860e7ff2d36",
      "parents": [
        "6ab6061131a10b7f38074c156fd529fa3719a32b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 16 13:51:20 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 16 15:44:53 2017 -0800"
      },
      "message": "audiohal: Support 64-bit audioflinger with 32-bit hal\n\neffect_config_t size depends on the architecture because it\nuses pointers. Need to convert it into HIDL structure when\npassing to HAL.\n\nTest: build 64-bit af with 32-bit hal server in binderized mode\n      run Play Music, apply effects\n\nChange-Id: I16ff9cd3accc00b6cb30f86418880ca5b749fdad\n"
    },
    {
      "commit": "b4e779137c1849b7b3b09ee782e8bc14de9e2655",
      "tree": "b739c1807605f847f8227c44b59d1ef59cb9c771",
      "parents": [
        "2d6140b8dce137f89029b12468e25d5911f23420"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Feb 15 10:23:09 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Feb 15 10:28:20 2017 -0800"
      },
      "message": "audiohal: Remove timeouts in eventflag waits\n\nHaving a timeout is causing issues on hal driver thread startup.\nIf thread startup is delayed, then eventflag wait exits with\ntimeout. This leaves fmqs in an intermediate state, and a pending\nwakeup for the server enables the client and the server to run\nin parallel, causing races.\n\nThe legacy HAL interface didn\u0027t have any timeouts for read / write\noperations, so there is no good reason for having them in\nthe wrapping interface.\n\nThe only difference with legacy HAL is that Treble HAL can be in\na separate process, and can crash, but this is handled separately.\n\nTest: Check logs on startup, must be no fmq read / write errors\nBug: 35346610\nChange-Id: Id3f79d31305afab194a4543bfb4501665518a27b\n"
    },
    {
      "commit": "83f042776b131b149f803fff6ab184ae2c4d98cd",
      "tree": "d3c78a3313c94799261a927c84cddc7c0ebdd398",
      "parents": [
        "ba05ff122c080be9fafe1f8112052cacfcd2b6fe"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Feb 07 10:45:09 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Feb 09 15:51:36 2017 -0800"
      },
      "message": "audioflinger: Adjust priority of hal threads\n\nHALs are prohibited from using framework binder, and there is\nno equivalent scheduling policy service in hwbinder. Thus, in order\nto match priorities of FastCapture / Mixer threads with their\ncounterparts in the HAL, it is needed to request the priority boost\nfrom audioflinger on behalf of the HAL.\n\nTest done to verify the priority was correctly set.\n\nBug: 34131400\nChange-Id: If8b6b031c0fcba771fae901a5b8e7da89b3a1570\nTest: check priority match between audioflinger\u0027s and hal\u0027s threads\n"
    },
    {
      "commit": "c8381909c97dd939706d8b1b9069dcfb4e2bf52f",
      "tree": "9736c5a84c73424258f0e64d68b5cfc7009eec76",
      "parents": [
        "67999b020e1eec218f5aa669ebc969636f53956b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 31 13:56:25 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Feb 03 09:03:08 2017 -0800"
      },
      "message": "audiohal: Make sure audio data transfer related commands go via FMQ\n\nWhen outputting audio, the framework issues several HAL calls\nfrom the same thread that writes into data FMQ. These calls\nalso need to be served on the same thread that writes audio data\nto HAL. The same thing happens when audio input is commenced.\n\nAdd a command FMQ for passing different commands to the HAL thread.\nThis way, depending on the calling thread, the same call may go\neither via hwbinder or via the command queue.\n\nThis dramatically reduces jitter in RTT measurements (although\ndoesn\u0027t improve the latency).\n\nBug: 30222631\nTest: scripted RTT app\nChange-Id: Ic212e33d4e2b1cf404973fe9d60762523eef9f40\n"
    },
    {
      "commit": "043291e32a86421695e04a7ea7985d8340ea5587",
      "tree": "f2907edef2ec4989690e2b59345b3b8a131eb160",
      "parents": [
        "82e1a5e928b6b73c6b568ed8bc4d0b81e503afd8",
        "ec4e6811657a099a2a8a404d81a956955b8b9b44"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 31 16:55:49 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 31 16:55:50 2017 +0000"
      },
      "message": "Merge \"audiohal: Fix legacy shim compilation\""
    },
    {
      "commit": "ec4e6811657a099a2a8a404d81a956955b8b9b44",
      "tree": "8b9300fd5f457e2b7b78e67d79b63546103c95c7",
      "parents": [
        "e4806bbccc2150607d84d2df5cb91aa24c4fe10a"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 30 17:25:20 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 30 18:07:22 2017 -0800"
      },
      "message": "audiohal: Fix legacy shim compilation\n\nChange-Id: I6cb1a2ed777283c6d81e6b6907cbddc3f2a25c4e\nTest: make\n"
    },
    {
      "commit": "9b088162cb9cdeb542f106a45d06a1f802e91e6e",
      "tree": "6d508b5374cb222009affad6f9387536bd1b9aa4",
      "parents": [
        "e4806bbccc2150607d84d2df5cb91aa24c4fe10a",
        "c2656e8c22a938bf3fe389c7473acc24649c7345"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 30 19:12:40 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 30 19:12:41 2017 +0000"
      },
      "message": "Merge \"audiohal: Wait for IAllocator to become available\""
    },
    {
      "commit": "c2656e8c22a938bf3fe389c7473acc24649c7345",
      "tree": "9165f2af618008b3a2b274e13f7111e39cdac9bc",
      "parents": [
        "24a8da67457267e4bac9ac2ffa07e1762510ca34"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Jan 27 16:10:09 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 30 08:50:56 2017 -0800"
      },
      "message": "audiohal: Wait for IAllocator to become available\n\nIAllocator is a framework service, and currently dependency on it\nisn\u0027t handled correctly.\n\nBug: 34771147\nChange-Id: Id3d50dd3bf9456aa363ae20a30ad319cf9c72e10\nTest: manual\n"
    },
    {
      "commit": "2c37fd3a0ab8ad01bd21af0f1a1efbc240a2c0bd",
      "tree": "2aa5469ef92d749198f3c91c6aee55f6908bdb35",
      "parents": [
        "2b118b8f939c0cf1b287b1641d17b057a8e25ce7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 27 14:35:02 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 27 14:37:19 2017 -0800"
      },
      "message": "audio: fix device address conversion to HIDL\n\nFix deviceAddressFromHal() method to allow empty device\naddress string which is a legit value in some contexts.\n\nBug: 34767019\nTest: run Loopback app over USB dongle.\n\nChange-Id: I1f7407d23b4cdf6011df75e854ff60595645b74d\n"
    },
    {
      "commit": "c0461f5b18eb6d5516804810f315e6c23879a09d",
      "tree": "409c82898f26abeb75bc1b9430c08578c051ad9a",
      "parents": [
        "b4728afbf8095d5349de9fcd49f3f34b900682ad",
        "66916c26a7055c9e10471720502a29f759609819"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 25 17:03:12 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 25 17:03:13 2017 +0000"
      },
      "message": "Merge \"audio hal: Fix multichannel playback\""
    },
    {
      "commit": "66916c26a7055c9e10471720502a29f759609819",
      "tree": "931ce309f34c35775a11240b4f8186db1983f90b",
      "parents": [
        "ceec4a06595253a6dcc167064f318e470e1c3b58"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 17:46:33 2017 -0800"
      },
      "message": "audio hal: Fix multichannel playback\n\nCorrectly operate on input and output buffers in DownmixerBufferProvider\n\nNote that playback is a bit choppy, need to investigate further.\n\nChange-Id: I350175dcc9cc7142a1935585a8bd5e9abb1b8eb6\nTest: play back a 5.1 file\n"
    },
    {
      "commit": "e67e893d0642dd345e4d7d1cc3e76b1f0936dae8",
      "tree": "5c37a597c915ad87867b39022e3658504a747987",
      "parents": [
        "ceec4a06595253a6dcc167064f318e470e1c3b58"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 10:37:10 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 24 10:37:10 2017 -0800"
      },
      "message": "audiohal: Check the result from IAllocator::allocate\n\nThe code wasn\u0027t checking the return from IAllocator::allocate\nresulting in a crash from HIDL framework when there was an error.\n\nBug: 34635658\nChange-Id: Ia6146ec0be972f261d35852fdc44302b67e44898\nTest: Run android.media.cts.AudioTrackTest#testPlayStreamData\n"
    },
    {
      "commit": "efbd36c8f57f41b0ef061cde5a88a3d384538fc9",
      "tree": "268b180eb5dc1bb13d783fb3b91c0f577b26686d",
      "parents": [
        "217fc01b390d88993c1c94669b251f952fe2c44e",
        "085ae9a0c72e1d1ed76533973b20ead13f5b3cac"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Mon Jan 23 15:56:43 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Jan 23 15:56:44 2017 +0000"
      },
      "message": "Merge \"Cleanup MQDescriptor usage with typedefs\""
    },
    {
      "commit": "2a0c6d54dc34fdd8cca4e8ed7f39ad512133a878",
      "tree": "150e0f89c53a6ac03304071a21f627940c4877eb",
      "parents": [
        "b20e4ef0448b1555e06dc7fd523ad4d181ab8686",
        "0688880d2862e6cddfea1fceca24e8a081a6be60"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 19 23:57:47 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 23:57:47 2017 +0000"
      },
      "message": "Merge \"audioflinger and hal: Compatibility fixes for Treble\""
    },
    {
      "commit": "b20e4ef0448b1555e06dc7fd523ad4d181ab8686",
      "tree": "418d88104130845d6b33202b5ef8c1d4adf90e04",
      "parents": [
        "d112296453154c6974433d860f270e9d8bc7d0d0",
        "cb9d2eb0a725fccc6fbee005f2e084b71279da16"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 19 23:19:50 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 19 23:19:51 2017 +0000"
      },
      "message": "Merge \"Add support for stub audio HAL in HIDL mode\""
    },
    {
      "commit": "0688880d2862e6cddfea1fceca24e8a081a6be60",
      "tree": "0ddffd4d8d70f0fad63e6c1738fdd55d86b3db08",
      "parents": [
        "dffb51f4e35fe93215b025bdf4216f3b411c734b"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 19 12:47:55 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 19 14:06:37 2017 -0800"
      },
      "message": "audioflinger and hal: Compatibility fixes for Treble\n\n 1. Treat both reply size being 0 and reply buffer being NULL\n    as an indication that the reply isn\u0027t needed.\n\n 2. Synchronize both input and output effect chain buffers,\n    and avoid excessive copies when the input buffer is the same as\n    the output buffer.\n\n 3. Improve effect chain debug dump by showing both\n    \"external\" and \"allocated\" pointers for effect audio data buffers.\n\nBug: 34368451\nChange-Id: I56aba6908408b5fce3f15c8d29138555101e8720\nTest: volume controls works when both Bass Boost and EQ effects enabled\n"
    },
    {
      "commit": "cb9d2eb0a725fccc6fbee005f2e084b71279da16",
      "tree": "441765fd806a1bfea6ee31979faa56cca4952b0d",
      "parents": [
        "1ec283ec15d5003fdf2769f83f624f0aaf4c7150"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 18 17:00:39 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 18 17:09:38 2017 -0800"
      },
      "message": "Add support for stub audio HAL in HIDL mode\n\nBug: 34360879\nTest: make and check stub HAL is loaded in HIDL passthrough mode\nChange-Id: Ib0d3d66aef802ae3685c17297eb87da0b5b0cc3a\n"
    },
    {
      "commit": "1acece4c23ba36e71bc42d8b44b8b62bd4423620",
      "tree": "36498ad93f4bcbbc852a9eee54774555509ef89a",
      "parents": [
        "3670ef95286d8eb028d30a95448b8f93f8f74007",
        "d621ac82e648c8ef395068edb1af2747f49b700a"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Tue Jan 17 23:16:30 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 17 23:16:30 2017 +0000"
      },
      "message": "Merge \"Monitor crashes of audio hal service via linkToDeath\""
    },
    {
      "commit": "d621ac82e648c8ef395068edb1af2747f49b700a",
      "tree": "3c37b8d97c0c7feec6c567d407d05c8343ec9e6e",
      "parents": [
        "a72ef28f8cc2b894119b470fe6c93d1abe566398"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 17:17:45 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 17 13:42:54 2017 -0800"
      },
      "message": "Monitor crashes of audio hal service via linkToDeath\n\nHwbinder \u0027linkToDeath\u0027 mechanism is used to track abrupt\ndisappearance of server hal objects due to hal server crash.\n\nUpon hal server crash, notifications can be sent to binder\nclients if needed, then the audioserver crashes itself as the\ncurrent audio HAL design does not provide an easy way to restore\nall the transient objects (devices, streams, effects) in their\npre-crash state.\n\nBug: 34158778\nTest: In binderized mode, kill audio hal server\nChange-Id: If9265711edc445984601fcb5c29d2c173a370762\n"
    },
    {
      "commit": "bcd0a04befb085da19fec70a681096dad99afc30",
      "tree": "0bed4e2c962730f22db45ad46faeea99e28bb957",
      "parents": [
        "38267b773f2cdec4d684b12fde73179bcc66e0c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 17 09:45:19 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Jan 17 09:45:19 2017 -0800"
      },
      "message": "libaudiohal: Fix handling of NULL replySize param to Effect::command\n\nFix crash when the client passes NULL as \u0027replySize\u0027 for Effect::command.\n\nBug: 30222631\nChange-Id: I015a49ba8c7a3103edfcbf9df39bb32093367a7a\nTest: No crash when adjusting \"Bass Boost\" setting in Play Music\n"
    },
    {
      "commit": "38267b773f2cdec4d684b12fde73179bcc66e0c7",
      "tree": "f018480645ec57b841a4579f532675f69ccd7dc8",
      "parents": [
        "9fe81732b695d16e7f4fac12d6f6c0ff4d4fa11c",
        "d635199dcaae89ac50391bdfee4a12d4c88c519d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 20:55:00 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 20:55:01 2017 +0000"
      },
      "message": "Merge \"Update StreamHalHidl to use IStreamOut.WriteStatus new field\""
    },
    {
      "commit": "9fe81732b695d16e7f4fac12d6f6c0ff4d4fa11c",
      "tree": "226d5873a8f350fea4d7c6d68c268ecdcb93a9ed",
      "parents": [
        "b04aa125744b7e1d5c56a4c2151eaaa890d68e4c",
        "9dc1747e214a3d4b3c08e8c1f3d7982ef5108162"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Thu Jan 12 18:20:26 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 12 18:20:27 2017 +0000"
      },
      "message": "Merge \"Enable passthrough mode by default for audio, soundtrigger, and radio\""
    },
    {
      "commit": "d635199dcaae89ac50391bdfee4a12d4c88c519d",
      "tree": "c3ade6e5b14b85afca693969e2f860071c4cb0cb",
      "parents": [
        "67d0d7eb36e7c36d0a9dec9264c0cab832196d57"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 09:35:16 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 09:39:17 2017 -0800"
      },
      "message": "Update StreamHalHidl to use IStreamOut.WriteStatus new field\n\nUpdated the client code to use the new field:\nIStreamOut.WriteStatus.presentationPositionRetval for providing\nlegacy-compatible results when calling \u0027get_presentation_position\u0027\nimmediately after \u0027write\u0027.\n\nBug: 30222631\nTest: Loopback RTT, media CTS\nChange-Id: Idf3f1d29288ddf17a5015f96291648d64d124ec7\n"
    },
    {
      "commit": "9dc1747e214a3d4b3c08e8c1f3d7982ef5108162",
      "tree": "de0cfa7c01a63f997361bff625b1b94158b13f2c",
      "parents": [
        "67d0d7eb36e7c36d0a9dec9264c0cab832196d57"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 11 11:15:28 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 11 17:34:00 2017 -0800"
      },
      "message": "Enable passthrough mode by default for audio, soundtrigger, and radio\n\nRemove ENABLE_TREBLE flag usage for legacy hal fallback.\nIntroduce new build flag USE_LEGACY_LOCAL_AUDIO_HAL for fallback.\n\nBug: 32978887\nTest: checked \"OK Google\" (from standby), Hangouts, YouTube,\n      Play Music, fake radio hal + test app\nKI: issues when using equializer and virtualuzer in Play Music\n\nChange-Id: I1c279e622c885f799481f1287e0660ca576fcea0\n"
    },
    {
      "commit": "2f607551825066933ef2ab9cac84833306c72db0",
      "tree": "94c1662a40000316608a3157bd81d2387575a60f",
      "parents": [
        "67d0d7eb36e7c36d0a9dec9264c0cab832196d57"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 11 16:09:03 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 11 16:13:57 2017 -0800"
      },
      "message": "Fix crash in DownmixerBufferProvider\n\nIn ag/1768960, I forgot to actually set the buffers for the effect\ninterface. Without that, a \u0027process\u0027 method was attempting to use null\nbuffers.\n\nBug: 34228998\nTest: android.media.cts.AudioNativeTest#testPlayStreamData\nChange-Id: I904a9c08aa75bd5738b3ce981ee54511f37df7ec\n"
    },
    {
      "commit": "67d0d7eb36e7c36d0a9dec9264c0cab832196d57",
      "tree": "5da2eee1631317f25aa331451748b52fb7e14e4d",
      "parents": [
        "954c7b561ba1bcc2bb1f704ec7e94c8ce763bf28"
      ],
      "author": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 11 14:51:39 2017 +0100"
      },
      "committer": {
        "name": "Martijn Coenen",
        "email": "maco@google.com",
        "time": "Wed Jan 11 14:52:27 2017 +0100"
      },
      "message": "Fix _treble build targets breakage.\n\nTest: ENABLE_TREBLE\u003dtrue builds again.\nChange-Id: I68470a8c9782f1938b3f8d35052baef0d1befde9\n"
    },
    {
      "commit": "085ae9a0c72e1d1ed76533973b20ead13f5b3cac",
      "tree": "0d86fd55c287d412d682b6877e18a33b518373b1",
      "parents": [
        "db057a5a6556f4ea81b710fc90ab6e8816d1525e"
      ],
      "author": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Tue Jan 10 09:42:17 2017 -0800"
      },
      "committer": {
        "name": "Hridya Valsaraju",
        "email": "hridya@google.com",
        "time": "Tue Jan 10 09:43:16 2017 -0800"
      },
      "message": "Cleanup MQDescriptor usage with typedefs\n\nTest: mm\nBug: 34054917\n\nChange-Id: Iccfed3af89f3527318c1c3621b6f26ebd6a2e970\n"
    },
    {
      "commit": "022b9953153bdb1984f0abb17d21ef8c1826ad49",
      "tree": "aff19a7663d75cbb16bc003424bacb6f97b738cd",
      "parents": [
        "e61f9e57e61cbf4d86d6385dd3cddb41e245f749"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 04 16:36:51 2017 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Jan 09 18:18:18 2017 -0800"
      },
      "message": "Re-implement HIDL effect processing using FMQ and IMemory\n\nResult: no hwbinder calls due music processing.\n\nTest: make, use Play Music with effects, check traces\nBug: 30222631\nChange-Id: I06d0e94e603688874b31824427f3b0878b5f7c8e\n"
    },
    {
      "commit": "e83be8af690ef1ac820a63414d522e77ca9d4db6",
      "tree": "1d485de3ff2b31b17acb29c10673b1790e619012",
      "parents": [
        "db057a5a6556f4ea81b710fc90ab6e8816d1525e"
      ],
      "author": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Fri Jan 06 11:06:33 2017 -0800"
      },
      "committer": {
        "name": "Steven Moreland",
        "email": "smoreland@google.com",
        "time": "Mon Jan 09 10:50:58 2017 -0800"
      },
      "message": "Remove usage of getStatus.\n\n- remove from libaudiohal\n- remove from services/radio\n- remove from soundtrigger\n- remove from omx\n\nBug: 31348667\nTest: compiles\nChange-Id: I75bb7b7388527dacfdc5bf128712cb8690bc286b\n"
    },
    {
      "commit": "e1c4b5d7a94c21b8ce0c5707b4af84de596fbb79",
      "tree": "8c448787f6c4f7bfe7647cc32601350247d4066a",
      "parents": [
        "2b934d36939c571a47cc972670176bc0356c54be"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 22 09:22:45 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Jan 04 20:50:54 2017 -0800"
      },
      "message": "Re-implement HIDL stream read and write using FMQ\n\nResult: no hwbinder calls due read / write session.\n\nTest: make, perform Loopback RTT, check traces\nBug: 30222631\n\nChange-Id: I4a8792525ec374111302cfd5c0a2e41f9f4cc418\n"
    },
    {
      "commit": "b8753077cf128ad6492c10e632e118333eb00aee",
      "tree": "3dfdac2ba745d9ddea48c4ca7012e5a77e1705f8",
      "parents": [
        "be154ab3306c7629ae568a88512700a5d9bc2668"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 21 12:04:10 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 21 12:04:10 2016 -0800"
      },
      "message": "fix ENABLE_TREBLE build broken by commit af35aadb\n\nTest: build marlin-eng with and without ENABLE_TREBLE\nChange-Id: Ia8cd2c8b01e2e14557b65ae8ce9c9c4827f596f5\n"
    },
    {
      "commit": "af35aadb7ab558035b6cf45bd3930ecaa3a3b330",
      "tree": "ef709fefc01bbf3efb1f0bcddd9ecee0920977e4",
      "parents": [
        "e2bc75d146276c3cfe2b349073cf46f7706fa38d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 15 14:25:36 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 20 12:57:13 2016 -0800"
      },
      "message": "audio HAL: implement mmap stream functions\n\nBug: 33398120\nTest: make marlin-eng with ENABLE_TREBLE true\n\nChange-Id: I10df5440b9946398a73a7ee309eca860eae0bfcd\n"
    },
    {
      "commit": "9f57e3c9da8923649adff62e63c644537f565e90",
      "tree": "4ecc43b149d5801f9b378c493c725a4c790bcf42",
      "parents": [
        "e158da59b3b525cf271968bec3967414b21159fa"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 05 12:54:36 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 09 16:02:36 2016 -0800"
      },
      "message": "Crash audioserver if EPIPE (DEAD_OBJECT) is received from the HAL\n\naudioflinger doesn\u0027t have a proper way to re-establish all\nthe opened streams if HAL crashes. The only valid way of dealing\nwith them is to restart the audioserver.\n\nAlthough broadcastradio and sountrigger have cleaner protocols\nfor dealing with HAL failures and can handle HAL crash and restart,\nsince the audio side will anyway get broken, it makes sense\nto also kill the audioserver when they detect HAL crash.\n\nChange-Id: I5f8e8c1d0981042cdd435a3ddbb6526e9f226e6b\nTest: kill audio-hal process, watch dmesg and logcat\n"
    },
    {
      "commit": "34e5d30e54650b210c1b9730b1e4b412ec1cdb0c",
      "tree": "0fced8935e15fc5291af3c818abf9ed86d398862",
      "parents": [
        "9f55e5f998644d58cb8f3625e06d9b7a4e78555c"
      ],
      "author": {
        "name": "Samuel Saccone",
        "email": "samccone@google.com",
        "time": "Fri Dec 09 23:24:29 2016 +0000"
      },
      "committer": {
        "name": "Samuel Saccone",
        "email": "samccone@google.com",
        "time": "Fri Dec 09 23:24:29 2016 +0000"
      },
      "message": "Revert \"Crash audioserver if EPIPE (DEAD_OBJECT) is received from the HAL\"\n\nThis reverts commit 9f55e5f998644d58cb8f3625e06d9b7a4e78555c.\n\nChange-Id: Ic76c0cb5032af422699da2b43106b4b1de5ac935\n"
    },
    {
      "commit": "9f55e5f998644d58cb8f3625e06d9b7a4e78555c",
      "tree": "3696d68948cc2ebf02bb4f8d84fd7c7f748025f2",
      "parents": [
        "2b3867fb87f48a0627e3f8bb37826021df8dbd13"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 05 12:54:36 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 09 11:12:01 2016 -0800"
      },
      "message": "Crash audioserver if EPIPE (DEAD_OBJECT) is received from the HAL\n\naudioflinger doesn\u0027t have a proper way to re-establish all\nthe opened streams if HAL crashes. The only valid way of dealing\nwith them is to restart the audioserver.\n\nAlthough broadcastradio and sountrigger have cleaner protocols\nfor dealing with HAL failures and can handle HAL crash and restart,\nsince the audio side will anyway get broken, it makes sense\nto also kill the audioserver when they detect HAL crash.\n\nTest: kill audio-hal process, watch dmesg and logcat\nChange-Id: Ib2150b69c791ac49de9404de08fc6c309a3fcbd5\n"
    },
    {
      "commit": "2b3867fb87f48a0627e3f8bb37826021df8dbd13",
      "tree": "0fced8935e15fc5291af3c818abf9ed86d398862",
      "parents": [
        "b15ed7a197061d688e465ac4a0d489fed65b8ceb",
        "56b41990c77deea378c9af79d76348ca6f995687"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Dec 09 17:50:33 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 09 17:50:34 2016 +0000"
      },
      "message": "Merge \"Do not log error codes received from HAL\""
    },
    {
      "commit": "08dab5ae92ddd1f3b337b6e35f918fea8c284a56",
      "tree": "4ebbef53fa801437efecb2de9135543c5f1326c6",
      "parents": [
        "8526d86ab12284135ed4ca27aeb816371c10c0e6"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Wed Dec 07 15:08:17 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Thu Dec 08 18:13:28 2016 +0900"
      },
      "message": "Use libmedia_helper as shared lib.\n\nThe dependencies to static libraries in frameworks should be removed\nas many as possible to reduce a size of the system partition.\nAnd that will improve coverage of the VNDK libraries because this\neffort might find new necessary shared libs which were linked\nstatically before.\n\nSize diffs of affected binaries on angler-userdebug build are as\nfollows.\n\nlibmedia                    : 598056 -\u003e 547928 (-50128)\nlibstagefright              : 1496420 -\u003e 1492124 (-4296)\nlibaudiopolicyservice       : 75372 -\u003e 66940 (-8432)\nlibaudiopolicymanagerdefault: 613168 -\u003e 583516 (-29652)\nlibaudioflinger             : 397840 -\u003e 364380 (-33460)\nlibaudiohal                 : 114752 -\u003e 68684 (-46068)\nlibaudiopolicyenginedefault : 122096 -\u003e 71968 (-50128)\nlibmedia_helper             : 0 -\u003e 66288 (+66288)\n\ntotal                       : (-155876)\n\nTest: building succeeded, and the image was tested on angler.\nBug: 33056637\nChange-Id: I00a71e518337a1efcf7f55256145776311596991\n"
    },
    {
      "commit": "56b41990c77deea378c9af79d76348ca6f995687",
      "tree": "eb71f80bc56a568c0ceadd033b5b9fc6a54b78af",
      "parents": [
        "9b46a8f9ebcca3b86662e7ea998a2afea0153478"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 07 17:09:03 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Dec 07 17:09:03 2016 -0800"
      },
      "message": "Do not log error codes received from HAL\n\naudio HAL server already logs them, so logging them here is just\na spam. Only log RPC errors.\n\nChange-Id: I55433d4446215b87099c9ad33f4c352f79109fd1\nTest: check logcat\n"
    },
    {
      "commit": "2f6272e17232360bcd10ae7a5179bf6cf8d86e38",
      "tree": "5f0490cbd763814ef3953129ebf2c119728fa248",
      "parents": [
        "65abff18873fab87305049418c9b7c24fc0a2ef4"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 05 10:38:24 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Dec 05 10:39:35 2016 -0800"
      },
      "message": "Fix compilation of libaudiohal with ENABLE_TREBLE\n\nAdd a missing dependency on libhidltransport.\n\nTest: ENABLE_TREBLE\u003dtrue make\nChange-Id: If4cf298eccabdcc7bc26275f743b7d4a833169ea\n"
    },
    {
      "commit": "f558e0218d2677a813c9c600886f673894eec927",
      "tree": "a2e02a7e9999fe3eb08071d09acd30d9e50f87a8",
      "parents": [
        "d71f16268227c15a0ac2043e15900db5df2c417d"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 14 17:45:17 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Dec 01 09:36:07 2016 -0800"
      },
      "message": "libaudiohal: Implement simple HIDL client\n\nThis client requires both HIDL client and server to be of the same\nABI version (e.g. 32-bit).\n\nEffectHalHidl::process and EffectHalHidl::processReverse are stubs.\n\nSome extra warnings are logged due to unimplemented functions\nin the legacy HAL.\n\nBug: 30222631\nChange-Id: Id074131dec6d6c4f1031695abcf3ea066e92a5af\nTest: Play Music (play / EQ), YouTube, Loopback RTLT, Ok Google on N5X\n"
    },
    {
      "commit": "9ee0540d3a61bff03d561ca431a371c3d9335d2b",
      "tree": "1bf7817725f35ec9c0755e819cb5f58fdf0bf487",
      "parents": [
        "e7e8d636b486cf49487db1d8da5e8e7cb15d9549"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 15:58:17 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Oct 19 09:46:33 2016 -0700"
      },
      "message": "Remove last references to hardware/audio.h\n\nDeviceHalInterface transitioned to \"capabilities\" model\n(similar to the one already used by streams, e.g. \u0027supportsDrain\u0027).\nNo direct checking of the HAL version is needed.\n\nAudioPolicy uses its own version read from the configuration,\nand these values never checked against the actual HAL version,\nthus it does not need versions and macroses from hardware/*.\n\nTest: make \u0026 run on N6P\nChange-Id: Ic4a56bfa19a9a61edac2b9f9a163fd8f63a0ff87\n"
    },
    {
      "commit": "00260b5e6996b0a4b12f71c5b84e44adea040534",
      "tree": "7e93a2e3cc5f918d8f7a7409d9c98712eed0d2fe",
      "parents": [
        "47677e3edda7b15bc0b48c6863a01ae052785e0c"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 12:54:24 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Oct 13 14:02:38 2016 -0700"
      },
      "message": "Remove dependencies on hardware/audio_effects.h and EffectsFactoryApi.h\n\nAlso remove some outstanding dependencies on hardware/audio.h.\n\nMost of the time, only constants and structs from audio_effects.h\nare used, and no actual calls into HAL are made. Move these\ndefinitions into system/audio_effect.h, and generate constants\nfrom TREBLE HAL definition.\n\nFor parameters, always use values from AudioParameter class.\n\nThere are still some outstanding includes of hardware/audio.h\nin code that directly deals with audio modules. Need to extend\nlibaudiohal interfaces to support required functionality.\n\nTest: make\n\nChange-Id: I0bcdf8ae199485d4d65f3eeb7e7a3b9b5cdb6ab6\n"
    },
    {
      "commit": "cbc8f617c1aebef5d041fa40dcd38a5466690b99",
      "tree": "525470607c3e6436c5a73caac90830104fcde9ac",
      "parents": [
        "0c739c59dd1a3d52beb82a353c13b6c853d93f5f"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 11 18:05:13 2016 -0700"
      },
      "message": "Eliminate dependencies on hardware/audio.h (trivial cases)\n\nframeworks/av must not depend on hardware/ (except for the code\nfrom libaudiohal that actually calls into HAL).\n\nThis CL deals with simple cases where depending on system/audio.h\nis enough.\n\nChange-Id: Ia2cb66cc8c92316ce5ab884a008d5e531263c2e4\nTest: make\n"
    },
    {
      "commit": "0358e6e645d6fb53918f9d64b68f58e73069c9bb",
      "tree": "9ea707d43e2f866a330350e71d952c3a59f3e599",
      "parents": [
        "c380f611f779dd7dc29ccf80609893d67e78167a"
      ],
      "author": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Oct 05 10:20:40 2016 -0700"
      },
      "committer": {
        "name": "Dan Willemsen",
        "email": "dwillemsen@google.com",
        "time": "Wed Oct 05 10:36:05 2016 -0700"
      },
      "message": "Convert libaudiohal to Android.bp\n\nSee build/soong/README.md for more information.\n\nTest: mmma -j frameworks/av/media/libaudiohal\nChange-Id: I618dce668c2dac9a399822a4261bc1e3044077d0\n"
    },
    {
      "commit": "15897e459c5086058e73b3e91690320a7bb46d4a",
      "tree": "84e9b8f15186f485d59aa15d0f59b628d2202a4e",
      "parents": [
        "ad111520f0167c4a0bf6a37fc025e2523c313258"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 30 16:16:41 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Fri Sep 30 16:16:41 2016 -0700"
      },
      "message": "Fix non-blocking playback threads creation\n\nBecause PlaybackThread calls StreamOutHal::setCallback inside\nthe constructor, onFirstRef gets called while the vtable pointer\nis set to PlaybackThread\u0027s vtable, not to its subclass vtable.\nonFirstRef launches a thread which starts calling methods\nthat are abstract in PlaybackThread.\n\nFixed by changing the type of StreamOutHal::setCallback argument\nfrom \"sp\" to \"wp\", as creating a weak pointer does not increase\nstrong refs count and thus doesn\u0027t call onFirstRef.\n\nBug: 31856492\nChange-Id: I0d51bc73ca88b4b235260ed773870ecb7dac55d0\nTest: added logging to verify the order of calls\n"
    },
    {
      "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"
    }
  ]
}
