)]}'
{
  "log": [
    {
      "commit": "acc930d104534dff89d5e336d22d2310069ca7c2",
      "tree": "1bd6f8f33db1549d0fe3663dbe72a7570957af35",
      "parents": [
        "96faa25f4aea2c792523ae920da91f919f5ea392"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 04 10:08:29 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 04 10:08:41 2015 -0800"
      },
      "message": "audiopolicy: Do not route VoIP call to HDMI\n\ngetDeviceForStrategy is returning AUDIO_DEVICE_OUT_AUX_DIGITAL\neven  when setForceUse is called with FORCE_NONE(earpiece)\nduring VOIP call.\nActual Intention is to route audio for phone strategy to AUX\ndevice even after setForceUse is called with FORCE_NONE when not\nin voice call. It is supposed to exclude VOIP call too.\n\nBug: 19522164.\n\nChange-Id: I88d515c351f066305f9eed240b1fe5f60ef34f85\n"
    },
    {
      "commit": "56ec4ffcbae8aeac6c5245fc7b825d02e2e6cefd",
      "tree": "914941adb956f3af389b9a7b955f3534eec4fe7a",
      "parents": [
        "8f7b7fa417566e9a6a29ea9f0e220b3cd6d1a9e3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jan 23 16:45:18 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Feb 18 17:29:20 2015 -0800"
      },
      "message": "Refactor AudioPolicyManager\n\nAudioPolicyManager implementation is now split into the\nfollowing files:\n\nfiles managerdefault/Gains.*\n  class AudioGain\n  class VolumeCurvePoint\n  class StreamDescriptor\n\nfiles managerdefault/Devices.*\n  class DeviceDescriptor\n  class DeviceVector\n\nfiles managerdefault/Ports.*\n  class AudioPort\n  class AudioPortConfig\n  class AudioPatch\n\nfiles managerdefault/IOProfile.*\n  class IOProfile\n\nfiles managerdefault/HwModule.*\n  class HwModule\n\nfiles managerdefault/AudioInputDescriptor.*\n  class AudioInputDescriptor\n\nfiles managerdefault/AudioOutputDescriptor.*\n  class AudioOutputDescriptor\n\nAll files for libaudiopolicyservice are moved under service/\n\nAll files for libaudiopolicymanager are moved under manager/\n\nChange-Id: I43758be1894e37d34db194b51a19ae24461e066e\n"
    },
    {
      "commit": "e8610ba233ecdb3f6d3259412b41738a3861ee7e",
      "tree": "733694eb052a9bd41b53f7dffc77738abf11d057",
      "parents": [
        "9fdb3bd42af0876a9b76bae42d7aba2287b53af4"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 06 13:53:36 2015 -0800"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Fri Feb 06 14:44:32 2015 -0800"
      },
      "message": "Passing device name up through getDeviceDescriptor() method (when creating)\n\nChange-Id: Ibd85e37914333478fd038c3d2f52e214016c16b1\n"
    },
    {
      "commit": "e743a47f445f02a0612018fa5640301304844fbf",
      "tree": "b8db2098c4e585e2e4d918db4c01a19fb5cf6be4",
      "parents": [
        "b96efd3cd7ff49e85049a1515b8bb3b7514dce0b"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Jan 28 11:07:31 2015 -0800"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Thu Feb 05 09:54:20 2015 -0800"
      },
      "message": "Add additional info to AudioPort for enum/selection API.\n\nAdd \"device name\" member to AudioPort.\nMoved unique device ID from DevicePort to AudioPort.\nStraighten out confusion between \"name\" and \"address\"\nCreated string constants for Intent \"extra\" data keys.\nCombine card/address data into \"address\" at sender.Add additional info to AudioPort for enum/selection API.\n\nChange-Id: I1be308e12b09cd0ead9a3e9fbc9c385462299fb5\n"
    },
    {
      "commit": "7bc903581f879c86f3881a2f7563bd28c1ac29b7",
      "tree": "b63e33c63c7fc7c8febf5b6912cf6dc010e66a9c",
      "parents": [
        "07840f7544de883fe5c00cbd18bc6458a20e2691",
        "5d46bd54a279f24d0476b83947ce29e786b5c72c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 17:25:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Feb 04 17:25:40 2015 +0000"
      },
      "message": "am 5d46bd54: am 3ae5f313: audiopolicy: send device connect notification to HALs\n\n* commit \u00275d46bd54a279f24d0476b83947ce29e786b5c72c\u0027:\n  audiopolicy: send device connect notification to HALs\n"
    },
    {
      "commit": "3ae5f31393609b7fa92f24132c66e9a8c9244a45",
      "tree": "059dbae05f8fdaaa3cf3dd68b246deb2cebeea76",
      "parents": [
        "efbb61950db36a5eb789be83f077246172507c67"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Feb 03 17:12:08 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 04 08:56:31 2015 -0800"
      },
      "message": "audiopolicy: send device connect notification to HALs\n\nDevice disconnect notifications are sent from audiopolicy to\nthe HALs. Send connect notifications as well.\n\nBug: 19249796.\nBug: 17785277.\n\nChange-Id: Ia823ed154d6a0c7ceb84b0a94f0c3b78392faaf6\n"
    },
    {
      "commit": "e33dee9e041c6ad8d822f717ef141d657da96c32",
      "tree": "89889c9730c4736d464c449b7cded762cd6769a1",
      "parents": [
        "cba7fe5f1cb13108367d6de288428801b2d89a8e",
        "14a849c267bdcf564c30f9f2ebf0d619b36f500a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 21:22:44 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 30 21:22:44 2015 +0000"
      },
      "message": "am 14a849c2: am 1bf8a210: Merge \"audio policy: add fallback for output selection\" into lmp-mr1-dev\n\n* commit \u002714a849c267bdcf564c30f9f2ebf0d619b36f500a\u0027:\n  audio policy: add fallback for output selection\n"
    },
    {
      "commit": "cba7fe5f1cb13108367d6de288428801b2d89a8e",
      "tree": "62c5fc6f17c5a21f9ce952f7c1a93f617c1475be",
      "parents": [
        "172f257811886a216bf528006fc8445cec9d5480",
        "6f4428de2b4ab10393bbac2441586ac514c8cf53"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 21:18:06 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jan 30 21:18:06 2015 +0000"
      },
      "message": "am 6f4428de: am d99c6855: Merge \"audio policy: match attached device to declared devices\" into lmp-mr1-dev\n\n* commit \u00276f4428de2b4ab10393bbac2441586ac514c8cf53\u0027:\n  audio policy: match attached device to declared devices\n"
    },
    {
      "commit": "1bf8a21018cc1d95dc3c28b5044aeda327c7b54e",
      "tree": "8a4be46e5650fa435176aaa2e5ce95b8e146de8c",
      "parents": [
        "d99c6855901e4b2625aaad3fc24cff5ecf675fa3",
        "a82797faddb37adb2d441737884576684c8515cb"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 20:27:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 30 20:27:44 2015 +0000"
      },
      "message": "Merge \"audio policy: add fallback for output selection\" into lmp-mr1-dev"
    },
    {
      "commit": "a82797faddb37adb2d441737884576684c8515cb",
      "tree": "68f6794347c78e26ec90a25373f6efb7894ba4fe",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 11:49:43 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 11:49:43 2015 -0800"
      },
      "message": "audio policy: add fallback for output selection\n\nWhen getOutputForDevice() finds a matching direct output profile\nbut fails to open it, try to fallback to downmix on mixer output\nwhen format is PCM and sampling rate allows it.\n\nBug: 19197137.\nChange-Id: I197b9b202504265b6928e69740875cb7aba5c2c5\n"
    },
    {
      "commit": "d99c6855901e4b2625aaad3fc24cff5ecf675fa3",
      "tree": "9f48f6a001a4fd4b0a097d6c64ed128b91f4abfe",
      "parents": [
        "0d84ba3fd82038cb721ffae234a99e6751ed7fbe",
        "a1d525fbf2c1e0b2c61e5d29f338b0a0d8823436"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jan 30 16:33:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Jan 30 16:33:21 2015 +0000"
      },
      "message": "Merge \"audio policy: match attached device to declared devices\" into lmp-mr1-dev"
    },
    {
      "commit": "a1d525fbf2c1e0b2c61e5d29f338b0a0d8823436",
      "tree": "58ca0bd223daf403b1e18f29dc3dc2966f2c5478",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 13:36:45 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 13:36:45 2015 -0800"
      },
      "message": "audio policy: match attached device to declared devices\n\nMake sure that when a new audio device is connected,\nand a specific profile for this device is listed in\naudio_policy.conf, this particular profile is used instead\nof a default generic profile.\n\nBug: 19188567.\nChange-Id: I5f576fcd697adc041b2cfbd2bac7a51bcc2143b9\n"
    },
    {
      "commit": "88873ae1b01208a9e70b80860274f429d08a6c64",
      "tree": "e65a0e3199208d53cf149757174f1e523bc9e0a3",
      "parents": [
        "183a0e52ac3130501c417005f6363eeec62c0afd",
        "f1121d963b51c798ab28c85eeff1eedc9bb2c186"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 20:34:33 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 29 20:34:33 2015 +0000"
      },
      "message": "am f1121d96: am 0d84ba3f: Merge \"Fix FLAG_BEACON regression\" into lmp-mr1-dev\n\n* commit \u0027f1121d963b51c798ab28c85eeff1eedc9bb2c186\u0027:\n  Fix FLAG_BEACON regression\n"
    },
    {
      "commit": "0d84ba3fd82038cb721ffae234a99e6751ed7fbe",
      "tree": "6242a784e02b2001232ef67593cd9aabb5606c3b",
      "parents": [
        "a93fd2be99d21629bed504b9b7df035fc2f54562",
        "79ad438ed25c59a37244a48899263bbc4bc92f5d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 20:22:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 29 20:22:58 2015 +0000"
      },
      "message": "Merge \"Fix FLAG_BEACON regression\" into lmp-mr1-dev"
    },
    {
      "commit": "79ad438ed25c59a37244a48899263bbc4bc92f5d",
      "tree": "d54e5f2d9b1fef107e37bf2fe2b87aa44a16d8bb",
      "parents": [
        "64c496c8d51c71605cd34a510da2ecd8180656ec"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 10:49:39 2015 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Jan 29 10:49:39 2015 -0800"
      },
      "message": "Fix FLAG_BEACON regression\n\nFix regression where FLAG_BEACON is not honored anymore in terms\n of routing and muting behavior\nWhen converting from AudioAttributes to stream types, also look\n at FLAG_BEACON for mapping to STREAM_TTS\n\nBug 19185342\n\nChange-Id: I5871c1b94480ae3da544aef99ea9ab4dff97443d\n"
    },
    {
      "commit": "6dafb81dc699672f218915fa2895f8ee012203a9",
      "tree": "ebf4401bd53fd91460b29eda1919179b75191767",
      "parents": [
        "6a0fbc68e203058e3b7d62e95d46f2415bc3ed95",
        "8c403b2265fdef64ac4ba903e6261edd22d81909"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 29 02:52:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 29 02:52:17 2015 +0000"
      },
      "message": "am 8c403b22: am c84bc78d: Merge \"Audio policy: fix device gain initialization\" into lmp-mr1-dev\n\n* commit \u00278c403b2265fdef64ac4ba903e6261edd22d81909\u0027:\n  Audio policy: fix device gain initialization\n"
    },
    {
      "commit": "1db89b9c2692fd70eb1cc98b7db2f9beed81e66e",
      "tree": "beb7c19359bcc63ef6bbf918bf3b4a6ffe2a3003",
      "parents": [
        "64c496c8d51c71605cd34a510da2ecd8180656ec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 27 18:21:09 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 27 18:21:09 2015 -0800"
      },
      "message": "Audio policy: fix device gain initialization\n\nFix initilization of default gain configuration for\naudio devices loaded from audio_policy.conf.\n\nInitialization cannot be done in constructor as the possible\ngain configurations are not loaded yet.\n\nBug: 19120566.\nChange-Id: I78f057ecfa1a121365ac3d8f317912a6f1647627\n"
    },
    {
      "commit": "1d6aedb3581f1ef2ce9862b1b1d03c9fd3cfff83",
      "tree": "21cf75806101a627b4dcaa522c18525f9974d5fe",
      "parents": [
        "c10a0a35bfd3c776089403cd2d9a82662189e4a2",
        "bf2751a5ea6a306c2ba51a0658ec10aa889a81fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 20 23:28:46 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Jan 20 23:28:46 2015 +0000"
      },
      "message": "am bf2751a5: am 7ccc6b9b: Merge \"fix audio patch leak.\" into lmp-mr1-dev\n\n* commit \u0027bf2751a5ea6a306c2ba51a0658ec10aa889a81fa\u0027:\n  fix audio patch leak.\n"
    },
    {
      "commit": "7ccc6b9baf2f568a0a8c6e27dcd4195645a6361d",
      "tree": "b4d2dfaf0b4fb59655c34d21ca61a890f594f83d",
      "parents": [
        "4d4ea7f7ca04cfe70ecf6f35658389f52ae6d3c1",
        "aa79befb301bc3451a19021b3fc9e9e6a1f231e8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 20 21:09:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jan 20 21:09:54 2015 +0000"
      },
      "message": "Merge \"fix audio patch leak.\" into lmp-mr1-dev"
    },
    {
      "commit": "aa79befb301bc3451a19021b3fc9e9e6a1f231e8",
      "tree": "d55a9b5ccde8671e9126ced03a963a70891ae1e8",
      "parents": [
        "5f3194c9efeadc200c89d9e2b00a19f1afeac55d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:33:51 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 18:56:26 2015 -0800"
      },
      "message": "fix audio patch leak.\n\nAlways wait for status when executing a create audio patch\ncommand in audio policy service command thread.\nThe returned patch handle must be passed back to audio policy manager\nso that the patch can be modified later.\nFailing to do so causes a leak of patch descriptors in audio flinger.\n\nBug: 19032387.\nChange-Id: I5462d1437fac244d9c5e38f2c7b8e1a4c01d2b75\n"
    },
    {
      "commit": "c09eb2dfef090864e3ab827c12e724424fc8ca01",
      "tree": "5e133dbdce48e3fd13c9dba5c88b0bd27d50134b",
      "parents": [
        "1509765f2262e4582cdcfdb064417884a3efa04c",
        "65cb339de0f628c82bdd5c68d868b6f3dc83cf04"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 23:11:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 15 23:11:40 2015 +0000"
      },
      "message": "am 65cb339d: am 21291a42: Merge \"fix leak in audio policy effect config parser\" into lmp-mr1-dev\n\n* commit \u002765cb339de0f628c82bdd5c68d868b6f3dc83cf04\u0027:\n  fix leak in audio policy effect config parser\n"
    },
    {
      "commit": "21291a420e11ccdf23e955c3dc390304230ddce3",
      "tree": "5d3495362261003fb53836cf541467e65b1a0b39",
      "parents": [
        "5b578beca7c835c0c49f8f93219cf4d2f82057e3",
        "182c2f5e48f46c11dbcb5eecb46268dff4ad4797"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 23:00:39 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jan 15 23:00:46 2015 +0000"
      },
      "message": "Merge \"fix leak in audio policy effect config parser\" into lmp-mr1-dev"
    },
    {
      "commit": "182c2f5e48f46c11dbcb5eecb46268dff4ad4797",
      "tree": "b1a7e63012b5e2ee6b6975baae5c0726e4376397",
      "parents": [
        "5f3194c9efeadc200c89d9e2b00a19f1afeac55d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:29:19 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 15 14:29:19 2015 -0800"
      },
      "message": "fix leak in audio policy effect config parser\n\nFree temporary effect descriptors created in\nloadAudioEffectConfig().\n\nBug 19021726.\n\nChange-Id: Icd44216e25df3fe683a01763d7e8a7b84f367a1a\n"
    },
    {
      "commit": "c9123e9aec7d84b51e5e3863953bcbd05e754513",
      "tree": "7ecc13d22ccf83e91721ac0c79306f13677c7cb9",
      "parents": [
        "eb2a7346c2270a7fb3cc3e127f7b52ba20df1fb7",
        "eed5e4bd2b25da3e1965f4ab360f3cea1ccbcc2c"
      ],
      "author": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Thu Jan 15 06:17:27 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jan 15 06:17:27 2015 +0000"
      },
      "message": "am eed5e4bd: am 5b578bec: Merge \"    [FM]There is no sound output from BT earphone while BT earphone is connected\" into lmp-mr1-dev\n\n* commit \u0027eed5e4bd2b25da3e1965f4ab360f3cea1ccbcc2c\u0027:\n  [FM]There is no sound output from BT earphone while BT earphone is connected\n"
    },
    {
      "commit": "e6b8b27088f461957b4cbc51adbc8b01c41e9de2",
      "tree": "efe600104c76312a94c06c58a0e16f2b8e42a2d5",
      "parents": [
        "0b460ad7557f6be56aad3fa027d93b38d5995ac4"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Tue Jan 13 20:27:13 2015 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Tue Jan 13 11:12:50 2015 -0800"
      },
      "message": "    [FM]There is no sound output from BT earphone while BT earphone is connected\n\n    Bug: 18847131\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/193318\n\n    Signed-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n\nChange-Id: I79703ba4ceb67ca3b95fbc71444dd3b116ba4131\n"
    },
    {
      "commit": "27a78b56e1cf9814971192883cb7d15c186465f7",
      "tree": "78d22ab6884bade675def21c48c251c9a9a15bc0",
      "parents": [
        "69158e3e7b565a5ca131a2efaa9b76615ca80cbb",
        "78c02ddb6bf0d676160244a62c11dceb68301b73"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 19:30:17 2015 +0000"
      },
      "message": "am 78c02ddb: am cfa5bf04: Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev\n\n* commit \u002778c02ddb6bf0d676160244a62c11dceb68301b73\u0027:\n  make libserviceutility a shared lib\n  audio policy: fix remote mic capture\n  audio policy: suppport for dynamic source\n  Fix overload of SoftVideoDecoderOMXComponent::updatePortDefinitions\n  Fix race condition in signaling completion for decode.\n  AnotherPacketSource: need reset some members before returning from queueDiscontinuity().\n  Fix looping sound playback\n  AnotherPacketSource.cpp: Do not queue discontinity signal buffer resulted from seek.\n"
    },
    {
      "commit": "cfa5bf04ff250a14b11a75bcfa35ee2d6dbab4e9",
      "tree": "b985df2fc3985bfe5589cb6955ed3369d7d9feef",
      "parents": [
        "610255e8f2d02cb3513695eacf1c37d66b3553d6",
        "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 19:19:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jan 07 19:19:33 2015 +0000"
      },
      "message": "Merge \"make libserviceutility a shared lib\" into lmp-mr1-dev"
    },
    {
      "commit": "5db7897ddd32e3ec3ab45ecdb6f21b6265e7e14a",
      "tree": "e586c65974e885af85d209c811acb3d3cd592736",
      "parents": [
        "71d13d4c94cea2113d074cf0d0c6e07ad68ff3ec"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:42:33 2015 -0800"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jan 07 10:50:09 2015 -0800"
      },
      "message": "make libserviceutility a shared lib\n\nso that we have only one getpid_cached in mediaserver process\n\nbug: 18919657\n\nChange-Id: Iff3cd932c9110e874b3885f79705f49bf3e3f1fc\n"
    },
    {
      "commit": "bb2e3e9d05e3760cfcf3cc63c10e7e8336e63a06",
      "tree": "afa82b79d308a48411dcb7ad0605139d545b5ff6",
      "parents": [
        "f89e974cac7916c11b1bd480e40c8a4770544848",
        "fb5d35c00d1c4d672d245b6820551808617eba46"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 07 00:17:12 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jan 07 00:17:12 2015 +0000"
      },
      "message": "am fb5d35c0: am 7ae3dfab: Merge \"fix record from default input source\" into lmp-mr1-dev\n\n* commit \u0027fb5d35c00d1c4d672d245b6820551808617eba46\u0027:\n  fix record from default input source\n"
    },
    {
      "commit": "c447ded04f11169e9b96b31cd196b2c4ffa9f31c",
      "tree": "77fedcbb54431d1d432d9bdcc58791ec5418c413",
      "parents": [
        "3190e67d5c80c1e39e3be91784110af1180cd182"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 08:47:05 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 06 08:55:25 2015 -0800"
      },
      "message": "fix record from default input source\n\nCommit caf7f48a0e broke capture from default\ninput source on some devices: the input source is now specified as part of\nthe audio attributes and the default source was not remapped to mic source.\n\nBug: 18736417.\nChange-Id: I3f5da33cdb56f959aaef68ed1952342babc63aa0\n"
    },
    {
      "commit": "4250b955f40ec459b5aeff3129a570fb182e8819",
      "tree": "9f16b8c36f2beb8c6feb1eea212c37f2b887ea09",
      "parents": [
        "645b0192ad5d9b46b06aa06ac5670a8390d35f6f",
        "01310cd7adad778f8a6d0e4bc73dae068638abf2"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Mon Jan 05 21:53:06 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Jan 05 21:53:06 2015 +0000"
      },
      "message": "am 01310cd7: am 3190e67d: close remote submix\\\u0027s output when device is not available.\n\n* commit \u002701310cd7adad778f8a6d0e4bc73dae068638abf2\u0027:\n  close remote submix\u0027s output when device is not available.\n"
    },
    {
      "commit": "3190e67d5c80c1e39e3be91784110af1180cd182",
      "tree": "df0ffbb41220270e726bc95e1148bae7a370473a",
      "parents": [
        "0d19abb440c7e62e944efbeadf02299990f9a589"
      ],
      "author": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Tue Dec 30 13:00:52 2014 -0800"
      },
      "committer": {
        "name": "keunyoung",
        "email": "keunyoung@google.com",
        "time": "Mon Jan 05 13:27:42 2015 -0800"
      },
      "message": "close remote submix\u0027s output when device is not available.\n\n- change output close logic to find the device from IOProfile rather than\n  AudioPatch as AudioPatch handle can be cleared before disconnect.\n- Otherwise, remote submix can be stuck as output is never closed and does not\n  work any more as subsequent open fails as output is already taken.\n\nbug: 18733215\n\nChange-Id: Iddb481c91e81070e6be18996a4c8837dabd7ebdb\n"
    },
    {
      "commit": "b915a420a6a205d30c0181d3fc13078fc6d37a3c",
      "tree": "743d38720da9d490f821f2897af978768b9c7cf2",
      "parents": [
        "af318e2882e0b8b1a594f079eb3d10b2daa3ff7e",
        "572216352498c702651567b3b299a1f7ed725429"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 24 18:57:46 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 24 18:57:46 2014 +0000"
      },
      "message": "am 57221635: am 5886252a: Merge \"audio policy: fix isSourceActive() for hotword\" into lmp-mr1-dev\n\n* commit \u0027572216352498c702651567b3b299a1f7ed725429\u0027:\n  audio policy: fix isSourceActive() for hotword\n"
    },
    {
      "commit": "d8be13b8d964b7edb02cb2ad64dee86ff247c911",
      "tree": "a0fd518a691d4baebbfc69c783109cca28529e46",
      "parents": [
        "bae511e3b982355fbc75ae2ba13bb88feab9fe8c",
        "caf17e316c7b7c22e877397f6bb3f882e4f68279"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 20 00:38:23 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 20 00:38:23 2014 +0000"
      },
      "message": "am caf17e31: am 0a0662ea: Merge \"audio policy: improve accessibility routing\" into lmp-mr1-dev\n\n* commit \u0027caf17e316c7b7c22e877397f6bb3f882e4f68279\u0027:\n  audio policy: improve accessibility routing\n"
    },
    {
      "commit": "a34c9ce292ea984e92d8f70d2c056e5372c4f452",
      "tree": "cea445f4cdb835a54814ea93da1d2452869800fd",
      "parents": [
        "2cbe89a82d4167c5d5bcf3024edc22ab6874143a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 11:16:32 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 12:01:31 2014 -0800"
      },
      "message": "audio policy: fix isSourceActive() for hotword\n\nOnly condider AUDIO_SOURCE_HOTWORD equivalent to\nAUDIO_SOURCE_VOICE_RECOGNITION if the active capture\nwas triggered by a hardware hotword recognition.\n\nAlso fix activeInputsCount().\n\nBug: 18802896.\nChange-Id: I471aafcae29a76e9c323c6c0c314ef083991476b\n"
    },
    {
      "commit": "2cbe89a82d4167c5d5bcf3024edc22ab6874143a",
      "tree": "a11134b8f4bda628079a21ed2d0e31923950cecb",
      "parents": [
        "d4b056da7cbf1adb2a5f668e4425def3754a9c09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 11:49:08 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 19 12:01:31 2014 -0800"
      },
      "message": "audio policy: improve accessibility routing\n\nForce re-evaluating accessibility use case routing\nwhen a condition affecting it (ringtone, alarm, call state)\nis changing.\n\nBug: 18761698.\nChange-Id: I42ac3a9fdc80bce11cf0a7fc76f680af4271abc9\n"
    },
    {
      "commit": "22dfb93254de370d401706728aba1f032ef1b172",
      "tree": "7adc8458ed0b666dd0e9e623067583ccb3b677a1",
      "parents": [
        "93118cd96233b682be95a3eb114d88d69c8cc416",
        "8aadc515b57c78cbb07ae7d0cb2553148ef05947"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:43:22 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:43:22 2014 +0000"
      },
      "message": "am 8aadc515: am 71b52b5b: Merge \"Fix routing not happening after change in output device list\" into lmp-mr1-dev\n\n* commit \u00278aadc515b57c78cbb07ae7d0cb2553148ef05947\u0027:\n  Fix routing not happening after change in output device list\n"
    },
    {
      "commit": "93118cd96233b682be95a3eb114d88d69c8cc416",
      "tree": "64f81b51b6071954122e612e860d2ed106e48a93",
      "parents": [
        "3af7b7291bcd9b1b30dd11a8bedbdc63cc74b5a9",
        "99429b40411790b85e19c57392bbd292a237c470"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 17:43:21 2014 +0000"
      },
      "message": "am 99429b40: am 277c7b8c: Merge \"Fix permission check for audio recording\" into lmp-mr1-dev\n\n* commit \u002799429b40411790b85e19c57392bbd292a237c470\u0027:\n  Fix permission check for audio recording\n"
    },
    {
      "commit": "71b52b5bb3be81bffa320241ca486fbf964d743e",
      "tree": "39c9146e8b3a4721bcafbc4b2f19158176ff00cc",
      "parents": [
        "277c7b8c41436125742339d8c80bccf0f2b086d9",
        "fe472e292ab50c121ff93dffa3b54c96feedcfef"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:31:33 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 17:31:33 2014 +0000"
      },
      "message": "Merge \"Fix routing not happening after change in output device list\" into lmp-mr1-dev"
    },
    {
      "commit": "277c7b8c41436125742339d8c80bccf0f2b086d9",
      "tree": "bbb776ccbbd2e1ea760e1bbd95c5c96f4adbcfe6",
      "parents": [
        "045e710f8ce7ce1679b9b5f0adbd3290c4cc6f54",
        "97bb33f58d742539f3382583d7978fca71ffa2d5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 17 17:30:49 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 17 17:30:50 2014 +0000"
      },
      "message": "Merge \"Fix permission check for audio recording\" into lmp-mr1-dev"
    },
    {
      "commit": "3af7b7291bcd9b1b30dd11a8bedbdc63cc74b5a9",
      "tree": "a022ec495575b9324f613f580ba7374e490bb2c7",
      "parents": [
        "3feb7bd0670b6e85d6eec25309d8606a99f1af31",
        "7ca332ab8d7329598386acc1f50c43fc59952210"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Wed Dec 17 06:23:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 17 06:23:31 2014 +0000"
      },
      "message": "am 7ca332ab: am 045e710f: [FM] Fix notification routing when FM enable\n\n* commit \u00277ca332ab8d7329598386acc1f50c43fc59952210\u0027:\n  [FM] Fix notification routing when FM enable\n"
    },
    {
      "commit": "045e710f8ce7ce1679b9b5f0adbd3290c4cc6f54",
      "tree": "200ec96de2053f8733f4ba26639b3457df444a70",
      "parents": [
        "184e63ffcdd5654eb8e132346d2736dc9a9c7b01"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Wed Dec 10 22:03:37 2014 +0800"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Wed Dec 17 05:10:37 2014 +0000"
      },
      "message": "[FM] Fix notification routing when FM enable\n\nhttps://partner-android-review.git.corp.google.com/#/c/188454/\n\nBug: 18727227\n\nChange-Id: I74856ede5999cfc8a6932a99855d468cccd6f51c\nSigned-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n"
    },
    {
      "commit": "fe472e292ab50c121ff93dffa3b54c96feedcfef",
      "tree": "010d112dc7177e68d475686476e4f92c8e8f95a8",
      "parents": [
        "97bb33f58d742539f3382583d7978fca71ffa2d5"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 16 14:23:13 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 16 14:23:13 2014 -0800"
      },
      "message": "Fix routing not happening after change in output device list\n\nIf an output stream is active while rerouting rules are installed\n  and recording starts, the list of outputs is not updated and\n  therefore the stream is not rerouted to the new virtual device.\nThe fix consists in also taking into account all the policy-related\n  outputs when evaluating the before and after list of outputs\n  following a connection state event.\n\nBug 18736417\n\nChange-Id: I6697976b3f89e2c0995e888e9046a2273361bb97\n"
    },
    {
      "commit": "70043ec5e8c79803972686577a9d36431019c15f",
      "tree": "c1b01b3ee1c652704f659ff6c0825d400a778346",
      "parents": [
        "7f1295f5cf27127601ea15c31b6c144ff28d2a8b",
        "679a14393639c70a653fe2a07f8de582d3a5de14"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 21:42:13 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 16 21:42:13 2014 +0000"
      },
      "message": "am 679a1439: am be845fce: Merge \"audiopolicy : Fix for incorrect input device selection\" into lmp-mr1-dev\n\n* commit \u0027679a14393639c70a653fe2a07f8de582d3a5de14\u0027:\n  audiopolicy : Fix for incorrect input device selection\n"
    },
    {
      "commit": "7f1295f5cf27127601ea15c31b6c144ff28d2a8b",
      "tree": "f8475fab450baae7d57a72e67a5fafa915d61a0b",
      "parents": [
        "7dc7aae103c272e04a891f85235ebed60cbf2a33",
        "9632d33e21ec2631c75cc949e0c92c351fd6a447"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 21:42:12 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Dec 16 21:42:12 2014 +0000"
      },
      "message": "am 9632d33e: am cd71a69d: audio: Force audio to Speaker if requested during VOIP call\n\n* commit \u00279632d33e21ec2631c75cc949e0c92c351fd6a447\u0027:\n  audio: Force audio to Speaker if requested during VOIP call\n"
    },
    {
      "commit": "be845fce36a65139eb353ba7442eba951b1ebee3",
      "tree": "50416eb5c99ea123f82235f443d57464356e41ba",
      "parents": [
        "cd71a69d922eab2929faf8f5652fcd1b9a29cbe8",
        "dc136ffee31f21da3b31240f8a22d4d08a658d0d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 21:32:53 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Dec 16 21:32:55 2014 +0000"
      },
      "message": "Merge \"audiopolicy : Fix for incorrect input device selection\" into lmp-mr1-dev"
    },
    {
      "commit": "dc136ffee31f21da3b31240f8a22d4d08a658d0d",
      "tree": "6e93a02e8ad6db27672a8cc3d4c9e4bd75179a61",
      "parents": [
        "8975220e28f632c5db4d89c798384d7635228bbc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:24:18 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:24:18 2014 -0800"
      },
      "message": "audiopolicy : Fix for incorrect input device selection\n\nSome VoIP applications do not use source as VOICE_COMM\nbut MIC and policy manager ignores the force usage in that\ncase and selects handset-mic as input device even when\nBT-SCO headset is connected.\nCheck the force usage for the AUDIO_SOURCE_MIC as well.\n\nBug: 18606571\n\nChange-Id: I5d5010ab396f85bf58573943c91fd815f39f57c1\n"
    },
    {
      "commit": "cd71a69d922eab2929faf8f5652fcd1b9a29cbe8",
      "tree": "bbfebd1725b93f6dfe90bf23b64ae17be6f0776f",
      "parents": [
        "8975220e28f632c5db4d89c798384d7635228bbc"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:01:12 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 16 12:01:48 2014 -0800"
      },
      "message": "audio: Force audio to Speaker if requested during VOIP call\n\ngetDeviceForStrategy is returning AUDIO_DEVICE_OUT_USB even\nwhen setForceUse is called with Speaker during VOIP call.\nActual Intention is to route audio for phone strategy to USB\ndevice even after setForceUse is called with Speaker when not\nin voice call. It is supposed to exclude VOIP call too\n\nAdded additional check for MODE_IN_COMMUNICATION so that\nit returns SPEAKER when setForceUse is called with speaker\n\nBug: 18758599\n\nChange-Id: I1c51128cc1c7bfce1cf6f1fde60b428d3a9379fc\n"
    },
    {
      "commit": "97bb33f58d742539f3382583d7978fca71ffa2d5",
      "tree": "be3e26027b66bfc605a45af032fb91de1bdb7c7a",
      "parents": [
        "6e430fbd927b9cc043639eb728ddc921392a60e8"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Dec 12 16:23:43 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Dec 15 18:13:39 2014 -0800"
      },
      "message": "Fix permission check for audio recording\n\nDefine input types covering the different usecases for audio\n  recording, and check the corresponding permissions when\n  starting to record.\nMove the permission check from audio flinger to audio policy,\n  as only the policy has the information to determine which\n  permission to enforce.\nFix missing permission when an application records audio\n  and the audio is injected by an external policy.\n\nBug 18736417\n\nChange-Id: If7ec040502242c990ac8ea464db484339bdce573\n"
    },
    {
      "commit": "f750da42246d064c838904869d2d6ff9332c6158",
      "tree": "7ccfe5a1299c3453b15d8a71f2a3b53d56729aff",
      "parents": [
        "e10615e7f8749de887c8d25579398ad9e4094077",
        "2308566236a3ff16197419ec226f956a295fe81a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 13 00:41:02 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Dec 13 00:41:02 2014 +0000"
      },
      "message": "am 23085662: am c73ca6ef: audio policy: fix remote mic capture\n\n* commit \u00272308566236a3ff16197419ec226f956a295fe81a\u0027:\n  audio policy: fix remote mic capture\n"
    },
    {
      "commit": "c73ca6ef04136f28306784ad35f444538f081957",
      "tree": "ff92912a23c52d8b32186b6404af0b8342005699",
      "parents": [
        "8cffa91a76d3fa4c96268fc40fc8722a0d33dc8d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 12 14:34:22 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 12 14:54:57 2014 -0800"
      },
      "message": "audio policy: fix remote mic capture\n\ncommit 275e8e9de introduced a regression for platforms\noverriding AudioPolicyManager::getDeviceForInputSource() method.\n\nFixed by defining specific non virtual methods when overiding would\nbreak remote submix implementation.\n\nBug: 18736417.\n\nChange-Id: Id4d0a6c48da987e6fb24422f2d61c7ab0fbfc921\n"
    },
    {
      "commit": "d7986933bcf0b327bc260312b0ff0f83431a158b",
      "tree": "4583b4274f0ca220182211b68bad86b9dfce402e",
      "parents": [
        "7b2b26750fb0a567f2d1b7a3547ae877d336e405",
        "0cbeaf83f7f50b5bc25a8dd7a08ea4e7c364c815"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 12 13:31:42 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 12 13:31:42 2014 +0000"
      },
      "message": "am 0cbeaf83: am 8cffa91a: Merge \"audio policy: suppport for dynamic source\" into lmp-mr1-dev\n\n* commit \u00270cbeaf83f7f50b5bc25a8dd7a08ea4e7c364c815\u0027:\n  audio policy: suppport for dynamic source\n"
    },
    {
      "commit": "c722f30eef03e77054395ae122470cf8dba93937",
      "tree": "dd70514cd24a44a12dfb43f0123b1e6255a70e57",
      "parents": [
        "7e45789f5fbcbe68075f57b6d17f72b7b48df546"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 10 11:21:49 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 10 20:03:41 2014 -0800"
      },
      "message": "audio policy: suppport for dynamic source\n\nCompleted support for dynamic sources:\n- remote submix input device is dynamically connected/disconnected\nwhen corresponding AudioTrack starts/stops.\n\nAlso do not create a duplicated output for mixes used by dynamic policies.\n\nBug: 16006090.\nChange-Id: Ib5b5a2159fcac9d9f410a5a2f1c64d7ebad79f72\n"
    },
    {
      "commit": "bd9df749bf5875fb2a1d909b0da920b8f261a419",
      "tree": "7bea3188b635383b7122f07cb57f0392dd6c8455",
      "parents": [
        "66b17e9dfe114ae968bfb2f8ad8325527e373c65",
        "1546028a2d02837f88f7ea1a4109e7649b665d2f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Dec 10 22:20:24 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 10 22:20:24 2014 +0000"
      },
      "message": "am 1546028a: am 1767df77: AudioPolicyManager: distinguish between mirroring and rerouting\n\n* commit \u00271546028a2d02837f88f7ea1a4109e7649b665d2f\u0027:\n  AudioPolicyManager: distinguish between mirroring and rerouting\n"
    },
    {
      "commit": "66b17e9dfe114ae968bfb2f8ad8325527e373c65",
      "tree": "8069ffdd95cd722e4da206b203856d2afe23f154",
      "parents": [
        "b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2",
        "f5a968a0d0d3275dc3f69fa827ae7978999e5916"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 10 14:15:03 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Dec 10 14:15:03 2014 -0800"
      },
      "message": "Merge commit \u0027f5a968a0\u0027 into mm\n\nChange-Id: Ifd30546c11def40ad483f27c9d7baa4008fcbac3\n"
    },
    {
      "commit": "b279f5adfa2fd6f22c87b3a7106fbb62a0b9a5d2",
      "tree": "3e53a23fbf31379eab4d76b68af9f6b20b4c7e0c",
      "parents": [
        "a2bc118cfe860f9c108ba089b021d3b003185c56",
        "c49d9cda49dab8b7dd0376cf56476b3e1895d5c6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 10 21:55:52 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Dec 10 21:55:52 2014 +0000"
      },
      "message": "am c49d9cda: am 2dda40d6: Merge \"audio policy: add support for custom mixes\" into lmp-mr1-dev\n\n* commit \u0027c49d9cda49dab8b7dd0376cf56476b3e1895d5c6\u0027:\n  audio policy: add support for custom mixes\n"
    },
    {
      "commit": "1767df778e20c1395afc63b3a0479bd903e7b9f0",
      "tree": "13cc4ca445421ccc4679f03262098bbfe1043027",
      "parents": [
        "1487d270e86845e93a9abd1af020b45d6799b257"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 09 18:11:49 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Dec 09 18:46:19 2014 -0800"
      },
      "message": "AudioPolicyManager: distinguish between mirroring and rerouting\n\nIn the screen mirroring case, the notification manager queries\n the policy to see if media \"is playing remotely\": if yes, it\n will not request audio focus before playing a notification.\nThis is the correct behavior for screen mirroring, but doesn\u0027t\n work when audio is rerouted to an external policy.\nThis change consists in not reporting \"remote\" activity when\n playing to a mix of an external policy by looking at the address\n of the output on which playback is active for the given stream\n type.\n\nBug 16009464\n\nChange-Id: Iebbf5a8c738ab36c1cf2055e921c0a3472503125\n"
    },
    {
      "commit": "baac183f3808d7b68f184647a97bd381620415fe",
      "tree": "af81e602db02f55eb35852e3d0851499199166ed",
      "parents": [
        "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 01 17:52:59 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 09 15:47:30 2014 -0800"
      },
      "message": "audio policy: binder calls for dynamic audio policy mixes\n\nAdd binder calls to register and unregister dynamic mixes\nto AudioPolicyManager.\n\nBug: 16009464.\n\nChange-Id: I4ef38166d0cfc88c984970969380d0cd6eb083ac\n"
    },
    {
      "commit": "275e8e9de2e11b4b344f5a201f1f0e51fda02d9c",
      "tree": "c22e1c0b8541aa04fd6c8d803e4fa6704a84e6e2",
      "parents": [
        "82a69ea8b090d57bff5e02774688b546a711bbb8"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Nov 30 15:14:47 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 09 15:47:19 2014 -0800"
      },
      "message": "audio policy: add support for custom mixes\n\nAdd support for custom mixes in AudioPolicyManager.\n\nTwo methods are added to register or unregister a list of custom mixes\nwith their attributes and format.\n\ngetOutputForAttr() and getInputForAttr() first look for a match in\nregistered mixes before defaulting to normal output/input selection\n\nRemote submix device connection disconnection now takes address into\naccount to identify the correspnoding custom mix.\n\nBug: 16009464.\n\nChange-Id: I3f1c2a485a0fb71b1f984ed0adc9b68aa971e408\n"
    },
    {
      "commit": "b156888dcd2f8b3b05d724a31ec1c48da322fdc1",
      "tree": "0aa0bdd0cd3254f43d7b388c81abcbd759d66926",
      "parents": [
        "e4fe1b62b37eefe8b88aeeea896d2b3851d32480",
        "427aca5bebaacfd5639b85661689ebd554bd0822"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 08 19:36:01 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 08 19:36:01 2014 +0000"
      },
      "message": "am 427aca5b: am 18265202: Merge \"audio policy: fix inifinite loop in clearAudioPatches()\" into lmp-mr1-dev\n\n* commit \u0027427aca5bebaacfd5639b85661689ebd554bd0822\u0027:\n  audio policy: fix inifinite loop in clearAudioPatches()\n"
    },
    {
      "commit": "c12caed177ec2d4912394be692854dc1d632b3c3",
      "tree": "bb3d83364ca398d15761bb67cf484f7ab6433922",
      "parents": [
        "4ac5f97cc5440e566691a2431053c253b3577342",
        "a9450bbc6274451bbb4241595d74d6ce9a4160d1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Dec 08 19:35:01 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Dec 08 19:35:01 2014 +0000"
      },
      "message": "am a9450bbc: am cbbe1ccc: Merge \"audio policy: fix AudioPort parameter checks\" into lmp-mr1-dev\n\n* commit \u0027a9450bbc6274451bbb4241595d74d6ce9a4160d1\u0027:\n  audio policy: fix AudioPort parameter checks\n"
    },
    {
      "commit": "18265202049bfa53fe5b18a95d956325acca9c7b",
      "tree": "5260bab90009d52dacdd82cad7d59630fadd0b64",
      "parents": [
        "a147c17adabaab819ac108fbc448c49525cf74bc",
        "0add0fd07401c507a77b37868f46a2ae587c30df"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sat Dec 06 01:04:51 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Sat Dec 06 01:04:52 2014 +0000"
      },
      "message": "Merge \"audio policy: fix inifinite loop in clearAudioPatches()\" into lmp-mr1-dev"
    },
    {
      "commit": "0add0fd07401c507a77b37868f46a2ae587c30df",
      "tree": "9059f3b9d504aed17bc52ea3efb398129d16ecba",
      "parents": [
        "d6e7f1e1f8b1dfa6a87c7c0b1a5c68d435096b01"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 04 18:58:14 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 05 16:25:23 2014 -0800"
      },
      "message": "audio policy: fix inifinite loop in clearAudioPatches()\n\nreleaseAudioPatch() does not necessarily remove the audio patch\nfrom the list.\nScan the list from the top down to avoid adjusting the index.\n\nBug: 18621514.\nChange-Id: I58787154680f7cb1818509017835b1693d62190f\n"
    },
    {
      "commit": "cbbe1ccc41a86fbf009767bbdab43232e6c369c0",
      "tree": "a424935deb591440f89d9ad91d2e24e90c6532f8",
      "parents": [
        "57216ca41b2d7e35bda01ce910ae6e72ed01bfae",
        "0daea39f02fb1ba60a7b351bb5859e407f9f090b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Dec 05 23:30:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Dec 05 23:30:01 2014 +0000"
      },
      "message": "Merge \"audio policy: fix AudioPort parameter checks\" into lmp-mr1-dev"
    },
    {
      "commit": "9f104ea6d1123199f1f2e88934fae939c112a9b3",
      "tree": "a76df39c69107f3008444817ff4eecd5dd8984d6",
      "parents": [
        "105860cea2956f31f1c64d7a83a4a3bb21789cb8",
        "94d9177849bb68434d3839a9b0886e09489de7f2"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Fri Dec 05 15:51:19 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 05 15:51:19 2014 +0000"
      },
      "message": "am 94d91778: am 18f2f90c: [FM] Fix Buganizer ID: 18456930  - FM radio audio got routed to loudspeaker unexpectedly\n\n* commit \u002794d9177849bb68434d3839a9b0886e09489de7f2\u0027:\n  [FM] Fix Buganizer ID: 18456930  - FM radio audio got routed to loudspeaker unexpectedly\n"
    },
    {
      "commit": "0daea39f02fb1ba60a7b351bb5859e407f9f090b",
      "tree": "a09f1bb4d2e6263b5d571e71353feca501fc8304",
      "parents": [
        "f1828910d48bbd22e1392e6ab0ce31298d1f115c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 04 19:14:54 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 04 19:14:54 2014 -0800"
      },
      "message": "audio policy: fix AudioPort parameter checks\n\nAccept any value for sampling rate, format or channel mask\nif the list of supported values is empty in the AudioPort.\n\nBug: 18575607.\nChange-Id: I93e1942b89c630e3fee490799a8f8d79f7831ab7\n"
    },
    {
      "commit": "18f2f90cff65c384a4e8292cc3296dafafb43d52",
      "tree": "f46ced785a3d7cee9370476b9fc0255d3280b9a4",
      "parents": [
        "ab05b4ccb8ea59079d7f773aa0e090029c479bad"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Wed Dec 03 15:23:36 2014 +0800"
      },
      "committer": {
        "name": "Leo Wang",
        "email": "leozwang@google.com",
        "time": "Thu Dec 04 00:34:19 2014 +0000"
      },
      "message": "[FM] Fix Buganizer ID: 18456930  - FM radio audio got routed to loudspeaker unexpectedly\n\nhttps://partner-android-review.git.corp.google.com/#/c/187894/\n\nChange-Id: I3f9175bbc302e382155e568e66b88400ec05ffa5\nSigned-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e\n"
    },
    {
      "commit": "61280541836947ce0b281b240ffa4c55bbf5bd55",
      "tree": "4a287a2b07095295e7f054399fd9fb3052629d70",
      "parents": [
        "b438123fb1ee0a8c232fd66de658d5382d2083cf",
        "390ef84373b7edd1397381f780ca235326357094"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 27 00:06:00 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Nov 27 00:06:00 2014 +0000"
      },
      "message": "am 390ef843: am f20c4356: Merge \"AudioRecord: use audio attributes instead of audio source.\" into lmp-mr1-dev\n\n* commit \u0027390ef84373b7edd1397381f780ca235326357094\u0027:\n  AudioRecord: use audio attributes instead of audio source.\n"
    },
    {
      "commit": "51a7a41514622e68998b4f77022f8a93af530588",
      "tree": "22adcb96a1f813d00f0d63eab778d85463bc10ea",
      "parents": [
        "121143d5242a790d0bd01fe1b9cec5d28a1ba1d7",
        "5bf757cfb8b43e5d92be95a8c700e4b7839f6730"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 18:41:29 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 18:41:29 2014 +0000"
      },
      "message": "am 5bf757cf: am 087eb332: Merge \"audio policy: do not route accessibility prompts to compressed output\" into lmp-mr1-dev\n\n* commit \u00275bf757cfb8b43e5d92be95a8c700e4b7839f6730\u0027:\n  audio policy: do not route accessibility prompts to compressed output\n"
    },
    {
      "commit": "121143d5242a790d0bd01fe1b9cec5d28a1ba1d7",
      "tree": "ede3e199b33b12c6c5767f2bd566e4664905bada",
      "parents": [
        "0e47b16ffcf78acb81b0ebf14d058db191f74af0",
        "bf14c62e7973ed793a3b00c2c67beca4484c1c7a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 18:41:26 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 18:41:26 2014 +0000"
      },
      "message": "am bf14c62e: am 72bf901c: Merge \"audio policy: new getOutputForAttr() prototype.\" into lmp-mr1-dev\n\n* commit \u0027bf14c62e7973ed793a3b00c2c67beca4484c1c7a\u0027:\n  audio policy: new getOutputForAttr() prototype.\n"
    },
    {
      "commit": "e0f440094345e1e7c3836fe29d3fa34d84e43aee",
      "tree": "952b5f300dfae0cf578980b7f983d900965e2684",
      "parents": [
        "72215491c60fbcdb9a2f0be782e24e39cca249c5",
        "fcf39e226ce318ae1e4bc042379aae1ecff560a6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 12:01:59 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:01:59 2014 +0000"
      },
      "message": "am fcf39e22: am 0f78eabb: fix the build.\n\n* commit \u0027fcf39e226ce318ae1e4bc042379aae1ecff560a6\u0027:\n  fix the build.\n"
    },
    {
      "commit": "72215491c60fbcdb9a2f0be782e24e39cca249c5",
      "tree": "ac366bd0aad25d9575b19f77a75f23518a8810e8",
      "parents": [
        "fd2711ca8c9108d25f18b48b924afd925f41344a",
        "1a475921c0577a4650d1bbe40a85b732d1766939"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 26 12:01:49 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Nov 26 12:01:49 2014 +0000"
      },
      "message": "am 1a475921: am 223fd5c9: audio: new routing strategies and stream types\n\n* commit \u00271a475921c0577a4650d1bbe40a85b732d1766939\u0027:\n  audio: new routing strategies and stream types\n"
    },
    {
      "commit": "caf7f48a0ef558689d39aafd187c1571ff4128b4",
      "tree": "7a2c90732783e2c90cabb6045c4ab0dcea842bf1",
      "parents": [
        "087eb332cdd64026de27c914194127f8fda1a846"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 17:50:47 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 17:50:47 2014 -0800"
      },
      "message": "AudioRecord: use audio attributes instead of audio source.\n\nAdded AudioRecord constructor with audio attributes.\nReplaced AudioPolicymanager::getInput() by getInputForAttr().\n\nNo new functionality for now.\n\nAlso:\n\n- Fixed warnings in AudioPolicyManager\n- Allocate audio session ID before calling getOutputForAttr() in\nAudioTrack.\n\nBug: 16006090.\nChange-Id: I15df21e4411db688e3096dd801cf579d76d81711\n"
    },
    {
      "commit": "066ceecf4c6ed5ce26c5ddf00d7d9097d560b7a2",
      "tree": "b68469123118b1f6a66ef44d3fb4a5fcfe637cc5",
      "parents": [
        "e83b55dc29ca16092ba02f36f55fa6e0e37fd78c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:35:01 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:48:26 2014 -0800"
      },
      "message": "audio policy: do not route accessibility prompts to compressed output\n\nWhen a digital output (HDMI or S/PDIF) is configured with\na non linear PCM audio format it is likely that the audio HAL\nor HW will not be able to mix other sounds with the main\nmedia stream being played.\n\nIn this case, do not condider HDMI or S/PDIF as a valid route for\naccessibilty strategy so that accessibility prompts are always audible.\n\nBug: 18067208.\nChange-Id: If20603a1dc1dc470f206f841308bed2b87daf21c\n"
    },
    {
      "commit": "e83b55dc29ca16092ba02f36f55fa6e0e37fd78c",
      "tree": "f8232611b6372b74579e3ed03dfbeb167011d257",
      "parents": [
        "0f78eabb733e1413d7febd00c0bad0f0add02314"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 14 10:06:21 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 12:48:19 2014 -0800"
      },
      "message": "audio policy: new getOutputForAttr() prototype.\n\nUpdate getOutputForAttr() prototype and group all logic\ndealing with audio attributes to stream type conversion in\naudio policy manager.\n\ngetOutputForAttr():\n- specifies the audio session (for future use)\n- returns a status code\n- receives either stream type (for legacy) or audio attributes\n- returns an updated streamtype\n\nRemove logic dealing with legacy stream types to attributes conversion\nfrom AudioTrack.\n\nUse correct type for audio sessions in other APIs (startOutput() ...).\n\nreleaseOutput() specifies the audio session (for future use).\n\nBug: 18067208.\n\nChange-Id: I1bfbe9626c04c7955d77f8a70aecfad2cb204817\n"
    },
    {
      "commit": "0f78eabb733e1413d7febd00c0bad0f0add02314",
      "tree": "1d1f34324ca995581c4c64c0379fa488f6507547",
      "parents": [
        "223fd5c9738e9665e495904d37d4632414b68c1e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 11:01:34 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 25 11:01:34 2014 -0800"
      },
      "message": "fix the build.\n\nChange-Id: Iab6b65327ae1adbf0b3a6da5a23b8107468f533e\n"
    },
    {
      "commit": "223fd5c9738e9665e495904d37d4632414b68c1e",
      "tree": "33e0afab9a7479cdc4c688a742a8977c8ead21e4",
      "parents": [
        "bc0f452b9a76dd8c8244e775bc9c5aa85cae3ddf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 11 13:43:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 21 10:41:13 2014 -0800"
      },
      "message": "audio: new routing strategies and stream types\n\nAdded new routing strategies and stream type for internal use\nby audio policy manager and audio flinger:\n- One for accessibility to allow different routing than media\n- One for re-routing (remote submix) in preparation of dynamic\npolicies\n- Added stream type for \"internal\" audio flinger tracks used\nfor audio patches and duplication.\n\nBug: 18067208.\nChange-Id: I88f884b552e51e4a49c29125e5a1204cf58ff434\n"
    },
    {
      "commit": "c9769c557e202df671e35196c8c735b49257be7d",
      "tree": "1a3eac103aea7f8357756241cbe83095ce4dddb5",
      "parents": [
        "d0e12a161471823d1ab269cb608be3f3b0a71ed1",
        "568689b169d8b0ae2cc252b88602db5e5acaa604"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 21 00:43:58 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 21 00:43:58 2014 +0000"
      },
      "message": "am 568689b1: am 3a2a32b5: Merge \"AudioSystem: fix cross deadlock\" into lmp-mr1-dev\n\n* commit \u0027568689b169d8b0ae2cc252b88602db5e5acaa604\u0027:\n  AudioSystem: fix cross deadlock\n"
    },
    {
      "commit": "0ebd5f95b68a3a5c9e5509f21938c9e51e74d71b",
      "tree": "0a2939a70644eb37c401705c8211d65bac553743",
      "parents": [
        "18899808001ddaea13fa4c5277502c96351f69a5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 19 19:04:52 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 20 09:15:02 2014 -0800"
      },
      "message": "AudioSystem: fix cross deadlock\n\nDo not hold gLockAPS when calling\nAudioPolicyService::registerClient() in get_audio_policy_service().\nregisterClient() will need to acquire the AudioPolicyService mutex and\nif at the same time a method called from AudioPolicyService\n(with mutex held) calls back into AudioSystem and get_audio_policy_service()\na cross deadlock occurs.\n\nSame preventive fix for get_audio_flinger().\n\nUse a separate mutex for notification client list in AudioPolicyService.\nThis prevents deadlocking if registerClient() is called as a consequence of\nAudioFlinger calling back into AudioPolicyManager while executing a method\nwith AudioPolicyService locked\n\nBug: 18403952.\nBug: 18450065.\nChange-Id: Ia832e41aede8bc6c843fc615508fbdd74e0863b5\n"
    },
    {
      "commit": "9544a8e904955f4b96ec9f2d6f4edc2a72afd270",
      "tree": "f50154cfe53b481c0694b9c0ad31d1b1d235183e",
      "parents": [
        "3126b50345a9fc0e5d6d9e58226795735e04932f",
        "bfa77b5c687f217e26267693306aaa6cc8a63672"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 18 20:23:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Nov 18 20:23:27 2014 +0000"
      },
      "message": "am bfa77b5c: am 8cd37d67: Merge \"audio policy: do not prevent routing to A2DP when suspended.\" into lmp-mr1-dev\n\n* commit \u0027bfa77b5c687f217e26267693306aaa6cc8a63672\u0027:\n  audio policy: do not prevent routing to A2DP when suspended.\n"
    },
    {
      "commit": "29e6cecdd8562700ab625c5645ddd6a7753789f1",
      "tree": "e6b4da8119778e487653f7d74e087228e0b79e80",
      "parents": [
        "88ec9e992af75f9783794df5d7be31c3b018ad09"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 13 18:17:55 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 17 18:48:08 2014 -0800"
      },
      "message": "audio policy: do not prevent routing to A2DP when suspended.\n\nAllow A2DP sink selection even if A2DP is suspended.\nIt is not because use of A2DP is temporarily disabled by SCO\nselection that the policy rule routing a given use case\nto A2DP should be altered. The source will be routed to A2DP\nbut it will remain silent until suspend condition is cleared\nwhich is the purpose of suspend mode.\n\nAlso make sure that accessibility prompts are audible while in call\nby forcing stream type to STREAM_VOICE_CALL.\nFix inconsistent logic between AudioTrack::setStreamTypeFromAttributes()\nand AudioPolicyManager::getStrategyForAttr()\n\nBug: 18095151.\nChange-Id: I1c75dd8288ed3dd494eb942060eac9c9660dca50\n"
    },
    {
      "commit": "22bfb336abb82b853a7a20232626b113ba568c1d",
      "tree": "f87acd1c961c1ba1228a9401a87c744a1caa47ac",
      "parents": [
        "e0064399d6bff89fd65e46829ea7ddffd911e936",
        "2b456a16ceeffd3d82dca71ce29c6479b8a11bff"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 17 21:05:31 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 17 21:05:31 2014 +0000"
      },
      "message": "am 2b456a16: am f89f2ff4: Merge \"audiopolicy: Update input device check in checkInputsForDevice\" into lmp-mr1-dev\n\n* commit \u00272b456a16ceeffd3d82dca71ce29c6479b8a11bff\u0027:\n  audiopolicy: Update input device check in checkInputsForDevice\n"
    },
    {
      "commit": "77e79a509d19ab50b1867fe3903b5a8fae450591",
      "tree": "881d068bdc54d4835665e48649165f07393caafa",
      "parents": [
        "575174d62b665900203d70a4d410329b8918c2af",
        "e78a27ca9c701aa996eee0e47fa26dd69d80ffcf"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 17 10:50:55 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 17 10:50:55 2014 -0800"
      },
      "message": "resolved conflicts for merge of e78a27ca to lmp-mr1-dev-plus-aosp\n\nChange-Id: If10a9cc17245f95d5e10b1507445abbb4020670e\n"
    },
    {
      "commit": "f888020c6e2735624f2b2a30e72aca24e17b8b4d",
      "tree": "76d92b7a91a4bebd4e84d6afdc2ef4a2e4943df8",
      "parents": [
        "d02641098b16df2fd4cd32b72a30eb6f3b64e12b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Nov 14 07:58:25 2014 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Nov 17 10:05:07 2014 -0800"
      },
      "message": "Update calls to IInterface::asBinder()\n\nto use the new static version.\n\nChange-Id: Ia7b10eb38ca55b72278bfd33d3bf647f338b4e6a\n\nConflicts:\n\tmedia/libmedia/IAudioFlinger.cpp\n\tmedia/libmedia/IMediaPlayer.cpp\n\tmedia/libstagefright/CameraSource.cpp\n"
    },
    {
      "commit": "ddbc6657fa0c55166148ca597980edbaafc418bf",
      "tree": "4d8439693a03c04b9d4ab8fc5cf3ef5785a3d4ef",
      "parents": [
        "e0b7ddcda9b4fb493cc365c92293ed7d12c3208a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 13 15:13:44 2014 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 17 00:19:32 2014 +0000"
      },
      "message": "audiopolicy: Update input device check in checkInputsForDevice\n\n- When an input device is disconnected, checkInputsForDevice clears\n  dynamic fields of input profiles that are supporting the disconnected\n  device. AUDIO_DEVICE_BIT_IN mask is missing while comparing with the\n  supported input devices of a profile which is resulting in clearing\n  wrong fields\n\n- Fix is to include AUDIO_DEVICE_BIT_IN in this comparison\n\n- also fix two other places where comparison with input device was not\nmasked with AUDIO_DEVICE_BIT_IN.\n\nBug: 18367045\n\nChange-Id: Icc94b8353bc49567d8a6d6a75293c3b0dd42d83c"
    },
    {
      "commit": "7aa310d90179d3811f7581c914e970c2461db7cf",
      "tree": "11a43b408c25102481e75d210056dc10aceb3a1e",
      "parents": [
        "27c3f7728c6c576c49245a7bd9688505ec1f5357",
        "0ef3210f77799b5e0086c7a0f9244aefdf403805"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Sat Nov 15 00:47:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Nov 15 00:47:39 2014 +0000"
      },
      "message": "am 0ef3210f: am 14a74010: Merge \"Include AudioPolicyInterface.h only when needed.\"\n\n* commit \u00270ef3210f77799b5e0086c7a0f9244aefdf403805\u0027:\n  Include AudioPolicyInterface.h only when needed.\n"
    },
    {
      "commit": "c84d9d235679a4d48245b316b7b2e4c0b19413e7",
      "tree": "7d99052ecb2f3686a3a70b16fa9fc554eefbbecb",
      "parents": [
        "a82b5f575d0b7f9465cd879be04929fefd4cc5c5"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 14 13:33:34 2014 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Nov 14 13:33:34 2014 -0800"
      },
      "message": "Include AudioPolicyInterface.h only when needed.\n\nBoth legacy and non-legacy AudioPolicyInterface define\nextern \"C\" functions createAudioPloicyManager and\ndestroyAudioPloicyManager. Standard C++ does not\nallow overloading of extern C functions.\ng++ did not catch this problem but clang++ does.\n\nChange-Id: I80869cdb26e7721777e53d4eff71c5c733044abf\n"
    },
    {
      "commit": "d9cfeb447356cb6334379eaf5da1e49424eb5979",
      "tree": "5bae7d5985563f2cbbf9cc9cc1a5fca422cb8390",
      "parents": [
        "20f51b1ea04c410a25f214e37bcdb586e2a028cc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Sep 22 16:51:34 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Oct 31 14:12:20 2014 -0700"
      },
      "message": "Support speaker routing for FLAG_BEACON\n\nAdd support for routing audio stream to the speaker when audio\n  attributes carry the FLAG_BEACON value:\n- associate streams with FLAG_BEACON to the up-to-now unused\n  STREAM_TTS (\"Transmitted Through Speaker\").\n  The remapping happens in AudioTrack.\n- AudioPolicyManager: define new strategy for handling the Beacon\n  behavior, that only goes to speaker. Define new volume curves\n  for STREAM_TTS that are not silence only for the speaker device\n  category. Keep ref count of other streams and never play Beacon\n  streams when anything else is playing: either don\u0027t start playback\n  if something else is playing, or unmute STREAM_TTS when it\u0027s\n  allowed to play and mute when it\u0027s done.\n- Take into account muting latency when starting an output.\n\nBug 15415971\n\nChange-Id: I26539c7ec1a486accd85bbeb1623e9c7d3a1192f\n"
    },
    {
      "commit": "b1322c78b035c9f47ebe57a39799d7a0e13bf57f",
      "tree": "eb4177002d445d59b1d20afa5a31f72ac2838d24",
      "parents": [
        "8e05b5f5f45b8d6931ff830969125a42428c6830"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 30 14:59:13 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 30 15:04:19 2014 -0700"
      },
      "message": "audio policy: fix commit dea1541f\n\nFix return types in early returns added by\ncommit dea1541f in AudioPolicy binder call methods.\n\nAlso fix former similar mistakes found nearby.\n\nBug: 18001784.\nBug: 18002005.\n\nChange-Id: I088c6029ca04e2c2c2f78e560c9cb6b9576dd88f\n"
    },
    {
      "commit": "8e05b5f5f45b8d6931ff830969125a42428c6830",
      "tree": "aafb77c92888ebee066d61a1736fa3e5cbb61444",
      "parents": [
        "7011ee31d65917a9e15b271942e863f06eee2da1",
        "dea1541fc0042abf05674b19c2f94ca086945dfd"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 30 16:45:09 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 30 16:45:09 2014 +0000"
      },
      "message": "Merge \"audio policy: validate stream type received from binder calls.\" into lmp-mr1-dev"
    },
    {
      "commit": "dea1541fc0042abf05674b19c2f94ca086945dfd",
      "tree": "997d41dea43d2d59bda4f4124a0fd6be372dec76",
      "parents": [
        "701b96474dc8afd16046e440975e00be57cc4874"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 15:46:45 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 15:46:45 2014 -0700"
      },
      "message": "audio policy: validate stream type received from binder calls.\n\nBug: 18001784.\nBug: 18002005.\nChange-Id: I8efa674dceff5a6e10251b1c7a55e9bb2d532395\n"
    },
    {
      "commit": "6e8212b2a02685e50d0c093a6f44d9af636261d9",
      "tree": "f741511b37434a49626b039b94a5e1f82d0f5170",
      "parents": [
        "eac3f36c5d22ca28890fe4258987ded5ac0666dc",
        "fd4c14883b268a0bc5514da135fe6b7d1ce2071b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Oct 28 22:09:40 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Oct 28 22:09:40 2014 +0000"
      },
      "message": "Merge \"Always use an address for remote submix\" into lmp-mr1-dev"
    },
    {
      "commit": "b80a2a8871d3af8619bf774a0c9ddbac8d598bf9",
      "tree": "c3922d648914fd6f02d34f16712f76906f6ecdc9",
      "parents": [
        "701b96474dc8afd16046e440975e00be57cc4874"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 27 16:07:59 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 28 09:14:37 2014 -0700"
      },
      "message": "audio policy: fix output device command after clearing audio patch\n\nMake sure that a valid audio patch is created again on an output stream\nfollowing the disconneciton and reconnection of the same output device.\n\nBug: 18144611.\nChange-Id: I72387ad8e93f8fb2571da2a6c58a6e167ac7fc4d\n"
    },
    {
      "commit": "fd4c14883b268a0bc5514da135fe6b7d1ce2071b",
      "tree": "29e4594fffdc70dc7d51a3abd7586a556df1e448",
      "parents": [
        "31551f8dd625b8d40961e141d2913b0073f852ab"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Aug 06 16:02:28 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Oct 27 16:03:09 2014 -0700"
      },
      "message": "Always use an address for remote submix\n\nUsage of remote submix device for audio rerouting (e.g. wifi display)\n didn\u0027t mandate the use of addresses. Use \"0\" as the default address\n when none is specificed.\nIn logs, only use hex format for audio devices\n\nBug 16009464\n\nChange-Id: Ibfb1ce6881eba8b7e34420293b8a7077a6e659e6\n"
    },
    {
      "commit": "31551f8dd625b8d40961e141d2913b0073f852ab",
      "tree": "4d461207f87281f7a320fd27fa8dd156c65c4eea",
      "parents": [
        "8bfa96c2f7c098550b00b84677088f84e81f4ed4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 10 18:21:56 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Oct 27 12:38:32 2014 -0700"
      },
      "message": "audio policy: fix multiple device volume\n\nWhem multiple devices are selected by a strategy,\napply volume to all these devices when one of them is changed by\nsetStreamVolumeIndex() API.\n\nAlso only consider devices supported by current output profile\nin checkDeviceMuteStrategies() to avoid muting a stream because of\ndevices connected to another output stream.\n\nBug: 17507571.\n\nChange-Id: I83ef9fb7f294214d30f7f890db44c64ece3be387\n"
    },
    {
      "commit": "964b73121a634921f000ef3f877a7546f65bb700",
      "tree": "d9debc2a9fd6fb8eb744799271c6faa29cf5da50",
      "parents": [
        "9bbccd13231fbf30e466efedacec5ac03690701b",
        "7de5ac1f067ec61f7ea424d5534cfd40987b11fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 18:13:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 21 18:13:25 2014 +0000"
      },
      "message": "am 7de5ac1f: audio policy: fix effect handle leak\n\n* commit \u00277de5ac1f067ec61f7ea424d5534cfd40987b11fa\u0027:\n  audio policy: fix effect handle leak\n"
    },
    {
      "commit": "7de5ac1f067ec61f7ea424d5534cfd40987b11fa",
      "tree": "93d7a87cd7462d484b4ee882a70c3163ce2f73ac",
      "parents": [
        "d5923409bbcbb22954a92c2b497ef4492d7cb6a5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 09:07:11 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 21 09:56:18 2014 -0700"
      },
      "message": "audio policy: fix effect handle leak\n\nFix ref counting error in AudioPolicyEffect::addInputEffects()\nand addOutputSessionEffects()\n\nBug: 17675112.\nChange-Id: I5267d1024a585919f66ead83662e57b78ba53540\n"
    },
    {
      "commit": "f4c58707b511af4c9f55c25781304172964107cb",
      "tree": "6dd4492352aaea60308e2341dbadcc627e6b9340",
      "parents": [
        "f1b6516f6c7a6d9c8c7230a99e389bb07f1fe383",
        "a2d4a6dac432f0c4f543d79b9a63c55ae91f81d6"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Thu Oct 16 00:49:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 16 00:49:25 2014 +0000"
      },
      "message": "am a2d4a6da: audio policy: Fix for voice call audio loss\n\n* commit \u0027a2d4a6dac432f0c4f543d79b9a63c55ae91f81d6\u0027:\n  audio policy: Fix for voice call audio loss\n"
    },
    {
      "commit": "a2d4a6dac432f0c4f543d79b9a63c55ae91f81d6",
      "tree": "501b884b67bceb06a4d5ab01ecd519560fd14290",
      "parents": [
        "05c0d7d71be9578ad59d71f07f84e08c09e8d73a"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon Oct 13 13:05:22 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Oct 15 16:42:11 2014 -0700"
      },
      "message": "audio policy: Fix for voice call audio loss\n\nAudio Policy service filters out one of the create patch\ncommands when it finds two pending commands with the same\npatch handles. Due to this routing command is not received\nto audio HAL and the voice call set up fails.\nFix this by filtering create patch commands only when\nthey are issued on the same output.\n\nauthored-by: Karthik Reddy Katta \u003ca_katta@codeaurora.org\u003e\n\nBug: 17787282\nChange-Id: If36f0ab71e9b72d6a8eb61d31f762bc5e1683b89\n"
    },
    {
      "commit": "f53eaf49df1e1e1c01708919e9e0a046543de9b6",
      "tree": "01274169d31d750a0a0e08c59aa56bd5b84f3ff2",
      "parents": [
        "e86f4be598b1d2c521e2b3fcd05101c3848e93e2"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Thu Oct 09 11:36:22 2014 +0800"
      },
      "committer": {
        "name": "leozwang",
        "email": "leozwang@google.com",
        "time": "Tue Oct 14 10:38:08 2014 -0700"
      },
      "message": "    fix FM no sound issue\n\n    Review: https://partner-android-review.git.corp.google.com/#/c/184276\n\n    Signed-off-by: Carson Liao \u003ccarson.liao@mediatek.com\u003e\n\nChange-Id: I0847c8a6e6d054a9258b52402c914105d902c573\n"
    }
  ],
  "next": "fa845267f7cb5aede69ff1f62db99e8478db170d"
}
