)]}'
{
  "log": [
    {
      "commit": "79e687edb9bd7e2fcc60e06dd779f98c75511045",
      "tree": "d6dc7f22973f89d7eb61a926c6afa825386a176c",
      "parents": [
        "1f4b162e0bee6bcb0c9de464087db286270f5525",
        "327cb70dcbf3a1f1679aeafaaa62d8532abea86d"
      ],
      "author": {
        "name": "Nicholas Sauer",
        "email": "nicksauer@google.com",
        "time": "Wed Oct 01 17:30:03 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 01 17:30:04 2014 +0000"
      },
      "message": "Merge \"[AU] Update volume setting and Audio Device API 3.0\" into lmp-sprout-dev"
    },
    {
      "commit": "327cb70dcbf3a1f1679aeafaaa62d8532abea86d",
      "tree": "5c82c0c4c0d384add6f2f87fefb7427e1fb7f9a9",
      "parents": [
        "4379c03433e4613c417998ca7917059ef17dc3a9"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Sun Sep 21 09:47:31 2014 +0800"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Tue Sep 30 19:01:22 2014 +0000"
      },
      "message": "[AU] Update volume setting and Audio Device API 3.0\n\n    Signed-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n    Review: https://partner-android-review.git.corp.google.com/#/c/182522\n\nChange-Id: Ida2dfedc6eaa3204354cdc182e0ee13a35472661"
    },
    {
      "commit": "c260784e37dea73a2090d4ccd91472d61d3b6230",
      "tree": "2f6ffba5fe828dc4143db34e7b05b98f27d52567",
      "parents": [
        "dc2e6ddc933e40632e79a866d9ece870db1a975e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 29 09:43:03 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 29 17:40:36 2014 -0700"
      },
      "message": "audio policy: fix HW A/V sync output selection\n\ncommit b732cf5a broke the selection mechanism for the\nHW A/V sync direct output.\nAdd a rule to only select a mixed output for basic PCM\nstereo content when a direct output is not explicitly requested.\n\nBug: 17702382.\n\nChange-Id: I1387690ace77cd4d6a8faf0b525c3d1008fba3f1\n"
    },
    {
      "commit": "b732cf5af93c33fa183769210ce9954521fb68cd",
      "tree": "f7b469e86dbf5fc673937a917a151c0c8daeecfb",
      "parents": [
        "80ec934ae7d4e3a78af87554fdb77a58f6386ba0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 24 19:08:21 2014 -0700"
      },
      "committer": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Fri Sep 26 23:05:10 2014 +0000"
      },
      "message": "audio policy: favor mixed over direct output for PCM format\n\nmodify getOutputForDevice() to skip direct output selection\nif the request can obviously be attached to a mixed output\nThis prevents from selecting a direct output profile that\ncan manage stereo PCM format if a mixer output is available\nto reach the same device.\n\nBug: 17628413.\nChange-Id: I02e9a0b02c9ae5f44ff5768ac4ed02ce84d521c5\n"
    },
    {
      "commit": "5dbe47139713292bf45bbf4f1a7af0835a5ff368",
      "tree": "5d87cfe65614e4f10adabc0dad3e9f1a3ff64673",
      "parents": [
        "b0ed4e3e482cbdc2fa6c7853526597f4ae3f0972"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 19 19:04:57 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 19 19:04:57 2014 -0700"
      },
      "message": "audio policy: add hw hotword flag for inputs\n\nAudio input profiles can indicate flag AUDIO_INPUT_FLAG_HW_HOTWORD\nmeaning they allow capture from the same source as HW hotword\ndetection.\n\nWhen a client requests capture with this flag, the policy will\ntry to find an input profile matching this request first and\nfallback to a regular input if not found.\n\nBug: 17575019.\nChange-Id: Ia463211597d7fa363527d776389f2257f0ced9a2\n"
    },
    {
      "commit": "d78f153a21868d870b14169a6928d991e4b82e73",
      "tree": "6740ad0e8681294c3c1d5e01e6c74715769c8998",
      "parents": [
        "086c1e3f41a92aa0025a1da1db5dabbfdffaf129"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 16 16:38:20 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 16 17:03:03 2014 -0700"
      },
      "message": "audio policy: fix attached devices validation\n\nConsider all supported devices in an io profile and\nnot only the first one when looking for a match with attached\ndevices.\nFailing to do so would cause the device validation to fail\nif supported devices are not declared in a specific order\nin the io profile descriptor in audio_policy.conf\n\nBug: 17532764.\nChange-Id: Id27c9192e21de7f075076e17eb8c48e7e42847f6\n"
    },
    {
      "commit": "966095ea014bc0f6ae9f523ee7f37f2fed2faeb5",
      "tree": "c8dc3ceb36773b287242ee9e9b16734542aa7e64",
      "parents": [
        "de7e2ae67f198b3dcc861b0908ca099db10dab6f"
      ],
      "author": {
        "name": "Jon Eklund",
        "email": "jeklund@motorola.com",
        "time": "Tue Sep 09 15:39:49 2014 -0500"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 19:31:59 2014 -0700"
      },
      "message": "audio policy: fix relative priorities of PHONE and ENFORCED_AUDIBLE\n\nENFORCED_AUDIBLE should only be highest priority if system tones\nare being forced.  Otherwise it should behave like SONIFICATION.\n\nBug: 17474485.\n\nChange-Id: Ia651779870d51100cc3179c96fa09694bc691ba7\n"
    },
    {
      "commit": "58f8eb7ae0ee400585bce6682a7212575115e758",
      "tree": "0ae4991790b2292ba84f05085cdfa2db0a9f3761",
      "parents": [
        "7c12b0358b6d3b66e231fe4a67bb55f424b3857e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 16:19:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 12 16:22:00 2014 -0700"
      },
      "message": "audio policy: fix check in creaateAudioPatch()\n\nBug: 17488759.\nChange-Id: I9dd2c3ca7f83de4b3573f4fb0e9934e1bc37c3bc\n"
    },
    {
      "commit": "11c9fb1f90cc786485a53aeb1d31ec1ad1dbf840",
      "tree": "fbd0fb098133f66a3ce0e51947d8964bc9699104",
      "parents": [
        "4bcbb07be57947ea1421519094f73577b1e263e6"
      ],
      "author": {
        "name": "Jon Eklund",
        "email": "jeklund@motorola.com",
        "time": "Mon Jun 23 14:47:03 2014 -0500"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 10 15:53:59 2014 -0700"
      },
      "message": "AudioPolicyManager: Use \"safe\" speaker for notifications if available\n\nOn particularly loud devices, unexpected audio bursts can be harmful.\nFor longer audio events, the conventional mitigation strategy is to\nsomehow soft-start (ramp) the loudspeaker volume, but this strategy\ncan severely impact the audibility of short audio events.\n\nUse of the \"safe\" speaker path hints to AudioHAL to immediately output\nat best allowable level for transient audio events.\n\nSPEAKER_SAFE is aliased to SPEAKER for purposes of volume control.\n\nBug: 17319721\nChange-Id: I75187c23f3d1f18e9f638c5d14e7b0bf805a67bc\n"
    },
    {
      "commit": "8838a3895c365d443ee22e169ccf45956780c081",
      "tree": "6f8d8de1cd91a541e67102078b7fe2f1c303009f",
      "parents": [
        "2e97b01cecec65e690ac7da5df9433c52ff75bd8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 08 16:44:28 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 08 16:44:28 2014 -0700"
      },
      "message": "audio policy: fix output stream selection\n\nMake sure that all outputs considered by selectOutput()\nwhen called from AudioPolicyManager::getOutputForDevice()\nsupport the requested audio format.\n\nBug: 17340382.\nChange-Id: I76520ce60e9a8fe4d2d23125d6143bb016522754\n"
    },
    {
      "commit": "2e97b01cecec65e690ac7da5df9433c52ff75bd8",
      "tree": "360368ac998f1df1d588ec153aa090016e699b1d",
      "parents": [
        "835ae86b49da5e15a501cb12c25458f8b63e38be",
        "828bcffa0d5f73461c6c1ba4ef6d3da704c27b7e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Sep 08 15:37:45 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 08 15:37:46 2014 +0000"
      },
      "message": "Merge \"audiopolicy: fix direct output profile probing\" into lmp-dev"
    },
    {
      "commit": "828bcffa0d5f73461c6c1ba4ef6d3da704c27b7e",
      "tree": "a696fddc14a1355bd6b16345457b02a62176f552",
      "parents": [
        "2adb3f32d152c567a3538a709c47d9bd6cf05bc4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Sep 07 12:26:06 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Sep 07 23:15:40 2014 +0000"
      },
      "message": "audiopolicy: fix direct output profile probing\n\nDo not select maximum sampling rate and channel count\nwhen opening a direct output for the first time\nto make sure that the combination of sampling rate\nand channel count is supported by the connected sink.\n\nBug: 17047809.\nChange-Id: I077a3c1436158378f2762343469ceb39fab9775e"
    },
    {
      "commit": "a1f9917243caafd1da5fa743c6fda1d0614ed167",
      "tree": "5ffd1f439162dab1f76b6b1bb51b03aa8f3901a8",
      "parents": [
        "6a548e9114c4a283a6e08a2d35540f8549f44b82"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Fri Sep 05 21:25:48 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Fri Sep 05 21:25:48 2014 +0900"
      },
      "message": "Fix \"invalid device combination\" in system audio mode.\n\nHDMI-CEC system audio mode removes speaker from output\nlist. It also has multiple outputs by connected outputs.\nHowever, getDeviceForVolume() doesn\u0027t cover multiple\noutput with no speaker or bluetooth case.\nThis change picks one of system audio outputs in order.\n\nBug: 17400026\nChange-Id: I102fd0052c9c4c9543f9e8f3b16ec6815d7485d8\n"
    },
    {
      "commit": "9a63396f70880772e551e1e4c38f27c635612083",
      "tree": "06cb1bc892ad47fc1219594b6b9fb179a048676d",
      "parents": [
        "7fa4207870344d6773b077d13e08267986801f18",
        "1c9c2cc4b170b79a83433749808e286eb0fcc449"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 29 18:29:36 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 29 18:29:37 2014 +0000"
      },
      "message": "Merge \"audio policy: fix input source passed to openInput()\" into lmp-dev"
    },
    {
      "commit": "1c9c2cc4b170b79a83433749808e286eb0fcc449",
      "tree": "806b0c03d38c4d68c1571e2bf6def83431957fc9",
      "parents": [
        "890a5637b3e3eb197fd2c7f5deec816c7feb13fc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 19:37:25 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 19:37:25 2014 -0700"
      },
      "message": "audio policy: fix input source passed to openInput()\n\nThe input source passed to openInput() must be\nmodified from HOTWORD to VOICE_RECOGNITION if the capture does not\ncorrespond to a sound trigger session.\n\nBug: 16731718.\nChange-Id: I48aa4180e75dd5335cd096b48da1c15f2236e6ed\n"
    },
    {
      "commit": "f5e7e79bf88b0c08c73262e7992634797a4f81a1",
      "tree": "df685f1dfae541ef19ab8551372b3c67c420ac7f",
      "parents": [
        "890a5637b3e3eb197fd2c7f5deec816c7feb13fc"
      ],
      "author": {
        "name": "bryant_liu",
        "email": "bryant_liu@htc.com",
        "time": "Tue Aug 19 20:07:05 2014 +0800"
      },
      "committer": {
        "name": "Dmitry Shmidt",
        "email": "dimitrysh@google.com",
        "time": "Thu Aug 28 18:13:57 2014 -0700"
      },
      "message": "audiopolicy: Indicate output device change to all input threads for pre-processing\n\nBug: 17129715\n\nChange-Id: I1fd938cce0b85241c80ea00f3d013a98948d3975\n"
    },
    {
      "commit": "8962e08c4989368d2c821b64f42632b6f5fb016e",
      "tree": "75860946cf504bbc07193f1000799025aaa07dfe",
      "parents": [
        "47f64f2ed14839a00b3b148d490dc0394282eb54",
        "5c477aa6205e2ebafec237411900d89a510cc105"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Aug 28 20:44:57 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 20:44:57 2014 +0000"
      },
      "message": "Merge \"Fix audio dropouts with multiple playback streams.\" into lmp-dev"
    },
    {
      "commit": "47f64f2ed14839a00b3b148d490dc0394282eb54",
      "tree": "d3112e02518a611d7e9e421c49848ca319fa73cf",
      "parents": [
        "01b9256a1358110ed718c1a83c2a1808d4afbb92",
        "05b90f833337ab5f7b16509e5f1d339a04eb5bf6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 28 15:32:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Aug 28 15:32:54 2014 +0000"
      },
      "message": "Merge \"audio policy: remove audio patch when closing input or output\" into lmp-dev"
    },
    {
      "commit": "05b90f833337ab5f7b16509e5f1d339a04eb5bf6",
      "tree": "d78fd01541fe617b2ef1753dade9955463d5f006",
      "parents": [
        "9dd4a2ddd7caf8cbe50d8a76e0ec3e0274d2bce6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 27 15:32:29 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 27 18:17:08 2014 -0700"
      },
      "message": "audio policy: remove audio patch when closing input or output\n\nMake sure that an audio patch having an output as source or input as sink\nis removed when this input or output is closed.\n\nBug: 17303725.\n\nChange-Id: I234d54a25ce0b579eeeafdcfda3a0594f048768c\n"
    },
    {
      "commit": "5c477aa6205e2ebafec237411900d89a510cc105",
      "tree": "b62a1e44d2296d2f0a1e6aefe90e4c04722cca59",
      "parents": [
        "1754351d9199721e7e7943461689e399ef015260"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Aug 20 16:47:57 2014 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Aug 27 16:38:27 2014 -0700"
      },
      "message": "Fix audio dropouts with multiple playback streams.\n\nBug 17136569\n\nChange-Id: I7f69cb24168c7d27ce28679735f53c1ece4014c1\n"
    },
    {
      "commit": "961ec21a5878517ce6db27bad8da269637c45a44",
      "tree": "73d1f567c2d82197186f9f11141d4767040a405f",
      "parents": [
        "d42173a44721af1a600b9c8599bc736394fcc724"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Aug 25 15:58:39 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Aug 26 16:07:45 2014 -0700"
      },
      "message": "Fix memory leak in getConnectionState\n\nTurns out having an sp\u003c\u003e point at the containing object doesn\u0027t really\nwork so well.\n\nBug: 17210991\nChange-Id: I4bcb0c38adffc574d661f0772583357868f6c5b4\n"
    },
    {
      "commit": "47bf8d8f0242bbe9cfa777c96e41e5fcd5294ee4",
      "tree": "0f792b2461a42d2e166de7b68e3df0a1e36fe54c",
      "parents": [
        "e6e18e8de729316b3fac7733f9ebc7f1b3feba95",
        "4d41695d45e2c7211899afa94b20e32120b2b7e0"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Aug 13 16:04:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 13 01:30:28 2014 +0000"
      },
      "message": "Merge \"audiopolicy: add dump for audio patches\" into lmp-dev"
    },
    {
      "commit": "edf103987d71f09dc2acb0a971cb40ff6608f1a5",
      "tree": "94e22d3b8a0ea060abe33016bb14cb896ca17636",
      "parents": [
        "2dfe8ea7c131a045067c123efc934ef6ccdb8821",
        "f17026dfef596cf1c8008fda20f1f2ad23a3df3a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Aug 11 17:22:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 11 17:09:02 2014 +0000"
      },
      "message": "Merge \"Update audio ports with profile capabilities\" into lmp-dev"
    },
    {
      "commit": "f17026dfef596cf1c8008fda20f1f2ad23a3df3a",
      "tree": "b11728521202f20039b7b34e11aa66d979e871ff",
      "parents": [
        "317bb9163befccd87348c11bdfc0044e629b362b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Aug 10 14:30:48 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Aug 10 15:46:24 2014 -0700"
      },
      "message": "Update audio ports with profile capabilities\n\nWhen opening an output, import the profile capabilities associated\n  with the device into the AudioPort.\n\nBug 10549017\n\nChange-Id: If102f5623457542d2c1407ada303c71e43d19a08\n"
    },
    {
      "commit": "4d41695d45e2c7211899afa94b20e32120b2b7e0",
      "tree": "8a8d01388796c4371921039e6ea0ee78ad97f8ec",
      "parents": [
        "2dfe8ea7c131a045067c123efc934ef6ccdb8821"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Aug 10 14:07:09 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Aug 10 14:07:09 2014 -0700"
      },
      "message": "audiopolicy: add dump for audio patches\n\nBug: 10549017.\nChange-Id: I896c8e16c8cf7490bab75295903620a76236f571\n"
    },
    {
      "commit": "874c4287a4e49c59ac88767751dce00fcd3edb73",
      "tree": "2a0e4adc0bd18f26c8488b74d7e3df9751d493df",
      "parents": [
        "0912a5738d6baf2df7cd62e877240e3807b4b21f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 08 15:13:39 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 08 17:07:31 2014 -0700"
      },
      "message": "audio policy: enable more than one sink per audio patch.\n\nAllow creation of audio patches with more than one sink.\nMore than one sink is enabled when:\n- Connecting an input device to output devices on the same audio HW module.\n- Connecting an output mix to output devices on the same audio HA module.\n\nAll other patches are limited to one sink.\n\nBug: 16879363.\nChange-Id: I95be6948ef29df64e51e5b8ace38c2db7f3e89f2\n"
    },
    {
      "commit": "7f04ec2a4ec94ada7ef89db8c50fd1e5c3a93a3b",
      "tree": "42d4ba5895c3943fd7d8e61cd75a9590a09c6f93",
      "parents": [
        "a9522673f3076ea937eb2912945d7ed646ca05df",
        "c2730ba7c5e9559b7499ef5e0d7742deb18c5110"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 07 15:54:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Aug 06 23:49:20 2014 +0000"
      },
      "message": "Merge \"audio policy: add support for USB devices for voice call\" into lmp-dev"
    },
    {
      "commit": "c2730ba7c5e9559b7499ef5e0d7742deb18c5110",
      "tree": "efa845ec9fd1cb5cc2a2cf20b62538b74668b173",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 20 15:47:07 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 11:42:07 2014 -0700"
      },
      "message": "audio policy: add support for USB devices for voice call\n\nAdd possibility to use sink and source devices not on\nthe primary HW module for voice calls (e.g. USB headsets).\n\nBug: 15520724.\n\nChange-Id: Ib27db4ba759b6d91ea1104dc2e35c87733517b30\n"
    },
    {
      "commit": "93c3d41bdb15e39dac0faea9c5b60f1637cd477c",
      "tree": "a0d739ad732f10bc9d4548923c78c590841b14da",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 14:48:35 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 00:38:23 2014 +0000"
      },
      "message": "AudioSystem: add API to query audio HW sync source\n\nAdd a method to query from the audio HAL the HW sync\nsource used for a given audio session.\nModify audio policy to select a direct output with HW sync\nwhen requested.\n\nBug: 16132368.\n\nChange-Id: I03038f9188f2d389f8a5fd76a671854013a4513e\n"
    },
    {
      "commit": "92ce4715315bddd158c7d4028556632f0547e3b9",
      "tree": "3d57deb9798654f163f4f04764c63ddc94b55298",
      "parents": [
        "1c8d1e4079f2b8efd71423158e7f298cf1dc2c31",
        "cf817a2330936947df94c11859f48771f5596a59"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 00:37:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 05 00:34:22 2014 +0000"
      },
      "message": "Merge \"audio: fix crashes upon USB device connection\" into lmp-dev"
    },
    {
      "commit": "cf817a2330936947df94c11859f48771f5596a59",
      "tree": "c9c386dabb997f20b2f1046b6087b26e71b66ed9",
      "parents": [
        "e46711343b43786c049a007369a72c1c78e6c5db"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 04 20:36:31 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 05 17:16:32 2014 -0700"
      },
      "message": "audio: fix crashes upon USB device connection\n\n- Audio policy:\nReplace unknown device assertion by debug log in setDeviceConnectionState().\nIt is possible that some kernels indicate connection of a legacy device type\nwhen a USB audio device is connected.\nWe should just ignore this device.\n\n- Audio flinger:\nMake sure FastMixer thread is idle before exiting the normal mixer thread and\nclosing the output stream.\n\nChange-Id: Ia10a20176a60a8aa56765538093a555fc998508a\n"
    },
    {
      "commit": "a57ab8da6fe56fdb91dfc95ebd0282eb879dde53",
      "tree": "db2f3de488e94d9e98cbe2203e9704c81a56e505",
      "parents": [
        "3c9879b980ad195797543ce237ecbe479267e16f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 30 10:01:42 2014 -0500"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Tue Aug 05 16:39:52 2014 -0700"
      },
      "message": "policy manager: recognize AUDIO_DEVICE_IN_AMBIENT from policy.conf\n\nChange-Id: If46b8d13f216bad4aa62598531d406d3303134f5\n"
    },
    {
      "commit": "ac29afacbb34b92f1948188e5353fce5a252ccb3",
      "tree": "f3cbb19b36ef0747704a8402eada5ac75788f7b7",
      "parents": [
        "85c3773092cad9f2c6130ee83e8a78222bac6a0b"
      ],
      "author": {
        "name": "Jon Eklund",
        "email": "jeklund@motorola.com",
        "time": "Mon Jul 28 16:06:06 2014 -0500"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Tue Aug 05 20:27:55 2014 +0000"
      },
      "message": "audio policy: support line output device\n\nChange-Id: Iddf1b6486430270d871a45c75615e54339a818e9\n"
    },
    {
      "commit": "df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871",
      "tree": "e54724362f700e3e72fc72604a3b5f568d8cee7b",
      "parents": [
        "d0fded31e473e909c018f534d3019fb5168bdcd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:39:40 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 05 12:10:27 2014 -0700"
      },
      "message": "Add sound trigger control by audio policy\n\nAudio policy:\n- Added active capture indication to sound trigger service:\nrecognition stops if concurrent capture is not supported.\n- Added generation of reserved I/O handle and session ID for\nutterance capture.\n\nSound trigger service\n- Added sound model update callback handling.\n- Added service state callback\n- Simplified callback shared memory allocation.\n\nBug: 12378680.\n\nChange-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1\n"
    },
    {
      "commit": "77cce80fa9d44f1e2a6bc486ad957fbbebfce3b2",
      "tree": "8820696deea3c86f83fc7741c8750feeb8fec9f6",
      "parents": [
        "b63d63b8afa25694d1973988d7acdfebcd01a18d"
      ],
      "author": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Aug 04 16:18:15 2014 -0700"
      },
      "committer": {
        "name": "Phil Burk",
        "email": "philburk@google.com",
        "time": "Mon Aug 04 16:26:05 2014 -0700"
      },
      "message": "[audio][policy] fix crash when offloadInfo is NULL\n\nAdded check for NULL pointer to avoid crash\nin AudioPolicyManager when playing AC3 data.\n\nChange-Id: Ie56788f6277be6da47d4218b1b4a6b359fce6473\nSigned-off-by: Phil Burk \u003cphilburk@google.com\u003e\n"
    },
    {
      "commit": "222260168c144cca5a4e8f1c79df8c8baa22b591",
      "tree": "329aee444eb92704a2e5154254dc8b3e415a2f8d",
      "parents": [
        "25644c502ed8ec13bcf496613e65ec8edb1af4a7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 17:00:54 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 19:00:08 2014 -0700"
      },
      "message": "audio policy: fix service fuzz test crash\n\nBug: 13744391.\nChange-Id: I2430e09ad00476b9ac28dc55466942c61fb0531d\n"
    },
    {
      "commit": "a6d28be0be0fa813080a021bd6a5920a8cb4fbb1",
      "tree": "260d1b84861f406f39868f21af454c379297c7ff",
      "parents": [
        "e1d37b784f3970e44a7331c189cbfdca15404648",
        "3a0fe12fbd08b13e9f57d79b0391186be05072f5"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Jul 30 18:08:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 29 22:44:51 2014 +0000"
      },
      "message": "Merge \"Add Quad channel output to AudioPolicyManager\" into lmp-dev"
    },
    {
      "commit": "e1d37b784f3970e44a7331c189cbfdca15404648",
      "tree": "4ccd7ce94882b8b5c0e4958ef379cfd0084c8e79",
      "parents": [
        "9f2dcf14cb4bb75bd810f6ed8938e4dbbb18c651"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 29 10:26:26 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 30 17:09:32 2014 +0000"
      },
      "message": "audio policy: add missing enums in config file parsing\n\nChange-Id: I4edd6cde11de62c9c19dfa623d08cddf42c953db\n"
    },
    {
      "commit": "3a0fe12fbd08b13e9f57d79b0391186be05072f5",
      "tree": "604f90cdf408180956cbd28b776f1cbd50831f68",
      "parents": [
        "141670d465d7673dfa6ad712ad100f84882dfa95"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 29 17:56:46 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 29 18:52:36 2014 -0700"
      },
      "message": "Add Quad channel output to AudioPolicyManager\n\nMatches some USB device configurations.\n\nChange-Id: I2429f9de87816b4ad1d39516e3821562617c76ee\n"
    },
    {
      "commit": "8b685b9e56cc207d44b08d124148e7d752ef2241",
      "tree": "bd05bd91ffe8ba1d0e0200884448d0de8d5c60b6",
      "parents": [
        "a4daf0b4f934b800a49f199fb8c09409391c8fc0",
        "9a60538b9ee2b097770dcd378281b31f4218ae56"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Jul 29 23:52:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 29 21:36:00 2014 +0000"
      },
      "message": "Merge \"Update multichannel audio policy handling\" into lmp-dev"
    },
    {
      "commit": "9a60538b9ee2b097770dcd378281b31f4218ae56",
      "tree": "2c1e28a60d4d561e7131d1b77ff67e933b9210d0",
      "parents": [
        "141670d465d7673dfa6ad712ad100f84882dfa95"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 28 16:16:31 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Jul 28 16:16:31 2014 -0700"
      },
      "message": "Update multichannel audio policy handling\n\nEnsure AUDIO_FORMAT_PCM_FLOAT and AUDIO_FORMAT_PCM_32_BIT\nhave proper precedence.\nAllow more mixer channels than 2.\n\nChange-Id: I02af97dad6218b25cbada4d93077a213314c6725\n"
    },
    {
      "commit": "4dc680607181e6a76f4e91a39366c4f5dfb7b03e",
      "tree": "5212b6ff474b8ef68a68cb1cf144f54e5348de77",
      "parents": [
        "d530d415e60373caf875a37d2d747a51470ee45c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 17:26:49 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 18:10:29 2014 -0700"
      },
      "message": "audio policy: pass session ID to capture activity methods\n\nIndicate the audio session ID when calling getInput(),\nstartInput(), stopInput(), releaseInput().\n\nBug: 12378680.\nChange-Id: I763793752f93e2f4e1445a5ab217c895af011038\n"
    },
    {
      "commit": "cf2c0210c8afbe7d0661ccbbae3835b5ce73c0bf",
      "tree": "26824707249d553efaabe2003381b4e9159e199d",
      "parents": [
        "97117153a0d681be70bfa9dc9876541375355c47"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 25 16:20:43 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 12:06:00 2014 -0700"
      },
      "message": "AudioFlinger: update openInput() and openOutput()\n\nAdd parameters to openInput() and openOutput(): device address,\ninput source.\nAllow caller to specify a given I/O handle\nGroup parameters in a struct audio_config.\n\nBug: 12378680.\nChange-Id: I7e9af74c0d996561cc13cbee7d9012d2daf33025\n"
    },
    {
      "commit": "97117153a0d681be70bfa9dc9876541375355c47",
      "tree": "346ddb16c3a16e70f169b81384622419e2a0aece",
      "parents": [
        "d8622371d5ac5b98abcc5d388bd952bb3dd4fda9",
        "cbd48023d0a0e3fd59955011538c0087a439f905"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jul 27 22:05:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 24 15:36:21 2014 +0000"
      },
      "message": "Merge \"audio policy: compatible sample rates and channel masks\" into lmp-dev"
    },
    {
      "commit": "d8622371d5ac5b98abcc5d388bd952bb3dd4fda9",
      "tree": "709dc2e8ce206dc20fcf2f509a400a801096f934",
      "parents": [
        "0fb47759256ecdaedbc34c880238bc9d102ef160"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 13:47:31 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 27 20:52:03 2014 +0000"
      },
      "message": "audiopolicy: fix output audio format selection\n\nFix two problems in output stream audio format selection\nadded by commit 1e693b55:\n- flags must be set before picking the format.\n- fix logic error in best format selection.\n\nChange-Id: I6458b32725f771da5a08108932d64e71964ae9f1"
    },
    {
      "commit": "cbd48023d0a0e3fd59955011538c0087a439f905",
      "tree": "4353758603d1e8df57f05e51a8bc5a8b1d13d4e3",
      "parents": [
        "0fb47759256ecdaedbc34c880238bc9d102ef160"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 24 13:46:44 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Sun Jul 27 12:18:08 2014 -0700"
      },
      "message": "audio policy: compatible sample rates and channel masks\n\nChange-Id: I50d068a968aa6bd9e53e5b3111a1b09a6c2d219c\n"
    },
    {
      "commit": "0fb47759256ecdaedbc34c880238bc9d102ef160",
      "tree": "5db1d019fb672abc86ebf1d3a331b429e423eaea",
      "parents": [
        "03c556ae1eb409ad088c49037e185946c54e1d25"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 22 16:19:14 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 27 11:28:39 2014 -0700"
      },
      "message": "AudioPolicyManager: handle outputs for different addresses\n\nAdd the notion of device types that cause the device address\n  to be taken into account, i.e. multiple devices of the\n  same type but with a different address can be connected/\n  disconnected.\nAUDIO_DEVICE_OUT_REMOTE_SUBMIX is such a device type.\nWhen making those devices available / unavailable, look for\n  all outputs with a matching address.\n\nBug 16009464\n\nChange-Id: I260f8248b7794c4932094e876afdf29fdea007a3\n"
    },
    {
      "commit": "74a8e2533561f04029873446206ab407cd2e033b",
      "tree": "d9c6de2cb08a9f5947cc5f35ad9e581d7a6826a6",
      "parents": [
        "6a8ab05f0598f4ebdd5ef82e93cf32fde0598189"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 24 14:09:55 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 24 15:38:24 2014 -0700"
      },
      "message": "audio policy: clean up checking for active input\n\nChange-Id: I85cc089df32e6d469e8aef307599f1021ea5b835\n"
    },
    {
      "commit": "6a8ab05f0598f4ebdd5ef82e93cf32fde0598189",
      "tree": "ca84cc8dc21a7ae93fc2c50cb48d78072361a300",
      "parents": [
        "83b8808faad1e91690c64d7007348be8d9ebde73"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 24 14:08:35 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 24 15:38:24 2014 -0700"
      },
      "message": "audio policy: add audio_input_flags_t and mOpenRefCount\n\nChange-Id: I5f9c7b5ebf03b9bc94efe70d3677edfabb99c194\n"
    },
    {
      "commit": "83b8808faad1e91690c64d7007348be8d9ebde73",
      "tree": "b541b1172f804e04bd19b29f7878a1becf6205d7",
      "parents": [
        "c15c265676da2226a18a5373812608b19d4719d7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 20 18:31:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jul 24 02:56:47 2014 +0000"
      },
      "message": "audio flinger: add patch connection between hw modules\n\nAdd support for audio device connections between different audio\nhw modules.\nThe patch is performed by creating a bridge between the playback\nthread connected to the sink device and the record thread connected\nto the source device using a pair of specialized PlaybackTrack and\nRecordTrack.\n- Added PatchTrack and PatchRecord classes.\n- Added TrackBase type to indicate more clearly the track behavior.\n- A TrackBase can allocate the buffer or reuse an existing one.\n- Factored some code in openOutput() and openInput() for internal use\nby PatchPanel.\n\nBug: 14815883.\n\nChange-Id: Ib9515fcda864610458a4bc81fa8f59096ff4d7db\n"
    },
    {
      "commit": "c15c265676da2226a18a5373812608b19d4719d7",
      "tree": "d2d97a46c7ff6420789ebb62a1da4941dadb119c",
      "parents": [
        "db2225b2a24fa4ade5c0353730dc2d6a2f5838d9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 22 19:48:16 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 23 21:11:19 2014 +0000"
      },
      "message": "audio policy: remove redundant fixed volume management\n\nRemove code handling fixed device volume in\nAudioPolicyManager::computeVolume() as this is already\nmanaged by AudioService.\n\nChange-Id: Ib2be7578e40652c85a7d44c685ff9cc703d0c969\n"
    },
    {
      "commit": "daf92cc876a1952059794e6d0f558f0f6dd9ac8c",
      "tree": "b379f32b850b22cbb28443c4b95760562ea5fa60",
      "parents": [
        "0be123df1897fd3fe1b7ba30f24d8ae4c91b4dc7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 22 15:36:10 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 22 15:36:10 2014 -0700"
      },
      "message": "audio policy: fix hotword capture\n\ncommit 1c333e2 introduced a regression causing the\nwrong input source type to be communicated to\nthe audio HAL when starting hotword (background) capture.\n\nChange-Id: Iec6b3c58cbc15b9988793077232ff3e7e72a4d6d\n"
    },
    {
      "commit": "a204994e7dd7dab931297176c66b5d3b82e2c90b",
      "tree": "aab7547a3216990fd5c24ecc1ea00c40900cc6cf",
      "parents": [
        "8bce84142802ecdc1794d59488ede629801a5cba"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 21 17:49:25 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 21 17:52:01 2014 -0700"
      },
      "message": "audio policy: add missing formats to audio_policy.conf parser.\n\nChange-Id: I872c11d080c505abe3025e7bbb554ca9711de9af\n"
    },
    {
      "commit": "ec40d284218466d8f0e832e7eb88e6ea6c479c88",
      "tree": "46ae774a4f3535d07374bed459b1dcf2bb9d8803",
      "parents": [
        "6e6704c06d61bc356e30c164081e5bcffb37920c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 15 15:31:26 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:07 2014 -0700"
      },
      "message": "Add audio_input_flags_t to IAudioFlinger::openInput\n\nFor backward compatibility, until flags are correctly calculated,\nwe will assume that the request is for a low latency input stream.\n\nChange-Id: I76746834e870df00833dc77cbdaa2edd2ffeec95\n"
    },
    {
      "commit": "7b24ee381e806dcb53308c1cafc8a45f4e2d8300",
      "tree": "47cb17d1d16a65915d71056c7f588c46b5d4eea7",
      "parents": [
        "5f881c631d3a8e2c0801cdfbbe465c355816f1e3"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Tue Jul 15 19:38:42 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Thu Jul 17 09:27:23 2014 +0900"
      },
      "message": "Revisit HDMI-CEC system audio mode in AudioService.\n\nFrom recent feedback on HDMI-CEC system audio mode,\nit would be unnecessary to enforce output from AudioService.\nInstead, it would follow audio policy according to status\nof HDMI-CEC system audio mode.\nFor that removed two params of setHdmiSystemAudioModeSupported\napi of AudioManager.\n\nIn terms of speaker mute, it will be handled by removing speaker\nfrom audio ouput instead of changing gain control. For that\nadded new force usage type, FOR_HDMI_SYSTEM_AUDIO_MODE and\nnew force config type, FORCE_HDMI_SYSTEM_AUDIO_ENFORCED.\nThis is used to notify change of system audio mode to\naudio policy manager.\n\nBug: 16305986\nBug: 16002150\nChange-Id: I702e0f9ce7c7887d5f5dd02b06a40d20e4c950df\n"
    },
    {
      "commit": "1e693b55d888b9d3e0a2ce770ae2b72b59c1a317",
      "tree": "1f5cf885a43a9f79a6c698cbd286ce4dbf27ee8b",
      "parents": [
        "2db91ae0e6aa33b50cc924ad65d6dc01876d220f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jul 09 15:03:28 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 11 15:06:09 2014 -0700"
      },
      "message": "audio policy: add rules to select audio parameters\n\nAdded rules to select most appropriate sampling rate, format and\nchannel mask from an input or output profile.\nMoved mFlags from IOProfile to its base class AudioPort.\nRemoved bogus mChannelMask member in DeviceDescriptor class.\nImproveed dump of dynamic parameters in AudioPort.\n\nChange-Id: Ic09d320386002a8bafee4a28db00b1001a386678\n"
    },
    {
      "commit": "2829edccd7d2bb8244246f316face82b650b8949",
      "tree": "485dbd465bc203b2227c87fe582abeffd1ece08c",
      "parents": [
        "7bad72237b49ac47e77ffe2a89fd26f3d171324c"
      ],
      "author": {
        "name": "aarti jadhav-gaikwad",
        "email": "agaikwad@nvidia.com",
        "time": "Wed Jun 18 15:25:26 2014 +0530"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 11 09:53:16 2014 -0700"
      },
      "message": "stagefright: Pass audio aac sub formats in offloadinfo\n\nPass audio aac sub formats in offloadinfo according to\naac profile. Audio HAL can take decision about offload\nusing DSP capabilities\n\nChange-Id: If269a3654b5d2b09c183212b0646ef03e06f2d8f\n"
    },
    {
      "commit": "0c94309d3c6db555b57f2e2e2dc3a0a2676ac6b7",
      "tree": "5695b499e9f5f9da2e37b6daf245758054b4e5e3",
      "parents": [
        "01cab9ce4fb203fab8f5115ff866f9f0cc96a73a"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Tue Jul 08 22:11:24 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Thu Jul 10 11:31:51 2014 +0900"
      },
      "message": "Revamp HDMI-CEC system audio mode integration with audio service.\n\nIn previous change we use setForceUse(FORCE_MEDIA, XXX) method\nin order to set\t   specific audio output type, such as LINE, HDMI_ARC,\nand SPDIF. But it turns\t    out that it conflicts with bluetooth\na2dp which uses\t  the same setForceUse(FORCE_MEDIA, yyy).\n\nThis change is based on several conditions.\n\n1. When other non-speaker devices are on, prevent system audio\n   from turing on.\n2. In order to keep track of other devices\u0027 connectivity and to\n   turn off system audio if other device like bluetooth or\n   headphone preempts current output, register OnAudioPortChangeListner\n   to audio manager.\n3. All possible system audio outputs can be merged with other\n   outputs without priority.\n\nChange-Id: Ic5ccc80f9b48fb77433c347de7969837c69e58c1\n"
    },
    {
      "commit": "817d3356b5c23f01620105141633616b48002779",
      "tree": "668794a10c197cf3540de038a9027f3c8ae668a7",
      "parents": [
        "d539e610d0d87964714a4ea2f916d6c693394152",
        "98c6043e089743355bb6686176877f2ba5125213"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jul 09 16:08:47 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 09 14:43:38 2014 +0000"
      },
      "message": "Merge \"Revise speaker volume curve for media on devices with speaker DRC\""
    },
    {
      "commit": "98c6043e089743355bb6686176877f2ba5125213",
      "tree": "6b4dba5312d4d4d169b7f33b246e8dc2ab97f286",
      "parents": [
        "0d3679e21146bfa497c38842c80ae1f9906a042a"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jul 09 08:51:34 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jul 09 08:51:34 2014 -0700"
      },
      "message": "Revise speaker volume curve for media on devices with speaker DRC\n\nBug 15318604\n\nChange-Id: I14b451e2d8d4439fe286dd98c45d09b9dadbb4f6\n"
    },
    {
      "commit": "72d039f007722c92ee5ea7ffd03ece19d2781103",
      "tree": "7cb3604710dacf89064887f16b4cd6a8057ceddd",
      "parents": [
        "ba5e39b994b44cc458708eedd26c2d50404c9a46",
        "7999a2236cb641dc1d7bf7bd8d2499d40d0a806d"
      ],
      "author": {
        "name": "Terry Heo",
        "email": "terryheo@google.com",
        "time": "Wed Jul 09 02:48:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 02 21:09:42 2014 +0000"
      },
      "message": "Merge \"audio policy: add new input audio device\""
    },
    {
      "commit": "7999a2236cb641dc1d7bf7bd8d2499d40d0a806d",
      "tree": "975fc8ba518e766c75279d35fae99c409d85956a",
      "parents": [
        "07b56676694b01825df2375e4c2ead4e55fe2d98"
      ],
      "author": {
        "name": "Terry Heo",
        "email": "terryheo@google.com",
        "time": "Fri Jun 27 15:23:36 2014 +0900"
      },
      "committer": {
        "name": "Terry Heo",
        "email": "terryheo@google.com",
        "time": "Fri Jul 04 11:14:01 2014 +0900"
      },
      "message": "audio policy: add new input audio device\n\nAdd entry for AUDIO_DEVICE_IN_LOOPBACK to string to enum table.\n\nBug: 15437484\nChange-Id: I552df0969c745bdf66ff9e5d7bd864ef9e3f438d\n"
    },
    {
      "commit": "839e4f33906b650140b578d42d6a51300f26703c",
      "tree": "f49bae1877e05efb48a7f30ab373045011098c9c",
      "parents": [
        "8d0bc4a8ea2a5d0d6aba036f15b185d60e18778f"
      ],
      "author": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Thu Jun 26 17:23:40 2014 +0900"
      },
      "committer": {
        "name": "Jungshik Jang",
        "email": "jayjang@google.com",
        "time": "Wed Jul 02 13:54:57 2014 +0900"
      },
      "message": "Add force usage and category for System Audio Control.\n\nSystem Audio Control in HDMI-CEC delegate audio control\nto audio receiver. When system audio control is selected\nin audio settings as audio output it should select one of ARC, SPDIF,\nand LINE as audio output.\nWhenever user select System Audio as audio output, audio\nsetting should call\nsetForceUse(AUDIO_POLICY_FORCE_FOR_SYSTEM_AUDIO, AUDIO_POLICY_FORCE_XXX);\nand if other output is selected it should call\nsetForceUse(AUDIO_POLICY_FORCE_FOR_SYSTEM_AUDIO, AUDIO_POLICY_FORCE_NONE);\n\nChange-Id: I1c237ee9291a4e0acf01a86aff3176edce5c14e0\n"
    },
    {
      "commit": "b919dd3334fed73e16ebac7b7e10cf2add34c338",
      "tree": "412879f22058e60bbc4e4e5ff935152bb95f193d",
      "parents": [
        "1760291cf87005f18605a32a35aed9cae09988f7"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Jun 26 13:16:44 2014 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Jun 26 15:25:59 2014 -0700"
      },
      "message": "Enabling USB Device and Android Device Vol inc/dec functionality for USB Audio Output\n\nBug: 13747844\nChange-Id: Ied5bb44f63a4e7183c52f8111e9a389b60ffe75f\n"
    },
    {
      "commit": "84c70244bfea51b3413a8d8ffbf74ca737436251",
      "tree": "cd427568a2d356b0c114cfb462e836cb67233d3a",
      "parents": [
        "cd8fce8fbe0f515e53a0ea0f50b739cf42ee57a4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 23 08:46:27 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 24 14:28:06 2014 -0700"
      },
      "message": "audio policy: fix several issues on routing APIs.\n\n- Do not list duplicated outputs in listAudioPorts(): duplicated\noutputs are not valid sources for audio patches.\nAlso add asserts to make sure that an audio port with no valid profile\nis never used by audio routing APIs.\n- Fix typos causing the wrong device type to be used\nwhen creating an audio patch.\n- Fix error in building config mask in toAudioPortConfig().\n\nChange-Id: I4505891dbed2c2fa92804d45505c3c2deb921f3e\n"
    },
    {
      "commit": "beb9e30471701d7b76bc14fd0d5dd1de95edd680",
      "tree": "e8be705d305905395186bf9ad79708e58606258a",
      "parents": [
        "071ba4b343687e0ad1a68afb1dc195ed5f362a0b"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jun 18 16:33:15 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 20 14:35:09 2014 -0700"
      },
      "message": "audiopolicy: 64-bit compile warnings\n\nChange-Id: I71db11499c4b0c434df8144c633d42282f5823c2\n"
    },
    {
      "commit": "ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa",
      "tree": "0d406acdfea2d44cd430ef16ee2a25b7722e4b1d",
      "parents": [
        "29a8b2fe294a34ac7f004203426961a599e725ea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 09 17:22:27 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 19 10:05:57 2014 -0700"
      },
      "message": "AudioTrack: add support for compressed audio\n\nAdd support for compressed audio playback by use\nof an AudioTrack attached to a direct output thread.\n\nBug: 9428304.\n\nChange-Id: I4a61be9cf0e31003ca85935d6e0ee38ca8192e03\n"
    },
    {
      "commit": "5bd3f38638acab633d181359cc9ec27b80f84d43",
      "tree": "f4f234ec7e3c4649beabe5b03c1a1a0b2b3cd1f2",
      "parents": [
        "faabb51ceef13bf1e3f692219ac410c1cd75d0de"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 13 16:06:54 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 18 08:07:00 2014 -0700"
      },
      "message": "AudioPolicyManager: return output for audio attributes\n\nIn AudioPolicyManager, support querying an output\n or playback strategy for audio attributes,\n instead of a stream type,\nIn AudioTrack creation, use the output returned\n for the track\u0027s attributes.\n\nChange-Id: I0fef05845ba676404775e2e338c10e6a96237268\n"
    },
    {
      "commit": "7e45ef9db7446d33c941961c14555413641e444b",
      "tree": "b3e2dca352431bace292402d2498f888ebd7a377",
      "parents": [
        "3e648747e7e40752580ae7fd0ff2e803623680cd",
        "318cd78e3b8503113919191b3711eb8be5d23d35"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Jun 07 10:01:16 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jun 07 10:01:16 2014 +0000"
      },
      "message": "am 318cd78e: Merge \"audio policy: added audio HAL version in audio_policy.conf\" into lmp-preview-dev\n\n* commit \u0027318cd78e3b8503113919191b3711eb8be5d23d35\u0027:\n  audio policy: added audio HAL version in audio_policy.conf\n"
    },
    {
      "commit": "eb108a4622825688b02d7afc981014d149913cd8",
      "tree": "73249a1268ee3228dffce25aa8eb15caabdc96c6",
      "parents": [
        "270facca297275a4889d1cc49ec4d2768ed38bb7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 06 14:56:52 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 06 16:03:28 2014 -0700"
      },
      "message": "audio policy: added audio HAL version in audio_policy.conf\n\nEach hardware module section in audio_policy.conf indicates\nthe audio HAL version it implements.\n\nAlso added a template audio_policy.conf file with examples\nof device and gain descriptors added for audio HAL version3.0.\n\nBug: 14815883.\nChange-Id: Id219d121f81f687363f6c18f2d1684b2448dcdf4\n"
    },
    {
      "commit": "6f264ac08317a27958f2b0d3c35133b368dd9f3c",
      "tree": "c63d0ac223050f31b72e579fc2f6da715a944b2b",
      "parents": [
        "a78df9591c698834f3d57f6e882e4b0af5f8f473",
        "ccd8e4a9da4d0bcc2c715452c5a18fabb23f86ac"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 06 17:57:44 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jun 06 17:57:45 2014 +0000"
      },
      "message": "Merge \"Audio policy: new media volume curve for speaker with DRC\""
    },
    {
      "commit": "ccd8e4a9da4d0bcc2c715452c5a18fabb23f86ac",
      "tree": "3bb21cccad3d17874ae31311ce8fabed5b873966",
      "parents": [
        "f3e7f11f419eef7cba752936e637b4f1b70267f4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 05 15:33:20 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jun 05 15:33:20 2014 -0700"
      },
      "message": "Audio policy: new media volume curve for speaker with DRC\n\nFor devices with DRC on speaker (using the flag \"speaker_drc_enabled\"\n in audio_policy.conf), set the speaker media volume to use a\n new curve with more aggressive attenuation in the upper range.\n\nBug 15318604\n\nChange-Id: Ia5fb9fdd608fddad22fadfb1065d35574030bb52\n"
    },
    {
      "commit": "e40ed90293eeb0feecb5b7729cf24f8ecea9b412",
      "tree": "6b55972e93b923428542481d4d9078c98f533cb1",
      "parents": [
        "a408743e8a759b344ac95322ae336459a81edf24",
        "26594add1ec0b6255c96b39e43ccdc95b2c480aa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 23:42:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 04 23:42:59 2014 +0000"
      },
      "message": "am 26594add: Merge \"audio policy: new setAudioPortConfig implementation\" into lmp-preview-dev\n\n* commit \u002726594add1ec0b6255c96b39e43ccdc95b2c480aa\u0027:\n  audio policy: new setAudioPortConfig implementation\n"
    },
    {
      "commit": "a408743e8a759b344ac95322ae336459a81edf24",
      "tree": "c36db0a504d7c4ff0dc1e983173e80c4c9f99ffc",
      "parents": [
        "aaaea95d23b78313b7ddf1f8f670c9b0110474ed",
        "4bd9d45230cd69c0409591874db3e6f2e3a226b3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 21:31:53 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jun 04 21:31:53 2014 +0000"
      },
      "message": "am 4bd9d452: Merge \"audio policy: removed raw pointers.\" into lmp-preview-dev\n\n* commit \u00274bd9d45230cd69c0409591874db3e6f2e3a226b3\u0027:\n  audio policy: removed raw pointers.\n"
    },
    {
      "commit": "a121f90f388343dc48793cbc7eb899aba42e7664",
      "tree": "a35526f7ec819e7e539c537fcf4b1b3b5d06a6fc",
      "parents": [
        "1f2f2230900581e5de9cf01a883e5d9338f0df94"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 03 13:32:54 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jun 04 09:30:28 2014 -0700"
      },
      "message": "audio policy: new setAudioPortConfig implementation\n\nRewrite setAudioPortConfig() to take advantage of the new\nAudioPortConfig class.\n\nThe configuration is now checked against AudioPort capabilities\nand stored in the AudioPortConfig.\n\nFix a bug where the config mask was not set properly when calling\nsetAudioPortConfig at the PatchPanel interface.\n\nRemove debug log in IAudioPolicyService.\n\nBug: 14815883.\nChange-Id: I7eb7683a96e049581c13f2a212486507883d008d\n"
    },
    {
      "commit": "1f2f2230900581e5de9cf01a883e5d9338f0df94",
      "tree": "373772b95144b74c73bce02e05ba0026432cddea",
      "parents": [
        "5284ed53c14cd4d15bd793000ede7166d143e69a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 12:01:23 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jun 03 17:41:57 2014 -0700"
      },
      "message": "audio policy: removed raw pointers.\n\nUse only RefBase objects for the following classes:\n- AudioOutputDescriptor\n- AudioInputDescriptor\n- HwModule\n- EffectDescriptor\n\nCreate a common base class AudioPortConfig for:\nAudioOutputDescriptor, AudioInputDescriptor and DeviceDescriptor\n\nBug: 14815883.\n\nChange-Id: I1bd193ef1020780d8b94c13142029903615aba97\n"
    },
    {
      "commit": "43466a133984182b250453cea244eb146e83c010",
      "tree": "f886c3055b17c1f4b95fae4e7dc85d4520a83336",
      "parents": [
        "cc19c8b58a48a0d090ea9d9897664f9817e7bac1",
        "62aaabb3905c61bb7acd6037414c206240a31c32"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 17:57:13 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jun 02 17:57:13 2014 +0000"
      },
      "message": "am 62aaabb3: audio policy: fix unitialized hw module in audio port\n\n* commit \u002762aaabb3905c61bb7acd6037414c206240a31c32\u0027:\n  audio policy: fix unitialized hw module in audio port\n"
    },
    {
      "commit": "62aaabb3905c61bb7acd6037414c206240a31c32",
      "tree": "55b1f59fa16bc0cf762c88a96e5a5f9a5d82d08c",
      "parents": [
        "e1715a465a29db625da9d0ea365edf371e39e201"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 10:40:54 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 02 10:40:54 2014 -0700"
      },
      "message": "audio policy: fix unitialized hw module in audio port\n\nThe hw module handle was not initialized when creating\nand audio port configuration from an input stream descriptor.\n\nBug 15376641.\n\nChange-Id: I6c784cded68a5c665fd22c3643765c63f70eb241\n"
    },
    {
      "commit": "481c8837c7f67852e06137d636915ea6e96247e3",
      "tree": "04503e831053d7a8df184ab5592ec4c7521d9671",
      "parents": [
        "68f5fb51f6ef2f54a0955bac98c16c2aa811f809",
        "e1715a465a29db625da9d0ea365edf371e39e201"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 31 01:55:53 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat May 31 01:55:53 2014 +0000"
      },
      "message": "am e1715a46: audio policy: add audio port gain control\n\n* commit \u0027e1715a465a29db625da9d0ea365edf371e39e201\u0027:\n  audio policy: add audio port gain control\n"
    },
    {
      "commit": "68f5fb51f6ef2f54a0955bac98c16c2aa811f809",
      "tree": "d7979d3a6bb0b3c988f00994a770f693101b2caf",
      "parents": [
        "72aa32f7dbbfb658097930b57659d8e50f24a953",
        "1afeecb88bea660b2c10b2096be0fd02433303ce"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat May 31 01:55:47 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat May 31 01:55:47 2014 +0000"
      },
      "message": "am 1afeecb8: audio policy: parse device descriptors in config file\n\n* commit \u00271afeecb88bea660b2c10b2096be0fd02433303ce\u0027:\n  audio policy: parse device descriptors in config file\n"
    },
    {
      "commit": "72aa32f7dbbfb658097930b57659d8e50f24a953",
      "tree": "7033c38865bfdb413c5ca891fd4f6d0a98a84d99",
      "parents": [
        "cf570853ee36eeb58be38ea3dac16a17c6a5d4ba",
        "b52c152d553556b2d227ffc943489de0c60b4b02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 18:51:48 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 18:53:14 2014 -0700"
      },
      "message": "resolved conflicts for merge of b52c152d to master\n\nChange-Id: I34869bda071d511c9595ea0a5ff6571eb34da059\n"
    },
    {
      "commit": "e1715a465a29db625da9d0ea365edf371e39e201",
      "tree": "771fdda7b99935e05e7b3c36487abf523930dd34",
      "parents": [
        "1afeecb88bea660b2c10b2096be0fd02433303ce"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:30:42 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 17:22:58 2014 -0700"
      },
      "message": "audio policy: add audio port gain control\n\nImplement setAudioPortConfig() API to configure an\naudio port.\nCurrently limited to gain control.\n\nBug: 14815883.\n\nChange-Id: Ic1b268e5ba5c277e9f5b8fa63c81dd7c0b250024\n"
    },
    {
      "commit": "671714b80cad4725d07691fbd8284cb869a0c27f",
      "tree": "a7e8983cc01ab51f76ecb5e452b49a2ce8c166a9",
      "parents": [
        "47aaf6da5d7ecc2ad28de004d1820b64b02dd344",
        "6a94d69dc4f32abb53c466a96f905bb199be6417"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 21:32:33 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri May 30 21:32:33 2014 +0000"
      },
      "message": "am 6a94d69d: audio policy: implement routing control\n\n* commit \u00276a94d69dc4f32abb53c466a96f905bb199be6417\u0027:\n  audio policy: implement routing control\n"
    },
    {
      "commit": "c0008d1146ccdeda0a4eb08f8225225b1b1237dc",
      "tree": "93f3dc49ecedc7d5368a4616aed9f0c3ea5feb75",
      "parents": [
        "0c2cb9bcfd30856ceb83544c04f47b52e8924c52",
        "b71e58b64cd4992355cf6afaf3f3530f723bc72c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri May 30 17:09:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri May 30 17:09:04 2014 +0000"
      },
      "message": "Merge \"handle in and out audio device connection separately\""
    },
    {
      "commit": "1afeecb88bea660b2c10b2096be0fd02433303ce",
      "tree": "51538ff8734b90c48dd477bfe88734784f5ec1f7",
      "parents": [
        "b52c152d553556b2d227ffc943489de0c60b4b02"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 14 08:52:28 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 18:02:06 2014 -0700"
      },
      "message": "audio policy: parse device descriptors in config file\n\nImplement parsing of audio_policy.conf for device and gain\ncontroller definitions.\nCopy audio_policy_conf.h from hardware_legacy.\nNew syntax for devices and gain controllers description will not\nbe parsed by legacy audio policy manager.\n\nBug: 14815883.\n\nChange-Id: I7f1035d514dcf55fb3e45ed1f633a2f63ee398f5\n"
    },
    {
      "commit": "b52c152d553556b2d227ffc943489de0c60b4b02",
      "tree": "bcaca952efbd1ffa7eefa7251beafc3d2574a04a",
      "parents": [
        "6a94d69dc4f32abb53c466a96f905bb199be6417"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:27:36 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 18:01:58 2014 -0700"
      },
      "message": "audio policy: add routing update client interface\n\nAdded IAudioPolicyServiceClient client binder interface\nfor client process to receive notifications from AudioPolicyService\nwhen audio ports are added/removed or audio patches created/released.\n\nThe audio patches owned by a given client are automatically released when\nthis client binder dies.\n\nBug: 14815883.\n\nChange-Id: I6013f6aec03b50565cffb1ad2cd1f0f8852032c5\n"
    },
    {
      "commit": "6a94d69dc4f32abb53c466a96f905bb199be6417",
      "tree": "eef3552877f202429801a0b20f2ae31aad7801e7",
      "parents": [
        "32f93b7bedc44b425ba99d69dec998334e759532"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 11:18:06 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 17:57:55 2014 -0700"
      },
      "message": "audio policy: implement routing control\n\nAdd implementation of audio routing control via AudioSystem APIs.\n\nThe following APIs are implemented:\n- listAudioPorts(): return a list of devices and output/input mixers ports\nthat can be used as sources or sinks for audio patches.\n- createAudioPatch()/releaseAudioPatch(): create/release a connection patch between\ntwo audio ports (e.g. to connect input from an HDMI device to a speaker output device).\nOnly one client application can own a patch from a given source.\nWhen an audio port (device or mix) is part of an application created patch, its routing cannot\nnot be changed by a policy decision.\n- listAudioPatches(): return a list of existing patches.\n\nEach audio port addition/removal and each audio patch creation/release increments a generation count.\nThis generation count is used to ensure consistency betwen calls to\nlistAudioPorts() and listAudioPatches().\n\nBug: 14815883.\n\nChange-Id: I022b638c2f5f0bb41543c7cfca7488fb45cfdd80\n"
    },
    {
      "commit": "b71e58b64cd4992355cf6afaf3f3530f723bc72c",
      "tree": "5265fb32aadca2e2a3d1d83e4ba62c0ff0f83edb",
      "parents": [
        "5584c58c7c952b5ed891bbff3b00a0be3f96196d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 16:08:11 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 29 16:08:11 2014 -0700"
      },
      "message": "handle in and out audio device connection separately\n\nAudioService now indicates in and out device connection\nseparately in case of combined devices like wired headset\nor BT SCO headset.\n\nChange-Id: I97adf8343d0ce32c279ffc3cce5c84ca7a349e16\n"
    },
    {
      "commit": "1afdf38e0d8979e0a6bd5f3cc9b6751ca132753e",
      "tree": "6434583aecf561dc9dbed24e4167f654d50ff157",
      "parents": [
        "1e5308df326522ac925086bbd7396349bbe67505",
        "41b0e2421a0cf8dc22f224ea078678d7db651bda"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed May 28 21:54:02 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed May 28 21:54:02 2014 +0000"
      },
      "message": "Merge \"Add audio policy support for A2DP sink\""
    },
    {
      "commit": "951f455566775e5f01e67c5ee26863d7d19209d7",
      "tree": "39fc248f74f7585b7108c0cb00e2d36d22b3e1b7",
      "parents": [
        "1cda6afaf6207a41303e653a6ecd7909d73186eb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 10:48:17 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 28 14:29:47 2014 -0700"
      },
      "message": "DO NOT MERGE - audioflinger: first patch panel implementation.\n\nAdded a new PatchPanel subclass to AudioFlinger\nto handle audio ports and audio patches configuration\nand connection.\nThe first implementation does not add new functionnality.\nAudioPolicyManager uses patch panel interface to control\ndevice routing.\nAudioFlinger:\n- Added PatchPanel class. The first implementation does not\nadd new functionnality. PatchPanel handles routing commands\nfor audio HAL after 3.0 or converts to setParameters for audio\nHALs before 3.0.\n- Added config events to ThreadBase to control synchronized\naudio patch connection.\nAudioPolicyManager:\n- Use PatchPanel API to control device selection isntead of setParameters.\n- New base class AudioPort common to audio device descriptors\nand input output stream profiles. This class is RefBase and groups\nattributes common to audio ports.\n- Use same device selection flow for input as for outputs:\n getNewInputDevice -\u003e getDeviceForInptusiource -\u003e setInputDevice\n\nChange-Id: Idaa5a883b19a45816651c58cac697640dc717cd9\n"
    },
    {
      "commit": "41b0e2421a0cf8dc22f224ea078678d7db651bda",
      "tree": "dea96cac9989eaf8e88584dbbf40dd179333ff01",
      "parents": [
        "7ac0039611ea7ea18f9545f96a8f5cb31dcdebe5"
      ],
      "author": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Tue May 13 15:23:35 2014 -0700"
      },
      "committer": {
        "name": "Mike Lockwood",
        "email": "lockwood@google.com",
        "time": "Wed May 28 07:23:24 2014 -0700"
      },
      "message": "Add audio policy support for A2DP sink\n\nChange-Id: Ifcad9c1d4bdb79668e03a31d843ec46670dd0bd8\n"
    },
    {
      "commit": "1c333e252cbca3337c1bedbc57a005f3b7d23fdb",
      "tree": "327f985a0db89dad8fc742baf5b198c3b78c429b",
      "parents": [
        "4b123406c10c17852734a1b691bb9ce2a4cb7caf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 20 10:48:17 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 27 10:53:51 2014 -0700"
      },
      "message": "audioflinger: first patch panel implementation.\n\nAdded a new PatchPanel subclass to AudioFlinger\nto handle audio ports and audio patches configuration\nand connection.\nThe first implementation does not add new functionnality.\nAudioPolicyManager uses patch panel interface to control\ndevice routing.\nAudioFlinger:\n- Added PatchPanel class. The first implementation does not\nadd new functionnality. PatchPanel handles routing commands\nfor audio HAL after 3.0 or converts to setParameters for audio\nHALs before 3.0.\n- Added config events to ThreadBase to control synchronized\naudio patch connection.\nAudioPolicyManager:\n- Use PatchPanel API to control device selection isntead of setParameters.\n- New base class AudioPort common to audio device descriptors\nand input output stream profiles. This class is RefBase and groups\nattributes common to audio ports.\n- Use same device selection flow for input as for outputs:\n getNewInputDevice -\u003e getDeviceForInptusiource -\u003e setInputDevice\n\nChange-Id: Idaa5a883b19a45816651c58cac697640dc717cd9\n"
    },
    {
      "commit": "1b776237ec911f4bb09f42f295b41e13f5f49113",
      "tree": "f737ff11acea9e7dfde7bbc2f50df201c6a1d4f6",
      "parents": [
        "272b7f26c300d2029f278cf2af523cf94e513b89"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 19 17:26:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 19 17:26:41 2014 -0700"
      },
      "message": "audio policy: add new audio devices\n\nAdd entries for new audio devices to string to enum table used\nfor audio_policy.conf file parsing.\n\nChange-Id: Ica04c34af037d890a343af0b9eeb2ff0e5c86b02\n"
    },
    {
      "commit": "99401131e58f2ff7f5571037d0d53b6f684e5543",
      "tree": "0a94d258392b447c8a8c457f6f085f7118ced3ce",
      "parents": [
        "eee8fc78703dd77244407250402fe7464fe50fd3"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 07 19:48:15 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu May 08 14:10:17 2014 -0700"
      },
      "message": "audio policy: fix mute delay when setting output device\n\nThe duration of the temporary mute applied on each output\nwhen switching device must be more than twice the actual delay\nwe wait for the mute to be effective at the output.\nOtherwise some outputs with short latencies will be unmuted before the\ndevice switch is actually executed.\n\nThis change makes sure that we take the maximum wait time into account\nwhen requesting the delayed unmuting of each output.\n\nChange-Id: Id92c201b47786082a44b6a5c1c8015273835a42e\n"
    },
    {
      "commit": "5b61dddd0dba28922068da2487894761486aec6c",
      "tree": "068b24eb9da2b95f25f4954e43e8bccb25097f76",
      "parents": [
        "5e0e2316578b8b9eccdf4002951d6e9cd96adaac"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 07 09:10:01 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed May 07 09:10:01 2014 -0700"
      },
      "message": "audio policy: fix typo in AudioPolicyManager constructor\n\nFix cut/paste error in new AudioPolicyManager constructor\ncausing the same index variable to be reused in nested for loops.\n\nChange-Id: Id57ff19bf6dd8974486b07c8252029e377df2747\n"
    },
    {
      "commit": "d46929666d7e4b1cad45afd7dcb883ec4dd2d49f",
      "tree": "7955b56d436b8856b6164cb37e16bdfbe2ad81c4",
      "parents": [
        "7ebe2c64dea42a3fd4de34ccb877d23b7a4e8076"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon May 05 18:13:44 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue May 06 10:40:14 2014 -0700"
      },
      "message": "audio policy: update from libhardware_legacy\n\nMerge changes made to AudioPolicyManagerBase in libhardware_legacy\nsince it was forked here:\n\nfd61179 Update policy handling for USB inputs\nc7b6e3c audio: allow compiling for 64-bit\nc26f454 Initial implementation of USB Audio output.\na7b1bc9 Audio policy is 32-bit only\n26101ad audio policy : add AUDIO_DEVICE_IN_USB_DEVICE to sDeviceNameToEnumTable\n\nChange-Id: I22bc883c20603a6598c6ee3ded636e9cc4d9ec03\n"
    },
    {
      "commit": "2f8a36fc8df14cba33fa7c5c1c9d5a52f8a133c2",
      "tree": "7d46255b2e5a25ca5de3cc756152a3a64121ea6c",
      "parents": [
        "2347c7b0502f5f71d2f0e22d39f1d5a61add3f6b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 26 19:05:55 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 26 19:05:55 2014 -0700"
      },
      "message": "Fix the build\n\nChange-Id: I2169a3d26f4e35e5cfa35a1264175aab6ac4db41\n"
    },
    {
      "commit": "1b512c05f46465a7b1a1d69f82937d7199d5d926",
      "tree": "354295c76a76128d3122f8f4ac58bb5a1bf4c601",
      "parents": [
        "3a4311c68348f728558e87b5db67d47605783890"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 17 12:42:06 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 26 15:28:47 2014 -0700"
      },
      "message": "audio policy: remove obsolete AudioPolicyManager class members\n\nRemove mHasA2dp, mHasUsb and mHasRemoteSubmix members from\nAudoPolicyManager. They are not needed any more since\nwe use device descriptors with additional attributes.\n\nAlso remove obsolete limitation on device address\nlength (MAX_DEVICE_ADDRESS_LEN).\n\nChange-Id: Iffe760a521692a4b50be3f6b935af84afb61bb86\n"
    },
    {
      "commit": "3a4311c68348f728558e87b5db67d47605783890",
      "tree": "920ecdf2868176572b6770200d6e3314c5462dd7",
      "parents": [
        "172a7a965c21c29ee38c77d53d91780c7dca09bf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 17 12:00:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 26 15:28:33 2014 -0700"
      },
      "message": "audio policy: use new audio device representation\n\nRepresent audio devices with more attributes than just the\ntype (audio_device_t).\nThis is in preparation for new routing APIs allowing\ndevice selection based on more criteria than just the type\n(address, channel mask...)\nA new class DeviceDescriptor is created and used by functions\nneeding more information than just the device type.\nBit fields for available and supported input or output devices are\nreplaced by vectors of device descriptors.\nEach available device is allocated a unique ID for future use.\nRemoved obsolete mA2dpDeviceAddress, mScoDeviceAddress and mUsbCardAndDevice\nfields replaced by address stored in DeviceDescriptor.\n\nPolicy decisions like getDeviceForStrategy() are still based\nonly on the device type.\n\nChange-Id: I5de3b3ffb12ff8dcfb746782ab1e6b15bf040d0c\n"
    },
    {
      "commit": "e07208765fcd5904165e425ec714a25c350a2f40",
      "tree": "f255f68fb03d0512df0788901317da866ec21777",
      "parents": [
        "3b73df74357b33869b39a1d69427673c780bd805"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 09:30:41 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 14:03:55 2014 -0700"
      },
      "message": "audio policy: renamed AudioPolicyManagerBase to AudioPolicyManager\n\nChange-Id: Ia8b5ae9c3a9cf6ed98f162614ea331efc78e9ff2\n"
    }
  ],
  "next": "3b73df74357b33869b39a1d69427673c780bd805"
}
