)]}'
{
  "log": [
    {
      "commit": "bb9480975322b0d1a09f76ef14f3285fc8af4e5f",
      "tree": "a32cac19e5e2f47e9808de74a00887e8e3d3c695",
      "parents": [
        "b9c28c72b91e464aa1155e972f74af14312191a8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jan 23 18:33:30 2017 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 25 18:34:46 2017 -0800"
      },
      "message": "audio: enable concurrent capture for voice recognition\n\nAdd AUDIO_SOURCE_VOICE_RECOGNITION to the list of use\ncases allowed for concurrent capture. As AUDIO_SOURCE_HOTWORD is\nenabled for concurrent capture it makes sense to enable a client\nto transition to voice recognition after the hotword has been detected\nin a concurrent capture situation.\n\nAlso fixed some concurrent capture scenarii\n\nBug: 22702906\nTest: build and check \"OK Google\" detection\nChange-Id: Ic6dd41372fe74122395764beca7ca9a65197464b\n"
    },
    {
      "commit": "cac8d4ea54ece7aeb4b2ffa7aafd06fbec731a62",
      "tree": "ed02d8653145fded2d53bcf4c6d7033cca7eb1cf",
      "parents": [
        "d0ffd62e89bf97fa20a63f282d034b6745328210",
        "44344b05261cb9ad46a43e635f637b89aecc7afe"
      ],
      "author": {
        "name": "TreeHugger Robot",
        "email": "treehugger-gerrit@google.com",
        "time": "Wed Jan 18 03:17:58 2017 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 18 03:17:59 2017 +0000"
      },
      "message": "Merge \"audio policy: allows dumping Audio Policy Mix\""
    },
    {
      "commit": "060a6c53b5022c9e539a4c9b03b16da546964bec",
      "tree": "5c517aa0d24e519bb40dcd2431ffefa43959d4d7",
      "parents": [
        "d825ab9d5be990a6a7fb28033cfba84441100731",
        "49d3b5ee8e89e274a5c259dddb7cde38e98c2cde"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Jan 12 23:54:38 2017 +0000"
      },
      "message": "Merge \"liblog: use log/log.h for ALOG macros\" am: 59cfe7de39 am: c6d07e8230 am: 15b18326b6\nam: 49d3b5ee8e\n\nChange-Id: I87a85c85d3f509e0496f5946d6e9e58174398ea5\n"
    },
    {
      "commit": "e74bbf18a6595a914d3c771be08a72077465c51f",
      "tree": "67ecfbc9a118ea695beaf5536bcd3ea5e9cfe376",
      "parents": [
        "ce961d374f8436a50e63a081afa6b6c3185b2f90"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:10:27 2017 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Jan 12 15:10:27 2017 -0800"
      },
      "message": "liblog: use log/log.h for ALOG macros\n\nTest: compile\nBug: 34250038\nChange-Id: Ie3b92790df631dbacdd51053264dddeba66913c1\n"
    },
    {
      "commit": "44344b05261cb9ad46a43e635f637b89aecc7afe",
      "tree": "f088a40f3512f177136b78f02e091d42db7d0934",
      "parents": [
        "38267b773f2cdec4d684b12fde73179bcc66e0c7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Dec 13 11:21:02 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Thu Jan 12 13:19:26 2017 -0800"
      },
      "message": "audio policy: allows dumping Audio Policy Mix\n\nThis patch adds the dump of AudioPolicyMix if registered.\nIt also adds the required conversion map to human readable strings\nof the types involved in Mixes.\n\nAdapted for the development branch from the AOSP patch:\nhttps://android-review.googlesource.com/#/c/309127/\n\nChange-Id: I91cf7afe6de5ff837970d9063ca437d4f6201e89\nTest: build, dumpsys media.audio_policy\n"
    },
    {
      "commit": "32a5f5d53f9fe2ba584d2ecdf3edd487fb4146a7",
      "tree": "49e0e3a1b8302a9f7282b6bcab3c32ea3808ec23",
      "parents": [
        "105928c9d30ed4c697cc4cdd9e68d8d47a695133",
        "4532a36bf509d822a77cbc1b7837f9f1158c7796"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:47:40 2016 -0800"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 13:48:15 2016 -0800"
      },
      "message": "resolve merge conflicts of 4532a36 to master\n\nTest: build\nChange-Id: I9b93c4a703c0ee16116be2bea0e6df0606d29363\n"
    },
    {
      "commit": "60d02077d86d2d1092443519290101f503aa6f7a",
      "tree": "57992d2bd94784cd765729b806429928ead0d2e7",
      "parents": [
        "36a75eeb15e58726e8cbbfe9687975740133a11b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Sep 29 08:48:48 2016 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Thu Dec 22 08:25:58 2016 -0800"
      },
      "message": "Replace cutils/log.h with either android/log.h or log/log.h\n\nTest: compile\nBug: 31289077\nChange-Id: I795a76f978d2213737f1fa908da789c543219b75\n"
    },
    {
      "commit": "e4c3c4310f4e4a76195dc08323c4a26dd28ffd08",
      "tree": "17ad3264c033a26754c3cf4aed1e5d25ca4ab49c",
      "parents": [
        "0a2ea58394190408a3d532bfcc242ba64ca71538"
      ],
      "author": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 12:13:40 2016 +0900"
      },
      "committer": {
        "name": "Jaekyun Seok",
        "email": "jaekyun@google.com",
        "time": "Fri Dec 16 15:10:26 2016 +0900"
      },
      "message": "Use libxml2 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 sailfish-userdebug build are as\nfollows.\n\nlibaudiopolicymanagerdefault.so: 583440 -\u003e 267288 (-316152)\nlibaudiopolicymanager.so       : 16008 -\u003e 16004 (-4)\n\ntotal                          : (-316156)\n\nTest: building succeeded, and the image was tested on sailfish.\nBug: 33056637\nChange-Id: I51d98c5c2b5d94561190a1651063737fb1cb06ff\n"
    },
    {
      "commit": "3e9e728ef329e49424d5878c682bf82dac5009ef",
      "tree": "5a39f5853e58ef98692aca5a679120c15679c320",
      "parents": [
        "b620c0a38648f578ce3bfa77059295af79d0fa29",
        "504a885be0d8ca46c8787486f26d676648e21704"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Nov 23 04:33:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 23 04:33:19 2016 +0000"
      },
      "message": "Merge \"fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\" am: fa81ba8775 am: e16a2029e0 am: 228b9dec45\nam: 504a885be0\n\nChange-Id: Iba5669ae28b61114a9357291e9ff5ac63ba7ad63\n"
    },
    {
      "commit": "e16a2029e073d348f480665db799de5a922f43f8",
      "tree": "90be8762869341a10bf1f3112b56f67f268a0843",
      "parents": [
        "c12499d5c646e79d6a91dddc44c79921d9967c8e",
        "fa81ba8775c497c229078c25bcf8374e8420ea18"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Wed Nov 23 04:24:47 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Nov 23 04:24:47 2016 +0000"
      },
      "message": "Merge \"fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\"\nam: fa81ba8775\n\nChange-Id: I7d261ceb8cfce3b3f56ed907e1e32d70e7a40d45\n"
    },
    {
      "commit": "cc7c0d6fff90c867f661b795e803043aee4d0bb8",
      "tree": "135370892a4372382e70aaec7c1017fc4a3dfa92",
      "parents": [
        "11f51b046344c8e14ef764d755cae697f6bce4e8"
      ],
      "author": {
        "name": "Yunlian Jiang",
        "email": "yunlian@google.com",
        "time": "Tue Nov 15 17:55:57 2016 -0800"
      },
      "committer": {
        "name": "George Burgess IV",
        "email": "gbiv@google.com",
        "time": "Tue Nov 15 17:55:57 2016 -0800"
      },
      "message": "fix Potential leak of memory pointed to by \u0027sourcesLiteral\u0027\n\nBug: none\nTest: the warning is gone.\nChange-Id: I8fe9610e24e31e3f788d00fa7f594e1274771433\n"
    },
    {
      "commit": "0aa15c6e4d02d3aa96d5ddfc6c862fe4da1da594",
      "tree": "8f4ba1cb7489b7842ff9d649f666d85c922b89e8",
      "parents": [
        "74d3601bea717111f77376cf1678d2bc65dd51a1"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 08 14:09:10 2016 -0800"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 08 14:09:10 2016 -0800"
      },
      "message": "Add back AUDIO_DEVICE_*_STUB to the enum map.\n\nIt has been accidentally removed, and it is used in\naudio_policy.conf on certain devices.\n\nBug: 32740394\nChange-Id: I59a1b44472aeabc87f65c6cee6371ac3647ecf57\nTest: make \u0026 check on the device\n"
    },
    {
      "commit": "913d06c099bd689375483a839e11057ccf284d1c",
      "tree": "25d7f40231f47897013b0984348f40bf05b72ea7",
      "parents": [
        "267e07cd8432679bcdd72b0bdf38846446c1c4ed"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Nov 01 12:49:22 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Nov 07 09:29:37 2016 -0800"
      },
      "message": "Move TypeConverter into a shared library\n\nThis will be needed for the default implementation of the audio HAL\nin TREBLE for parsing supported formats etc. provided by HAL in\na form of string literals.\n\nAs a bonus, remove some hand-written type conversions in AudioFlinger\nused in dumps.\n\nExample changes in the dump output:\n\n   HAL format: 0x1 (pcm16) \u003d\u003d\u003e HAL format: 0x1 (AUDIO_FORMAT_PCM_16_BIT)\n   Processing format: 0x5 (pcmfloat) \u003d\u003d\u003e Processing format: 0x5 (AUDIO_FORMAT_PCM_FLOAT)\n   Output device: 0x2 (SPEAKER) \u003d\u003d\u003e Output device: 0x2 (AUDIO_DEVICE_OUT_SPEAKER)\n   Input device: 0 (NONE) \u003d\u003d\u003e Input device: 0 (AUDIO_DEVICE_NONE)\n   AudioStreamOut: 0x... flags 0x6 (PRIMARY|FAST) \u003d\u003d\u003e\n       AudioStreamOut: 0x... flags 0x6 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n\nTest: make \u0026 run\nChange-Id: I9cde640e6827b7aa6d62e9caade9e738227e299f\n"
    },
    {
      "commit": "bf2e61f54c7dcc37c97b4908c9ed6871cf3d2b49",
      "tree": "c7630795f1623d784fb17e1e129fdd93bdabea6e",
      "parents": [
        "1e4d737fcd3129f3b3cf29499f344b42219c6bc7",
        "559d439c6fe8679e3c52f1cf265d46d7d2e65b68"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Oct 24 16:52:08 2016 +0000"
      },
      "message": "Merge \"Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\""
    },
    {
      "commit": "559d439c6fe8679e3c52f1cf265d46d7d2e65b68",
      "tree": "9e23625c0b55e45e79842d6605e027dba01f0fe0",
      "parents": [
        "bd0f59e493dbd67d1871b243ddad9cce3b50d7ce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:42:57 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Oct 19 18:19:29 2016 +0000"
      },
      "message": "Use audio_patch_handle_t in startAudioSource() and stopAudioSource()\n\nBug: 27903060\nChange-Id: Iafc2095f484b74978c6f080c54f548e293bf945e\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": "65fb65678345f03f38771523b7020f6777eff5c4",
      "tree": "73b42913d08115480cbbbe1b6897917f4c1ae6a2",
      "parents": [
        "9a79c8f84a6de3b942c6b0a347aece7ecb7daed5",
        "388360c786cdcbec650b79db65c734b8952dfec0"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 18 16:01:15 2016 +0000"
      },
      "message": "Merge \"Brush up audio parameters usage\""
    },
    {
      "commit": "388360c786cdcbec650b79db65c734b8952dfec0",
      "tree": "a3ba18b19471046dddb8218a1461269b101bd1e0",
      "parents": [
        "61a4fac2e3ec271241e3a4f405d7357b7f6ca4c2"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Mon Oct 17 17:09:41 2016 -0700"
      },
      "message": "Brush up audio parameters usage\n\nIt is preferred to use the constants from AudioParameter\n(which can now serve as an abstraction layer similar to libaudiohal).\n\nGrepped for usages of defines and just string values\nand replaced with references to AudioParameter.\n\nSince the parameter definitions are being moved to system/audio.h,\nupdate includes in AudioParemeter and stagefright Utils.\n\nChange-Id: I2addb983707d866b16f39d45d0e14b802595e292\nTest: make\n"
    },
    {
      "commit": "e7557336920ca7e7d53e8ccc03d23359b41957af",
      "tree": "d9c490d2ba3d28176436b5d0374248322f0a349d",
      "parents": [
        "aadc29b910a22c1d2b422d5a96faef07dfc97292"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 17 15:12:12 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 17 15:23:03 2016 -0700"
      },
      "message": "Remove executable bit from ordinary files\n\nTest: builds OK\nChange-Id: I7912c9c9c85dc500d33698fc174ba2a0db387407\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": "f7c50104b07091880019f4ecc70d977961148268",
      "tree": "4e6d9fe3a5b9d66723385205ef54afd845e183be",
      "parents": [
        "00c553db3e9c486b016fa030be00f5b53c6b0b8e",
        "a3de77f1a7c994cdf53d10889d78d69c36fc85f3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 15:19:43 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 15:21:20 2016 -0700"
      },
      "message": "resolve merge conflicts of a3de77f to master\n\nChange-Id: Idb3346465ee7f47d95fd24e2dafdd66f3759c1be\n"
    },
    {
      "commit": "a3de77f1a7c994cdf53d10889d78d69c36fc85f3",
      "tree": "d7d7160dc9e267941fae40d7db40a091e6927edf",
      "parents": [
        "6011acd88b95931f8c5ed471f479c8ae18435eea",
        "9080e1791189a56c042286c5908760e4a46446b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 30 19:35:18 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Sep 30 19:35:18 2016 +0000"
      },
      "message": "audio policy: fix capture indication to sound trigger service. am: 271a93e924\nam: 9080e17911\n\nChange-Id: I2131473eb29d7896cad0d1459807214d89b0d754\n"
    },
    {
      "commit": "271a93e924f46ccaf3f76a8fc38685afea40d3ee",
      "tree": "04c7e4d6c5315966d32b5c991ec9faba70cd77cd",
      "parents": [
        "429a052c35e3cca601889b12dd34edbd61eda61d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 14:47:06 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 29 14:47:06 2016 -0700"
      },
      "message": "audio policy: fix capture indication to sound trigger service.\n\nOnly indicate active capture to sound trigger service\nwhen capturing from primay HW module.\n\nBug: 31826453\nBug: 31771879\nChange-Id: Idf92393d3e7dbf926b847ab23f670e7ab5dd5248\n"
    },
    {
      "commit": "ad477fed3d696cd5e27da4d281fcff3d2a83e862",
      "tree": "3c6d40efa5da0bcf4303296e8c0e71032f4e4483",
      "parents": [
        "634d3a4ec85970ea8232756c5e4c6d757ddcacd6",
        "2e97f1eea42fc4acdec6094c552552447a29c24f"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Sat Sep 10 17:30:26 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 10 17:30:26 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in audioflinger, audiopolicy.\" am: 9c9bad3c8d am: f7dc6d0df1 am: 5848eb65f6\nam: 2e97f1eea4\n\nChange-Id: I482687030a0ca02e61f68554b10515450dff1043\n"
    },
    {
      "commit": "2e97f1eea42fc4acdec6094c552552447a29c24f",
      "tree": "32e2ff3892b70a1793500c44198c9145b39c91ab",
      "parents": [
        "71f5bdbf2f2335c25d6545e58c141342ce62a6aa",
        "5848eb65f6ced6bb9ada57223bdbc416602d6f6c"
      ],
      "author": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Sat Sep 10 17:19:48 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Sep 10 17:19:48 2016 +0000"
      },
      "message": "Merge \"Fix google-explicit-constructor warnings in audioflinger, audiopolicy.\" am: 9c9bad3c8d am: f7dc6d0df1\nam: 5848eb65f6\n\nChange-Id: Ifdd4b164f9d8ad5fa1f285dc3ecda7faadb3cd72\n"
    },
    {
      "commit": "34f28cbb1d52348deb8dc868530eae2b3f22931e",
      "tree": "397de51c6f9c023df5bd33c4ff59af81dfe6a2f5",
      "parents": [
        "1567662f5a709398004cf509fb3f382f0c76f5b1"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:18:27 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Mon Aug 29 14:18:27 2016 -0700"
      },
      "message": "Fix google-explicit-constructor warnings in audioflinger, audiopolicy.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I3b73f0cd73f47be7735cc374306c02301c20588f\n"
    },
    {
      "commit": "5ca8f32280377dd923e72c3c6bd3994217461b8b",
      "tree": "b5146ce7885539d8b002d3270346f574e3965711",
      "parents": [
        "7aeb8c8d4437eb8f45be3ad3828764795e14ad4c",
        "63ef5a38f82d22c1f97922fe490a1fd336566d5c"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Aug 10 23:53:01 2016 +0000"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master am: df5d9246f9\nam: 63ef5a38f8\n\nChange-Id: I516a43c5e56323e99ad7a8ca2e4811b77c9704f4\n"
    },
    {
      "commit": "df5d9246f9607b1c2f8b134c46a05af06e206da3",
      "tree": "7cd9fcb42c86c8cfe950db239e21e8b5ece98369",
      "parents": [
        "7ad2854adc0abe8dd7909a6ed401107ad09bc3d2",
        "fd923e7fe2779bcd69d79471b8c30c8b98918f62"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 15:40:39 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 16:10:32 2016 -0700"
      },
      "message": "resolve merge conflicts of fd923e7 to stage-aosp-master\n\nChange-Id: I75b44b89bae41197a1fd68362d20b8ba2b4dd192\n"
    },
    {
      "commit": "e964d4e421e2d1ca937227a580c0c837091a11e3",
      "tree": "876478fb4d5b18ddf8ba3b761440e46651b45ecb",
      "parents": [
        "f6d5a13c3a7a84e35e28b9840dde0f29728b6849"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 11:35:57 2016 -0700"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "36d0ca16024820df9a12903d2ac443fabcc180bc",
      "tree": "51e8f285ae66ad7cb922caeb7ba8d5f1d20367e3",
      "parents": [
        "67fbddfdc2cafd63c83d3bb55a2451d4c26f546d"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue Aug 09 14:31:32 2016 -0700"
      },
      "committer": {
        "name": "Chih-hung Hsieh",
        "email": "chh@google.com",
        "time": "Wed Aug 10 17:56:35 2016 +0000"
      },
      "message": "Fix clang-tidy warnings in audio and playerservice.\n\n* Add explicit keyword to conversion constructors.\nBug: 28341362\n* Use const reference type for read-only parameters.\nBug: 30407689\nTest: build with WITH_TIDY\u003d1\n\nChange-Id: I265f3b094e08d5705b506b3fbba51439c134af84\nMerged-In: I265f3b094e08d5705b506b3fbba51439c134af84\n"
    },
    {
      "commit": "d91a420f234e2ec0ccc4d156a56297832e21d4a6",
      "tree": "b9ef2d51e03939fee2f880d2008dbbf005c5c1fb",
      "parents": [
        "f9eb4d2ca8eee725a33618da104f843acd3b6ff5",
        "edab4257fa821c91c6e5a64cda78c9c38ea905c0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Jul 13 21:23:51 2016 +0000"
      },
      "message": "Merge commit \\\u0027885dd7136a999d21219a4cc9034f20ef688c0625\\\u0027 into manual_merge_885dd71\nam: edab4257fa\n\nChange-Id: I04abc72767b31fbdfd6ee82c239fbc4a94421a82\n"
    },
    {
      "commit": "edab4257fa821c91c6e5a64cda78c9c38ea905c0",
      "tree": "856ba650f36f697025823f6a0140ab41e420e942",
      "parents": [
        "5691e5400a9cf7aee4c76ded5db7eed53bfb9c8d",
        "885dd7136a999d21219a4cc9034f20ef688c0625"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 14:18:00 2016 -0700"
      },
      "message": "Merge commit \u0027885dd7136a999d21219a4cc9034f20ef688c0625\u0027 into manual_merge_885dd71\n\nChange-Id: I871b103643cabab183bc24c1ce40930c7a083c79\n"
    },
    {
      "commit": "885dd7136a999d21219a4cc9034f20ef688c0625",
      "tree": "5d8ba3170bb914f8844f70b904bd481f11f47bfb",
      "parents": [
        "88bd73d9acf5011ef40122fa9a1b43195facbe07",
        "fcddb0b73931d207b21bd281a7df3ba2f230a607"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 13 20:44:51 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 13 20:44:51 2016 +0000"
      },
      "message": "Merge \"Enable strict warning checks and fix\" into nyc-mr1-dev"
    },
    {
      "commit": "aca4545ddc6e83d66dda67b1c4894fef6ce451cf",
      "tree": "209d689bb3a7905cfd252ddd735fb53c7eac7af8",
      "parents": [
        "1c8a038b2a8a0a14d9bc2ebaf31ff113d4778af5",
        "dc14a4d146ff4cf1a00b1d2b02646134a31412e6"
      ],
      "author": {
        "name": "Ricardo Garcia",
        "email": "rago@google.com",
        "time": "Tue Jul 12 23:31:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 23:31:33 2016 +0000"
      },
      "message": "Merge \\\\\"Fix to usage of upper bound value in volume curve\\\\\" into nyc-mr1-dev am: e37b911fbf\nam: dc14a4d146\n\nChange-Id: Iab9da655cae8055278d76f3853dab903e0efe058\n"
    },
    {
      "commit": "dc14a4d146ff4cf1a00b1d2b02646134a31412e6",
      "tree": "087690d7bf484e31b60ea25106133a0f4b1d5014",
      "parents": [
        "404b6e6ee588af71d19fe8a4ffc8092d59c3396d",
        "e37b911fbf70c15c652db8585bca2a5f035d9def"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 23:28:04 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 23:28:04 2016 +0000"
      },
      "message": "Merge \\\"Fix to usage of upper bound value in volume curve\\\" into nyc-mr1-dev\nam: e37b911fbf\n\nChange-Id: Ibd302c8ef01a6f4ad81b4d9da226b9cdee8d6a9c\n"
    },
    {
      "commit": "d362a52b836ebc2a12620b6f1932ae042a81d2e7",
      "tree": "f5ca60ed5d7f3bab8a42e9c0228d44d6a17300a7",
      "parents": [
        "b28d6117a5a63fd673a38be12e7e48bc65b05ad3"
      ],
      "author": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 14:56:41 2016 -0700"
      },
      "committer": {
        "name": "rago",
        "email": "rago@google.com",
        "time": "Tue Jul 12 15:49:00 2016 -0700"
      },
      "message": "Fix to usage of upper bound value in volume curve\n\nBug: 29627411\nChange-Id: Iffe3bf69bf4b49cd76ffe00b16ebce1ab81c4631\n"
    },
    {
      "commit": "1229ae8317797917ebd14c9f46debcb9d5f44c6a",
      "tree": "301b61549b10568219be4360485382e1a944f817",
      "parents": [
        "fa6c8ebc60da3d704237606b7764a3be24393c21",
        "f517d276a8bfe4034106abf8009fcd6cc28a0838"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 12 01:46:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Jul 12 01:46:37 2016 +0000"
      },
      "message": "Merge \\\\\"Add Dolby TrueHD audio format\\\\\" into nyc-mr1-dev am: 5cc2e814ac\nam: f517d276a8\n\nChange-Id: I9e210b1d143b01301c798dfe705a7493cc828be5\n"
    },
    {
      "commit": "fcddb0b73931d207b21bd281a7df3ba2f230a607",
      "tree": "f9b35ea1d18407f17cd1fd10d9365867abbed823",
      "parents": [
        "f81362f6cd1bb22f988c30e6b552e6a2d95c4de7"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jul 08 17:19:25 2016 -0700"
      },
      "message": "Enable strict warning checks and fix\n\nChange-Id: Id401a937911eb418e93314812f2f7c2b5ecff8d6\n"
    },
    {
      "commit": "f517d276a8bfe4034106abf8009fcd6cc28a0838",
      "tree": "2d77ea833d13daaa1712efd3bc9d950fbf205165",
      "parents": [
        "55943ae68e72b362ba701f9e39e3dd50167a9e9c",
        "5cc2e814acac142c77eed4e9b8d954623be8965c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Jul 08 23:13:19 2016 +0000"
      },
      "message": "Merge \\\"Add Dolby TrueHD audio format\\\" into nyc-mr1-dev\nam: 5cc2e814ac\n\nChange-Id: Ib3561d806b00c949789f463c4609844399bb7095\n"
    },
    {
      "commit": "e30f20963751c07860bfbc92b5ff8948fc55797f",
      "tree": "fbff4f6bdf23e1ca3a7fc8270559dfe4f3a62eac",
      "parents": [
        "b343e0444a3420321c606a827347f18445d76385"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 07 18:56:57 2016 -0700"
      },
      "message": "Add Dolby TrueHD audio format\n\nAlso add missing formats in AudioFlinger string conversion\nutility.\n\nBug: 30024357\nChange-Id: I75bdb54daeb786543f545ec3a772121055e01cdb\n"
    },
    {
      "commit": "bf29173d6d63536ae9f8cfd1d02153237ee23612",
      "tree": "3f6fe33288711b73e8683d671a57860d6f14219d",
      "parents": [
        "0603c5dfc34923095218307674a60429bfa5873a"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Tue May 17 15:16:07 2016 -0700"
      },
      "message": "Fix misc-macro-parentheses warnings.\n\nBug: 28705665\nChange-Id: I97d1dec9a4397fd7a3cab5180a833066b8abe0ab\n"
    },
    {
      "commit": "7b5ee5765f5632c36932d4630891936efd255270",
      "tree": "00803c93f0f1e912a106dbb0d7ab8088643c27bf",
      "parents": [
        "f23148a358aeb8f8f76d9568134ff79cf4aa0890",
        "6b6f366cb1daacbce97b865515e839a0fcc9da53"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:28:24 2016 +0000"
      },
      "message": "Merge \"Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev am: f3aaf48fe2 am: 19665dc930\" into nyc-mr1-dev-plus-aosp\nam: 6b6f366cb1\n\n* commit \u00276b6f366cb1daacbce97b865515e839a0fcc9da53\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8f0318371882609d0da69c64de2a4e053177a9b3\n"
    },
    {
      "commit": "19665dc9307e9b18f188dea4001fe24adbda4500",
      "tree": "f6230e84031e9cdb8fb505510301e343d258de32",
      "parents": [
        "2362982a1d5ec938a296d7ec2c247490f0db5dc3",
        "f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Apr 21 18:23:44 2016 +0000"
      },
      "message": "Merge \"audio policy: fix regression in getDeviceConnectionState().\" into nyc-dev\nam: f3aaf48fe2\n\n* commit \u0027f3aaf48fe2ca7f9886f1e4d00db16c575e9a97c9\u0027:\n  audio policy: fix regression in getDeviceConnectionState().\n\nChange-Id: I8274672487d9f627277edd379b7f4b04d94749a5\n"
    },
    {
      "commit": "6163904559247601e9a0834a3c09341862bcff95",
      "tree": "1c572f9940d18e5f11ae908d564a16f66449aa33",
      "parents": [
        "eb03cbae99cc907b26fe95ec2c6562d7daef53cc"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 20 18:09:48 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Wed Apr 20 18:13:38 2016 -0700"
      },
      "message": "Symbolize flags of IOProfile in dumps\n\nSample symbolization:\n\n - flags: 0x0006 (AUDIO_OUTPUT_FLAG_PRIMARY|AUDIO_OUTPUT_FLAG_FAST)\n - flags: 0x0008 (AUDIO_OUTPUT_FLAG_DEEP_BUFFER)\n - flags: 0x0031 (AUDIO_OUTPUT_FLAG_DIRECT|AUDIO_OUTPUT_FLAG_COMPRESS_OFFLOAD|AUDIO_OUTPUT_FLAG_NON_BLOCKING)\n - flags: 0x0104 (AUDIO_OUTPUT_FLAG_FAST|AUDIO_OUTPUT_FLAG_RAW)\n\nChange-Id: Id155cffea4e1defb1e0c2c1d24b869d4151b14e3\n"
    },
    {
      "commit": "634b71478742310960f3fdb4241e70a0735712c4",
      "tree": "7a44f5a447a8b37db668b6b88b8d3a29d0e85c95",
      "parents": [
        "eb7f3940044effc6a8b313a73134b5cc2156068c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 13:48:02 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 20 16:45:57 2016 -0700"
      },
      "message": "audio policy: fix regression in getDeviceConnectionState().\n\nFix problem in DeviceVector() device search logic causing\nfailure to report connection of devices when no address is provided\n(e.g when called from AudioManager.isBluetoothA2dpOn()).\n\nBug: 28286051\nChange-Id: I7ca732e195d2ddcdc1a93b78aed21523b3461aa9\n"
    },
    {
      "commit": "0d6a03301d77724c00c7a9ce7b8c123092d07a19",
      "tree": "e3c693830eeff3c15fe52efbfc860c657647df8d",
      "parents": [
        "ec39d648229ac2bdf14688077cf6433c911fc7e7"
      ],
      "author": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 19 17:12:38 2016 -0700"
      },
      "committer": {
        "name": "Mikhail Naganov",
        "email": "mnaganov@google.com",
        "time": "Tue Apr 19 17:54:23 2016 -0700"
      },
      "message": "Small improvements in audio_policy dump\n\n 1. Introduce a formatting helper for audio_mode_t, use it.\n 2. Get rid of mSize in TypeConverter.\n 3. Convert to a string unknown enum values.\n\nChange-Id: I8fc222225c2dd48dea715bb3fe4ecb3f1eaecc46\n"
    },
    {
      "commit": "54840ea273edb58259cb592992d95eb718327b23",
      "tree": "63e06d5bb8e3ec203f6eb0fd3d902d12f5cbd01e",
      "parents": [
        "a70461cbf0c09aec396f7d24f8ab58339becc904",
        "7ffe507c702f2968075038a195f338ea4d2e646a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 18:11:01 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 18:11:01 2016 +0000"
      },
      "message": "fix the build am: 0631aee am: 9ce4e24\nam: 7ffe507\n\n* commit \u00277ffe507c702f2968075038a195f338ea4d2e646a\u0027:\n  fix the build\n\nChange-Id: I45b1ce57e6036d19b578619d1be450173720a344\n"
    },
    {
      "commit": "9ce4e2408a809fdfa63d56c92581ba3aed22e5cb",
      "tree": "de298081cbdfdd161c61b5945af71c9d1ec28051",
      "parents": [
        "8731a0a7b991470156db4dfa021be38f6b73eb8c",
        "0631aee95c5a98fb2dc0a45f093f9bd0cfbe463f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 18:03:27 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 18:03:27 2016 +0000"
      },
      "message": "fix the build\nam: 0631aee\n\n* commit \u00270631aee95c5a98fb2dc0a45f093f9bd0cfbe463f\u0027:\n  fix the build\n\nChange-Id: Iea66707492737a300f8905604bde4d1a629dd92c\n"
    },
    {
      "commit": "0631aee95c5a98fb2dc0a45f093f9bd0cfbe463f",
      "tree": "90e669c0722b1172a96008c857ce366f182f6de9",
      "parents": [
        "8111860ba116d84034b2aa21445feec71c65a9d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 10:48:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 10:48:57 2016 -0700"
      },
      "message": "fix the build\n\nFix the build for platforms using legacy audio_policy.conf file\nbroken by commit 5a2b6298.\n\nChange-Id: Icb9c8027b1a8163d19162f311ec1364da7383a2c\n"
    },
    {
      "commit": "cc607b16f0178fd1aeb0da680d21fd7eb1d91b1c",
      "tree": "351886a9aabf5fe94e8f39a3affac5299a7c96b6",
      "parents": [
        "29eba348907e6603dd4de4b997fb261af70c6118",
        "010b235b26dea3913374b688939120f2542c0225"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:25:08 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:25:08 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev am: 8111860 am: 21c4ffc\nam: 010b235\n\n* commit \u0027010b235b26dea3913374b688939120f2542c0225\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: I949c911c89f8171aabe6f550628cf6c3d1329400\n"
    },
    {
      "commit": "010b235b26dea3913374b688939120f2542c0225",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "fd9003de5d25f05405aa326f43514c4c75618d58",
        "21c4ffc9af1b6c8663a075bc5cf4d447288be7ef"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:18:49 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev am: 8111860\nam: 21c4ffc\n\n* commit \u002721c4ffc9af1b6c8663a075bc5cf4d447288be7ef\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: I2bef297f529f40e7b900f659c9b56b6898d6e027\n"
    },
    {
      "commit": "8731a0a7b991470156db4dfa021be38f6b73eb8c",
      "tree": "f8e67b2376f599ed9883d8f8d3b1725b22b21aa3",
      "parents": [
        "eb059113754c54b178d6de6feec13daadd244672",
        "8111860ba116d84034b2aa21445feec71c65a9d4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Apr 19 17:15:19 2016 +0000"
      },
      "message": "Merge \"audio policy: support platforms with no audio devices\" into nyc-dev\nam: 8111860\n\n* commit \u00278111860ba116d84034b2aa21445feec71c65a9d4\u0027:\n  audio policy: support platforms with no audio devices\n\nChange-Id: Iae933bddfccc3955c1cc93a1418accb0c0ca12e7\n"
    },
    {
      "commit": "5a2b62984c7cecd1761fe272c078dd814c167942",
      "tree": "e93fb96c43df88df2f05f23cb1160ecd91aead7b",
      "parents": [
        "bc0c73e05ec935bc478ee0e40aee79f80771a482"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 14 18:05:57 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Apr 18 18:35:02 2016 -0700"
      },
      "message": "audio policy: support platforms with no audio devices\n\nRemove requirement to declare an AUDIO_DEVICE_OUT_SPEAKER device\nfor platforms without audio output.\n\nBy convention:\n- platforms without audio output should declare a single output\ndevice of type AUDIO_DEVICE_OUT_STUB also declared as default\noutput device\n- platforms without audio input should declare a single input\ndevice of type AUDIO_DEVICE_IN_STUB\n\nPlatforms with no audio at all can use stub audio policy configuration\nfile and audio HAL with the following instructions in device.mk file:\n\nUSE_XML_AUDIO_POLICY_CONF :\u003d 1\nPRODUCT_PACKAGES +\u003d \\\n    audio.stub.default\nPRODUCT_COPY_FILES +\u003d \\\n    frameworks/av/services/audiopolicy/config/audio_policy_configuration_stub.xml:system/etc/audio_policy_configuration.xml\n\nBug: 25075342\nChange-Id: Id700978559427edd3c7cc38d98f2fd52928367ed\n"
    },
    {
      "commit": "45207c0d0b57466b6c3f1205c68241bd7de0c4f0",
      "tree": "23831214a289f6a956220b9f6fa6e75fd7416e4c",
      "parents": [
        "57c038bce51f07cd07f62a9935ef406ab0e2034e",
        "6ce2b341c52cf9daa01a7fc44173cb5ddeff8845"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 19:42:15 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 19:42:15 2016 +0000"
      },
      "message": "Merge \"resolve merge conflicts of cecb297 to nyc-dev-plus-aosp\" into nyc-dev-plus-aosp\nam: 6ce2b34\n\n* commit \u00276ce2b341c52cf9daa01a7fc44173cb5ddeff8845\u0027:\n  Express libmedia dependencies in libaudiopolicycomponents\n\nChange-Id: Id6821f83e40d54c28b2f008b6e217a30a20cf41a\n"
    },
    {
      "commit": "b30195c378a5f299b62f3781a7ae94f7111ede6f",
      "tree": "84488b43aec950038e165f4381748ebce93a7be2",
      "parents": [
        "7fa9e2a24d4e17429d64eadb996e8780e5c5c399",
        "cecb2973c3267869d92f681776e5e453341740b1"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 11:56:35 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Wed Apr 13 11:56:35 2016 -0700"
      },
      "message": "resolve merge conflicts of cecb297 to nyc-dev-plus-aosp\n\nChange-Id: I2c5ab9e73733b4d259fe0f242087ee9ef97143f2\n"
    },
    {
      "commit": "53a27325e775a775b552596d2274e32ea4e89c0b",
      "tree": "bad7269e84418175fd574a5a34ba62b987431067",
      "parents": [
        "3a618bb66d242e2e7686c4b8f0903e055668191c",
        "dbe477af33cee467480f171d2765d958ac162d6e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 13 01:52:05 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Apr 13 01:52:05 2016 +0000"
      },
      "message": "audio policy: fix call audio over 24 bit USB device am: 8ae7312\nam: dbe477a\n\n* commit \u0027dbe477af33cee467480f171d2765d958ac162d6e\u0027:\n  audio policy: fix call audio over 24 bit USB device\n\nChange-Id: I405aa268b7e751b55307afbb54e0ebd57cfef964\n"
    },
    {
      "commit": "8ae73129e7e79d826b293238c2f037f723d0e6e8",
      "tree": "a6a5acadaea37f33ccfc316ffd68483951106e29",
      "parents": [
        "aff4e460d4cf278909316412c17c042d7366178f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 12 10:13:29 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Apr 12 17:47:57 2016 -0700"
      },
      "message": "audio policy: fix call audio over 24 bit USB device\n\nTake into account voice RX source device properties when\nconfiguring the audio patch bridging the voice RX device\nto the USB output device.\n\nBug: 25643110\n\nChange-Id: I06f282d3cc12493f21500bf9ab35a3ceb93f14af\n"
    },
    {
      "commit": "5b943ddceaea9bef36894608c654f648b0bf88d4",
      "tree": "bb24323d73b3b38c034c32508945ae46cf4c4148",
      "parents": [
        "03ffee7391505d8c6565a4ef691119dcf18ecc9e"
      ],
      "author": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 16:51:14 2016 -0700"
      },
      "committer": {
        "name": "Christopher Wiley",
        "email": "wiley@google.com",
        "time": "Tue Apr 12 16:51:14 2016 -0700"
      },
      "message": "Express libmedia dependencies in libaudiopolicycomponents\n\nAlthough this library does not itself need to be linked with libmedia,\nconsuming libraries need access to libmedia\u0027s headers when they consume\nthe public interface to this library.\n\nBug: 27804373\nTest: Compiles.\n\nChange-Id: I03b4404914c9930093a20e8293d9034b84d85ca9\n"
    },
    {
      "commit": "6820e1c04fb0a7734663b8f44f09c69fdcf36ab6",
      "tree": "179c8913bb8eb6a62eab03102d24f30bfddf14ed",
      "parents": [
        "ac4311b869febc090e2d0a99ceae0896a50973d1",
        "85f9913f4a9f89ad23970139141e4dd4d4a63d4f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 09 05:45:22 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Apr 09 05:45:22 2016 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Tally max effects memory usage\" into nyc-dev am: da65b5a\nam: 85f9913\n\n* commit \u002785f9913f4a9f89ad23970139141e4dd4d4a63d4f\u0027:\n  AudioPolicyManager: Tally max effects memory usage\n\nChange-Id: Iec7365fa0552edd82feeb41b4072140e838e178f\n"
    },
    {
      "commit": "bb7db7bf6c482e223e1f7eab79e22e18a1548e7a",
      "tree": "e47d534fd75722208421446adb46a53cd7336b63",
      "parents": [
        "3390c1b2380647c01f5ef8fb61f992bc833f3534",
        "4cc293f24f37f6fc60a208956cf9c48f5d3cc978"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Apr 09 05:45:20 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Sat Apr 09 05:45:20 2016 +0000"
      },
      "message": "Merge \"audio policy: fix volume burst on user switch.\" into nyc-dev am: 0fd0d0c\nam: 4cc293f\n\n* commit \u00274cc293f24f37f6fc60a208956cf9c48f5d3cc978\u0027:\n  audio policy: fix volume burst on user switch.\n\nChange-Id: I3a4d410ce9e995070ddd5849be27bccbd4f35fb4\n"
    },
    {
      "commit": "da65b5a3502ae06a65f09d9983c89b7fd9369316",
      "tree": "09c5c56c9c89833b186b9e273ad8794982b8b4aa",
      "parents": [
        "c280a25f5a7d36bc2f395c2e6c294d62785ca276",
        "5f1fa3053c87dd8e9dc528fb8c101907ff747746"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Sat Apr 09 04:56:47 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Apr 09 04:56:48 2016 +0000"
      },
      "message": "Merge \"AudioPolicyManager: Tally max effects memory usage\" into nyc-dev"
    },
    {
      "commit": "0fd0d0c1e33303d2a2cbce23dabc13f7036d108e",
      "tree": "c949852e74d0518f31eb8ce529046cb6443c07dd",
      "parents": [
        "4e1e0c4713d2c6367c264b88cc37b78013d05fc6",
        "1fd372e40ef40643fa9d036a0c9db043475b1b02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 08 21:36:10 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 08 21:36:12 2016 +0000"
      },
      "message": "Merge \"audio policy: fix volume burst on user switch.\" into nyc-dev"
    },
    {
      "commit": "5f1fa3053c87dd8e9dc528fb8c101907ff747746",
      "tree": "ef2e386e2b54797bc98aeeea7a6763b0871217d0",
      "parents": [
        "4d363d4625588bf2007d31c244c83b0965d834b4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 05 17:02:11 2016 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 08 12:47:53 2016 -0700"
      },
      "message": "AudioPolicyManager: Tally max effects memory usage\n\nBug: 27925014\nChange-Id: I6d2596ed1b10ff193babeba7e6cbec36ee4fe074\n"
    },
    {
      "commit": "dfc74e192e73ac455fbe40263feab6b2e2b22e6f",
      "tree": "cda094a1c2018b74e6b09a19fd49486f8b68dbcf",
      "parents": [
        "ee8b78e4775dee03fb35ce7a162d3f60b8d69308",
        "8a3bdef5ba9e2d2d584ec899b34e87485ba3f3d2"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Apr 08 00:32:16 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Apr 08 00:32:16 2016 +0000"
      },
      "message": "Merge \"AudioProfile: reject profile if not exact match\" into nyc-dev am: 600793b\nam: 8a3bdef\n\n* commit \u00278a3bdef5ba9e2d2d584ec899b34e87485ba3f3d2\u0027:\n  AudioProfile: reject profile if not exact match\n\nChange-Id: Ia19d213215d59c48499dbd83c556e98a1048c38f\n"
    },
    {
      "commit": "1fd372e40ef40643fa9d036a0c9db043475b1b02",
      "tree": "d19358826e2cbc835b3a9a05ef8429e6b590fa14",
      "parents": [
        "7f688edcace6c7abc9ef566669c4511849ad2493"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 06 14:23:53 2016 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 07 13:55:19 2016 -0700"
      },
      "message": "audio policy: fix volume burst on user switch.\n\nFix two main problems in setStreamVolumeIndex():\n\n1) the conventional initialization or user switch behavior consisting in first\napplying volume for AUDIO_DEVICE_OUT_DEFAULT device which resets all volumes\nand then apply device specific volumes is problematic: if this is done while\na stream is active, it will temporarily reset the volume to its default\n(usually loud) and then back causing an audible glitch.\n\n2) The logic consisting in applying the requested volume to all outputs with a\ndevice selected by the routing strategy corresponding to the requested stream\nis problematic: it will cause device specific volumes for other devices than\ncurrent one to be applied to active streams.\nRestrict the logic to cases of multiple device selections including the\nrequested device.\n\nBug: 27557733\n\nChange-Id: Ia14cd51766a7516c42221abff76843d47699105f\n"
    },
    {
      "commit": "2cc2a03319144bcebac5a9693319776afc471307",
      "tree": "4b9bc13ba29115614640ed9be20045c827217461",
      "parents": [
        "7f688edcace6c7abc9ef566669c4511849ad2493"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 06 16:41:39 2016 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Wed Apr 06 17:03:13 2016 -0700"
      },
      "message": "AudioProfile: reject profile if not exact match\n\nIn AudioProfile.cpp, the checkExact() function was treating dynamic_channels as a wildcard.\nSo 5.1 would match even if there were no channel masks listed as supported.\n\nBug: 25144047\nChange-Id: I3036dca7e0ed92579b1ac7a3cf8504b0e47b7ed5\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "fc732a63bd8c8c62ce75f36f03088ca6727caece",
      "tree": "046c0d9a3a9111de265c98ec822dd38119f59a0f",
      "parents": [
        "d9114cbe50b4a7be06c738581879c9a19f1d39ee",
        "b9b9fa3d28a0436bb5e267d8fc3626ebd820fe78"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 22:15:42 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Mar 29 22:15:42 2016 +0000"
      },
      "message": "Merge \"Use audio_module_handle_t and audio_patch_handle_t consistently\" into nyc-dev am: 54b48c3\nam: b9b9fa3\n\n* commit \u0027b9b9fa3d28a0436bb5e267d8fc3626ebd820fe78\u0027:\n  Use audio_module_handle_t and audio_patch_handle_t consistently\n\nChange-Id: I100c4795ec6d0d9e9c23d6e850303a23f3bfb603\n"
    },
    {
      "commit": "a13cde98a880341f0a56d91da6364b093fb5d24e",
      "tree": "3974215c7cc52f2136c04e3e38568e0483c03129",
      "parents": [
        "45993ad8833063a50af83f76ec1ddeba673b5277"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 28 15:26:02 2016 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 29 13:43:18 2016 -0700"
      },
      "message": "Use audio_module_handle_t and audio_patch_handle_t consistently\n\nBug: 27814144\nChange-Id: I54b7a73ec318779fd3addb060998f4d94141152d\n"
    },
    {
      "commit": "f00f15315312da70c7cad64aeaaa25fe3de92cea",
      "tree": "d9fe989c84fe249ea287c528d82a1734925b51dc",
      "parents": [
        "ce00fe384b19824772a750d924424fc0ddf3ae0b",
        "389afff15358113511f6ab8b93729d4117e96ab3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 25 03:29:33 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 25 03:29:33 2016 +0000"
      },
      "message": "Merge \"RENDER dynamic policies: fix address check\" into nyc-dev am: fdb90f3\nam: 389afff\n\n* commit \u0027389afff15358113511f6ab8b93729d4117e96ab3\u0027:\n  RENDER dynamic policies: fix address check\n"
    },
    {
      "commit": "fdb90f355b269737fe48a2da0593b37d5c2b83c1",
      "tree": "8bb77d55bad3dac443b203a2d24b02e6d2183907",
      "parents": [
        "478b2521f5defb356b0dd44313288852b2c5e0ee",
        "5ac8cd425e1a0c4287c0bb84f922fef4fa106411"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 25 03:21:28 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 25 03:21:29 2016 +0000"
      },
      "message": "Merge \"RENDER dynamic policies: fix address check\" into nyc-dev"
    },
    {
      "commit": "5ac8cd425e1a0c4287c0bb84f922fef4fa106411",
      "tree": "55138cd920d8b6b4af546fc1e9893cc851d509b2",
      "parents": [
        "a8d309df2f603767c0f0ad9248aef47a5b6ed5b8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 24 16:35:36 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 24 16:55:59 2016 -0700"
      },
      "message": "RENDER dynamic policies: fix address check\n\nFix mix / output address comparison when registering dynamic\n  policy mixes with a MIX_ROUTE_FLAG_RENDER flag.\nFix mix registration code path where the matching output is\n  not found, but no error is reported.\nImprove logs.\n\nBug 25448664\n\nChange-Id: I3679aead00304b38f7cc42dd9083644450771a15\n"
    },
    {
      "commit": "8598e8fdb28c664905ec646b68e4af1452a0e438",
      "tree": "c6fd136d690664c648b808c65ca897bcb909dac9",
      "parents": [
        "2622c5e0b4abe3849ba4cb3b70e6032a04eb8c4a",
        "73ea4299306f18ae7e8ee1deff00933522abccbf"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 18 20:31:06 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Mar 18 20:31:06 2016 +0000"
      },
      "message": "Merge \"Update audio services for 64 bit compilation\" into nyc-dev am: 560a198\nam: 73ea429\n\n* commit \u002773ea4299306f18ae7e8ee1deff00933522abccbf\u0027:\n  Update audio services for 64 bit compilation\n"
    },
    {
      "commit": "560a198f1f95a085e24944b20df536e75e21cedb",
      "tree": "bdecbf10f8294847938d4b0baa5dcf1a8ca3f9a8",
      "parents": [
        "c40fcb01669240e9c1a6af74bcb0fcd85147fa87",
        "8fa2697e21c61998f78c346251d2c08f77d720ea"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Mar 18 20:23:25 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 18 20:23:26 2016 +0000"
      },
      "message": "Merge \"Update audio services for 64 bit compilation\" into nyc-dev"
    },
    {
      "commit": "8fa2697e21c61998f78c346251d2c08f77d720ea",
      "tree": "17e06c62a4e47b816e63cf5fbae0907fbb2efb5f",
      "parents": [
        "7e258e85368ccc8e714235a22206527090685a9b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 03 13:19:27 2016 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 17 18:06:46 2016 -0700"
      },
      "message": "Update audio services for 64 bit compilation\n\naudioserver still runs in 32 bits\n\nBug: 27479136\nChange-Id: I99ac607e4ce006a87abc2a3f838023e00ef78647\n"
    },
    {
      "commit": "dd9c82ae89985ca87a087e86c7f632a29f86601b",
      "tree": "04a6f77deb1addf2743f7cef3b7d44244b79c5a5",
      "parents": [
        "9eefe579117e17200645d662206210a3c722fee4",
        "9462ca1f5a54b9dc40ad0cddb56696dd7180020f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 17 11:43:49 2016 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 17 11:43:49 2016 -0700"
      },
      "message": "resolve merge conflicts of 9462ca1 to master\n\nChange-Id: I7643b8dd1a4ec40b6e8fd8c824bf03afbbeac170\n"
    },
    {
      "commit": "7638ca29e8400a19524adb982e9d22c02786de82",
      "tree": "5d1ef493f79529cd5d5a1cce932c6dec3e5d8e69",
      "parents": [
        "9515aca0c07a32128a65a68749bda3ea6851c109"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 04 17:42:44 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Mar 16 14:28:09 2016 -0700"
      },
      "message": "Dynamic policies: support for device selection\n\nDynamic policy mix: rename \"registration\" field to device address\n  as this reflects the true use of the field.\nAudioPolicyManager: dynamic policy registration differs depending\n  on policy routing flags.\nWhen register a mix with the RENDER flag, iterate over all outputs\u0027\n  patches to find a matching device and address.\n\nBug 25448664\n\nChange-Id: I71584081e7f1b2b5252fb6c4659fdeb464f7d282\n"
    },
    {
      "commit": "27e029a37f6de7bf6ae5eb5a78656d35b0a13f5b",
      "tree": "926f089fd62c1b1518a96f02bb69bf4b29d6047e",
      "parents": [
        "02f025c1906fb73f06ac99a11224d47f93b89ffb",
        "0cc8544c869e379a90e8107f44b0595b74aaec77"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 10 19:23:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 10 19:23:19 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: tighter match for device descriptor query\" into nyc-dev am: 905d50834d\nam: 0cc8544c86\n\n* commit \u00270cc8544c869e379a90e8107f44b0595b74aaec77\u0027:\n  AudioPolicy: tighter match for device descriptor query\n"
    },
    {
      "commit": "f7f85438503e6964aba3ddabd6228e7fefb36735",
      "tree": "7a835f904aeab82d88fc7efab0cd8ddba2329816",
      "parents": [
        "7e258e85368ccc8e714235a22206527090685a9b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 10 09:14:29 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Mar 10 10:17:52 2016 -0800"
      },
      "message": "AudioPolicy: tighter match for device descriptor query\n\nWhen querying a module for a device descriptor, the matching was\n  too \"loose\": if a device type and address was not found, a\n  match was returned for just the device. While this works for device\n  types where only one is connected to the system (e.g. wired headphones),\n  this is an improper behavior for devices such as REMOTE_SUBMIX where\n  multiple are \"connected\" to the DUT, but with different addresses.\n\nBug 27337358\nBug 27336527\n\nChange-Id: I9b6464485da2bedde2d14b624133e02b5a3fa357\n"
    },
    {
      "commit": "551fa9102bb1e9190bcb5853121a94fbad417e21",
      "tree": "86facf32451db8629b777fbfcd2a5c9d741eabe9",
      "parents": [
        "e21a7fc98912cd984fc168bd2a469128dd4ddf42",
        "e4ddfc582a2a86ff0017dbcca6b5e766b4404ad5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 03 02:30:52 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Mar 03 02:30:52 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: capture sample rate 0 is route-specific default\" into nyc-dev am: 1e3acb84fc\nam: e4ddfc582a\n\n* commit \u0027e4ddfc582a2a86ff0017dbcca6b5e766b4404ad5\u0027:\n  AudioPolicy: capture sample rate 0 is route-specific default\n"
    },
    {
      "commit": "05ddca504ce8e0e61b41e5c1aebea72086eea57b",
      "tree": "71137b6ef4df1f294d93d2cedc421b0f85190374",
      "parents": [
        "db52e5e3dc15f7233ccd9c128fe43f2b2f58b29b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 11 08:17:12 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 02 15:17:35 2016 -0800"
      },
      "message": "AudioPolicy: capture sample rate 0 is route-specific default\n\nBug: 25641253\nBug: 21019153\nChange-Id: I7d193640572c08ab5e5f1ecfc8ad6d31635967dd\n"
    },
    {
      "commit": "f0c6d7d940314dbec47c9b53cb99da79eb022787",
      "tree": "d57f65d0aa2cf8e620251ea22c66f7f8c76d1a5a",
      "parents": [
        "cd22ee6aa5a3ce57530f54b60347d655afc87045"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 10:44:04 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 02 00:03:16 2016 +0000"
      },
      "message": "Add use for audio_unique_id_t\n\nBug: 25641253\nBug: 21019153\nChange-Id: I65dc128e760c245f3d90559635a8981b186c87d7\n(cherry picked from commit eeecb980ff4c202d0a3c4b0bfe040dce2f73336d)\n"
    },
    {
      "commit": "eeecb980ff4c202d0a3c4b0bfe040dce2f73336d",
      "tree": "decce0d925acd9efd68f2d540bbabb60c0661c6b",
      "parents": [
        "91afc2297dd1c39302dba6ff68e9839aae27d39a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 26 10:44:04 2016 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 01 08:32:58 2016 -0800"
      },
      "message": "Add use for audio_unique_id_t\n\nBug: 25641253\nBug: 21019153\nChange-Id: I65dc128e760c245f3d90559635a8981b186c87d7\n"
    },
    {
      "commit": "f4d98ed31f2150cc8ad707c6a2cfae8ecf26975e",
      "tree": "7bcf8d84b57fb608cd382e84c217250d18e034c0",
      "parents": [
        "d51b1b247b120c7e49851d923f3c5aa0aa19a787",
        "51f453aac3ebcb0de4036acc9b829f58d27c3ff5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 23:21:54 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Fri Feb 26 23:21:54 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: AudioOutputDescriptor set/get for patch handle\" into nyc-dev am: b3e06a7592\nam: 51f453aac3\n\n* commit \u002751f453aac3ebcb0de4036acc9b829f58d27c3ff5\u0027:\n  AudioPolicy: AudioOutputDescriptor set/get for patch handle\n"
    },
    {
      "commit": "d51b1b247b120c7e49851d923f3c5aa0aa19a787",
      "tree": "b228978bfcb786af075bedaf906908af2ee194b4",
      "parents": [
        "b2396a3991f726f96499ff479737ad7f51f21b86",
        "1e9a65df13859b44b91610ef4cc721155ab5eaa8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 15:13:30 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 15:13:30 2016 -0800"
      },
      "message": "resolve merge conflicts of 1e9a65df13 to master\n\nChange-Id: I7c255d7813805b5ffb0d8e5ecd6fc11ee0b80c8a\n"
    },
    {
      "commit": "b3e06a7592fc189315a90a88cbea66e31c2e6b41",
      "tree": "efdbd4add1809606bf790cb917e28a5110af11c6",
      "parents": [
        "0d035b6057cef680a3755c6a8fc914c483648903",
        "ff155c642fe7d342a3110444c6103f788230af53"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 22:38:02 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 22:38:03 2016 +0000"
      },
      "message": "Merge \"AudioPolicy: AudioOutputDescriptor set/get for patch handle\" into nyc-dev"
    },
    {
      "commit": "0d035b6057cef680a3755c6a8fc914c483648903",
      "tree": "bb507bd896e5503e9791b3303b01c68beff43c21",
      "parents": [
        "ecc8bbbf8a58fe9ab6d6ac41bebe70631a458134",
        "8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 22:37:32 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 26 22:37:34 2016 +0000"
      },
      "message": "Merge \"Send audio patch in recording callback\" into nyc-dev"
    },
    {
      "commit": "ff155c642fe7d342a3110444c6103f788230af53",
      "tree": "5ab784ffde5df4eef154c60b1f8a63f9d5a9ae06",
      "parents": [
        "8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 12:07:16 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Feb 26 12:07:16 2016 -0800"
      },
      "message": "AudioPolicy: AudioOutputDescriptor set/get for patch handle\n\nFor symmetry with AudioInputDescriptor: no direct access to the\n  field for the patch handle.\n\nChange-Id: I5bffecf7a157ec042d749064208bc6c279008542\n"
    },
    {
      "commit": "8c7cf3b7d0d7bccb9affbc34ae2ab2d6b332f972",
      "tree": "2ce1446fe6fe647e3e0dcbcaf82ac45c5551f492",
      "parents": [
        "809aeb1f725beed877887fe1c5ca3430d811b328"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 25 17:08:24 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 25 17:08:24 2016 -0800"
      },
      "message": "Send audio patch in recording callback\n\nRemove direct access to patch handle in AudioInputDescriptor, replace with\n  set / get functions.\nAdd interface for AudioSession to query configuration from enclosing\n  input descriptor.\nWhen input descriptor\u0027s patch handle changes during a recording, propagate\n  the change through the recording notification callback.\n\nBug 26798796\n\nChange-Id: Ia1395d44da7ccfe69ca46877638d1eb49b3935ad\n"
    },
    {
      "commit": "89106d6faf32881a5f8f4fcda9acc4742e4df2cb",
      "tree": "91a1584b7df96b7fca49cc8cd62b9054fd874be8",
      "parents": [
        "b0c09a0d4e9a42edecdebd5a743590d079b867de",
        "462dd3b94adb359ea4e0d95f2d3d84bd5caa92b4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 25 20:53:37 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Feb 25 20:53:37 2016 +0000"
      },
      "message": "Merge \"audio policy: add device for audio bus\" into nyc-dev am: e736431c69\nam: 462dd3b94a\n\n* commit \u0027462dd3b94adb359ea4e0d95f2d3d84bd5caa92b4\u0027:\n  audio policy: add device for audio bus\n"
    },
    {
      "commit": "e736431c69e2a00468d140d2af97b63e0e5aa83a",
      "tree": "e9ac84c22b3e0b473deafb3df0afad84f391b9b0",
      "parents": [
        "5031b2f3ac5223587e48fc8463bec24cb62495ba",
        "58545be2ce4e701c8c37401edcc126a8b683890d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 25 20:19:37 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Feb 25 20:19:38 2016 +0000"
      },
      "message": "Merge \"audio policy: add device for audio bus\" into nyc-dev"
    },
    {
      "commit": "c8d25af1c3c32b7671dbeb967fb86f24fa5fa313",
      "tree": "4cc46f7e8226dcc1f71feb26a005ac9df2df51b7",
      "parents": [
        "fa4cd335a9bae18c852cff8198155a0e6fd3f26e",
        "bce5dfdac0e90701f53e4f8a2c0f5a3c44a0a4ac"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 24 17:18:19 2016 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Feb 24 17:18:19 2016 +0000"
      },
      "message": "Merge \"Send client / device format in recording callback\" into nyc-dev am: f70077e435\nam: bce5dfdac0\n\n* commit \u0027bce5dfdac0e90701f53e4f8a2c0f5a3c44a0a4ac\u0027:\n  Send client / device format in recording callback\n"
    },
    {
      "commit": "7281aa9810b33eff47b00104db26c97c77931611",
      "tree": "1fc5afe0784f22d1ab6507d07708b48b12b1c13d",
      "parents": [
        "eafe1f9734af31730790b0abaf8c6aae01bfee77"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 17 15:33:40 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Feb 23 16:23:45 2016 -0800"
      },
      "message": "Send client / device format in recording callback\n\nBug 26798796\n\nChange-Id: Ib4f64159c8371d87da49a8f0cad9317a87d843c4\n"
    },
    {
      "commit": "58545be2ce4e701c8c37401edcc126a8b683890d",
      "tree": "a7a404115488202a1cb438845aaefe6531aae963",
      "parents": [
        "f214d6936f66052bfabc51e3355f800e41b511f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 18:54:20 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Feb 22 18:54:20 2016 -0800"
      },
      "message": "audio policy: add device for audio bus\n\nAdd audio device category representing a bus in the\naudio subsystem. E.g a set of channels in MOST automotive bus.\n\nBug: 25448664\nChange-Id: Id00da57dc45037d4d8062e9a747c423940611539\n"
    },
    {
      "commit": "232f26f8b673973ffa463f80b08b731ffacc8785",
      "tree": "0722b9bc20a7b049ba6b4120138ef8845293e37f",
      "parents": [
        "b74dc56b2fd3ec872383544d4b6d4950c206259b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 17 18:06:27 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 18 22:03:21 2016 +0000"
      },
      "message": "DO NOT MERGE - audio policy: disable concurrent capture\n\nThis reverts commit 4342335fb84bfa4ec5b99e3ef82f186820c2275f.\nThis reverts commit 56afc7a5cc0f0bfc8021f6413b2e2267050bdc8a.\nThis reverts commit 313d1e7dfb4bf8e0a2f09a9adb287062dd64410c.\nThis reverts commit fb66dd9f95a1168698f072c4e5c2a2cf8c49a80f.\n\nBug: 22702906\n\nChange-Id: I9085918f1f7b12e28430958cceb768bb29c12bdb\n"
    },
    {
      "commit": "e693002b0fb25099540588245892ed98103749ba",
      "tree": "5c6b80929a798987d5ae658d3041cdefd4ba162d",
      "parents": [
        "d25c45526d9598218433b0fa59e1f5accbd5b639"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 11 10:20:40 2016 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 17 15:34:40 2016 -0800"
      },
      "message": "audio policy: select output with best sample format match\n\nAdd rules allowing selection of the output stream with the sample\nformat offering the best match to the client track sample format\nwhen more than one output is compatible with a request.\n\nBug: 27210844\n\nChange-Id: I31981940be5d1c06d713d52187cfb0a7bf355773\n"
    },
    {
      "commit": "b0a144d705a021994628d136a170a6d2bd4282e7",
      "tree": "f6144a26c0e19fa9a7ba75e136c80afeb9ecf14a",
      "parents": [
        "7f308c3e0556a5e704bcb3b341842ed50ba80b0a",
        "fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 12 22:24:53 2016 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 12 22:24:55 2016 +0000"
      },
      "message": "Merge \"AudioTrack: support ENCODING_IEC61937\" into nyc-dev"
    },
    {
      "commit": "fdb3c07db5d44535eb8c3ec46dc78ad8446c01eb",
      "tree": "b8c3d97da524e8aefcb37e736619da6b8e087a82",
      "parents": [
        "3ea4f828a6906e9931f96ebdcae9c63e14b86cbd"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Tue Feb 09 10:47:02 2016 -0800"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Fri Feb 12 06:30:43 2016 +0000"
      },
      "message": "AudioTrack: support ENCODING_IEC61937\n\nSet DIRECT flag.\nUse audio_has_proportional_frames() instead of audio_is_linear_pcm()\nwhere appropriate.\n\nBug: 24541671\nBug: 20891646\nBug: 26373761\nChange-Id: Ia32036b18683b084d6c9887593df87397ea0afd9\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "e8decedb429ed76dfa84cdb3e80ab3b969e77298",
      "tree": "3cdcd5f6ad76945ef052e0a68978a8c2930e4c3a",
      "parents": [
        "3aaa699a46edb4f47d0cd5a11d57eba93493bd90"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 11 12:50:39 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Feb 11 12:50:39 2016 -0800"
      },
      "message": "Dynamic audio policies on UID\n\nWhen looking for an output, take attributes and UID into account.\nTo find the matching mix: for each mix\n- inspect which rules are used\n- find a candidate mix for usage\n- check UID compatibility\nRename AttributeMatchCriterion to AudioMixMatchCriterion to be consistent\n with the fact that now mixing rules are not always about audio attributes.\n\nBug 26798796\n\nChange-Id: I1520b0df190a98f197ea8e0144b770e1e6d97888\n"
    },
    {
      "commit": "56afc7a5cc0f0bfc8021f6413b2e2267050bdc8a",
      "tree": "4130dd51cc5d405ece260c66916a84024e6979ee",
      "parents": [
        "2e5408ac3e51cb459160b9cd392f1809b0758316"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 03 11:35:52 2016 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 03 11:46:08 2016 -0800"
      },
      "message": "Fix connection of OUT_REMOTE_SUBMIX device on APM startInput\n\nFix a regression in AudioPolicyManager::startInput() where\n the OUT_REMOTE_SUBMIX audio device was never made available\n due to the test on the input descriptor, which was already\n active by the time it is tested, as the activity on the\n session has already been updated.\n\nAdd methods to AudioInputDescriptor and AudioSessionCollection\n to query the number of active sessions. Use the new method\n to optimize AudioSessionCollection::hasActiveSession()\n\nBug 26798796\n\nChange-Id: I2de4e47970505e64c4c78a148a80a9f0ec19e821\n"
    }
  ],
  "next": "52d49a8a1f48c2d59769b9257e2eed988014aa03"
}
