)]}'
{
  "log": [
    {
      "commit": "19c47afbc402542720ddd280e1bbde3b2277b586",
      "tree": "d2c3657298566f4466ea0f6ee51217ffe1a9b7a1",
      "parents": [
        "09c291c838bc74bb7c10c22f7232abb946cad8ff"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 02 15:55:23 2015 -0800"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Dec 02 18:05:32 2015 -0800"
      },
      "message": "DO NOT MERGE SoundPool: add lock for findSample access from SoundPoolThread\n\nSample decoding still occurs in SoundPoolThread\nwithout holding the SoundPool lock.\n\nBug: 25781119\nChange-Id: I11fde005aa9cf5438e0390a0d2dfe0ec1dd282e8\n"
    },
    {
      "commit": "2482595baadd16f20d3992c8c9d6a14061836872",
      "tree": "1b2d060855dc645f847ff2143e359166005f829a",
      "parents": [
        "07395f4cd72cf29d1de2864cde42876db4e54411"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Sep 28 11:32:23 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Oct 07 13:53:25 2015 -0700"
      },
      "message": "DO NOT MERGE - OMX: allow only secure codec to remotely call allocateBuffer.\n\nBug: 24310423\nChange-Id: Iebcfc58b447f925ec2134898060af2ef227266a3\n(cherry picked from commit 8dde7269a5356503d2b283234b6cb46d0c3f214e)\n"
    },
    {
      "commit": "a8f90d57f5b3ad4ef7194501aa20f0a0bd903e8f",
      "tree": "00b194d2ce4a0dcc37fea1082db5e7ef6d6cec90",
      "parents": [
        "fb5104ec0cc11a50d1a56224cd1ca2950c2def45",
        "40715a2ee896edd2df4023d9f6f586977887d34c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 17 21:32:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 21:32:32 2015 +0000"
      },
      "message": "Merge \"IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.\" into lmp-dev"
    },
    {
      "commit": "160ed868d6beb0d55dc2194564d2f08cc9d6fbc2",
      "tree": "18ba63622c0c5f7bed51dddaf04190e1aeeae7d7",
      "parents": [
        "99e63e75b670aeca1b4af401cb9582ba9fddf64d",
        "5e7e87a383fdb1fece977097a7e3cc51b296f3a0"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Sep 17 17:04:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 17:04:32 2015 +0000"
      },
      "message": "Merge \"DO NOT MERGE Fix vulnerability in mediaserver\" into lmp-dev"
    },
    {
      "commit": "99e63e75b670aeca1b4af401cb9582ba9fddf64d",
      "tree": "51f94e7d51f24250da47e55716f0e626bc769dd8",
      "parents": [
        "13a8c5dd7f7437da67ecf8e2886e486191e95ff2",
        "4b219e9e5ab237eec9931497cf10db4d78982d84"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Sep 17 17:04:15 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 17 17:04:15 2015 +0000"
      },
      "message": "Merge \"Fix for security vulnerability in media server DO NOT MERGE\" into lmp-dev"
    },
    {
      "commit": "40715a2ee896edd2df4023d9f6f586977887d34c",
      "tree": "9b25806f7f91bad470fa77b390ca881ce964e320",
      "parents": [
        "13a8c5dd7f7437da67ecf8e2886e486191e95ff2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 16 15:01:16 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 17 16:15:19 2015 +0000"
      },
      "message": "IAudioFlinger: fix the missing initialization of variable to ensure no info leak when writing them to Parcel.\n\nBug: 23953967\nChange-Id: I3a1d0144ba3832649e322c197ff0f03305ee7829\n(cherry picked from commit 4cac44b53cc9f965cc2c9706b1d7ee2cd79f4066)\n"
    },
    {
      "commit": "5e7e87a383fdb1fece977097a7e3cc51b296f3a0",
      "tree": "667fbe8db495c12ef13f2cb2f197fab34bbe9a9c",
      "parents": [
        "f3eb82683a80341f5ac23057aab733a57963cab2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Sep 16 10:26:28 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Sep 16 10:26:28 2015 -0700"
      },
      "message": "DO NOT MERGE Fix vulnerability in mediaserver\n\nICrypto.cpp: ASLR bypass using DECRYPT IPC\n\nbug: 24074485\nChange-Id: Ia12942d6b86adde28745908d36a728ab5d69a037\n"
    },
    {
      "commit": "3b76870d146b1350db8a2f7797e06897c8c92dc2",
      "tree": "21a471721a075c7848d738916f1fb293be2bb3e9",
      "parents": [
        "cc0942d0c2a57c5025063c62689ee01b39736dc2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 10 09:47:29 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 16 09:42:09 2015 -0700"
      },
      "message": "DO NOT MERGE - IAudioFlinger: always initialize variables to ensure no info leak when writing them to Parcel.\n\nBug: 23953967\nChange-Id: Ibbe841da149038675e9e8daea76c77558bc8564b\n(cherry picked from commit 983dca391a76fb45df999fc40e8766b9ddb63511)\n"
    },
    {
      "commit": "4b219e9e5ab237eec9931497cf10db4d78982d84",
      "tree": "062e4c9ffb383786c57f29fba05fea148cd0cf9b",
      "parents": [
        "f3eb82683a80341f5ac23057aab733a57963cab2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Sep 14 11:55:43 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Sep 14 18:59:06 2015 +0000"
      },
      "message": "Fix for security vulnerability in media server DO NOT MERGE\n\nbug: 23540426\nChange-Id: I7ca419e4008967a0387649e5293ac9d4be71d3c4\n"
    },
    {
      "commit": "1c7719820359f4190cd4bfd1a24d521face7b4f8",
      "tree": "bdaea984bbd7c3def97f7bfc6719562a3ca94f9e",
      "parents": [
        "f3eb82683a80341f5ac23057aab733a57963cab2"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Wed Sep 09 09:48:34 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Sep 10 10:06:19 2015 -0700"
      },
      "message": "DO NOT MERGE - IAudioFlinger: clear config before reading it from parcel.\n\nBug: 23905951\nBug: 23912202\nChange-Id: Id13a9d3cae2c09e7381b841e67ddfb188274d74c\n(cherry picked from commit e995e477ad59b79145200c8f1e9e13c16c682d59)\n"
    },
    {
      "commit": "2b63b91b84c75afdef4213aa11b0dcc8e7d735a3",
      "tree": "472d338d65970f75ed5df6cddc4664e9e2a42d34",
      "parents": [
        "52a4fc09b483a20ee7d5970be01598ee262f7088",
        "c1e989e76a461ea69e293839b3c29b634a462bd5"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Sep 03 18:05:44 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 03 18:05:44 2015 +0000"
      },
      "message": "am c1e989e7: am 13ff64c2: Merge \"Zero out return values in media binder calls\" into klp-dev\n\n* commit \u0027c1e989e76a461ea69e293839b3c29b634a462bd5\u0027:\n  Zero out return values in media binder calls\n"
    },
    {
      "commit": "52a4fc09b483a20ee7d5970be01598ee262f7088",
      "tree": "6df9c8ad33bffec0266be615e0162b15fcbe5e49",
      "parents": [
        "7d34959b10e0e8a9ac4cdd5e10a6d016513aa03f",
        "3732a3acafa7eb621bc26cca3eb00150ea12d2e2"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 03 18:05:43 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 03 18:05:43 2015 +0000"
      },
      "message": "am 3732a3ac: am ab203130: Merge \"Make IEffect command more robust (second try)\" into klp-dev\n\n* commit \u00273732a3acafa7eb621bc26cca3eb00150ea12d2e2\u0027:\n  Make IEffect command more robust (second try)\n"
    },
    {
      "commit": "c1e989e76a461ea69e293839b3c29b634a462bd5",
      "tree": "f2285a73a3ae481533a578215ae6c6cef2c63fe1",
      "parents": [
        "3732a3acafa7eb621bc26cca3eb00150ea12d2e2",
        "13ff64c2db84f4e7cac3396700e333b48c42c7ee"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Sep 03 17:52:44 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 03 17:52:44 2015 +0000"
      },
      "message": "am 13ff64c2: Merge \"Zero out return values in media binder calls\" into klp-dev\n\n* commit \u002713ff64c2db84f4e7cac3396700e333b48c42c7ee\u0027:\n  Zero out return values in media binder calls\n"
    },
    {
      "commit": "3732a3acafa7eb621bc26cca3eb00150ea12d2e2",
      "tree": "867b54747e20ee05ebb5b59d655e952ac2b47247",
      "parents": [
        "16e12007ab1581e1b6aa973f3c83b2a45a816881",
        "ab20313074bb109f29f677c3f09d5da1a48c94e7"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Sep 03 17:52:43 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Sep 03 17:52:43 2015 +0000"
      },
      "message": "am ab203130: Merge \"Make IEffect command more robust (second try)\" into klp-dev\n\n* commit \u0027ab20313074bb109f29f677c3f09d5da1a48c94e7\u0027:\n  Make IEffect command more robust (second try)\n"
    },
    {
      "commit": "13ff64c2db84f4e7cac3396700e333b48c42c7ee",
      "tree": "626467528e2ff75d1d312d6879988b5ec25eaab9",
      "parents": [
        "ab20313074bb109f29f677c3f09d5da1a48c94e7",
        "892354335d49f0b9fcd10e20e0c13e3cd0f1f1cb"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Sep 03 17:21:20 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 03 17:21:20 2015 +0000"
      },
      "message": "Merge \"Zero out return values in media binder calls\" into klp-dev"
    },
    {
      "commit": "892354335d49f0b9fcd10e20e0c13e3cd0f1f1cb",
      "tree": "fc309fc843d7c9a627b59f0771c02edf4d1375ba",
      "parents": [
        "f394f12167fddbc755855d06b615509517c99f14"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 02 16:46:59 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Sep 02 17:48:22 2015 -0700"
      },
      "message": "Zero out return values in media binder calls\n\nMore specifically when handling:\n* GET_STREAM_VOLUME in IAudioPolicyService, and\n* GET_CURRENT_POSITION and GET_DURATION in IMediaPlayer\n\nThis prevents leaking uninitialized values across binder in error cases.\n\nBug: 23756261\nChange-Id: I0ffd900ab12b685b0611259ade4a3efb1ec5defe\n"
    },
    {
      "commit": "25a634427dec455b79d73562131985ae85b98c43",
      "tree": "7eb4fe76d2239352ae39bf4ce75d7dc4f5e0d4bc",
      "parents": [
        "f394f12167fddbc755855d06b615509517c99f14"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Sep 01 20:07:56 2015 +0000"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Sep 02 17:52:12 2015 +0000"
      },
      "message": "Make IEffect command more robust (second try)\n\nBug: 23540907\nChange-Id: If30cfa535ad51521053706fc40fc98d893db5bc7\n(cherry picked from commit 10e6660cc5da65b027c90489ba7ac55d1504e012)\n"
    },
    {
      "commit": "184ad88ddd6bbdf01e131e8e5b75bef5be67b29b",
      "tree": "ddd3c0f0a9d0a5f6423405be8c7381c32ba1d528",
      "parents": [
        "b04cfdf51746dea51d2bb2f56fe9ef789fd30bd9",
        "fba72ab0fcf7298492dcd9e3045913435d30d3a9"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 28 21:16:40 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 28 21:16:40 2015 +0000"
      },
      "message": "am fba72ab0: am f394f121: Merge \"libmedia: clear reply data for IEffect command\" into klp-dev\n\n* commit \u0027fba72ab0fcf7298492dcd9e3045913435d30d3a9\u0027:\n  libmedia: clear reply data for IEffect command\n"
    },
    {
      "commit": "fba72ab0fcf7298492dcd9e3045913435d30d3a9",
      "tree": "2401cc720a2689ec6325fd8e34b5960c1e7b785b",
      "parents": [
        "d437c77716fcf454d99b8424bb01f37643b970cc",
        "f394f12167fddbc755855d06b615509517c99f14"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 28 21:08:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 28 21:08:45 2015 +0000"
      },
      "message": "am f394f121: Merge \"libmedia: clear reply data for IEffect command\" into klp-dev\n\n* commit \u0027f394f12167fddbc755855d06b615509517c99f14\u0027:\n  libmedia: clear reply data for IEffect command\n"
    },
    {
      "commit": "f394f12167fddbc755855d06b615509517c99f14",
      "tree": "ba4c05bbdf64aa56ac6fc0c6bf789d23065b8b85",
      "parents": [
        "0981df6e3db106bfb7a56a2b668c012fcc34dd2c",
        "57bed83a539535bb64a33722fb67231119cb0618"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Aug 28 20:49:57 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Aug 28 20:49:57 2015 +0000"
      },
      "message": "Merge \"libmedia: clear reply data for IEffect command\" into klp-dev"
    },
    {
      "commit": "b04cfdf51746dea51d2bb2f56fe9ef789fd30bd9",
      "tree": "a0fd09bfc71ce313ff07a611621968cd0000c477",
      "parents": [
        "35a7b54e828336121d26060dd7e7adb5f5027d32",
        "d437c77716fcf454d99b8424bb01f37643b970cc"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Aug 27 21:51:52 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 27 21:51:52 2015 +0000"
      },
      "message": "am d437c777: am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0\n\n* commit \u0027d437c77716fcf454d99b8424bb01f37643b970cc\u0027:\n  IMediaPlayer.cpp: make sure structures are initialized to 0\n"
    },
    {
      "commit": "d437c77716fcf454d99b8424bb01f37643b970cc",
      "tree": "48e065894ed784e875e4005a6abfe75d71d99ac7",
      "parents": [
        "f9a51893d739000cd70caf10c83d0e603371f5b1",
        "0981df6e3db106bfb7a56a2b668c012fcc34dd2c"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Aug 27 21:45:45 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Aug 27 21:45:45 2015 +0000"
      },
      "message": "am 0981df6e: IMediaPlayer.cpp: make sure structures are initialized to 0\n\n* commit \u00270981df6e3db106bfb7a56a2b668c012fcc34dd2c\u0027:\n  IMediaPlayer.cpp: make sure structures are initialized to 0\n"
    },
    {
      "commit": "0981df6e3db106bfb7a56a2b668c012fcc34dd2c",
      "tree": "dc6913625ac7d7897ae45adecc82cd9e454ebb6b",
      "parents": [
        "9a2be5d49d57b239bf6345f033eab01ba98f3889"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Aug 20 09:56:39 2015 -0700"
      },
      "committer": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Thu Aug 27 21:10:32 2015 +0000"
      },
      "message": "IMediaPlayer.cpp: make sure structures are initialized to 0\n\nCredit https://code.google.com/p/android/issues/detail?id\u003d183310\n\nBug: 23515142\nChange-Id: Idbd66fb148bd0ac1dd78f8651d0164f2a41e2427\n(cherry picked from commit b73b826cc16291b33649402497efbe0f946413bd)\n"
    },
    {
      "commit": "57bed83a539535bb64a33722fb67231119cb0618",
      "tree": "d27a064540c9761fd8c2c5f804232596f07e8bae",
      "parents": [
        "9a2be5d49d57b239bf6345f033eab01ba98f3889"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Aug 26 16:34:33 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 27 00:06:18 2015 +0000"
      },
      "message": "libmedia: clear reply data for IEffect command\n\nBug: 23540907\nChange-Id: Ib89afc6b273b0eb310bbc5a1bd92b1e3d407c249\n"
    },
    {
      "commit": "ca095ac251ad02ad745d763f37ec3fcc5a8aa2ea",
      "tree": "f5e0756fd218a0e06e61ce391d2b61e6c88c555d",
      "parents": [
        "fd1d6df52f4c33f59d44abdbcdd0ec5b9a20f059",
        "8de6d690ae5843bd8e005deedea571596f79bbd3"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 21 18:51:27 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 21 18:51:27 2015 +0000"
      },
      "message": "am 8de6d690: Fix build break DO NOT MERGE\n\n* commit \u00278de6d690ae5843bd8e005deedea571596f79bbd3\u0027:\n  Fix build break DO NOT MERGE\n"
    },
    {
      "commit": "8de6d690ae5843bd8e005deedea571596f79bbd3",
      "tree": "de83a9d8986206f202dd2c34bd62116be39474d6",
      "parents": [
        "c2153d0dc800d0718788dccd0f2a2d29f4647c03"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 21 09:58:12 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 21 18:32:29 2015 +0000"
      },
      "message": "Fix build break DO NOT MERGE\n\nrelated-to-bug: 23223325\n\nChange-Id: I7b09712b5f18912abddd50b75f6edaf860e894c1\n"
    },
    {
      "commit": "fd1d6df52f4c33f59d44abdbcdd0ec5b9a20f059",
      "tree": "457d61467a5f2f5797b695565dfd3e46310f8534",
      "parents": [
        "f839b2a33c46f3520684f0a839760cca36a6b4c7",
        "c2153d0dc800d0718788dccd0f2a2d29f4647c03"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 21 15:36:21 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Aug 21 15:36:21 2015 +0000"
      },
      "message": "am c2153d0d: DO NOT MERGE Part of fix for libmedia OOB write anywhere\n\n* commit \u0027c2153d0dc800d0718788dccd0f2a2d29f4647c03\u0027:\n  DO NOT MERGE Part of fix for libmedia OOB write anywhere\n"
    },
    {
      "commit": "c2153d0dc800d0718788dccd0f2a2d29f4647c03",
      "tree": "24cd6439538e4bf3fd0007757d86dbcb63a465a9",
      "parents": [
        "5aa887ef44238e9a727564fe9051933f8b42e399"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Aug 17 17:57:47 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 20 14:55:35 2015 -0700"
      },
      "message": "DO NOT MERGE Part of fix for libmedia OOB write anywhere\n\nClarify that decrypt destination is not a pointer for\nsecure case.\n\nb/23223325\n\nChange-Id: I642dcf790a9eb9e32175f3e0d8f040c82228e3ac\n(cherry picked from commit ed555d70d80964f40563d89a4e6d6a80f83f4b89)\n"
    },
    {
      "commit": "aa4da6fa7ca2454f0713de0a5a583b5b8160166b",
      "tree": "849d18a0d5ad54470904bfbfe7e24004ede61cb3",
      "parents": [
        "d4f0d88e701f5323621bd352cf4cbcd14bc349c4"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Aug 17 17:57:47 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Aug 20 20:16:22 2015 +0000"
      },
      "message": "DO NOT MERGE Part of fix for libmedia OOB write anywhere\n\nClarify that decrypt destination is not a pointer for\nsecure case.\n\nb/23223325\n\nChange-Id: I642dcf790a9eb9e32175f3e0d8f040c82228e3ac\n(cherry picked from commit ed555d70d80964f40563d89a4e6d6a80f83f4b89)\n"
    },
    {
      "commit": "e4ac35fa524b011f272d396b2c12515382bddb94",
      "tree": "4ebbce6415c6ad94a2fe021b652e4ae3dced8e0d",
      "parents": [
        "39ab7cea0e3c14181e3e68b0f1bb5fa20a434b35"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Apr 02 13:49:15 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Aug 13 22:10:46 2015 +0000"
      },
      "message": "DO NOT MERGE - IAudioFlinger: add checks on binder calls\n\nLimit number of ports and patches listed by\nLIST_AUDIO_PATCHES and LIST_AUDIO_PORTS.\n\nAlso fix typo causing wrong pointer to be used when writing to Parcel.\n\nBug: 19573085.\nChange-Id: I41a9c710e45738a4f11990160587856c429a4646\n(cherry picked from commit f75c2fef14354024ec27bff1444f9e50b5ef55a9)\n"
    },
    {
      "commit": "96a41a2ba5985aeb9163923f54d84cdaa3d0363d",
      "tree": "f0ef2332a613beac9eb6d78ea168ffea6487ff6a",
      "parents": [
        "a3e8f60f5e409f65f12636df5fad7f20ff736df5",
        "dbe6c320b414d8139c46aaf880d5f154ef4f9af8"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu May 14 23:17:08 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu May 14 23:17:08 2015 +0000"
      },
      "message": "am dbe6c320: HDCP: buffer over flow check -- DO NOT MERGE\n\n* commit \u0027dbe6c320b414d8139c46aaf880d5f154ef4f9af8\u0027:\n  HDCP: buffer over flow check -- DO NOT MERGE\n"
    },
    {
      "commit": "fd3a6e7126023e01da119a2587cdf8505c4d1809",
      "tree": "8c5f2221ab3b593c7a65d50d083040f6571f8d34",
      "parents": [
        "438217a0a5b3d2bfc6e7cd10c395c7b642013758"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 27 18:38:17 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu May 14 21:57:55 2015 +0000"
      },
      "message": "HDCP: buffer over flow check -- DO NOT MERGE\n\nbug: 20222489\nChange-Id: I3a64a5999d68ea243d187f12ec7717b7f26d93a3\n(cherry picked from commit 532cd7b86a5fdc7b9a30a45d8ae2d16ef7660a72)\n"
    },
    {
      "commit": "dbe6c320b414d8139c46aaf880d5f154ef4f9af8",
      "tree": "9da4023f106ea43c20ec91d39406c799420f35db",
      "parents": [
        "7acac10aae34da5ae4d628c5a270e7e3e94f7598"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 27 18:38:17 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu May 14 21:54:54 2015 +0000"
      },
      "message": "HDCP: buffer over flow check -- DO NOT MERGE\n\nbug: 20222489\nChange-Id: I3a64a5999d68ea243d187f12ec7717b7f26d93a3\n(cherry picked from commit 532cd7b86a5fdc7b9a30a45d8ae2d16ef7660a72)\n"
    },
    {
      "commit": "59cea2616269f34b1f3d046995efd8da42cd5549",
      "tree": "c2f165a35105142d715f36876ededb0311360938",
      "parents": [
        "eb204f82afd5519eb544bf8bee692e7152820c3b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 20 11:08:59 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Apr 22 10:14:35 2015 -0700"
      },
      "message": "Add some sanity checks\n\nBug: 19400722\nChange-Id: Ib3afdf73fd4647eeea5721c61c8b72dbba0647f6\n"
    },
    {
      "commit": "2fdd16b3cbe1c1e53d1c4b305f4c0174b995ad1a",
      "tree": "24e2230b0bd1fb18c7b37effe1af168757326959",
      "parents": [
        "8e2b445fabd05132de57226de71c7860a5391954"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Feb 06 10:44:24 2015 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Mar 25 18:55:09 2015 +0000"
      },
      "message": "DO NOT MERGE - audio policy service: fix possible memory overflow\n\nAdd limit on number of audio ports and patches requested by\nlistaudioPorts() and listAudioPatches().\n\nBug: 19261727.\nChange-Id: I21dfdf11cf805734cc3b7b2a85762c5598f60580\n(cherry picked from commit 1d670b11313250442455a22f1056ad649d607fb2)\n"
    },
    {
      "commit": "6d60079e97c5fd6ba7de7b60adb0a027c0608d19",
      "tree": "9ebbce57d5015eb8ac2356af7ed14b84136b9916",
      "parents": [
        "995599cbd6ada739c257716a6d8b90eee6d61473",
        "99370d2da54d7537ffda7fef1f6ef36f8b690321"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 23:31:32 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:31:32 2014 +0000"
      },
      "message": "am 99370d2d: am ae6965ae: am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\n* commit \u002799370d2da54d7537ffda7fef1f6ef36f8b690321\u0027:\n  IAudioPolicyService: bound array size in queryDefaultPreProcessing\n"
    },
    {
      "commit": "99370d2da54d7537ffda7fef1f6ef36f8b690321",
      "tree": "1ba4953c98fd3eeaa6f9a3fc2ab3e88003da23e4",
      "parents": [
        "ca83dd27f6c662bcbb0cea204c4df7ca77a479fd",
        "ae6965ae7664aaea489a8d58358035610075c9af"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 23:28:27 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:28:27 2014 +0000"
      },
      "message": "am ae6965ae: am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\n* commit \u0027ae6965ae7664aaea489a8d58358035610075c9af\u0027:\n  IAudioPolicyService: bound array size in queryDefaultPreProcessing\n"
    },
    {
      "commit": "ae6965ae7664aaea489a8d58358035610075c9af",
      "tree": "fd4406ad0fbd33d98a2cca8407aad354f9baa58b",
      "parents": [
        "42f785c5d5ae596d781171327c98c541f0517feb",
        "3aef35600523eb6b4ccc8086a8913e80701a031a"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 23:20:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:20:25 2014 +0000"
      },
      "message": "am 3aef3560: am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\n* commit \u00273aef35600523eb6b4ccc8086a8913e80701a031a\u0027:\n  IAudioPolicyService: bound array size in queryDefaultPreProcessing\n"
    },
    {
      "commit": "3aef35600523eb6b4ccc8086a8913e80701a031a",
      "tree": "04abfec97e7e0d0b54b1037b06529d2ca26ebbdd",
      "parents": [
        "4fbe49a83d41a64d44e363ccd691e7bfc41bb6af",
        "e360f0f6cad290f69e07fd3a20dcf11a1dbc4160"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 23:16:22 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Nov 10 23:16:22 2014 +0000"
      },
      "message": "am e360f0f6: IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\n* commit \u0027e360f0f6cad290f69e07fd3a20dcf11a1dbc4160\u0027:\n  IAudioPolicyService: bound array size in queryDefaultPreProcessing\n"
    },
    {
      "commit": "e360f0f6cad290f69e07fd3a20dcf11a1dbc4160",
      "tree": "6e19a985df2a12cf74d713b689556cfc735f0088",
      "parents": [
        "96016c2d583ccca9fffd6974cb9473f7effd6cf5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Nov 05 12:15:36 2014 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Nov 10 19:43:46 2014 +0000"
      },
      "message": "IAudioPolicyService: bound array size in queryDefaultPreProcessing\n\nBug: 18226810.\nChange-Id: Ib8e2bfe835a8681aac50bf23161db14e50c9a124\n(cherry picked from commit 74adca9ad30b7f8a70d40c5237bade0d16c4ea58)\n"
    },
    {
      "commit": "c2813e568aa476e03d159529c0af28c99536db8d",
      "tree": "95bf50e96fd0bd69d892b5bf629220b9fc874f94",
      "parents": [
        "9d2189ffcf1142b2948ce3065c32521ed7d966c4"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Oct 16 17:54:34 2014 -0700"
      },
      "committer": {
        "name": "Rachad Alao",
        "email": "rachad@google.com",
        "time": "Fri Oct 17 20:32:54 2014 +0000"
      },
      "message": "Fix AudioTrack retrograde getPosition when restoring tracks\n\nmReleased represents the number of frames written to the\ntrack, but was cleared on start() causing a mismatch if the\nclient wrote to the track before starting.  Moved the clearing\nto entering the STATE_STOPPED or STATE_FLUSHED state.\n\nBug: 18017947\nBug: 18022276\nChange-Id: I3788c98c4c3c4d9cc004378432797b3f3138e22e\n"
    },
    {
      "commit": "b6dcdbf436ffacb52a41ac8ef9b07f99fd64779f",
      "tree": "56c8eebf0dda1560737408bf8c8e20019d17193b",
      "parents": [
        "620208dc0bbd7a0792702df3ab08800fdad60cec"
      ],
      "author": {
        "name": "Chris Elliott",
        "email": "chriselliott@google.com",
        "time": "Thu Oct 16 02:17:27 2014 +0000"
      },
      "committer": {
        "name": "Chris Elliott",
        "email": "chriselliott@google.com",
        "time": "Thu Oct 16 02:18:57 2014 +0000"
      },
      "message": "Revert \"audio: prevent larger than required sleeps - DO NOT MERGE\"\n\nRevert change if we require a build beyond P\n\nThis reverts commit 620208dc0bbd7a0792702df3ab08800fdad60cec.\n\nChange-Id: I07f65e35dbd9f814725f50f7bb346f7b285f41aa"
    },
    {
      "commit": "620208dc0bbd7a0792702df3ab08800fdad60cec",
      "tree": "c079d953bc10a492f8145a3984a929bb9b936254",
      "parents": [
        "2feb18ddfdbd20941ebcc3314780a582da5608e4"
      ],
      "author": {
        "name": "Chris Elliott",
        "email": "chriselliott@google.com",
        "time": "Wed Oct 15 20:46:15 2014 +0000"
      },
      "committer": {
        "name": "Chris Elliott",
        "email": "chriselliott@google.com",
        "time": "Wed Oct 15 20:49:02 2014 +0000"
      },
      "message": "audio: prevent larger than required sleeps - DO NOT MERGE\n\nThis will be cherry picked into P build after O completes for other devices.\n\nThis reverts the revert from commit 2feb18ddfdbd20941ebcc3314780a582da5608e4.\n\nb/17962037\n\nFrom: Haynes Mathew George \u003chgeorge@codeaurora.org\u003e\nDate: Wed, 26 Mar 2014 16:18:42 -0700\nSubject: [PATCH] AudioTrack: prevent larger than required sleeps\n\nAudioTrackThread can end up waiting for larger than necessary\ntime for free space to be available in the cblk. Fix this by\nwaiting on the cblk futex instead of the (internal) condition variable.\n\nChange-Id: Iba5b266f9b4082b3833f4abd52ebc6601c8e3034"
    },
    {
      "commit": "2feb18ddfdbd20941ebcc3314780a582da5608e4",
      "tree": "56c8eebf0dda1560737408bf8c8e20019d17193b",
      "parents": [
        "8c0417c173d1fd618ae54e2d721b0ec360ea70cc"
      ],
      "author": {
        "name": "Chris Elliott",
        "email": "chriselliott@google.com",
        "time": "Wed Oct 15 00:49:17 2014 +0000"
      },
      "committer": {
        "name": "Chris Elliott",
        "email": "chriselliott@google.com",
        "time": "Wed Oct 15 00:49:17 2014 +0000"
      },
      "message": "Revert \"audio: prevent larger than required sleeps - DO NOT MERGE\"\n\nThis reverts commit 8c0417c173d1fd618ae54e2d721b0ec360ea70cc.\n\nReverting as we only wanted to include this CL the KNX01M build\n\nChange-Id: Ib53292de658078285a38710915168e1746486fea\n"
    },
    {
      "commit": "8c0417c173d1fd618ae54e2d721b0ec360ea70cc",
      "tree": "c079d953bc10a492f8145a3984a929bb9b936254",
      "parents": [
        "e6b5d4c2d58a02184dd97815b5f76980025379bc"
      ],
      "author": {
        "name": "Haynes Mathew George",
        "email": "hgeorge@codeaurora.org",
        "time": "Thu Oct 09 20:06:00 2014 +0800"
      },
      "committer": {
        "name": "Chris Elliott",
        "email": "chriselliott@google.com",
        "time": "Tue Oct 14 17:20:37 2014 +0000"
      },
      "message": "audio: prevent larger than required sleeps - DO NOT MERGE\n\nb/17962037\n\nFrom: Haynes Mathew George \u003chgeorge@codeaurora.org\u003e\nDate: Wed, 26 Mar 2014 16:18:42 -0700\nSubject: [PATCH] AudioTrack: prevent larger than required sleeps\n\nAudioTrackThread can end up waiting for larger than necessary\ntime for free space to be available in the cblk. Fix this by\nwaiting on the cblk futex instead of the (internal) condition variable.\n\nChange-Id: I75bd14cd46f3b75afe0ea8bd9b48d7a2f95f654a"
    },
    {
      "commit": "7985dcb06e0c29d5cc12d0c0e17e03d5d863cf53",
      "tree": "e99ab2f03b3fb49d533b8cf5e8659b39f5e5d8c8",
      "parents": [
        "f0011d49c0f08753dc2dc254c5a70885a9986602"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 15:45:14 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Oct 07 15:45:14 2014 -0700"
      },
      "message": "AudioTrack: fix AudioTrackThread crash upon exit\n\nIn case of error during createTrack_l(), there is a possibility\nthat a newly created AudioTrackThread is resumed by requestExit()\njust after entering the Thread class _threadLoop() but before\nentering the class threadLoop(). In this case, processAudioBuffer()\nis executed once with mCblk \u003d\u003d 0 and we assert.\n\nBug: 17894033.\nChange-Id: I93d0d0d4dbf14bcb88dad23e6ad49d2ecd47badd\n"
    },
    {
      "commit": "bb6c9a05840d924b502ce0f1868fca4881ada1ed",
      "tree": "aec6d28b7ab31fec27416c6e853c94c2eedfcd9b",
      "parents": [
        "a935c76f96b066941b34f81c42b3fe9d00db98c5"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 14:11:47 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Sep 25 16:44:07 2014 -0700"
      },
      "message": "audio: fix stream type for accessibility usage\n\nMake sure that accessibility prompts are heard when\na ringtone is active by forcing stream type\nto AUDIO_STREAM_RING when phone state is AUDIO_MODE_RINGTONE.\n\nBug: 17558149.\nChange-Id: Ia3bead8052fca5cbf282c267f7b9b06014fef628\n"
    },
    {
      "commit": "dfc34daba6d6cb923683d96689a0cb7c7006eee5",
      "tree": "f215c906f1322d1ff3e893e89e11f8aaec4eb2b9",
      "parents": [
        "b0ed4e3e482cbdc2fa6c7853526597f4ae3f0972"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 19 09:05:05 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Sep 19 09:06:01 2014 -0700"
      },
      "message": "Reduce log spam from getTimestamp errors\n\nBug: 17576481\nChange-Id: I07d99e7c42b7d4f0994b5a6d9c9fe8eb29fbbe40\n"
    },
    {
      "commit": "6aadfce1d8c972faad7f4437dcd88d8cd3557611",
      "tree": "59e128037e1ba35eab1be1595d72621ce322476e",
      "parents": [
        "2973994af39d55b58728df3dca067594e826ea2a",
        "a0fd9ca66a68baefd9d76800fd66823fd654ef45"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 22:14:00 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Sep 18 22:14:00 2014 +0000"
      },
      "message": "Merge \"AudioEffect acquires session\" into lmp-dev"
    },
    {
      "commit": "a0fd9ca66a68baefd9d76800fd66823fd654ef45",
      "tree": "c3102c24d002966b7c0038e885296d77136a47c3",
      "parents": [
        "2720c8c45a0040d7007239c100591b9f092b780f"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 14:07:18 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Thu Sep 18 14:07:18 2014 -0700"
      },
      "message": "AudioEffect acquires session\n\nCurrently, users of audio sessions, AudioTrack and AudioRecord,\n are acquiring and releasing audio sessions according to their\n life-cycle. AudioEffect instances were not counting as users\n of an audio session. This caused an effect used on a session\n to be purged by AudioFlinger::purgeStaleEffects_l() whenever\n the last user of that session went away.\nThis CL makes AudioEffect acquire and release a session when\n created and destroyed.\n\nBug 15432115\n\nChange-Id: I922532150009988d43872f9b5928044a830ae0b3\n"
    },
    {
      "commit": "7f1bc8af1c46695191bf7e2aba6467f3616629c0",
      "tree": "905b0091037bea59f81df3cc6e49c2cfd1d7d24d",
      "parents": [
        "90869c2bef1bc47394a9f603ccebb62b2592fd2b"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Sep 12 14:43:11 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Sep 17 23:07:05 2014 +0000"
      },
      "message": "Fix AudioTrack offloaded timestamp handling.\n\ngetTimestamp for offloaded tracks now returns WOULD_BLOCK for\nsituations where the timestamp is unavailable due to the\nprevious track still flushing or the timestamp is stale.\nIt is fixed for normal playback conditions.\n\nBug: 14659809\nBug: 17428188\nChange-Id: Ic9ec07ccabc604236979769db5c4ea2dec252660"
    },
    {
      "commit": "200092b7f21d2b98f30b800e79d152636f9ba225",
      "tree": "35ced5107a366d0885a6a54e5473891e5ce01317",
      "parents": [
        "4953f92be5c45d7b79448e8964ecbdc39eacb782"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Aug 15 15:13:30 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Sep 11 09:54:52 2014 -0700"
      },
      "message": "Clean up AudioTrack position and timestamp handling\n\nReplace epoch concept by observing and accumulating server delta\npositions.  The advantage of using server deltas instead of absolute\nvalues is that they (1) are not sensitive to 32-bit wraparound,\n(2) are not sensitive to server behavior for stop(), and\n(3) prepare for future 64-bit client positions without requiring 64-bit\npositions on server.\n\nAdd comments to AudioTrack::getTimestamp() and friends\nthat the timestamp output parameter is undefined on error.\n\nDon\u0027t allow getTimestamp to return a negative frame position after stop().\n\nAccumulate the client released frames, which may be useful for a future API.\n\nBug: 11815245\nChange-Id: I652940fa2db2f34a78c012a3ead0d9204fa29c6e\n"
    },
    {
      "commit": "9520aa609c505cf8a9ee105bd78dc186cfb7770b",
      "tree": "d6027b7564032ed9f307fc758b4ca49bc997674e",
      "parents": [
        "8270e1d13a101fa946848871b9903b31ff11981f"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 09 16:18:31 2014 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Tue Sep 09 16:18:31 2014 -0700"
      },
      "message": "CamcorderProfile: Add QUALITY_HIGH_SPEED_2160P\n\nBug: 17059255\nChange-Id: Ic6b272e4ceec8fc852c9eb787370f4d366dad0ac\n"
    },
    {
      "commit": "b445375f50a1a619b2d7518d32387d5ea77ceb70",
      "tree": "011f7b4e9ce5ee17d4265ed0fceebc484db3cee9",
      "parents": [
        "2e97b01cecec65e690ac7da5df9433c52ff75bd8"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 08 11:47:24 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Sep 08 13:37:06 2014 -0700"
      },
      "message": "Fix potential deadlock between AudioPolicyService and AudioSystem\n\nBug: 17109761\nChange-Id: I315c1c5066f62b05e1c13b04fae1272b5fbce977\n"
    },
    {
      "commit": "640adb3cf89cc9b826372009fad8c9b3d120482e",
      "tree": "e51644f1d307b920cf35e364c7d7562a604ef9a5",
      "parents": [
        "f2a2d0d6731174f5ce2a7b9d6dfd96dd7f1727a4"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 05 11:20:11 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Sep 05 11:58:39 2014 -0700"
      },
      "message": "Cache audio attributes when player not available\n\nCache the audio attributes stored in a Parcel in the client-side\n MediaPlayer object if they are set through setParameter()\n before the server-side MediaPlayer is available. Apply them when\n the player is prepared.\n\nBug 17280746\n\nChange-Id: I72f1a7fc4e2b076fae8cbdede77a2f74e98b2a03\n"
    },
    {
      "commit": "d71233a846aca7035a851941c1530d04c6a65086",
      "tree": "a1f528af0c52fd0d78a1843743f2930a2684f2b2",
      "parents": [
        "acdae5d7865b604acaadd3be1c45c84ca4bf3952",
        "34581f44cde67960fbac3ba1f191a2c063ea5145"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Wed Sep 03 19:09:43 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Sep 03 19:09:43 2014 +0000"
      },
      "message": "Merge \"Use CharacterEncodingDetector in metadataretriever\" into lmp-dev"
    },
    {
      "commit": "34581f44cde67960fbac3ba1f191a2c063ea5145",
      "tree": "9c89d859f2c9cd1c622355a767e3a7c57c658e8a",
      "parents": [
        "9dd4a2ddd7caf8cbe50d8a76e0ec3e0274d2bce6"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Aug 29 16:00:28 2014 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Tue Sep 02 11:54:44 2014 -0700"
      },
      "message": "Use CharacterEncodingDetector in metadataretriever\n\ninstead of media scanner. This way the java MediaMetadataRetriever API\nwill give the same result as the media scanner.\nAlso apply some tweaks to the encoding detector to improve handling of\nISO-8859-1 tags.\n\nBug: 16302581, 17205395\n\nChange-Id: I1682a7a6a8bf04cffaa455044ba72dd7fd152d49\n"
    },
    {
      "commit": "a90cff5f7091bfb50c57e2d87bad3fc3f103f397",
      "tree": "4d1cfcfcd0ec7025b918cfefa91bd977341c3c98",
      "parents": [
        "d42173a44721af1a600b9c8599bc736394fcc724"
      ],
      "author": {
        "name": "Hochi Huang",
        "email": "hochi.huang@mediatek.com",
        "time": "Sat Aug 23 09:19:27 2014 +0800"
      },
      "committer": {
        "name": "Bart Sears",
        "email": "bsears@google.com",
        "time": "Fri Aug 29 02:05:33 2014 +0000"
      },
      "message": "[AU]Sync libmedia/Android.mk modification from KLP-Sprout\n\nBug: 17322146\n\nChange-Id: If29fbd87252710bd794f2e0bb270bc846380ef1d\nSigned-off-by: Hochi Huang \u003chochi.huang@mediatek.com\u003e"
    },
    {
      "commit": "732c6d955524ead6c31e6e1bafbd41ea4cee525d",
      "tree": "512bb207b9013da6f9c728f77a3070a7a5b99638",
      "parents": [
        "261562316c1b652ea697c99c0f24a54112bd0385"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 14 19:54:08 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 14 19:56:58 2014 -0700"
      },
      "message": "stagefright/media: add support for codec features with text value\n\nBug: 11990470\nChange-Id: I7600d999c5f4b6821d825d25fa7e8a2bb5a80c46\n"
    },
    {
      "commit": "d018b8ffd84452a7a4b992b5325713b3256e48ff",
      "tree": "a338c848af9b637f9879a7f0293d0fafbfef4489",
      "parents": [
        "2461e0cf6ae3fe5c9b52ce9e3ac764f4aff5e5eb",
        "6ff58f04f78886b07c72c0118eb71a78d08f5651"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 17:05:56 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Aug 12 16:54:46 2014 +0000"
      },
      "message": "Merge \"MediaCodecList: handle errors gracefully\" into lmp-dev"
    },
    {
      "commit": "2461e0cf6ae3fe5c9b52ce9e3ac764f4aff5e5eb",
      "tree": "449c2a4029cc6e8048b9d9d373078e5830bd9404",
      "parents": [
        "e7a1737c92cf2e84754ffbc52cfec8edeffcbc75"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 08:55:25 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 16:30:40 2014 +0000"
      },
      "message": "MediaCodecList: don\u0027t return references\n\nBug: 16905025\nChange-Id: I5b42b294f0cc785b8e4dda0e82c8f8377a46f487"
    },
    {
      "commit": "6ff58f04f78886b07c72c0118eb71a78d08f5651",
      "tree": "99652bd3f5349e5cd8c55c261e7e06b65fc06ea1",
      "parents": [
        "e7a1737c92cf2e84754ffbc52cfec8edeffcbc75"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Mon Aug 11 16:46:15 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Aug 12 09:29:29 2014 -0700"
      },
      "message": "MediaCodecList: handle errors gracefully\n\nHandle missing OMX codecs, and codecs that do not load.\nFix NULL dereference when initializing codec with no type.\n\nBug: 16907578\nBug: 16905025\nChange-Id: I5d103db36ebb029d1aab03222bf6e9324beb1566\n"
    },
    {
      "commit": "306c92dabc524f408445f7da2524c7a5e77ade63",
      "tree": "3e7b9269223865424df13a4efc513ecfe57af69c",
      "parents": [
        "de975ca87c3dbdf9b7d92dae54b3446670b2a50e",
        "cd04484f4837b8ca0041d118286ab6a98e84fc75"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 11 20:26:28 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Aug 11 18:20:32 2014 +0000"
      },
      "message": "Merge \"Extend downsampling ratios greater than 2:1\" into lmp-dev"
    },
    {
      "commit": "cd04484f4837b8ca0041d118286ab6a98e84fc75",
      "tree": "4b9e501bb71969c0ca5049201aeae42284ac9b80",
      "parents": [
        "53a1e46e559b00653eadf6f4bb5572679b0ee734"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Aug 07 11:04:34 2014 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Mon Aug 11 10:17:18 2014 -0700"
      },
      "message": "Extend downsampling ratios greater than 2:1\n\nAlso improve robustness to choice of sampling rate or buffer size\nsuch that increasing either by 10x does not cause overflow.\n\nBug: 12979141\nBug: 15933066\nChange-Id: If7989bd745d1bee3bdf811b8b7c978543ccafb65\n"
    },
    {
      "commit": "5a446aafff3020d607ad6fb14cc7ae76dd8f7947",
      "tree": "4b805d80181d7b0c8c61b4907c0f5e15a3bc3230",
      "parents": [
        "48449403a1946653074591829e8c39c8000918d1"
      ],
      "author": {
        "name": "Rachad",
        "email": "rachad@google.com",
        "time": "Tue Jul 29 16:47:56 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Aug 08 18:24:15 2014 -0700"
      },
      "message": "Added Tunneled video playback support to ACodec\n\nBug:16132368\nChange-Id: I88d2d66b8548fc203f4a2c4797196af15e56ff38\n"
    },
    {
      "commit": "1381d4b5c0385aec3741073e5998773b064c1fb0",
      "tree": "6087b737255d34703a90d1952d48bb97646e492a",
      "parents": [
        "60b1c0e79d12a1c70758bc8d060156924635f8ba"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 15:18:35 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 17:40:13 2014 -0700"
      },
      "message": "media/playerservice: add getCodecList() to MediaPlayerService\n\nBug: 11990470\nChange-Id: I8fa45946fd9b76f9b975fc59062819c57e6881ef\n"
    },
    {
      "commit": "60b1c0e79d12a1c70758bc8d060156924635f8ba",
      "tree": "300d26ea36bca500a7105b7a94497dd1c2aa9fda",
      "parents": [
        "8accee4f0e94f19866d260be6eecd6c219eb4982"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Wed Aug 06 16:55:46 2014 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Aug 07 17:40:13 2014 -0700"
      },
      "message": "stagefright: rework media codec list and infos\n\nThis is in preparation of serving the codec list and codec infos\nfrom the mediaserver\n\nBug: 11990470\nChange-Id: Ib8e2708679c9ce461a4ba179974a740cdcdf2731\n"
    },
    {
      "commit": "93c3d41bdb15e39dac0faea9c5b60f1637cd477c",
      "tree": "a0d739ad732f10bc9d4548923c78c590841b14da",
      "parents": [
        "92ce4715315bddd158c7d4028556632f0547e3b9"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Aug 01 14:48:35 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Aug 06 00:38:23 2014 +0000"
      },
      "message": "AudioSystem: add API to query audio HW sync source\n\nAdd a method to query from the audio HAL the HW sync\nsource used for a given audio session.\nModify audio policy to select a direct output with HW sync\nwhen requested.\n\nBug: 16132368.\n\nChange-Id: I03038f9188f2d389f8a5fd76a671854013a4513e\n"
    },
    {
      "commit": "df3dc7e2fe6c639529b70e3f3a7d2bf0f4c6e871",
      "tree": "e54724362f700e3e72fc72604a3b5f568d8cee7b",
      "parents": [
        "d0fded31e473e909c018f534d3019fb5168bdcd6"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:39:40 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Aug 05 12:10:27 2014 -0700"
      },
      "message": "Add sound trigger control by audio policy\n\nAudio policy:\n- Added active capture indication to sound trigger service:\nrecognition stops if concurrent capture is not supported.\n- Added generation of reserved I/O handle and session ID for\nutterance capture.\n\nSound trigger service\n- Added sound model update callback handling.\n- Added service state callback\n- Simplified callback shared memory allocation.\n\nBug: 12378680.\n\nChange-Id: Ib0292c2733e6df90fdae480633dd9953d0016ef1\n"
    },
    {
      "commit": "68b15554f6dca3b056eac517fe5fa2fd4ee80a33",
      "tree": "d6842666f3d062427b56f27c0b9e6e09976389a5",
      "parents": [
        "fdefe34f40ea6c8964677eaa9107958b0bdf76d0"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 30 10:19:03 2014 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Aug 01 17:16:16 2014 +0000"
      },
      "message": "Allow device to be unprovisioned\n\nbug: 12247651\nChange-Id: I564ac8de3da2430342a028f4058e2c5ac2d85d5e\n"
    },
    {
      "commit": "4dc680607181e6a76f4e91a39366c4f5dfb7b03e",
      "tree": "5212b6ff474b8ef68a68cb1cf144f54e5348de77",
      "parents": [
        "d530d415e60373caf875a37d2d747a51470ee45c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 17:26:49 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 18:10:29 2014 -0700"
      },
      "message": "audio policy: pass session ID to capture activity methods\n\nIndicate the audio session ID when calling getInput(),\nstartInput(), stopInput(), releaseInput().\n\nBug: 12378680.\nChange-Id: I763793752f93e2f4e1445a5ab217c895af011038\n"
    },
    {
      "commit": "de3f8392fbf380ba6f09d009b00d7172477389a2",
      "tree": "77687cb28cf7dfb34ebb6317e246b3cad5672b86",
      "parents": [
        "03524dcc1215b2c468f5c8c8abe6f1c26239fd71"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Sun Jul 27 18:38:22 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 21:43:16 2014 +0000"
      },
      "message": "rename AudioSystem::newAudioSessionId()\n\nRename AudioSystem::newAudioSessionId() to\nAudioSystem::newAudioUniqueId() as it can be used\nalso for I/O handles.\n\nBug: 12378680.\nChange-Id: I611ea3b5eb57a4b0774437f477ee87dc4ccc2cc2\n"
    },
    {
      "commit": "cf2c0210c8afbe7d0661ccbbae3835b5ce73c0bf",
      "tree": "26824707249d553efaabe2003381b4e9159e199d",
      "parents": [
        "97117153a0d681be70bfa9dc9876541375355c47"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 25 16:20:43 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jul 28 12:06:00 2014 -0700"
      },
      "message": "AudioFlinger: update openInput() and openOutput()\n\nAdd parameters to openInput() and openOutput(): device address,\ninput source.\nAllow caller to specify a given I/O handle\nGroup parameters in a struct audio_config.\n\nBug: 12378680.\nChange-Id: I7e9af74c0d996561cc13cbee7d9012d2daf33025\n"
    },
    {
      "commit": "6c28f1fb6d8262a327ffa8be5bb4c84c9ef7ce62",
      "tree": "48375fe535624304c80bb1f08388df1ec2757354",
      "parents": [
        "0f036bec92eca4c972f566355196acc3f4cbf804",
        "e07909715b44cc56df723750af93f0608210f94d"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Sat Jul 26 00:57:14 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jul 24 15:36:21 2014 +0000"
      },
      "message": "Merge \"CamcorderProfiles: add high speed profile constants\" into lmp-dev"
    },
    {
      "commit": "e07909715b44cc56df723750af93f0608210f94d",
      "tree": "ad5d9756f6b0fb560cd0f3adc6a0763c4e450966",
      "parents": [
        "5d76e1a639c1bae9ea7d9af1124abf1c94353344"
      ],
      "author": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Jul 23 15:17:26 2014 -0700"
      },
      "committer": {
        "name": "Zhijun He",
        "email": "zhijunhe@google.com",
        "time": "Wed Jul 23 15:17:26 2014 -0700"
      },
      "message": "CamcorderProfiles: add high speed profile constants\n\nChange-Id: I8f783466f8c2560820db14488acc1a309d27ab0f\n"
    },
    {
      "commit": "db2225b2a24fa4ade5c0353730dc2d6a2f5838d9",
      "tree": "0ae5b9b18005cc429c3465a496739e2807e7197d",
      "parents": [
        "17d0842cf33464a79a81b0e78e49514c3419d1cf",
        "d88adb96ec867ed1b629c434f87514d2fabaf5e9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 23 21:00:38 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Jul 23 18:02:35 2014 +0000"
      },
      "message": "Merge \"NuPlayer: save thread id in MediaPlayer::start\" into lmp-dev"
    },
    {
      "commit": "d88adb96ec867ed1b629c434f87514d2fabaf5e9",
      "tree": "96229ead860a21012650d71df5e4cf120f092da2",
      "parents": [
        "225d5b20409fd400bfa4ed5e9bc1d5babb498471"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 23 11:43:46 2014 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Jul 23 12:00:22 2014 -0700"
      },
      "message": "NuPlayer: save thread id in MediaPlayer::start\n\nso that when MediaPlayer::notify is called from within start,\nit doesn\u0027t try to lock itself again.\n\nBug: 15323063\nChange-Id: Idd77e892cd22538bbfe3e65c64c9dd2a216a0aee\n"
    },
    {
      "commit": "f6f4c0d7c5e2d33b38f080896466e56e2d0a97d4",
      "tree": "91469dbf726e28b68a80af692bd4160381c62e64",
      "parents": [
        "b104d5a4dfbd8415f6bc227106b9f0130350d79a",
        "114819633470ebd5b346c13c2a82a0025d2d39c0"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 23 01:31:34 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Jul 22 16:13:36 2014 +0000"
      },
      "message": "Merge \"StagefrightRecorder: webm (video only) support\" into lmp-dev"
    },
    {
      "commit": "114819633470ebd5b346c13c2a82a0025d2d39c0",
      "tree": "1b18e4333bb8d3bde991fcea29e956be83e94b8b",
      "parents": [
        "d8cf55d878edddfc36bb821a95b88dfb2453c2c3"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Jul 09 20:09:43 2014 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Tue Jul 22 14:20:38 2014 -0700"
      },
      "message": "StagefrightRecorder: webm (video only) support\n\nBug: 16329805\nChange-Id: I8a0ecd100fca397add97a1416125bcc6aeb86364\n"
    },
    {
      "commit": "df813a3ba59109ca519ce0cb00a1a9144074f40e",
      "tree": "e56950313351561dce84d6001ce25ad50cb49dac",
      "parents": [
        "8bce84142802ecdc1794d59488ede629801a5cba"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 20 17:58:33 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Jul 20 17:58:33 2014 -0700"
      },
      "message": "audio_attributes_t for SoundPool\n\nAdd support for the audio_attributes_t structure in the\n SoundPoool constructor.\nRemove SRC quality which was never implemented.\nRemove stream types.\n\nAdd file to contain audio helper functions related to policy.\n\nChange-Id: I1720ff15e7b23ea7b713a4395fdfac26dc3fd4da\n"
    },
    {
      "commit": "7410591dad836434c72ddee66680802708b70c10",
      "tree": "697a233ffced732dbe113c927d9de61f14ea3f2c",
      "parents": [
        "b3b1660ecb67f61f9da54efced8677fa3a6f4863"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 12:28:53 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:18 2014 -0700"
      },
      "message": "Move AudioRecord frame count calculations to server\n\nBuffer frame count and notification frame count\nare now calculated by server instead of by client.\nThe server has more information and can do a better job.\n\nAlso fix a few bugs:\n\n - If a fast track was re-created, even with same pipe depth, it would fail.\n   Now it can correctly re-create a fast track provided the pipe depth is same.\n\n - Notification frame count for fast tracks was calculated by client\n   as 1/2 of the total frame count, which is a large value due to the pipe.\n   Now the notification frame count is set by server to the HAL frame count.\n   This should reduce latency for fast tracks.\n\n - EVENT_OVERRUN were happening frequently when there was sample rate conversion,\n   because the client didn\u0027t know about the sample rate conversion,\n   and under-estimated the necessary buffer size.  Now since server\n   calculates the buffer sizes, EVENT_OVERRUN is unlikely.\n\n - RecordThread::createRecordTrack_l was checking for mono and stereo\n   for fast tracks.  This is not necessary, and now we can handle a\n   multi-channel fast track.\n\nBug: 7498763\nChange-Id: I0c581618e8db33084d5ff9ed50a592990c9749e8\n"
    },
    {
      "commit": "b3b1660ecb67f61f9da54efced8677fa3a6f4863",
      "tree": "ee42a2462ff40938316b521138d1edfe8a122d4b",
      "parents": [
        "ec40d284218466d8f0e832e7eb88e6ea6c479c88"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Jul 16 08:36:31 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:11 2014 -0700"
      },
      "message": "Add audio_input_flags_t to IAudioPolicyService::getInput\n\nChange-Id: I9f37be05f8dc7b85a8827a94e76ca0f45453e170\n"
    },
    {
      "commit": "ec40d284218466d8f0e832e7eb88e6ea6c479c88",
      "tree": "46ae774a4f3535d07374bed459b1dcf2bb9d8803",
      "parents": [
        "6e6704c06d61bc356e30c164081e5bcffb37920c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 15 15:31:26 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 17 12:13:07 2014 -0700"
      },
      "message": "Add audio_input_flags_t to IAudioFlinger::openInput\n\nFor backward compatibility, until flags are correctly calculated,\nwe will assume that the request is for a low latency input stream.\n\nChange-Id: I76746834e870df00833dc77cbdaa2edd2ffeec95\n"
    },
    {
      "commit": "01cab9ce4fb203fab8f5115ff866f9f0cc96a73a",
      "tree": "7ceb2156dc9f740d6e5274113b36755a5995e18e",
      "parents": [
        "bc2fb720bbd0acd122bacc67e844e982d068f6f9",
        "373e21cc119cede767dc93d75c91645dbf9ae19f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 17:46:33 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 17:46:33 2014 -0700"
      },
      "message": "resolved conflicts for merge of 373e21cc to master\n\nChange-Id: I91afd8f9cba04559d21e1c84e25c5c60c990165d\n"
    },
    {
      "commit": "373e21cc119cede767dc93d75c91645dbf9ae19f",
      "tree": "09b524de6f681834c6124c1fe1fc574616d57d57",
      "parents": [
        "aae3f86c7c9a3bce5aab0d283343455d58b133b8",
        "be44e0e0ffda04725c4864d894a7cc80bd74b5ca"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jul 10 00:16:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jul 10 00:16:50 2014 +0000"
      },
      "message": "am be44e0e0: am 0bffd2e6: Merge \"Switch frameworks/av/media/libmedia to the new icu.\"\n\n* commit \u0027be44e0e0ffda04725c4864d894a7cc80bd74b5ca\u0027:\n  Switch frameworks/av/media/libmedia to the new icu.\n"
    },
    {
      "commit": "51bc26144ca9c3872e41f9864622170d528be1b0",
      "tree": "cb0715bd047ce525ea2b54f4ad356dd99974e523",
      "parents": [
        "bc0c2c2d2a4cc058ab404f940f0ca65f595e047b"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:52:17 2014 -0700"
      },
      "committer": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Wed Jul 09 16:52:17 2014 -0700"
      },
      "message": "Switch frameworks/av/media/libmedia to the new icu.\n\nChange-Id: I45349756bac6d89b02dba082ba6d606f4c489dcf\n"
    },
    {
      "commit": "7df8c0b799d8f52d6386e03313286dbd7d5cdc7c",
      "tree": "e87404b99042b2c21ffcc0c34ac397ae14b4c2d4",
      "parents": [
        "7c6f87856c0880ee39c2107a0fc3c9b41f8c195c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 12:23:29 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 16:28:41 2014 -0700"
      },
      "message": "IAudioFlinger::openRecord now suggests notificationFrames\n\nChange-Id: I08885cc381d03c522a23289e74f0e1ed46563863\n"
    },
    {
      "commit": "d9d7fa0873796ac661c44a7fcd6ad5ff697ff01f",
      "tree": "237375ce1605b2d7bd896b23f0a2ba2f0235ae09",
      "parents": [
        "f92f22becdf7fce1f55d5ebd80ac2caa2ad55602"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 24 08:01:46 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jul 01 07:57:32 2014 -0700"
      },
      "message": "Support for audio attributes on audio output of media player\n\nChange-Id: Iae4995c98e64add1ab9e6c8ae6501515032755f5\n"
    },
    {
      "commit": "34fb29696b0f3abf61b10f8d053b1f33d501de0a",
      "tree": "4511e1ea03cdcfe50a4754904a507ec1ca6ac1b7",
      "parents": [
        "23307f736759efbdc6125e1ec0abbc4b48036346"
      ],
      "author": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Wed Jun 18 16:30:56 2014 -0700"
      },
      "committer": {
        "name": "Mark Salyzyn",
        "email": "salyzyn@google.com",
        "time": "Fri Jun 20 07:36:25 2014 -0700"
      },
      "message": "libmedia: 64-bit compile warnings\n\nChange-Id: I600f062fa7148c01851023c1240c39939e648002\n"
    },
    {
      "commit": "ab5cdbaf65ca509681d2726aacdf3ac8bfb6b3fa",
      "tree": "0d406acdfea2d44cd430ef16ee2a25b7722e4b1d",
      "parents": [
        "29a8b2fe294a34ac7f004203426961a599e725ea"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Mon Jun 09 17:22:27 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 19 10:05:57 2014 -0700"
      },
      "message": "AudioTrack: add support for compressed audio\n\nAdd support for compressed audio playback by use\nof an AudioTrack attached to a direct output thread.\n\nBug: 9428304.\n\nChange-Id: I4a61be9cf0e31003ca85935d6e0ee38ca8192e03\n"
    },
    {
      "commit": "5bd3f38638acab633d181359cc9ec27b80f84d43",
      "tree": "f4f234ec7e3c4649beabe5b03c1a1a0b2b3cd1f2",
      "parents": [
        "faabb51ceef13bf1e3f692219ac410c1cd75d0de"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 13 16:06:54 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 18 08:07:00 2014 -0700"
      },
      "message": "AudioPolicyManager: return output for audio attributes\n\nIn AudioPolicyManager, support querying an output\n or playback strategy for audio attributes,\n instead of a stream type,\nIn AudioTrack creation, use the output returned\n for the track\u0027s attributes.\n\nChange-Id: I0fef05845ba676404775e2e338c10e6a96237268\n"
    },
    {
      "commit": "faabb51ceef13bf1e3f692219ac410c1cd75d0de",
      "tree": "ad761b6b94a1fa782774b8a3227ed7b5354112fc",
      "parents": [
        "9c68ac03f16cc32625f6965e869432eae4fded2d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 11 16:55:06 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Jun 17 16:59:52 2014 -0700"
      },
      "message": "AudioTrack construction with audio attributes\n\nStore audio attributes in AudioTrack class.\nWhen an AudioTrack is \"set\" with non null audio\n attributes, derive a stream type that reflects\n the attributes.\nWhen an AudioTrack is \"set\" without attributes,\n and only has a stream type, derive default\n audio attributes.\n\nChange-Id: I322b91fa9a7e193118960c5e78cdddd85d66f9ad\n"
    },
    {
      "commit": "ba7a4e11a66a7044dbbd767983865e1774092dc6",
      "tree": "2a0f477d4114b6cd3c0d2624d993fb4e136efe30",
      "parents": [
        "8b8e5d45928aed8592d321fe55f560e35a4fece8",
        "90732a3be5e70156486aca94bde8aa81106329ba"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jun 13 10:22:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 13 10:22:28 2014 +0000"
      },
      "message": "am 90732a3b: Merge \"Remove dependency on Parcel::{read,write}IntPtr\"\n\n* commit \u002790732a3be5e70156486aca94bde8aa81106329ba\u0027:\n  Remove dependency on Parcel::{read,write}IntPtr\n"
    },
    {
      "commit": "8b8e5d45928aed8592d321fe55f560e35a4fece8",
      "tree": "4b3f3a52af3086587e3ac3cb741698b005c64fb1",
      "parents": [
        "2a8270e6944fb3addfcba87f6885aaad196b8b88",
        "cbd74fcbd2528e3cdb699ac26e8ed579085dd49a"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jun 13 11:19:14 2014 +0100"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Fri Jun 13 11:19:14 2014 +0100"
      },
      "message": "resolved conflicts for merge of cbd74fcb to klp-modular-dev-plus-aosp\n\nChange-Id: I00270ef6fe813c0d3649483cbc3aba6af789e033\n"
    },
    {
      "commit": "9c68ac03f16cc32625f6965e869432eae4fded2d",
      "tree": "048251826118491e784077a2cdb3e9e02dc1f208",
      "parents": [
        "20d16a8af2dc95e827be693edabde4f09eb90c32",
        "b7f24b101d43139b4c747129bfbc4ecf5c468b86"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Jun 13 21:37:58 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Jun 12 03:30:50 2014 +0000"
      },
      "message": "Merge \"AudioSystem: remove unused stream type\""
    },
    {
      "commit": "20d16a8af2dc95e827be693edabde4f09eb90c32",
      "tree": "31349f9325750c969742a7fd8daf30843d7c9255",
      "parents": [
        "0d1004ad38955dffcb911656fc191eb29af9b4d5",
        "3bcffa136909c1fb6e88ee4efd12ccac18360a85"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 13 19:20:41 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Jun 13 19:20:41 2014 +0000"
      },
      "message": "am 3bcffa13: force command flush after releasing a reference to shared memory\n\n* commit \u00273bcffa136909c1fb6e88ee4efd12ccac18360a85\u0027:\n  force command flush after releasing a reference to shared memory\n"
    },
    {
      "commit": "3bcffa136909c1fb6e88ee4efd12ccac18360a85",
      "tree": "6aedd2a1ead0fa545a93229fa2965477ec627de7",
      "parents": [
        "0ac53364b79dc72ee0c09f0efc46a22ab4374dbf"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 12 18:38:45 2014 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jun 13 08:56:56 2014 -0700"
      },
      "message": "force command flush after releasing a reference to shared memory\n\nAfter releasing a reference to a shared memory interface,\nIPCThreadState::self()-\u003eflushCommands() must be called to ensure\nthat the corresponding reference is also cleared immediately in the\nremote process. Otherwise the binder implementaiton will not\npush the clear systematically causing the memory region not to be freed.\n\nSee issues 10711502 and 2801375.\n\nBug: 14057166.\nChange-Id: If55f36f00d452d6cf00cf83bd2fba1c8f3abcb57\n"
    },
    {
      "commit": "7903bb2b3065d58cc75637900922b434f50024d9",
      "tree": "33e825d96a3c1ca8a7778d50068e738d0cfa7272",
      "parents": [
        "14c403fbab456a4a63586a767fbae498f5f8c260",
        "2a8270e6944fb3addfcba87f6885aaad196b8b88"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 00:15:39 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 12 00:15:39 2014 +0000"
      },
      "message": "am 2a8270e6: am c323737d: Merge \"Offer a type-safe album art interface.\"\n\n* commit \u00272a8270e6944fb3addfcba87f6885aaad196b8b88\u0027:\n  Offer a type-safe album art interface.\n"
    },
    {
      "commit": "2a8270e6944fb3addfcba87f6885aaad196b8b88",
      "tree": "991b282008b0b02747b7b29c929e9d157dc08e62",
      "parents": [
        "ca44dc79b5a163030ab0963f80aa771871de092d",
        "c323737dd46d724b4c1ec230b283f26ae2a22b4f"
      ],
      "author": {
        "name": "Elliott Hughes",
        "email": "enh@google.com",
        "time": "Thu Jun 12 00:06:25 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Jun 12 00:06:25 2014 +0000"
      },
      "message": "am c323737d: Merge \"Offer a type-safe album art interface.\"\n\n* commit \u0027c323737dd46d724b4c1ec230b283f26ae2a22b4f\u0027:\n  Offer a type-safe album art interface.\n"
    },
    {
      "commit": "b7f24b101d43139b4c747129bfbc4ecf5c468b86",
      "tree": "1d7cc6375adac742866973ab15d4d5caddf7f033",
      "parents": [
        "1a93f0cbb99fc5a59c92bd913f29409022ae236d"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 11 10:05:30 2014 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Jun 11 10:05:30 2014 -0700"
      },
      "message": "AudioSystem: remove unused stream type\n\nThe audio stream type is not used in the getSampleRate() and\n getFrameCount() methods.\n\nChange-Id: I3d065ae272bd039204cd323cdab9b60460034f2d\n"
    }
  ],
  "next": "8b1be2ca7cee71a4920d5d31fdcbad2b1d4ca49d"
}
