)]}'
{
  "log": [
    {
      "commit": "d309fb9c8a2c4564d88fffba19c4e3688e4b862b",
      "tree": "6bfe3758c23a0a46e4d198ccb9a3a28ba65abe4d",
      "parents": [
        "dc123cbae198204e8c6c3d4f4f09a95cbc0e9ec5"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Nov 25 12:12:45 2015 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Tue Dec 01 11:58:16 2015 -0800"
      },
      "message": "CameraService: Remove device HALv2 support, other cleanup\n\nHALv2 only ever shipped with Nexus 10, and has been fully superceded by\nHALv3. Remove it to allow for various code simplifications and cleanup.\n\n- Remove Camera2Device\n- Remove various special-case codepaths for supporting Camera2Device\n- Remove CameraDeviceFactory, since it only creates Camera3Devices now\n- Remove BurstCapture and associated CaptureSequence/Parameters code\n- Remove old ZslProcessor and simplify ZslProcessor hierarchy to be\n  just ZslProcessor3, which is renamed to just ZslProcessor\n- Add service-init-time check for unsupported device versions\n- Fix assorted compiler warnings, some old, some new\n- Remove references to HALv2 when possible\n\nBug: 25866588\nChange-Id: Ia1063264d315f9b742ec5cdd0483539310894f5e\n"
    },
    {
      "commit": "a1f03967caf8036b6b928155dbc4a9696c465353",
      "tree": "5274de9d9c7549bab3b51b4bd36d5d3de3e1f1b6",
      "parents": [
        "7a564a0e201d8ddc7cc7b7a7202adf017b4e4836",
        "f639ba1fdd4fd51d7ab97d2d8891a510615645f3"
      ],
      "author": {
        "name": "Sanket Agarwal",
        "email": "sanketa@google.com",
        "time": "Thu Nov 05 21:20:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 05 21:20:00 2015 +0000"
      },
      "message": "Merge \"Add features for Automotive usecases.\""
    },
    {
      "commit": "7a564a0e201d8ddc7cc7b7a7202adf017b4e4836",
      "tree": "05c5952f816431cf754487a31feff1cf72cc9369",
      "parents": [
        "7e7a62dc6c20b5ff761b87d99379797aa3fd7d9d",
        "d60560af7cb559762593161c8202459cc01fb0f5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 05 20:14:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Nov 05 20:14:20 2015 +0000"
      },
      "message": "Merge \"audio policy: add support for external audio sources\""
    },
    {
      "commit": "f639ba1fdd4fd51d7ab97d2d8891a510615645f3",
      "tree": "732070de64c23fdec86ae20e7d994546f394ad2c",
      "parents": [
        "7e7a62dc6c20b5ff761b87d99379797aa3fd7d9d"
      ],
      "author": {
        "name": "Sanket Agarwal",
        "email": "sanketa@google.com",
        "time": "Mon Oct 12 13:05:53 2015 -0700"
      },
      "committer": {
        "name": "Sanket Agarwal",
        "email": "sanketa@google.com",
        "time": "Thu Nov 05 19:23:55 2015 +0000"
      },
      "message": "Add features for Automotive usecases.\n\n1. Add support for emergency announcements - If the CAR wants to make an\nemergency announcements.\n\nChange-Id: Id4394e9ebce09d08ea4a4922032393bf2c2cddf4\n(cherry picked from commit b0e3867fc5bdb09d18aeb0f111998852aeaf7f86)\n"
    },
    {
      "commit": "7e7a62dc6c20b5ff761b87d99379797aa3fd7d9d",
      "tree": "6653efc556689b23b9e929d630911235bb7f32fa",
      "parents": [
        "1f90f7da49cbccb710b9a7b39828bd147917b6bb"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Nov 04 14:49:43 2015 -0800"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Nov 04 14:49:43 2015 -0800"
      },
      "message": "CameraService: Add option to dump templates to HALv3 devices\n\nAdd -t to dumpsys media.camera to dump the request templates of any open\nHALv3 camera devices.\n\nChange-Id: Ib2746d5ca4a25e7f8eab842e6a99daa03f15acb8\n"
    },
    {
      "commit": "ebab3587f58316cdb488d44b9c17c35382fc8473",
      "tree": "acb39d7caff2f04fe227c4f081fcdd87a0dcf356",
      "parents": [
        "37d887e1ea2235f40717ed13214406446217ef80"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 04 09:56:21 2015 -0800"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Nov 04 09:56:21 2015 -0800"
      },
      "message": "Remove unused method\n\nChange-Id: I1732bf5a011b052588b5fa4f41d4723a1af8d320\n"
    },
    {
      "commit": "e9932d5bf2c1b1a8758f5f79c43e04c6c7dbe932",
      "tree": "d293115e8d0d6b72c5f8413501ba3f31c0a25527",
      "parents": [
        "57f2cc1fa8165974df15bcdcaf215cc2c0c11216",
        "e9ccb98fc7259cbd876f02381b0eec4d5a5ff4ff"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Mon Nov 02 22:00:18 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 22:00:18 2015 +0000"
      },
      "message": "Merge \"Remove \"sys.secpolicy.camera.off_\" system property check\""
    },
    {
      "commit": "57f2cc1fa8165974df15bcdcaf215cc2c0c11216",
      "tree": "9730afa266b4ab9214a1bba721859a64908fdd7d",
      "parents": [
        "8aacfffa600d86e721142b04caa39c0b951530ea",
        "bbed3af44a9ac40a15f3c0759cef33d06d1f93b4"
      ],
      "author": {
        "name": "Gaurav Shah",
        "email": "gauravsh@google.com",
        "time": "Mon Nov 02 19:55:17 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 02 19:55:17 2015 +0000"
      },
      "message": "Merge \"audio: Change the default init value for StreamDescriptor\" am: 2e5591958b am: 1d1449297e\nam: bbed3af44a\n\n* commit \u0027bbed3af44a9ac40a15f3c0759cef33d06d1f93b4\u0027:\n  audio: Change the default init value for StreamDescriptor\n"
    },
    {
      "commit": "8aacfffa600d86e721142b04caa39c0b951530ea",
      "tree": "c6fc9eee70e04f1ebe12e150d32f029b15d7cb4b",
      "parents": [
        "fb64af1be0d8c419fe2f2b4acc4e661a091b3e9b",
        "b0f5b51f3d80229a985456f520936d20e64598ce"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Nov 02 19:55:09 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 02 19:55:09 2015 +0000"
      },
      "message": "Merge \"Reduce lock time for dump to make sure not locked when calling back to IResourceManagerClient.\" into mnc-dr-dev am: 83a22c5c81 am: 5c52a558bd\nam: b0f5b51f3d\n\n* commit \u0027b0f5b51f3d80229a985456f520936d20e64598ce\u0027:\n  Reduce lock time for dump to make sure not locked when calling back to IResourceManagerClient.\n"
    },
    {
      "commit": "bbed3af44a9ac40a15f3c0759cef33d06d1f93b4",
      "tree": "391d59c400fecad9e1263e3474bcc702592e5e57",
      "parents": [
        "b0f5b51f3d80229a985456f520936d20e64598ce",
        "1d1449297e6ea4cd76119e284807f5e2b9187743"
      ],
      "author": {
        "name": "Gaurav Shah",
        "email": "gauravsh@google.com",
        "time": "Mon Nov 02 19:52:00 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 02 19:52:00 2015 +0000"
      },
      "message": "Merge \"audio: Change the default init value for StreamDescriptor\" am: 2e5591958b\nam: 1d1449297e\n\n* commit \u00271d1449297e6ea4cd76119e284807f5e2b9187743\u0027:\n  audio: Change the default init value for StreamDescriptor\n"
    },
    {
      "commit": "1d1449297e6ea4cd76119e284807f5e2b9187743",
      "tree": "07d935aeda4fad529f2be6cbcd078d8b6ca52bf0",
      "parents": [
        "28c7c2e598caab793291bc6bffde0efedf235d87",
        "2e5591958b5fe897f37715145e86bf8afbde0911"
      ],
      "author": {
        "name": "Gaurav Shah",
        "email": "gauravsh@google.com",
        "time": "Mon Nov 02 19:47:41 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 02 19:47:41 2015 +0000"
      },
      "message": "Merge \"audio: Change the default init value for StreamDescriptor\"\nam: 2e5591958b\n\n* commit \u00272e5591958b5fe897f37715145e86bf8afbde0911\u0027:\n  audio: Change the default init value for StreamDescriptor\n"
    },
    {
      "commit": "b0f5b51f3d80229a985456f520936d20e64598ce",
      "tree": "12dc1059c76cc74a029f3deb18e84298129a0769",
      "parents": [
        "470b7752e38307305365fdaaa005b81db977d708",
        "5c52a558bd76396431846340970bc516c9ed9c2a"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Nov 02 19:37:40 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Mon Nov 02 19:37:40 2015 +0000"
      },
      "message": "Merge \"Reduce lock time for dump to make sure not locked when calling back to IResourceManagerClient.\" into mnc-dr-dev am: 83a22c5c81\nam: 5c52a558bd\n\n* commit \u00275c52a558bd76396431846340970bc516c9ed9c2a\u0027:\n  Reduce lock time for dump to make sure not locked when calling back to IResourceManagerClient.\n"
    },
    {
      "commit": "83a22c5c818ebf4f9c80a2dd3fee49258e0c33a6",
      "tree": "07423dde85b3439ea496f4c16cb377feef8d72af",
      "parents": [
        "1d29e126cf152d3400021a2edd5cee123077317e",
        "76d4c7ffa9cdeed39c93d685c9c03b0915262a8b"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Nov 02 19:27:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Nov 02 19:27:09 2015 +0000"
      },
      "message": "Merge \"Reduce lock time for dump to make sure not locked when calling back to IResourceManagerClient.\" into mnc-dr-dev"
    },
    {
      "commit": "5664139e0ae16bb180a8eaae917f35f7c99d2a0a",
      "tree": "f28a321965220ad269837929e60fb6098cd48a37",
      "parents": [
        "8e3db8fc87e5028f02134fa791834f57faafb637"
      ],
      "author": {
        "name": "Ralph Nathan",
        "email": "ralphnathan@google.com",
        "time": "Fri Oct 09 14:39:00 2015 -0700"
      },
      "committer": {
        "name": "Gaurav Shah",
        "email": "gauravsh@google.com",
        "time": "Mon Nov 02 09:45:46 2015 -0800"
      },
      "message": "audio: Change the default init value for StreamDescriptor\n\nCurrently, audio doesn\u0027t play on Brillo because the policy manager\u0027s\ndefault value for all streams is set to 0. In Android, this value is\nchanged by calls from AudioService.java. If we set the default value to\n1 in Brillo, then even if there are no calls, we will have audio.\n\nBUG\u003dnone\nTEST\u003dmanual\n\nChange-Id: I1418c9ecfb4f1c81c9c0946eee11deed3c65b358\n"
    },
    {
      "commit": "11fe1acb608d4dcd86b06c9ccd876864beebf4d4",
      "tree": "0fb4fb52b09d101172465625ea50dcfaa5dd2b48",
      "parents": [
        "0443ba44a1ebda31bc3642cd91a0570694f29ec1",
        "60d156247a7189d59af0a3643e2a786dacef734d"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Oct 30 01:32:31 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Oct 30 01:32:31 2015 +0000"
      },
      "message": "Merge \"APM: Don\u0027t copy invalid gain value\""
    },
    {
      "commit": "60d156247a7189d59af0a3643e2a786dacef734d",
      "tree": "edb1b1a80ada48db7b72545106e0b82db5f32dc8",
      "parents": [
        "3806ff2f2021074e7c1fe3784ee8a12e0d042a82"
      ],
      "author": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Thu Oct 29 19:01:04 2015 +0900"
      },
      "committer": {
        "name": "Wonsik Kim",
        "email": "wonsik@google.com",
        "time": "Fri Oct 30 10:09:12 2015 +0900"
      },
      "message": "APM: Don\u0027t copy invalid gain value\n\nBug: 24775316\nChange-Id: I0c439a78909c03ca2b0340c67bfb969de2283166\n"
    },
    {
      "commit": "d60560af7cb559762593161c8202459cc01fb0f5",
      "tree": "d2913f6eb8ded236fba95d7920cca8f7906288e6",
      "parents": [
        "0443ba44a1ebda31bc3642cd91a0570694f29ec1"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 11:31:20 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 29 16:55:40 2015 -0700"
      },
      "message": "audio policy: add support for external audio sources\n\nAdd support for activity on external audio sources.\nAn external source reflects activity on an input audio device\nthat must be controlled (both routing and volume) by the\naudio policy manager.\nFirst, the input device must be connected with setDeviceConnectionState().\nThen, the source activity is indicated with startAudioSource() and\nstopAudioSource() APIs.\nstartAudioSource() indicates the source device with an audio port configuration\nand the use case by the audio attributes.\n\nOnce a source is active, its routing and volume are controlled by the policy manager\nas it would for a software source (AudioTrack).\n\nChange-Id: If5805d58a4356b2f681f1aabf54375f62b55b98a\n"
    },
    {
      "commit": "e9ccb98fc7259cbd876f02381b0eec4d5a5ff4ff",
      "tree": "2ae7b9ec162e08343bc5f16bbbae32225640b0e4",
      "parents": [
        "7350b057ca864f5dc9e53d48e34710a8e81133f8"
      ],
      "author": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Wed Oct 28 16:48:27 2015 -0700"
      },
      "committer": {
        "name": "Makoto Onuki",
        "email": "omakoto@google.com",
        "time": "Thu Oct 29 11:11:08 2015 -0700"
      },
      "message": "Remove \"sys.secpolicy.camera.off_\" system property check\n\nWith I421690f14ee57fa818d2b233fe48a90a0a575a9e, now the device policy camera\nrestrictions will be propagated with a user restriction via appops, so the\nsystem property check is no longer needed.\n\nBug 24538855\n\nChange-Id: I7b034c0d49b834e570c758315df6a0163f64af4e\n"
    },
    {
      "commit": "0443ba44a1ebda31bc3642cd91a0570694f29ec1",
      "tree": "9c0c2d06ffa6b2e7aef8e859ad26de6d51adb398",
      "parents": [
        "7e64d65236e440709b004ed98fb45bffefbd4ce4",
        "f71d2618532e73db5c01e3c00595d7d2ab2cff3e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 29 01:05:54 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 29 01:05:54 2015 +0000"
      },
      "message": "Merge \"AudioPolicyService: Synchronize access to AudioPolicyManager\" am: 60cf8e8925 am: 62ac714617\nam: f71d261853\n\n* commit \u0027f71d2618532e73db5c01e3c00595d7d2ab2cff3e\u0027:\n  AudioPolicyService: Synchronize access to AudioPolicyManager\n"
    },
    {
      "commit": "f71d2618532e73db5c01e3c00595d7d2ab2cff3e",
      "tree": "58b201943b7b0880fc47980866f6e0305f7c7d01",
      "parents": [
        "6a1fcb2422d3dfb56d7227081bbb16a14383615c",
        "62ac714617c3c994619afdc0666ac3359d8084e7"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 29 01:02:53 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 29 01:02:53 2015 +0000"
      },
      "message": "Merge \"AudioPolicyService: Synchronize access to AudioPolicyManager\" am: 60cf8e8925\nam: 62ac714617\n\n* commit \u002762ac714617c3c994619afdc0666ac3359d8084e7\u0027:\n  AudioPolicyService: Synchronize access to AudioPolicyManager\n"
    },
    {
      "commit": "62ac714617c3c994619afdc0666ac3359d8084e7",
      "tree": "b20328a399faff31ff955afad0079136877cdb9e",
      "parents": [
        "cf98e0b3169a73069412d58554a68339fbe06c21",
        "60cf8e892519b84bd5aa2c7ef8027304382ac4b0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 29 00:59:47 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 29 00:59:47 2015 +0000"
      },
      "message": "Merge \"AudioPolicyService: Synchronize access to AudioPolicyManager\"\nam: 60cf8e8925\n\n* commit \u002760cf8e892519b84bd5aa2c7ef8027304382ac4b0\u0027:\n  AudioPolicyService: Synchronize access to AudioPolicyManager\n"
    },
    {
      "commit": "60cf8e892519b84bd5aa2c7ef8027304382ac4b0",
      "tree": "7c7af29ae5d5a47291cb035215c1fa1f417ccbd3",
      "parents": [
        "6bbaad1b915e832b12b735fd47a64c3660592782",
        "dfb9f3b053fa8ff7e622783a2040953442c44700"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 29 00:55:33 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Thu Oct 29 00:55:33 2015 +0000"
      },
      "message": "Merge \"AudioPolicyService: Synchronize access to AudioPolicyManager\""
    },
    {
      "commit": "518bcf5f68e56467cfc693be0fd58170c62e6ba0",
      "tree": "d5986751491f3a5d8a42ed0fdd1e75697fecada7",
      "parents": [
        "79f424c7b49c7b40113fa645b6e7f61192771f52"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 04 14:15:58 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Thu Oct 29 00:09:49 2015 +0000"
      },
      "message": "DO NOT MERGE: CameraService: Link to client binder death at end of connect\n\nIf, within a binder Looper thread, a Binder object death notifier is\nregistered, and then a nested Binder transaction is begun, that\ntransaction may process a death notification callback for the\njust-registered object, if it was dead at the time of registration.\n\nThis can lead to an unexpected nested call into the service, and cause\ndeadlock.\n\nTo avoid this, move the death notifier registration to the end of\nhandling the connect transaction.\n\nAlso remove one extra bit of disconnect logging.\n\nBug: 23525545\nChange-Id: If01cbaf42704f55134118afefc9a8f7bdb014e09\n"
    },
    {
      "commit": "dfb9f3b053fa8ff7e622783a2040953442c44700",
      "tree": "9e91612a20d8139dc9bd04be9c4a9ddede5f6c62",
      "parents": [
        "acd2186aa239efa58b202823083c1b8dbc1c8a16"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Mon Oct 26 18:22:13 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 28 14:31:42 2015 -0700"
      },
      "message": "AudioPolicyService: Synchronize access to AudioPolicyManager\n\nSynchronize access to APM when getDevicesForStream is called\non APM.\n\nChange-Id: I2ba6922341f035375270b02000ef5a7e078f6b5a\n"
    },
    {
      "commit": "a2ce3c173951845c1305099314451a2f99123b05",
      "tree": "b540ac98773db3161f65ffbf14f7960b7628524c",
      "parents": [
        "acd2186aa239efa58b202823083c1b8dbc1c8a16"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 10:25:31 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 28 10:26:45 2015 -0700"
      },
      "message": "AudioPolicyService: fix race in AudioCommandThread\n\nFixe race condition in AudioCommandThread::threadLoop() where a\ncommand can be inserted in first position in the queue after the sleep\ntime has been calculated causing a longer delay than expected.\n\nAlso fix a failure to hold a wake lock while commands are still in the queue.\n\nBug: 22707905.\nChange-Id: I813626986677bf00106acb37ee20d3dd75d5cf33\n"
    },
    {
      "commit": "b2487f03f12dcafdb801fc0007c8df8412397f44",
      "tree": "4fac81f0fed0d22a1ff36e884ce1825561b5226d",
      "parents": [
        "f8e21a06c1b559757f1c6846b1a1abd29874cbeb"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 01 13:23:23 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Oct 28 07:43:19 2015 -0700"
      },
      "message": "Extractor service\n\nRun extractors in a separate process. Currently all data is copied through a\nbinder transaction, and WVMExtractor is still run in the mediaserver process.\n\nChange-Id: Ic5dbce87126dd321ad792f4dd540c2ff6b068d13\n"
    },
    {
      "commit": "f8e21a06c1b559757f1c6846b1a1abd29874cbeb",
      "tree": "febe777241b23e80215ffb2d7f6555f357eb234b",
      "parents": [
        "57a34a5163fa995b5d4827d60d9ebdb1881b11df",
        "6360955a0b34e7c48d9471c766ba6d5ca0051d97"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:44:43 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:44:43 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\" into mnc-dev am: 681bc45d25 am: f6224dece5 am: 5f2a15a617\nam: 6360955a0b\n\n* commit \u00276360955a0b34e7c48d9471c766ba6d5ca0051d97\u0027:\n  Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\n"
    },
    {
      "commit": "57a34a5163fa995b5d4827d60d9ebdb1881b11df",
      "tree": "0c5f198f29f1a6929993f489fc99441e0e1fdf6b",
      "parents": [
        "7f5d179babc1dbd4a9859da92fa43a89f14ce853",
        "77249c550ffc97b5f92150d544e661e17d530332"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:44:34 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:44:34 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\" into mnc-dev am: 6919fbe40d am: 8c5b71ce47 am: 2fb59515d4\nam: 77249c550f\n\n* commit \u002777249c550ffc97b5f92150d544e661e17d530332\u0027:\n  Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\n"
    },
    {
      "commit": "6360955a0b34e7c48d9471c766ba6d5ca0051d97",
      "tree": "e30200f241fef8bf11b974ad9d2bce0bee82876f",
      "parents": [
        "77249c550ffc97b5f92150d544e661e17d530332",
        "5f2a15a617a41a300fa2b3d3c2abb77ec7381ee1"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:41:54 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:41:54 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\" into mnc-dev am: 681bc45d25 am: f6224dece5\nam: 5f2a15a617\n\n* commit \u00275f2a15a617a41a300fa2b3d3c2abb77ec7381ee1\u0027:\n  Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\n"
    },
    {
      "commit": "77249c550ffc97b5f92150d544e661e17d530332",
      "tree": "ff7f65559352ea577f525943da4f487bbd3a2287",
      "parents": [
        "e44a9c0666b3861eb2676ddf91cbeb5ecd5b23a5",
        "2fb59515d44d2ce68db29b5d88476ee6a3282b2f"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:41:46 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:41:46 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\" into mnc-dev am: 6919fbe40d am: 8c5b71ce47\nam: 2fb59515d4\n\n* commit \u00272fb59515d44d2ce68db29b5d88476ee6a3282b2f\u0027:\n  Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\n"
    },
    {
      "commit": "f6224dece52c569e27322580407c3f5898fa042b",
      "tree": "b7182ca18dcb96894fdad365403b17f12a3908c7",
      "parents": [
        "8c5b71ce473517ea1270f6467fa518274bd54b35",
        "681bc45d2592ed447f70d1dd14e92ad584499c9d"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:33:12 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:33:12 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\" into mnc-dev\nam: 681bc45d25\n\n* commit \u0027681bc45d2592ed447f70d1dd14e92ad584499c9d\u0027:\n  Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\n"
    },
    {
      "commit": "8c5b71ce473517ea1270f6467fa518274bd54b35",
      "tree": "1aa3f492b81e9b7834babf095188ce9eb4439621",
      "parents": [
        "1fcbd9b0e973d662ed566967af71c8f5b2383320",
        "6919fbe40d92af432d3b72ad36e0697654f8146c"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 02:33:01 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 02:33:01 2015 +0000"
      },
      "message": "Merge \"Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\" into mnc-dev\nam: 6919fbe40d\n\n* commit \u00276919fbe40d92af432d3b72ad36e0697654f8146c\u0027:\n  Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\n"
    },
    {
      "commit": "7f5d179babc1dbd4a9859da92fa43a89f14ce853",
      "tree": "017e810199db51e10b797865649d8a8f39be8631",
      "parents": [
        "0e15f1f817cad0623a719fd8871067ad1f5b8eb9",
        "e44a9c0666b3861eb2676ddf91cbeb5ecd5b23a5"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:47:05 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:47:05 2015 +0000"
      },
      "message": "Merge \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\" into mnc-dev am: cda4871486 am: 1fcbd9b0e9 am: dee38ac0da\nam: e44a9c0666\n\n* commit \u0027e44a9c0666b3861eb2676ddf91cbeb5ecd5b23a5\u0027:\n  Revert \"AudioPolicyService: fix race in AudioCommandThread\"\n"
    },
    {
      "commit": "0e15f1f817cad0623a719fd8871067ad1f5b8eb9",
      "tree": "0c5f198f29f1a6929993f489fc99441e0e1fdf6b",
      "parents": [
        "762b56bc316c484b9e7f199416e4c8e107bb7331",
        "14c54bbf9c739c8d611e5dc8990a5d220d135956"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:46:56 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:46:56 2015 +0000"
      },
      "message": "Merge \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\" into mnc-dev am: be6f10c049 am: fd16414d34 am: d53f955a4f\nam: 14c54bbf9c\n\n* commit \u002714c54bbf9c739c8d611e5dc8990a5d220d135956\u0027:\n  Revert \"audio policy: bind setMode() and setPhoneState() operations\"\n"
    },
    {
      "commit": "e44a9c0666b3861eb2676ddf91cbeb5ecd5b23a5",
      "tree": "7b40fb5c94299f749855abb648874498c8c7e983",
      "parents": [
        "14c54bbf9c739c8d611e5dc8990a5d220d135956",
        "dee38ac0da6716903f039166d621184d67c8afd3"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:43:36 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:43:36 2015 +0000"
      },
      "message": "Merge \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\" into mnc-dev am: cda4871486 am: 1fcbd9b0e9\nam: dee38ac0da\n\n* commit \u0027dee38ac0da6716903f039166d621184d67c8afd3\u0027:\n  Revert \"AudioPolicyService: fix race in AudioCommandThread\"\n"
    },
    {
      "commit": "14c54bbf9c739c8d611e5dc8990a5d220d135956",
      "tree": "ff7f65559352ea577f525943da4f487bbd3a2287",
      "parents": [
        "603bcd140906924c56eed51e012713862185ddb7",
        "d53f955a4f8dcc47057c3542542f6da5804fdaf0"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:43:28 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:43:28 2015 +0000"
      },
      "message": "Merge \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\" into mnc-dev am: be6f10c049 am: fd16414d34\nam: d53f955a4f\n\n* commit \u0027d53f955a4f8dcc47057c3542542f6da5804fdaf0\u0027:\n  Revert \"audio policy: bind setMode() and setPhoneState() operations\"\n"
    },
    {
      "commit": "1fcbd9b0e973d662ed566967af71c8f5b2383320",
      "tree": "6191f640f705ee0f78a3034f1a06fe68718ede22",
      "parents": [
        "fd16414d341b1c104068c489103aeb2ddb8995e6",
        "cda487148602325701ffd7f595ca096a182f380c"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:33:58 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:33:58 2015 +0000"
      },
      "message": "Merge \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\" into mnc-dev\nam: cda4871486\n\n* commit \u0027cda487148602325701ffd7f595ca096a182f380c\u0027:\n  Revert \"AudioPolicyService: fix race in AudioCommandThread\"\n"
    },
    {
      "commit": "fd16414d341b1c104068c489103aeb2ddb8995e6",
      "tree": "1aa3f492b81e9b7834babf095188ce9eb4439621",
      "parents": [
        "28323c3d9a6dff48c480c50a358d9bd4fdeed407",
        "be6f10c049086453cc53b8e50c5d497bb5b3ae05"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:33:47 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Tue Oct 27 01:33:47 2015 +0000"
      },
      "message": "Merge \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\" into mnc-dev\nam: be6f10c049\n\n* commit \u0027be6f10c049086453cc53b8e50c5d497bb5b3ae05\u0027:\n  Revert \"audio policy: bind setMode() and setPhoneState() operations\"\n"
    },
    {
      "commit": "3994ffdd2c280aa5fad9f3c41255371cd545c7cf",
      "tree": "e815c94f3630142e34d22d8493cda4e8a95dc646",
      "parents": [
        "26ce11a1dd2a9b70865aec1b42c365dd19172511"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:45 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:45 2015 +0000"
      },
      "message": "Revert \"Revert \"audio policy: bind setMode() and setPhoneState() operations\"\"\n\nThis reverts commit 26ce11a1dd2a9b70865aec1b42c365dd19172511.\n\nChange-Id: I0affb97e7f2eb541ebd6f26c33e8f32261e9e221\n"
    },
    {
      "commit": "a754b4fa874f97a51ed2bee9257f2a870effe619",
      "tree": "da2c975edfeada4f3d1e2d7ca37cad9ada599f4b",
      "parents": [
        "75c82b50951b21190f710a638c6a26ff7ee6d86d"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:34 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:29:34 2015 +0000"
      },
      "message": "Revert \"Revert \"AudioPolicyService: fix race in AudioCommandThread\"\"\n\nThis reverts commit 75c82b50951b21190f710a638c6a26ff7ee6d86d.\n\nChange-Id: I1b1f147bedf205636ec20b84faf6ef597a781c0d\n"
    },
    {
      "commit": "26ce11a1dd2a9b70865aec1b42c365dd19172511",
      "tree": "da2c975edfeada4f3d1e2d7ca37cad9ada599f4b",
      "parents": [
        "9ddf1c76121caef55a05c537d6a9a1d76c1d17be"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:25:27 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:25:27 2015 +0000"
      },
      "message": "Revert \"audio policy: bind setMode() and setPhoneState() operations\"\n\nThis reverts commit 9ddf1c76121caef55a05c537d6a9a1d76c1d17be.\n\nChange-Id: I860ecc288a1798605dff46f39107f4450ca5cd56\n"
    },
    {
      "commit": "75c82b50951b21190f710a638c6a26ff7ee6d86d",
      "tree": "97d86a674d1cecec6da60dfb0ec0c2eae1e2b644",
      "parents": [
        "74ce88ff0f24a8c08fdab3a1140212183089c2b5"
      ],
      "author": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:24:55 2015 +0000"
      },
      "committer": {
        "name": "Zach Jang",
        "email": "zachjang@google.com",
        "time": "Tue Oct 27 01:24:55 2015 +0000"
      },
      "message": "Revert \"AudioPolicyService: fix race in AudioCommandThread\"\n\nThis reverts commit 74ce88ff0f24a8c08fdab3a1140212183089c2b5.\n\nChange-Id: I39114c8cdd3021951ba93716aaa0c1c03e68538d\n"
    },
    {
      "commit": "76d4c7ffa9cdeed39c93d685c9c03b0915262a8b",
      "tree": "a73a9a7b21a7708647da33bc710fd843ff94fb23",
      "parents": [
        "e710ae53001bbbf1e1afd6b3f5c3478c673afd0e"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Oct 23 15:01:53 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Oct 26 12:17:36 2015 -0700"
      },
      "message": "Reduce lock time for dump to make sure not locked when calling back to IResourceManagerClient.\n\nBug: 25166048\nChange-Id: I35f9917079c4b783a7cf4cef94b3c7112760c0b8\n"
    },
    {
      "commit": "55a4d0bdf185b0cf7e37ca0446e4e5046cef5534",
      "tree": "aa08cb079f6ec576540ee954d53606748355b458",
      "parents": [
        "d58f15c3329123d9506263a07301b70a86e9bc17",
        "80ad49403ede54092e128ddf9f1fe2ef7bc53944"
      ],
      "author": {
        "name": "Ian Pedowitz",
        "email": "ijpedowitz@google.com",
        "time": "Thu Oct 22 02:15:15 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Thu Oct 22 02:15:15 2015 +0000"
      },
      "message": "Merge \"DO NOT MERGE: libcameraservice: Fix nullptr crash when no client.\" into mnc-dr-dev am: c0d8c35a2d\nam: 80ad49403e\n\n* commit \u002780ad49403ede54092e128ddf9f1fe2ef7bc53944\u0027:\n  DO NOT MERGE: libcameraservice: Fix nullptr crash when no client.\n"
    },
    {
      "commit": "5adc76c49a525993f3362cf648864fb21f4547f0",
      "tree": "6e17c9ab60cdc625ef49754aef2e345f5137e130",
      "parents": [
        "e710ae53001bbbf1e1afd6b3f5c3478c673afd0e"
      ],
      "author": {
        "name": "Tom Keel",
        "email": "thomas.keel@intel.com",
        "time": "Thu Oct 08 16:42:56 2015 +0200"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Oct 21 17:41:39 2015 -0700"
      },
      "message": "DO NOT MERGE: libcameraservice: Fix nullptr crash when no client.\n\nThis change prevents a crash in the camera service when the camera\nHAL notifies the service about the absence of a removable camera and\nthere happens to be no client connected to the service. It checks\nthat the pointer returned from clientToDisconnect.get() is non-null\nbefore trying to dereference it (as is done in existing code\nimmediately below this change).\n\nBug: 25165323\nChange-Id: I8055654bac980542e63ea7f52bf897eaafbc09bc\nSigned-off-by: Tom Keel \u003cthomas.keel@intel.com\u003e\n"
    },
    {
      "commit": "a1293bb4bc9c838df9452c6034c99fac0180dff8",
      "tree": "592878673e3076a9dda484228bf6cd50a270e4f2",
      "parents": [
        "1f410f44a17a01890244270b034cb00f74fedce7",
        "4fbcb985a1804ca407f5f68267942c037a919a2a"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Wed Oct 21 21:39:22 2015 +0000"
      },
      "committer": {
        "name": "android-build-merger",
        "email": "android-build-merger@google.com",
        "time": "Wed Oct 21 21:39:22 2015 +0000"
      },
      "message": "Merge \"libcameraservice: Fix nullptr crash when no client.\"\nam: 4fbcb985a1\n\n* commit \u00274fbcb985a1804ca407f5f68267942c037a919a2a\u0027:\n  libcameraservice: Fix nullptr crash when no client.\n"
    },
    {
      "commit": "056c93eb51a8cacace5b515a3046e8e5fc0a5824",
      "tree": "3e565551c2559fbae99d13e98501eee794c32796",
      "parents": [
        "dc897061d8bb9c2fe8c5d0afee1664cdfaaeeea4"
      ],
      "author": {
        "name": "Tom Keel",
        "email": "thomas.keel@intel.com",
        "time": "Thu Oct 08 16:42:56 2015 +0200"
      },
      "committer": {
        "name": "Tom Keel",
        "email": "thomas.keel@intel.com",
        "time": "Tue Oct 20 10:22:27 2015 +0200"
      },
      "message": "libcameraservice: Fix nullptr crash when no client.\n\nThis change prevents a crash in the camera service when the camera\nHAL notifies the service about the absence of a removable camera and\nthere happens to be no client connected to the service. It checks\nthat the pointer returned from clientToDisconnect.get() is non-null\nbefore trying to dereference it (as is done in existing code\nimmediately below this change).\n\nChange-Id: I8055654bac980542e63ea7f52bf897eaafbc09bc\nSigned-off-by: Tom Keel \u003cthomas.keel@intel.com\u003e\n"
    },
    {
      "commit": "2d3e2892f1640ad9fa18f70e2152cf10fa43f933",
      "tree": "f0da994f49599a1157c6af421aec82d7c26aa83d",
      "parents": [
        "7f03a03a62bb10b99fd194ba864f17e61a73dda7",
        "fc7b5a4a10fe8cf02f1a9fd330d06319fcabdb05"
      ],
      "author": {
        "name": "Ranjith Kagathi Ananda",
        "email": "ranjith@codeaurora.org",
        "time": "Mon Oct 19 17:32:38 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 17:32:38 2015 +0000"
      },
      "message": "am fc7b5a4a: am a04159ac: libcameraservice: Fix ALOG prints in FlashLight. am: 32ab9fdab5\n\n* commit \u0027fc7b5a4a10fe8cf02f1a9fd330d06319fcabdb05\u0027:\n  libcameraservice: Fix ALOG prints in FlashLight.\n"
    },
    {
      "commit": "7f03a03a62bb10b99fd194ba864f17e61a73dda7",
      "tree": "bfab1c7a5ce286e1491fdbb59fd02521160f8f76",
      "parents": [
        "25cf8fe362e3fb57e7abdf2930be9f40296fb450",
        "1d288267c357e90dd68a1eb43f35db00309cab5a"
      ],
      "author": {
        "name": "Ranjith Kagathi Ananda",
        "email": "ranjith@codeaurora.org",
        "time": "Mon Oct 19 17:32:36 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 17:32:36 2015 +0000"
      },
      "message": "am 1d288267: am b4a3c6dd: Camera: frameworks: Add NULL check for callback am: 3e60089468\n\n* commit \u00271d288267c357e90dd68a1eb43f35db00309cab5a\u0027:\n  Camera: frameworks: Add NULL check for callback\n"
    },
    {
      "commit": "fc7b5a4a10fe8cf02f1a9fd330d06319fcabdb05",
      "tree": "ca32c3d44f07c0ff5f37d7dacb5e110d050ada09",
      "parents": [
        "1d288267c357e90dd68a1eb43f35db00309cab5a",
        "a04159acc4c49f13fbfa5b5bee5e5b622eb2d659"
      ],
      "author": {
        "name": "Ranjith Kagathi Ananda",
        "email": "ranjith@codeaurora.org",
        "time": "Mon Oct 19 17:29:48 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 17:29:48 2015 +0000"
      },
      "message": "am a04159ac: libcameraservice: Fix ALOG prints in FlashLight. am: 32ab9fdab5\n\n* commit \u0027a04159acc4c49f13fbfa5b5bee5e5b622eb2d659\u0027:\n  libcameraservice: Fix ALOG prints in FlashLight.\n"
    },
    {
      "commit": "1d288267c357e90dd68a1eb43f35db00309cab5a",
      "tree": "748ffa711658f0a3bb0d8c8dde9dc93952f68307",
      "parents": [
        "2022f6f8f6df75eac878fac0cd5338f878700fc6",
        "b4a3c6dd7e48bc9d3f68c609b2b28abec67d1eeb"
      ],
      "author": {
        "name": "Ranjith Kagathi Ananda",
        "email": "ranjith@codeaurora.org",
        "time": "Mon Oct 19 17:29:47 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Oct 19 17:29:47 2015 +0000"
      },
      "message": "am b4a3c6dd: Camera: frameworks: Add NULL check for callback am: 3e60089468\n\n* commit \u0027b4a3c6dd7e48bc9d3f68c609b2b28abec67d1eeb\u0027:\n  Camera: frameworks: Add NULL check for callback\n"
    },
    {
      "commit": "32ab9fdab562127ccd37a8cdb15421ebdf82a458",
      "tree": "7e8728530de6477afa7bb46bfa497af50079a362",
      "parents": [
        "3e600894685b994849d59307721c6862ae0c45b7"
      ],
      "author": {
        "name": "Ranjith Kagathi Ananda",
        "email": "ranjith@codeaurora.org",
        "time": "Thu Oct 08 16:41:09 2015 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 16 17:08:48 2015 -0700"
      },
      "message": "libcameraservice: Fix ALOG prints in FlashLight.\n\nAdd missing __FUNCTION__ arguments into log statements.\n\nAck by: Dilip Gopalakrishna\n\nBug: 25023187\nChange-Id: I0256bad626d490fb9360a73c104afaad7a012a97\n"
    },
    {
      "commit": "3e600894685b994849d59307721c6862ae0c45b7",
      "tree": "1d2636ae0bdbda0b35dc8b3cd176607f3f58a361",
      "parents": [
        "b3d9f56313f1838649712297ebc8205c4ec14870"
      ],
      "author": {
        "name": "Ranjith Kagathi Ananda",
        "email": "ranjith@codeaurora.org",
        "time": "Thu Oct 08 16:00:33 2015 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Fri Oct 16 17:08:14 2015 -0700"
      },
      "message": "Camera: frameworks: Add NULL check for callback\n\n--Added NULL check for mRemoteCallback\n\nAck by: Susmitha Gummalla\n\nBug: 25023187\nChange-Id: Ib88a128a52e81b8ec1052e3222b6d8b9e494afcc\n"
    },
    {
      "commit": "9ddf1c76121caef55a05c537d6a9a1d76c1d17be",
      "tree": "e815c94f3630142e34d22d8493cda4e8a95dc646",
      "parents": [
        "74ce88ff0f24a8c08fdab3a1140212183089c2b5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 15:49:30 2015 -0700"
      },
      "committer": {
        "name": "Christian Bejram",
        "email": "cbejram@google.com",
        "time": "Fri Oct 16 16:49:31 2015 -0700"
      },
      "message": "audio policy: bind setMode() and setPhoneState() operations\n\nNo routing operation should be allowed between setMode() and setPhoneState()\nwhen starting a call as the audio HAL relies on a precise sequence of mode change\nand routing change to select the initial audio device for the call.\n\nBug: 24083591.\n\nChange-Id: I2d5ef62c11cf7aedc2ec7ca5e5fadd7ac875afbc\n"
    },
    {
      "commit": "74ce88ff0f24a8c08fdab3a1140212183089c2b5",
      "tree": "da2c975edfeada4f3d1e2d7ca37cad9ada599f4b",
      "parents": [
        "7b80648180feaad1e7edaecd078246f5002a8fb6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 10:25:31 2015 -0700"
      },
      "committer": {
        "name": "Christian Bejram",
        "email": "cbejram@google.com",
        "time": "Fri Oct 16 16:48:45 2015 -0700"
      },
      "message": "AudioPolicyService: fix race in AudioCommandThread\n\nFixe race condition in AudioCommandThread::threadLoop() where a\ncommand can be inserted in first position in the queue after the sleep\ntime has been calculated causing a longer delay than expected.\n\nAlso fix a failure to hold a wake lock while commands are still in the queue.\n\nBug: 22707905.\nChange-Id: I813626986677bf00106acb37ee20d3dd75d5cf33\n"
    },
    {
      "commit": "ce497dabca19d34d46a87598315be885e906871e",
      "tree": "1be7d926c29b033e6a2c1505c6a4806e8a7226f0",
      "parents": [
        "13758331f9db389271c1cb432f1a11edbf073ab2",
        "176a017fabaf753db36ffe4a3069447d9df4cf3b"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 16 23:33:14 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 16 23:33:14 2015 +0000"
      },
      "message": "am 176a017f: am 25add6d4: am 43c39be5: Merge \"ALOGE does not match triggering condition.\"\n\n* commit \u0027176a017fabaf753db36ffe4a3069447d9df4cf3b\u0027:\n  ALOGE does not match triggering condition.\n"
    },
    {
      "commit": "176a017fabaf753db36ffe4a3069447d9df4cf3b",
      "tree": "c9686beb5fff7d3698c538db84c963b3d0d802f4",
      "parents": [
        "4e027b587f6b05999ed10f14c4f8ccf0cd7a1f02",
        "25add6d481bba37552f0f8b6ed225bed98594034"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 16 23:07:19 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 16 23:07:19 2015 +0000"
      },
      "message": "am 25add6d4: am 43c39be5: Merge \"ALOGE does not match triggering condition.\"\n\n* commit \u002725add6d481bba37552f0f8b6ed225bed98594034\u0027:\n  ALOGE does not match triggering condition.\n"
    },
    {
      "commit": "25add6d481bba37552f0f8b6ed225bed98594034",
      "tree": "cc06216e8f36d8dc16a21a9d650778ceb66be063",
      "parents": [
        "a80a60fe98b49a85368ebfe454ccf9d276d95813",
        "43c39be58651745a55e5d66568f92c03d695b461"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 16 16:01:34 2015 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 16 16:01:34 2015 -0700"
      },
      "message": "am 43c39be5: Merge \"ALOGE does not match triggering condition.\"\n\n* commit \u002743c39be58651745a55e5d66568f92c03d695b461\u0027:\n  ALOGE does not match triggering condition.\n"
    },
    {
      "commit": "43c39be58651745a55e5d66568f92c03d695b461",
      "tree": "f2695600731028d5b0709995107951d84eaf523b",
      "parents": [
        "34f7007194bcc6a27cafc93e2a15eee468b3d746",
        "19fdbfcf8af3ca689c3c62b88059ac5d3c6907d1"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Oct 16 22:55:57 2015 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Oct 16 22:55:57 2015 +0000"
      },
      "message": "Merge \"ALOGE does not match triggering condition.\""
    },
    {
      "commit": "d90d042269d174104cbcddb078f835296571cf87",
      "tree": "7f6425d30c603ed9c2ea16c62957407dbd318df0",
      "parents": [
        "86803a9be4dbe0c544aff4c44b186433b9efed26",
        "adf760b98f22597bd0133c67af40d983a3e014c6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Oct 16 12:07:11 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 16 12:07:11 2015 +0000"
      },
      "message": "am adf760b9: am fba67941: am 0eb5a270: Merge \"audio policy: fix transition from VoIP to voice call on USB\" into mnc-dr-dev\n\n* commit \u0027adf760b98f22597bd0133c67af40d983a3e014c6\u0027:\n  audio policy: fix transition from VoIP to voice call on USB\n"
    },
    {
      "commit": "0eb5a2706de25728f7ad2fd8febf960ca3c5e42d",
      "tree": "7ed075b3d505b5d25869c7d65dc1ac097b7530b2",
      "parents": [
        "ceb10ea795d92d889201cd40f5ac6290edf4ded7",
        "c0a889f766953b657a5e997bc1362661806d3a19"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 15 22:03:29 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 15 22:03:29 2015 +0000"
      },
      "message": "Merge \"audio policy: fix transition from VoIP to voice call on USB\" into mnc-dr-dev"
    },
    {
      "commit": "86803a9be4dbe0c544aff4c44b186433b9efed26",
      "tree": "15f3d6aeb806fb60ca32bc93f7fc89ee5cbdcac6",
      "parents": [
        "9690bf3690c9b720656cebf6da390800e7395213",
        "bb19b792cf51934fd5f4fe989e66255cc8e132a4"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Oct 15 21:13:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 15 21:13:45 2015 +0000"
      },
      "message": "am bb19b792: am abe90449: am ceb10ea7: Merge \"Camera: setup vendor tags before get_camera_info\" into mnc-dr-dev\n\n* commit \u0027bb19b792cf51934fd5f4fe989e66255cc8e132a4\u0027:\n  Camera: setup vendor tags before get_camera_info\n"
    },
    {
      "commit": "ceb10ea795d92d889201cd40f5ac6290edf4ded7",
      "tree": "bb6ef8b2f18c832bcb9d4ec777e025918ac351b1",
      "parents": [
        "0926aab4b8d5d307c95788086090e8d2b2763f1f",
        "d4a653a15767d4de37dbfdee22c2170951c93299"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Thu Oct 15 20:57:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 15 20:57:56 2015 +0000"
      },
      "message": "Merge \"Camera: setup vendor tags before get_camera_info\" into mnc-dr-dev"
    },
    {
      "commit": "9690bf3690c9b720656cebf6da390800e7395213",
      "tree": "44b90af4e5c7376812855fe6b0cc07f420b2ced3",
      "parents": [
        "ad13fcc2da66143484939afafc2893cfc6fa201e",
        "27d07a9a0366bab299a4b08c24e9bc4e94d14ac0"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 15 18:31:12 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 15 18:31:12 2015 +0000"
      },
      "message": "am 27d07a9a: am 26639898: am 0926aab4: Merge \"audio policy: fix USB mic selection for VoIP\" into mnc-dr-dev\n\n* commit \u002727d07a9a0366bab299a4b08c24e9bc4e94d14ac0\u0027:\n  audio policy: fix USB mic selection for VoIP\n"
    },
    {
      "commit": "c0a889f766953b657a5e997bc1362661806d3a19",
      "tree": "fb0a2248a68bf20df0adfccf4cdcc7dce2c5d6b0",
      "parents": [
        "0926aab4b8d5d307c95788086090e8d2b2763f1f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 14:36:34 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 15 10:53:32 2015 -0700"
      },
      "message": "audio policy: fix transition from VoIP to voice call on USB\n\nMake sure no active capture takes place while in call and the\ncapture device is the same as the call TX device.\n\nBug: 23977713.\n\nChange-Id: Ia379d5e626c150ea49f0cdd581c881dbf0b8399d\n"
    },
    {
      "commit": "0926aab4b8d5d307c95788086090e8d2b2763f1f",
      "tree": "8defa17489210dea8527306cfb813bd7400dd777",
      "parents": [
        "66a581fe1c8bf7546c9e7907612d2b430573dab1",
        "c171c7c47d099a52ade95c3c8d8907bf09bb88fa"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 15 17:31:31 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Oct 15 17:31:31 2015 +0000"
      },
      "message": "Merge \"audio policy: fix USB mic selection for VoIP\" into mnc-dr-dev"
    },
    {
      "commit": "c171c7c47d099a52ade95c3c8d8907bf09bb88fa",
      "tree": "1d3aa7df5d0e1a5458efdcadb7748efd76a3e5ae",
      "parents": [
        "036b6593eec6ced2f34293e8407f1cb86ae1e75f"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 25 12:21:06 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Oct 15 09:48:06 2015 -0700"
      },
      "message": "audio policy: fix USB mic selection for VoIP\n\nWhen transitioning from speaker phone to normal mode and a USB\nheadset is connected, we must force a teardown of active input\nas the new input device cannot be reached via current input stream.\n\nBug: 24406915.\nChange-Id: I9f7c1d3f3cba285c25a6da1d54a3d15a5c1f378a\n"
    },
    {
      "commit": "454b6785c759a9bcfa33fce1ed27b04a381f9799",
      "tree": "204c1e6124b542e736ece72323f396bcf44b74b9",
      "parents": [
        "f1d250c4f18c48773cecde827b79bfb1b2c597d5",
        "2aeef2fdb34575d7981f62bd06936e6e9cee628a"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 23:59:23 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 23:59:23 2015 +0000"
      },
      "message": "am 2aeef2fd: am 50652c7e: am 5f54de48: Merge \"Camera: Add video recording stop sound\" into mnc-dr-dev\n\n* commit \u00272aeef2fdb34575d7981f62bd06936e6e9cee628a\u0027:\n  Camera: Add video recording stop sound\n"
    },
    {
      "commit": "5f54de483624a5731d82060bd3e1aab74b32b15e",
      "tree": "ec9f443ec03bac727740985f6ab08cf6038583a2",
      "parents": [
        "6e2ea5abb4344bf2e308a03ac488e93ab92778ab",
        "82104ebbb2cc04277ab07b355f38f73045a11770"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 23:36:51 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 14 23:36:51 2015 +0000"
      },
      "message": "Merge \"Camera: Add video recording stop sound\" into mnc-dr-dev"
    },
    {
      "commit": "c7a46eb1538a3ef8d53575084d80f2f3eacd77ba",
      "tree": "522144957b12ded94ce0ca082dae1e80e40b8178",
      "parents": [
        "ea6a3dc069809ec071290eb2c8cacef3582ead98",
        "8a4a0ac6545f53a9ec4af6074caf0e935b08ffbe"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 20:20:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 14 20:20:49 2015 +0000"
      },
      "message": "Merge \"DO NOT MERGE: Fix setTorchMode support for the old HAL version\" into mnc-dr-dev"
    },
    {
      "commit": "82104ebbb2cc04277ab07b355f38f73045a11770",
      "tree": "ec4857f3465d6e07407cc554e2465985b06625df",
      "parents": [
        "ea6a3dc069809ec071290eb2c8cacef3582ead98"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 11:29:31 2015 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 11:29:31 2015 -0700"
      },
      "message": "Camera: Add video recording stop sound\n\nAdd video recording stop sound to match MediaActionSound.\n\nBug: 24745252\nChange-Id: I84b69757c7e0a98abfaafcce5f41dd45fd41cf74\n"
    },
    {
      "commit": "d4a653a15767d4de37dbfdee22c2170951c93299",
      "tree": "1915d59eab5269b2d3743cbee4f7adc9a019a0ef",
      "parents": [
        "d805214cec5219eef42346cc136effe89292ac69"
      ],
      "author": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Oct 14 11:05:44 2015 -0700"
      },
      "committer": {
        "name": "Yin-Chia Yeh",
        "email": "yinchiayeh@google.com",
        "time": "Wed Oct 14 11:05:44 2015 -0700"
      },
      "message": "Camera: setup vendor tags before get_camera_info\n\nSo HAL can use vendor tags on first get_camera_info call.\n\nBug: 24913201\nChange-Id: I73f17de87e3712a27f9cee366995df27a740f5cb\n"
    },
    {
      "commit": "8a4a0ac6545f53a9ec4af6074caf0e935b08ffbe",
      "tree": "a07274e6959d497d9aabe1dbc991279218d8a1d8",
      "parents": [
        "036b6593eec6ced2f34293e8407f1cb86ae1e75f"
      ],
      "author": {
        "name": "Oleksiy Avramchenko",
        "email": "oleksiy.avramchenko@sonymobile.com",
        "time": "Mon Sep 14 11:00:33 2015 +0200"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 10:49:17 2015 -0700"
      },
      "message": "DO NOT MERGE: Fix setTorchMode support for the old HAL version\n\nCameraHardwareInterfaceFlashControl class calls disconnectCameraDevice\nwhen torch is disabled. This closes connection to the camera module,\nbut mDevice instance is kept and variable is non-NULL which will\nprevent connection next time torch is going to be enabled.\n\nBug: 24909924\nChange-Id: Icb1ffb07f05256afd92821f0f4908cda5332c05b\n"
    },
    {
      "commit": "ea6a3dc069809ec071290eb2c8cacef3582ead98",
      "tree": "264f264b05209806e163ea41eeecd6f87f5e5271",
      "parents": [
        "2894d70256d3f53547807a5aacaf45df62342fb5",
        "aba407f1a6378ac2518d0d76d0d18419b7722a81"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 01:13:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Oct 14 01:13:35 2015 +0000"
      },
      "message": "Merge \"audioflinger: increase shared memory heap size\" into mnc-dr-dev"
    },
    {
      "commit": "a578772d9697726dce439d0a00c6814bc9859f75",
      "tree": "fa6a1701f88dca0568e33bc60e204609450b5101",
      "parents": [
        "25374c0aa16b4f670cfe2498bcf9a5c7134909de",
        "f8b1280535a6e3ebcf864d434a01d6c672cadd9a"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 01:06:38 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 01:06:38 2015 +0000"
      },
      "message": "am f8b12805: am f339beaf: am 2e1683c4: Merge \"Fix setTorchMode support for the old HAL version\"\n\n* commit \u0027f8b1280535a6e3ebcf864d434a01d6c672cadd9a\u0027:\n  Fix setTorchMode support for the old HAL version\n"
    },
    {
      "commit": "f8b1280535a6e3ebcf864d434a01d6c672cadd9a",
      "tree": "443090bafbd088225813e29eac67a60659c0a4ae",
      "parents": [
        "e0349470e35126160d96a02758d654b15ff13b07",
        "f339beaf97f4112684c01e40d5ed9f4bfe3270fa"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 01:01:04 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 01:01:04 2015 +0000"
      },
      "message": "am f339beaf: am 2e1683c4: Merge \"Fix setTorchMode support for the old HAL version\"\n\n* commit \u0027f339beaf97f4112684c01e40d5ed9f4bfe3270fa\u0027:\n  Fix setTorchMode support for the old HAL version\n"
    },
    {
      "commit": "f339beaf97f4112684c01e40d5ed9f4bfe3270fa",
      "tree": "c95b9cc09efc0a0177b1f591a708a93f34bca1f2",
      "parents": [
        "1982dfdc2a9e99331d02a6591b2cbe2f65ae1103",
        "2e1683c4871faccea74f181194e193cb28016cf3"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Oct 14 00:55:01 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Oct 14 00:55:01 2015 +0000"
      },
      "message": "am 2e1683c4: Merge \"Fix setTorchMode support for the old HAL version\"\n\n* commit \u00272e1683c4871faccea74f181194e193cb28016cf3\u0027:\n  Fix setTorchMode support for the old HAL version\n"
    },
    {
      "commit": "aba407f1a6378ac2518d0d76d0d18419b7722a81",
      "tree": "23ecf127eabd7fa532a5f8b779f0323aaf16bdec",
      "parents": [
        "ce805c2a0c447dcdd4e649db7415020dbec1100b"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 20 16:18:53 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Oct 14 00:28:11 2015 +0000"
      },
      "message": "audioflinger: increase shared memory heap size\n\nBug: 21093153.\nChange-Id: I389af11451b01ce49fdb8957e2f322ba1925a62e\n(cherry picked from commit da73b6c7474aaa5616f0214e238776f12717f32b)\n"
    },
    {
      "commit": "954ca45ac30539a49f179580b667b0ab1056d113",
      "tree": "33adc92ecf3ea0bbafa97882e61381e3a8bf1204",
      "parents": [
        "e5200ea76c5d180b53087ae7825326ec61cc4687"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 09 14:39:02 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 13 15:48:31 2015 -0700"
      },
      "message": "For static obtainBuffer(), do not set mUnreleased if acknowledging flush.\n\nstatic audio tracks use obtainBuffer() to update position in start().\n\nBug: 22938515\nChange-Id: I8ae32f6cce4d122386d2cf8982e158049b04ba9a\n"
    },
    {
      "commit": "403bff76dbde57fdcfce84292a5e42fa33c37842",
      "tree": "2dd1dd0197746aa4e5d4dc8ce8d783d60c9100e1",
      "parents": [
        "036b6593eec6ced2f34293e8407f1cb86ae1e75f",
        "4c6e77ff8e18a1551320a6b42f6a45e19dcce748"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Oct 13 19:55:16 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Tue Oct 13 19:55:16 2015 +0000"
      },
      "message": "am 4c6e77ff: AudioFlinger: Clear record buffers when starting RecordThread\n\n* commit \u00274c6e77ff8e18a1551320a6b42f6a45e19dcce748\u0027:\n  AudioFlinger: Clear record buffers when starting RecordThread\n"
    },
    {
      "commit": "4c6e77ff8e18a1551320a6b42f6a45e19dcce748",
      "tree": "97d86a674d1cecec6da60dfb0ec0c2eae1e2b644",
      "parents": [
        "5076a51e0572246f7062e48761766c01f17233c2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 21 12:44:54 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 13 12:17:53 2015 -0700"
      },
      "message": "AudioFlinger: Clear record buffers when starting RecordThread\n\nBug: 24211743\nBug: 24267152\nChange-Id: I58c55e56b85067b71e4e300f947b4dfc159637ba\n"
    },
    {
      "commit": "19fdbfcf8af3ca689c3c62b88059ac5d3c6907d1",
      "tree": "c83554d771408852f21c637f0f0d65e473622671",
      "parents": [
        "3cce4937ae9bb3a522bee74a47807c8cf0b462d5"
      ],
      "author": {
        "name": "Hubert Rzezniczak",
        "email": "hubert.rzezniczak@gmail.com",
        "time": "Tue Oct 13 13:17:43 2015 +0200"
      },
      "committer": {
        "name": "Hubert Rzezniczak",
        "email": "hubert.rzezniczak@gmail.com",
        "time": "Tue Oct 13 13:17:43 2015 +0200"
      },
      "message": "ALOGE does not match triggering condition.\n\nMeeting the condition\nif (sceneModeOverrides.count !\u003d\n                availableSceneModes.count * kModesPerSceneMode) {\nresults with ALOGE which describes the missmatch.\nThe description does not match the condition.\n\nSigned-off-by: Hubert Rzezniczak \u003chubert.rzezniczak@gmail.com\u003e\n"
    },
    {
      "commit": "741fd4d9070c1dbe9ff297a8a3fc6317c3808482",
      "tree": "172cac13cf08e9012cd234b151940fbbfa795399",
      "parents": [
        "9589b4683cbce551eaafde67cb2af94773a9f51d"
      ],
      "author": {
        "name": "Oleksiy Avramchenko",
        "email": "oleksiy.avramchenko@sonymobile.com",
        "time": "Mon Sep 14 11:00:33 2015 +0200"
      },
      "committer": {
        "name": "Johan Redestig",
        "email": "johan.redestig@sonymobile.com",
        "time": "Wed Oct 07 14:28:19 2015 +0200"
      },
      "message": "Fix setTorchMode support for the old HAL version\n\nCameraHardwareInterfaceFlashControl class calls disconnectCameraDevice\nwhen torch is disabled. This closes connection to the camera module,\nbut mDevice instance is kept and variable is non-NULL which will\nprevent connection next time torch is going to be enabled.\n\nChange-Id: Icb1ffb07f05256afd92821f0f4908cda5332c05b\n"
    },
    {
      "commit": "29d56072745c91933c416a149900e7d431dd5a84",
      "tree": "bcddb185a7bde7937a55aafb953f9e6815a3e5f9",
      "parents": [
        "be094287351c59fe06b4c8d3aa73f7f7de0522d0",
        "463e71c6766e68bc042b89c53751095053950c4c"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Fri Oct 02 22:12:00 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 02 22:12:00 2015 +0000"
      },
      "message": "am 463e71c6: am fc07d1e6: am 4a8f4a3f: Camera3Device: Change HFR request thread priority to 1\n\n* commit \u0027463e71c6766e68bc042b89c53751095053950c4c\u0027:\n  Camera3Device: Change HFR request thread priority to 1\n"
    },
    {
      "commit": "4a8f4a3f567d8b3134b1c7ab21ca774f279ab9c2",
      "tree": "56b7339cd9ebccb979c9b3b9e91c3705e8c41fea",
      "parents": [
        "a24a1a63284b0f9d61720ee27bf8c0d9609ce2ab"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Oct 01 15:23:22 2015 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Oct 01 15:28:06 2015 -0700"
      },
      "message": "Camera3Device: Change HFR request thread priority to 1\n\nBased on periods of the request thread and audio threads with\nSCHED_FIFO policy, 1 is a more reasonable priority for HFR\nrequest thread.\n\nBug: 24427480\nChange-Id: I91f0066a0e114fc83abcc6a604ecbaa72c6a34e8\n"
    },
    {
      "commit": "921c7dffbd7f594b13688abae363d562eaefa8a0",
      "tree": "4c45476900dc76dbe195ec1d9d6cad5b988c70fb",
      "parents": [
        "2f996c9514f4255ed693c860631e4634d20de8bd",
        "27dbbd1d26d71edab353fbfc1f741a9abee3590f"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Thu Oct 01 01:22:28 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Oct 01 01:22:28 2015 +0000"
      },
      "message": "am 27dbbd1d: am d270804d: am a24a1a63: Merge \"Camera3Device: Bookkeeping reprocess shutters separately\" into mnc-dr-dev\n\n* commit \u002727dbbd1d26d71edab353fbfc1f741a9abee3590f\u0027:\n  Camera3Device: Bookkeeping reprocess shutters separately\n"
    },
    {
      "commit": "3df11ce7240d0ce5d957c626be467832c1c7fde9",
      "tree": "7c54de353814b76dd782004100c6c32a627e2484",
      "parents": [
        "f99498ee4de7123e2fd71778c6877be44fbd1506"
      ],
      "author": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Sep 30 14:13:30 2015 -0700"
      },
      "committer": {
        "name": "Chien-Yu Chen",
        "email": "cychen@google.com",
        "time": "Wed Sep 30 14:13:30 2015 -0700"
      },
      "message": "Camera3Device: Bookkeeping reprocess shutters separately\n\nBookkeeping reprocess shutters separately so regular and reprocess\nshutters together don\u0027t need to come in order.\n\nBug: 24497512\nChange-Id: I4aaf22045131e9e2e26bf163f7df9ff4c5cd6259\n"
    },
    {
      "commit": "10cfc14fadae08cd5806c4834e28aa9f743f550e",
      "tree": "61ff6805c1197513bb6a7e802b99c9229bce1875",
      "parents": [
        "386d2fe3c282899f5395a120121e082f8eca1dc6",
        "937c34741e476f26ddd0ff28a2af5e1bcd96895c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 28 19:47:35 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Sep 28 19:47:35 2015 +0000"
      },
      "message": "Merge \"Add missing entries for input and output flags\""
    },
    {
      "commit": "937c34741e476f26ddd0ff28a2af5e1bcd96895c",
      "tree": "637e3baea5f3ae7c16480232c6f6a8b1dd99f8bc",
      "parents": [
        "cdd1dfd23e9976536e2dad103b6c357927fca27d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 28 10:21:06 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Sep 28 10:21:06 2015 -0700"
      },
      "message": "Add missing entries for input and output flags\n\nBug: 24141510\nChange-Id: Ia151bc7d25d72864992888c33547a34adf460a9b\n"
    },
    {
      "commit": "060b582b37f55b758a41b0cc26dc1ff6d112814f",
      "tree": "8c4ff6e6c03cef46f38f6fd6f7a4c837420fa45e",
      "parents": [
        "2d93abfb06455176b7f2fcde0d9fd4dfe7a0973c",
        "b171ba8ce83ebb5abc2de9a171a15dc974756d3d"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sun Sep 27 15:12:31 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Sep 27 15:12:31 2015 +0000"
      },
      "message": "am b171ba8c: am ffce26c0: am f99498ee: CameraService: Use SCHED_FIFO for request queue thread in HFR\n\n* commit \u0027b171ba8ce83ebb5abc2de9a171a15dc974756d3d\u0027:\n  CameraService: Use SCHED_FIFO for request queue thread in HFR\n"
    },
    {
      "commit": "f99498ee4de7123e2fd71778c6877be44fbd1506",
      "tree": "76fc5f13ab660c053101f09a701187259952e90a",
      "parents": [
        "8595eaab5884bb74d884d366ad6e371a296bf576"
      ],
      "author": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Fri Sep 25 16:52:55 2015 -0700"
      },
      "committer": {
        "name": "Eino-Ville Talvala",
        "email": "etalvala@google.com",
        "time": "Sat Sep 26 11:22:20 2015 -0700"
      },
      "message": "CameraService: Use SCHED_FIFO for request queue thread in HFR\n\n- Move SchedulingPolicyService from audioservice to mediautils\n\n- When starting up a high speed stream config, set request queue thread\n  to SCHED_FIFO using SchedulingPolicyService\n\nBug: 24227252\nChange-Id: I224b59142bd111caf563779f55cddd62385b9bac\n"
    },
    {
      "commit": "f63ae125ca8fc9e430694413b701d3667f3fd63a",
      "tree": "f041ad77bad6255268df8203b54a218b3c25bb9e",
      "parents": [
        "cb1cdf9e6a2e3f07396416f3d2e6ba1bdd2fec51",
        "3d036a8f4ce9ba2a07593b21ef63d83c8a43816e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 24 04:17:54 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 24 04:17:54 2015 +0000"
      },
      "message": "am 3d036a8f: am 8c8d9779: am 45fd99a3: Merge \"audio policy: fix preemtible capture race\" into mnc-dr-dev\n\n* commit \u00273d036a8f4ce9ba2a07593b21ef63d83c8a43816e\u0027:\n  audio policy: fix preemtible capture race\n"
    },
    {
      "commit": "45fd99a31d09f247c72f456a9d569d7326a95894",
      "tree": "b06f4ce59dc97d24a1ed5f40614653f5ab95926d",
      "parents": [
        "047d97b2d046374e2a25c81a984d9cde23f5d781",
        "64265b2fb8f5be63b6c2ad4fcbec9acf74705bc4"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 24 00:22:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 24 00:22:57 2015 +0000"
      },
      "message": "Merge \"audio policy: fix preemtible capture race\" into mnc-dr-dev"
    },
    {
      "commit": "0a712e0c7f292821ac7a997a75dbe2388378bed4",
      "tree": "ee4812cdd4b2a16620e76d79f94257cd42625130",
      "parents": [
        "0c27d279a1a99d175b84cc530ce2bfb0665b308b",
        "1723a5879ff1295e6553730e2916e54a88b6222e"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 23:03:37 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Sep 23 23:03:37 2015 +0000"
      },
      "message": "am 1723a587: am 3d25b023: am 047d97b2: AudioPolicyService: fix race in AudioCommandThread\n\n* commit \u00271723a5879ff1295e6553730e2916e54a88b6222e\u0027:\n  AudioPolicyService: fix race in AudioCommandThread\n"
    },
    {
      "commit": "047d97b2d046374e2a25c81a984d9cde23f5d781",
      "tree": "9602fea6112f8b3084fc8575fecbb5ba1e4da201",
      "parents": [
        "3916845dda1289c3419fe21fbe335bcbddc2e354"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 10:25:31 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 23 11:13:14 2015 -0700"
      },
      "message": "AudioPolicyService: fix race in AudioCommandThread\n\nFixe race condition in AudioCommandThread::threadLoop() where a\ncommand can be inserted in first position in the queue after the sleep\ntime has been calculated causing a longer delay than expected.\n\nAlso fix a failure to hold a wake lock while commands are still in the queue.\n\nBug: 22707905.\nChange-Id: I813626986677bf00106acb37ee20d3dd75d5cf33\n"
    },
    {
      "commit": "0a01c2fb68e6f35905de8dfaf938d099cd48587d",
      "tree": "43fe76eeaa8bc22a229875722ed62f51cf972ee0",
      "parents": [
        "71d7a944b5a26787c94e32f652245b61c606c485"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 21 12:44:54 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 22 15:30:43 2015 -0700"
      },
      "message": "AudioFlinger: Clear record buffers when starting RecordThread\n\nBug: 24267152\nChange-Id: I58c55e56b85067b71e4e300f947b4dfc159637ba\n"
    },
    {
      "commit": "64265b2fb8f5be63b6c2ad4fcbec9acf74705bc4",
      "tree": "a92838f2510034b35b41e78a71bb6385d6f7b557",
      "parents": [
        "6fe78a875793188ff80512db247312109038f181"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Sep 18 18:32:07 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Sep 22 01:07:14 2015 +0000"
      },
      "message": "audio policy: fix preemtible capture race\n\nBecause a preemtible capture session can preempt another one,\nwe end up in an endless loop situation were each session is allowed to restart\nafter being preempted, thus preempting the other one which restarts and so on.\n\nTo avoid this situation, we store which audio session was preempted when\na particular input started and prevent preemption of this active input by this session.\nWe also inherit sessions from the preempted input to avoid a 3 way preemption loop etc...\n\nBug: 24007220.\nChange-Id: I0eab5299440ef3ab9e987635dc9a300cf42f2c79\n"
    },
    {
      "commit": "fc2c73edef7b0a118634f75cf0ab2f3769ab0462",
      "tree": "4658cda96b758569f241beae5e0012accaaf3292",
      "parents": [
        "bc2777d5bed4f0034c9b1c7e08504f38621a976f",
        "f150772c994efa5bd80a0def10182c9c2bb2195a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 17 20:00:17 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 17 20:00:17 2015 +0000"
      },
      "message": "am f150772c: am da132d84: am 4296d7df: Merge \"audio policy: bind setMode() and setPhoneState() operations\" into mnc-dr-dev\n\n* commit \u0027f150772c994efa5bd80a0def10182c9c2bb2195a\u0027:\n  audio policy: bind setMode() and setPhoneState() operations\n"
    },
    {
      "commit": "beb07febdc0cae2f43a2008d3bd06b7bb933b19a",
      "tree": "889fadf6fd8136b134f397010846c6b0334415b3",
      "parents": [
        "20baac2a934e9d968832a44809eecc8c46c17fe2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 15:49:30 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Sep 16 15:49:30 2015 -0700"
      },
      "message": "audio policy: bind setMode() and setPhoneState() operations\n\nNo routing operation should be allowed between setMode() and setPhoneState()\nwhen starting a call as the audio HAL relies on a precise sequence of mode change\nand routing change to select the initial audio device for the call.\n\nBug: 24083591.\n\nChange-Id: I2d5ef62c11cf7aedc2ec7ca5e5fadd7ac875afbc\n"
    },
    {
      "commit": "e6fb82a207f5256933e2d83e77262331af50a27f",
      "tree": "c1dda7d2e1d4c3439f804e0c4039eeb8d89f27cd",
      "parents": [
        "6dc5a7bce1fdb89aae91967fc984da521e6ca2b2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 09 14:39:02 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 16 21:18:09 2015 +0000"
      },
      "message": "For static obtainBuffer(), do not set mUnreleased if acknowledging flush.\n\nstatic audio tracks use obtainBuffer() to update position in start().\n\nBug: 22938515\nChange-Id: I8ae32f6cce4d122386d2cf8982e158049b04ba9a\n"
    }
  ],
  "next": "4137d521e2be255ee109a6c59a1cd273b9029a4c"
}
