)]}'
{
  "log": [
    {
      "commit": "f2ab2191387ce7902c730cc68314ea5fdc4a9237",
      "tree": "7c96b4c90e05dedccb318ca43fd4c3bf82e7204b",
      "parents": [
        "95511add8ad4d440c67272503559f5042c4e6f1f"
      ],
      "author": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Sat Oct 11 21:59:36 2014 +0000"
      },
      "committer": {
        "name": "Vineeta Srivastava",
        "email": "vsrivastava@google.com",
        "time": "Sat Oct 11 21:59:36 2014 +0000"
      },
      "message": "Revert \"audio policy: add support for ro.audio.media_deep_buffer\"\n\nThis reverts commit 95511add8ad4d440c67272503559f5042c4e6f1f.\n\nChange-Id: I76a8b86790b06b08d8ca0f8d374e585f964ffba8\n"
    },
    {
      "commit": "95511add8ad4d440c67272503559f5042c4e6f1f",
      "tree": "a605077307327ac30bf9b553ad4e48bfa300e8cf",
      "parents": [
        "f5ada6edcc83bb1b313abcd4c4fbdc4f7724f04d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 15:31:38 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 15:39:14 2014 -0700"
      },
      "message": "audio policy: add support for ro.audio.media_deep_buffer\n\nBug: 17931716.\nChange-Id: Ife170f20f5d02b71059fbd384bd29759fafee826\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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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": "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"
    },
    {
      "commit": "3b73df74357b33869b39a1d69427673c780bd805",
      "tree": "ee7f5026f5dbb34f0f9de4c6db8c7aa82401c695",
      "parents": [
        "e552edb33fb5873179ae0a46d9579d1103eb13c6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 09:06:29 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 14:03:55 2014 -0700"
      },
      "message": "audio policy: remove dependency from AudioSystemLegacy\n\nRemove all dependencies on AudioSystemLegacy from AudioPolicyManagerBase.\nOnly use types and definitions from audio.h and audio_policy.h.\nAlso move code back into android name space.\n\nChange-Id: I0c2582cf854027fb1e599981865a6cbe7b5a9490\n"
    },
    {
      "commit": "e552edb33fb5873179ae0a46d9579d1103eb13c6",
      "tree": "a54dd066de5a9c43f3899cbb7c43acc64231f2f8",
      "parents": [
        "2d388eccc9dc085337c7a03a68467cbee6b809e1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Mar 10 17:42:56 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Mar 11 14:03:55 2014 -0700"
      },
      "message": "audio policy: import audio policy manager from hardware legacy\n\nImport AudioPolicyManagerBase from hardware/libhardware_legacy\nto prepare move from android_audio_legacy name space.\n\nChange-Id: I5d6682ccd2bfdeefbf2f6f81a557480a76aaf4fc\n"
    }
  ]
}
