)]}'
{
  "log": [
    {
      "commit": "586b21780680c4d19723b5a9484e55ec47464c5f",
      "tree": "ca05505bad4f38a6b3a48d1244bfdc27bf17a239",
      "parents": [
        "727a6f859841a1d421b680f56d4d4ca5ff8c6e4b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 11 14:39:34 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 11 14:53:23 2011 -0800"
      },
      "message": "Fix issue 3400751.\n\nAdd a delay before restoring output path when a notification ends so that\nshort sounds can be heard on proper device before the path is actualy switched.\n\nChange-Id: I1d2dd8e7e28e15fbcab344256f88499b26297372\n"
    },
    {
      "commit": "727a6f859841a1d421b680f56d4d4ca5ff8c6e4b",
      "tree": "fc3fc9199fa75a1bab26c40c38ca6658ad704f1a",
      "parents": [
        "f03034408506051f2f836e59305fcd5f662bf19a",
        "12932bfdc7163e654d5ef25f1cb1802ded2704f1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 11 14:48:20 2011 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Feb 11 14:48:20 2011 -0800"
      },
      "message": "Merge \"Fix issue 3425342.\""
    },
    {
      "commit": "12932bfdc7163e654d5ef25f1cb1802ded2704f1",
      "tree": "b1afb31da5c37e8210d64b022e66901f156ad6d0",
      "parents": [
        "fcac8fa9421f442f024018628a6042d7a14fbfb0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 11 10:29:06 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 11 14:42:13 2011 -0800"
      },
      "message": "Fix issue 3425342.\n\nChange the device selection order as follows to enable easier use of\nA2DP while the device is docked:\n1 - wired Headset\n2 - A2DP Headset\n3 - SPDIF/HDMI\n4 - Dock\n\nAlso do not limit notifications volume when on dock.\n\nChange-Id: I55ea6bea9f2d9ff284b54023e541b2788d0f1eb8\n"
    },
    {
      "commit": "6b2718c67aa7b1a8e3b0f25a73a0d5f72c59ffc3",
      "tree": "4f2fb8a9f016de59ddb591ade3e6851a74b6de3a",
      "parents": [
        "fcac8fa9421f442f024018628a6042d7a14fbfb0"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Feb 04 13:54:26 2011 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Feb 10 14:37:42 2011 -0800"
      },
      "message": "Bug 3352047 Wrong message when adjusting volume\n\nAdd hidden AudioManager.getDevicesForStream and output device codes.\n\nChange-Id: I4d1c1d3b6a077cd117720817d1f733dda557b947\n"
    },
    {
      "commit": "8782cb4dc783cdcac8498148ab1894b4780c18df",
      "tree": "ade3e3ee37bab3e3d7429943cc1dc2e51995779a",
      "parents": [
        "a205abd16ba836b27cfb8ba6b03611e8e8120978",
        "1bca832a1e023988a0103e3d87a47c96bfa0045a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 03 17:18:46 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Feb 03 17:18:46 2011 -0800"
      },
      "message": "am 6f1bd261: am 9c0a1003: Merge \"Fix issue 3371080\" into honeycomb\n\n* commit \u00276f1bd261b7fd86ac7817ca061dfb55b95150b836\u0027:\n  Fix issue 3371080\n"
    },
    {
      "commit": "eda6c364c253ba97ee45a3adeb8c2b45db1f81db",
      "tree": "7e8011600b617e524645928514e5eaf3f867bb75",
      "parents": [
        "ab8a0badb8fb1e294dacf2eb6a891439f348aff9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Feb 02 09:33:30 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Feb 03 09:26:24 2011 -0800"
      },
      "message": "Fix issue 3371080\n\nModified default volume control logic in AudioService:\n1 IN_CALL volume if in video/audio chat\n2 NOTIFICATION if notification is playing or was playing less than 5s ago.\n3 MUSIC\n\nModified silent mode:\n- now also affect MUSIC stream type\n- entering silent mode when VOL- hard key is pressed once while selected\nstream volume is already at 0 (except for VOICE_CALL stream).\n- exiting silent mode when pressing VOL+ hard key while in silent mode\n\nPlay sound FX (audible selections, keyboard clicks) at a fixed volume.\n\nModified audio framework:\n- isStreamActive() method now implemented in AudioPolicyManagerBase (previously AudioFlinger)\n- iStreamActive() now specifies a time window during which the stream is considered\nactive after it actually stopped.\n\nChange-Id: I7e5a0724099450b9fc90825224180ac97322785f\n"
    },
    {
      "commit": "2a30be33a39b07bf4f945d9506ffda0fd076e6c2",
      "tree": "39e315f0abd398d2e8d5d444fad30031468326a9",
      "parents": [
        "6386eb945fddbd82e421013f76bbd537b92d6669",
        "5092d8c066a1a98343bbc16e33a6753e577b5e7f"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jan 29 11:03:55 2011 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jan 29 11:04:41 2011 -0800"
      },
      "message": "Merge 0ef57993 from gingerbread\n\nChange-Id: If10fee1ae387a8130356dd62fe678495402d5edf\n"
    },
    {
      "commit": "144f78906f1eefaf8cbde9298a1422fcea094447",
      "tree": "2e8a393fe19a343c8aa470ae33f5cc0f64dc44ad",
      "parents": [
        "02235c39040120295314a402841b17f68752ec99",
        "2ef89309d41daac3d69fa78b31cd09cb2c262ca1"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jan 29 08:57:47 2011 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sat Jan 29 08:57:47 2011 -0800"
      },
      "message": "am 4eeb1047: Merge 13212f83 from gingerbread-plus-aosp\n\n* commit \u00274eeb10470ffafe8c508027f363ac66b58da5bf00\u0027:\n  Fix issue 2988031.\n"
    },
    {
      "commit": "2ef89309d41daac3d69fa78b31cd09cb2c262ca1",
      "tree": "699025e929ec01e6188363e025a53e02d569ad10",
      "parents": [
        "60e91863e185f84ec36fa3293e57ac9aa8500749",
        "c812fd3e5a35f09b0d5d6e4cafb40d21b75053ac"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jan 29 08:54:06 2011 -0800"
      },
      "committer": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Sat Jan 29 08:54:06 2011 -0800"
      },
      "message": "Merge 13212f83 from gingerbread-plus-aosp\n\nChange-Id: I9a8ee0c7e7896aea85e7a7c18ee82927091cb670\n"
    },
    {
      "commit": "5092d8c066a1a98343bbc16e33a6753e577b5e7f",
      "tree": "5b7cd832cfaab93ec925af9babdd4fdc5eb7f5df",
      "parents": [
        "97a38b4f1be201bbbfa23d298bb779fffd624a3d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 27 11:32:34 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jan 27 11:32:34 2011 -0800"
      },
      "message": "Fix issue 2988031.\n\nLimit SYSTEM stream volume when a headset is connected and music is playing.\n\nChange-Id: Ieb44ae5bb53ffa9cd5fe8e317798eed279b78df8\n"
    },
    {
      "commit": "bfa2f13fd3f463dbceea4d3a18c3124e70df0a05",
      "tree": "23546faa4e073e21f7a1c4fa026cd81044cc49d0",
      "parents": [
        "b1d099197a9385f3afc9411da32a341546991d85"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 15 12:11:32 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jan 26 11:20:01 2011 -0800"
      },
      "message": "do not merge bug 3370834 Cherrypick from master\n\nCherripick from master CL 79833, 79417, 78864, 80332, 87500\n\nAdd new audio mode and recording source for audio communications\n other than telelphony.\n\nThe audio mode MODE_IN_CALL signals the system the device a phone\n call is currently underway. There was no way for audio video\n chat or VoIP applications to signal a call is underway, but not\n using the telephony resources. This change introduces a new mode\n to address this. Changes in other parts of the system (java\n and native) are required to take this new mode into account.\nThe generic AudioPolicyManager is updated to not use its phone\n state variable directly, but to use two new convenience methods,\n isInCall() and isStateInCall(int) instead.\n\nAdd a recording source used to designate a recording stream for\nvoice communications such as VoIP.\n\nUpdate the platform-independent audio policy manager to pass the\n nature of the audio recording source to the audio policy client\n interface through the AudioPolicyClientInterface::setParameters()\n method.\n\nSIP calls should set the audio mode to MODE_IN_COMMUNICATION,\n Audio mode MODE_IN_CALL is reserved for telephony.\n\nSIP: Enable built-in echo canceler if available.\n1. Always initialize AudioRecord with VOICE_COMMUNICATION.\n2. If echo canceler is available, disable our echo suppressor.\n\nNote that this CL is intentionally not correcting the\n getAudioSourceMax() return value in MediaRecorder.java as the\n new source is hidden here.\n\nChange-Id: Ie68cd03c50553101aa2ad838fe9459b2cf151bc8\n"
    },
    {
      "commit": "61dca6702ce50d937fc764c55bb0842b40dcd0e4",
      "tree": "afed90c2745038d5eb95f0d75c2f98a5d3fa4717",
      "parents": [
        "7aa9f73b06525781245b8c2970f09f48050a276d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Jan 24 15:28:26 2011 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jan 25 10:04:31 2011 -0800"
      },
      "message": "Bug 3376700 Add support in APM for stream-specific volume curves\n\nThe stream volume was handled the same way for all different stream,\n the only potential difference between each of them being the number\n of steps available to the user to change the volume. This was\n mapped to 99 steps of 0.5dB amplitude, offering a maximum attenuation\n of -49.5dB.\nThis change consists in defining for each stream a curve with two\n knees (3 segments) for conversion from volume index to attenuation.\n This curve is defined in the AudioPolicyManager in\n initializeVolumeCurves(), and can therefore be overridden by the\n platform.\nNote that this change doesn\u0027t modify the volume curves: this CL\n enables the curves to be changed by overriding this default\n behavior.\n\nChange-Id: I575b66799c52df2906db248943b15120b8a79ea2\n"
    },
    {
      "commit": "935752053ef2691dbb6d5a6d149e0e362c6e3c74",
      "tree": "d0c6d5a1666aa6935a032a07d7c947bc8381a747",
      "parents": [
        "de16890e98cdd241398ed155cd47daf061584a77"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jan 18 18:39:02 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Jan 19 09:04:27 2011 -0800"
      },
      "message": "Tentative fix for issue 3362362.\n\nThe problem is likely that one method is called on the AudioPolicyManagerBase\ninstance while it is still being constructed by AudioPolicyService.\n\nTo avoid this, the AudioPolicyService mutex is held by the constructor until the\nplatform specific AudioPolicyManager is constructed and the member\nmpPolicyManager initialized.\n\nAlso added an initCheck() method to AudioPolicyInterface to verify successful\ninitialization of AudioPolicyManager.\n\nA similar change is done in AudioFlinger constructor.\nAlso added some missing protections in AudioFlinger methods where the\nplayback thread list is parsed.\n\nChange-Id: I006b244ec057e1bb0aa5ebe426ef006e3b171056\n"
    },
    {
      "commit": "eb0d0c48ebfcee5e8141ae25fe42a9eac6aae230",
      "tree": "3475e7f5e88c9ec50a000e86c43f5cf20c4c0379",
      "parents": [
        "aee6c07b3572bf2510cd9e7d29c454fcfedde31d"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jan 09 15:33:01 2011 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jan 09 16:05:30 2011 -0800"
      },
      "message": "Fix issue 3317627.\n\nThe fix consists in selecting the digital audio device (SPDIF/HDMI)\nwhen available if the routing strategy is STRATEGY_PHONE.\n\nChange-Id: Ie500ae92f5c01f2511988543852ba559c6e5994b\n"
    },
    {
      "commit": "0b456a6a33de8cb7c641724579382a31a1beaa2c",
      "tree": "b111bee6a8d1c3eb9f2ccf52161d50748cafe96f",
      "parents": [
        "10f0d3f2fcd721e0d5639106f83668b0360bc173"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 16 09:44:42 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Dec 16 09:44:42 2010 -0800"
      },
      "message": "Fix speakerphone routing to analog dock\n\nThe audio routing policy when speakerphone is on and a dock with built-in\nspeakers is connected should be to output audio to teh dock speakers\n\nAlso removed route to SCO car kit if forced usage is not SCO as the SCO\nsocket might not be established.\n\nChange-Id: I1aa2954092e28de935304b90f7a7a64d661934c7\n"
    },
    {
      "commit": "f3a8d32fd475ec68d966fa6f12a4c975ba80b659",
      "tree": "b64cef369c553e79b0ce9f4b74485aed40fd9e53",
      "parents": [
        "d27f1e6959cdcdadfa471b9824686d784ca55def"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 14 16:31:33 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 15 11:01:48 2010 -0800"
      },
      "message": "Change audio routing policy for HDMI\n\nHDMI device should have a higher priority than analog dock audio but a lower priority\nthan wired headsets.\nAlso modified AudioService so that HDMI is mapped to DEVICE_OUT_AUX_DIGITAL device and not\nDEVICE_OUT_DGTL_DOCK_HEADSET as before to enable discrimination between SPDIF going to\ndigital dock and SPIDF going to HDMI.\n\nChange-Id: I887d0c73479784dd2edaf41ce1a7d8d0bdcbb4bd\n"
    },
    {
      "commit": "ed7c671a57f89d389c9d6cd67e0698f160f69916",
      "tree": "db18d745439110927961642e9256101b8ed9ff39",
      "parents": [
        "075a1f660b77fe47b165db1aff97cdd05e300391"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 14:25:39 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 14:25:39 2010 -0800"
      },
      "message": "Fix issue 2641884: Bluetooth volume is dependent on in call volume.\n\nThe problem is that the code in AudioPolicyManagerBase::checkAndSetVolume() that forces\nvoice volume to max when setting bluetooth SCO volume is not called if the bluetooth stream\nvolume did not actually change. So even if we re apply volumes when switching to bluetooth\ndevice, the volume voice volume is not changed and remains what it was when routed to earpiece\nWhat makes things worse on Passion is that stream volumes are limited when connected to bluetooth\nand their actual value does not change as soon as they exceed the limit threshold.\n\nChange-Id: Id7c317db45b392a1c20dca2859678e3c64a371ed\n"
    },
    {
      "commit": "094b148b8587a67c19585e2af2cc7b53868bfb89",
      "tree": "b74e47e85328ad9a3b58717eb02135a231428f26",
      "parents": [
        "e178aafa2282cb0027bcb6ba1d52913e8cfda175",
        "1110ebc912bf2d8c072d1e4bc3688a52674e708c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 12:11:10 2010 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 12:11:10 2010 -0800"
      },
      "message": "resolved conflicts for merge of 0d28be68 to master\n\nChange-Id: Iec5f810c366d3e1c14a6f6294b0aea4ffb30ae3e\n"
    },
    {
      "commit": "075a1f660b77fe47b165db1aff97cdd05e300391",
      "tree": "0e02b17b5a8e2803b93293005c3157a0d05a310c",
      "parents": [
        "03b55cc9d3529995925c8df0d4a35269e591188c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Nov 02 12:02:20 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Dec 01 09:45:33 2010 -0800"
      },
      "message": "Fix issue 3142808.\n\nThere is a bug in the way audio policy manager handles A2DP interface suspend/restore\nwhen SCO is used. This bug is not new but has been triggered by a change in the timing\nof the events received by audio policy manager when a call is setup and torn down\nintroduced by commit 164a8f86c7e48992691368c4895709c3bdb835a4.\n\nThe fix consists in grouping the control of A2DP suspended state in a single function\nthat is called systematically when conditions affecting this state are changed:\n- call state change\n- device connection/disconnection\n- change in forced usage.\n\nChange-Id: I46ee2399ee5547b60511fc6cfd32e2720091b0f8\n"
    },
    {
      "commit": "f1fb01a7f00b8da90a36268aba8584a872e99175",
      "tree": "faa835310fc53729ef0bc3e46914f830b414d4d7",
      "parents": [
        "8fff6bb0000e43f02c9d04ca90f941fdefdc1356"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 15 12:11:32 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Nov 16 10:23:37 2010 -0800"
      },
      "message": "Add new audio mode for audio communications other than telelphony.\n\nThe audio mode MODE_IN_CALL signals the system the device a phone\n call is currently underway. There was no way for audio video\n chat or VoIP applications to signal a call is underway, but not\n using the telephony resources. This change introduces a new mode\n to address this. Changes in other parts of the system (java\n and native) are required to take this new mode into account.\nThe generic AudioPolicyManager is updated to not use its phone\n state variable directly, but to use two new convenience methods,\n isInCall() and isStateInCall(int) instead.\n\nChange-Id: Id744cd26520ea1d1a4795eabe6a1f0c58789af76\n"
    },
    {
      "commit": "56ecd20263d7f63476f756fc5d8b043b325c7bfb",
      "tree": "601ad5cd05a0cd81c1fb44bcb1914966f4401812",
      "parents": [
        "54f5501a61bfc13930f9f8d08cbd71a69924d4cc"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Nov 09 14:06:52 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Nov 12 14:35:52 2010 -0800"
      },
      "message": "Add support for audio recording source in generic audio policy mgr.\n\nUpdate the platform-independent audio policy manager to pass the\n nature of the audio recording source to the audio policy client\n interface through the AudioPolicyClientInterface::setParameters()\n method.\n\nChange-Id: I6b4fd0f8a3acea0d7d30bbad98edd1977dc012bf\n"
    },
    {
      "commit": "c643d77a099b0e86ad12de9b498f6f780e03184e",
      "tree": "d270c6607604f0003448ea28a627d4c0cd6f17a5",
      "parents": [
        "0bc8984f6b98a63ba74de7bca697173108dfdd3b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Nov 08 18:38:14 2010 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Nov 09 14:32:43 2010 -0800"
      },
      "message": "Add recording source for voice communication\n\nAdd a recording source used to designate a recording stream for\nvoice communications such as VoIP.\n\nChange-Id: I4091d67069b1a0170c1a5ca5e6acd51eb0aa08f9\n"
    },
    {
      "commit": "b235dee7be544a6c990ba4f8d89ab03e38c826f8",
      "tree": "e7a5bde7a394323e8544cd4b7646493f91e93cf5",
      "parents": [
        "0821a824a718a28fa5144309bf09ea40411c8ae0"
      ],
      "author": {
        "name": "Praveen Bharathi",
        "email": "pbharathi@motorola.com",
        "time": "Wed Oct 06 15:23:14 2010 -0500"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 01 18:41:19 2010 -0700"
      },
      "message": "Added support for dock headset observer\n\nChange-Id: I06b2e65e3bfa10735e6c7fd3349afa9ae7d45292\nSigned-off-by: Praveen Bharathi \u003cpbharathi@motorola.com\u003e\n"
    },
    {
      "commit": "ea798dd9f37b34acfa3cf8d945dbe7f7e90e7196",
      "tree": "5a9d2208819406e3859139031255e6f8f3267bf0",
      "parents": [
        "f015774f9d5a8b7af547ccad92d98b5cfd4009fb",
        "da701fe59d6676d45c1be49a1ed14045bdf92eec"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Aug 30 15:07:45 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Aug 30 15:07:45 2010 -0700"
      },
      "message": "am 44217848: am ae6bdc23: Merge \"Fix issue 2952766.\" into gingerbread\n\nMerge commit \u00274421784895a58bb7bcf90236a9e443b372b5b80e\u0027\n\n* commit \u00274421784895a58bb7bcf90236a9e443b372b5b80e\u0027:\n  Fix issue 2952766.\n"
    },
    {
      "commit": "c1c88e27a6f07a530fca184f515c16d51e46d56f",
      "tree": "0b447693ea5dd115a462a582155ffa086527509a",
      "parents": [
        "14cc6fcf8803ae7289a1e342532c26fe257b3d3f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 27 17:10:36 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 27 17:10:36 2010 -0700"
      },
      "message": "Fix issue 2952766.\n\nThe problem is that the audio policy manager does not handle the input devices\nwhen forced use for telephony is changed.\nThe problem does not appear in a call over PSTN becasue only teh output devices drives the\nrouting of in call audio to/from the base band.\n\nThe fix consists in modifying AudioPolicyManagerBase::setForceUse() to check for active inputs\nand update the input device if needed.\n\nChange-Id: I0d36d1f5eef1cce527929180c29b025439902f10\n"
    },
    {
      "commit": "8184a5734690b30f4de0f6b6c16daf1e089f67df",
      "tree": "e3fbbdace9d5b0193130827d77558ad9db51a536",
      "parents": [
        "7a42770f47225483a885b168d05e81b6a81189c0",
        "45239b5fa6bf75d76bd5e603b443bd68502345f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 20 13:37:19 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 20 13:37:19 2010 -0700"
      },
      "message": "resolved conflicts for merge of dd206093 to master\n\nChange-Id: I21dd2321a4839d034d49092baccbf40986f17dae\n"
    },
    {
      "commit": "de070137f11d346fba77605bd76a44c040a618fc",
      "tree": "ba741240b391a66899514061ccda38254e539013",
      "parents": [
        "f997cabca292d70d078ae828e21c28e6df62995f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 13 04:45:46 2010 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Jul 20 10:31:57 2010 -0700"
      },
      "message": "Audio policy manager changes for audio effects\n\nAdded methods for audio effects management by audio policy manager.\n- control of total CPU load and memory used by effect engines\n- selection of output stream for global effects\n- added audio session id in parameter list for startOutput() and stopOutput().\nthis is not used in default audio policy manager implementation.\n\nModifications of audio effect framework in AudioFlinger to allow moving and reconfiguring\neffect engines from one output mixer thread to another when audio tracks in the same session\nare moved or when requested by audio policy manager.\nAlso fixed mutex deadlock problem with effect chains locks.\n\nChange-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb\n"
    },
    {
      "commit": "094c96da874d84eae46f76cc036fa7b7993eb999",
      "tree": "c57cc7ee13225544f863726abd4fb33595edd473",
      "parents": [
        "8972e1a30cd9b57a238a2ef617ed340d8043eb44",
        "46d2cc5755ea30771bbd6b34a1a7fae513c94ca2"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 18:48:58 2010 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Jul 14 18:48:58 2010 -0700"
      },
      "message": "am 78983a91: am 4055b780: Merge \"move native services under services/\" into gingerbread\n\nMerge commit \u002778983a9133d3dd3f08b1ec462a7e2f9e7bfa9e2f\u0027\n\n* commit \u002778983a9133d3dd3f08b1ec462a7e2f9e7bfa9e2f\u0027:\n  move native services under services/\n"
    },
    {
      "commit": "65ab47156e1c7dfcd8cc4266253a5ff30219e7f0",
      "tree": "da088916c7cadadcddf47467f20cc8b0b6ff7f41",
      "parents": [
        "98fe12aba55e8b8bb14b23c4c3cdba9a99a9753c"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Wed Jul 14 17:59:35 2010 -0700"
      },
      "message": "move native services under services/\n\nmoved surfaceflinger, audioflinger, cameraservice\n\nall native services should now reside in this location.\n\nChange-Id: Iee42b83dd2a94c3bf5107ab0895fe2dfcd5337a8\n"
    }
  ]
}
