)]}'
{
  "log": [
    {
      "commit": "ee4e1b1a63758941460ae79a064249d3a5189443",
      "tree": "d27f03a73170da9cce96b6eae5b2ecd874eace22",
      "parents": [
        "2170233c49e50f3986cdc4f726016d6003cb5b8e"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:19 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 17 13:46:43 2015 -0700"
      },
      "message": "stagefright: warnings be gone, some are now errors, use clang\n\nChange-Id: I81f438ae444f04c12ae27ae4ef6d073033de172c\n"
    },
    {
      "commit": "0852843d304006e3ab333081fddda13b07193de8",
      "tree": "f60be26aad988e89bc135a86f6e4ae8853c69a49",
      "parents": [
        "3d66eb4128aebef31bb0fa44c4d53d6122294a26"
      ],
      "author": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Wed Apr 08 09:06:54 2015 -0700"
      },
      "committer": {
        "name": "Robert Shih",
        "email": "robertshih@google.com",
        "time": "Thu Apr 16 19:01:15 2015 -0700"
      },
      "message": "stagefright: initial timed id3 support in hls\n\nChange-Id: I00a8a786b3f4b74742c34770edd94e937abe20a8\n"
    },
    {
      "commit": "3d66eb4128aebef31bb0fa44c4d53d6122294a26",
      "tree": "b532ebd2b434a9f6f90039bdb46f775fbe2ebefe",
      "parents": [
        "71933d769c54dadb5d8618ccb1ae69a3926f890b"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 16 12:44:11 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 16 13:58:38 2015 -0700"
      },
      "message": "MediaCodec: hold input buffers during FLUSHED state\n\nbug: 20267388\nChange-Id: I21a12cb2ebb74e17dcdb7b502c3f674e9e64b5dc\n"
    },
    {
      "commit": "c224ec53a17994fa97ab2f29304647c9f195c51c",
      "tree": "6086a1cf5720b82e7dc25b7ecd60af39d66c738d",
      "parents": [
        "f2326ac96366ec4d05f470cc4a0b407e7805bab7",
        "99f31604136d66ae10e20669fb6b5716f342bde0"
      ],
      "author": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Thu Apr 16 17:06:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 16 17:06:42 2015 +0000"
      },
      "message": "Merge \"Unhide the android.media.[Media]DataSource interface.\""
    },
    {
      "commit": "99f31604136d66ae10e20669fb6b5716f342bde0",
      "tree": "20e64f4f26533b37b087ce8656b1040b8189e24f",
      "parents": [
        "2f33dbc6ca08d45efea2df775c158e2a11e07ab6"
      ],
      "author": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Fri Mar 20 13:06:33 2015 -0700"
      },
      "committer": {
        "name": "Chris Watkins",
        "email": "watk@google.com",
        "time": "Wed Apr 15 17:12:22 2015 -0700"
      },
      "message": "Unhide the android.media.[Media]DataSource interface.\n\nThis allows apps to implement MediaDataSource, which is modeled on\nstagefright\u0027s DataSource, to supply media data to the framework. This\nwas already implemented for MediaExtractor, but it was renamed from\nDataSource.\n\nMediaExtractor, MediaPlayer and MediaMetadataRetriever each have a new\noverload: #setDataSource(android.media.MediaDataSource)\n\nOnly NuPlayer supports this new data source.\n\nThe change introduces:\n * IDataSource:        The binder interface for DataSource.\n * JMediaDataSource:   The native counterpart to the java interface. It\n                       implements IDataSource.\n * CallbackDataSource: A stagefright DataSource that wraps an\n                       IDataSource.\n\nChange-Id: Ib3c944b49cc8a792c8eb9c85e5015c07f298ebc1\n"
    },
    {
      "commit": "554a277d4e42a3d3df3d90ba0e7dfa2d31690e32",
      "tree": "3647500470a7eca8095102a0e2818acb848cdf6a",
      "parents": [
        "3249558196082087fb8bd0a847ef5c6000c8b925"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 10 11:29:24 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 15 23:15:38 2015 +0000"
      },
      "message": "audio policy: add binder calls for audio source control\n\nAdd binder methods to IAudioPolicyService to control activity\nof external audio sources (e.g FM tuner).\n\nChange-Id: I2008308a6a996baeae502b68a790d87281efe2ff\n"
    },
    {
      "commit": "cfdd52423cee9efea73023feeaa74279ebd45b7c",
      "tree": "154c4ea34b3fc95dbde268fb24be2f2915438c78",
      "parents": [
        "5e1c007038df74b389018e762d5059cacecff59e",
        "de80105c3f2db0eabd47640c49387ea3b44d4782"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Wed Apr 15 21:11:49 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 21:12:01 2015 +0000"
      },
      "message": "Merge \"AudioPolicyManager: notification of dynamic policy mix activity\""
    },
    {
      "commit": "a5bf4e0339a10b7db936c739fbfd6cf3cb00fbb8",
      "tree": "fea070a835cfb6fc870072331926020623bce8bf",
      "parents": [
        "7233234a32d22d2ffb63ed4e92df339458047887",
        "99acce4526db0f14be6e516ecb3920d5ed66877b"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 15 03:11:13 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 03:11:14 2015 +0000"
      },
      "message": "Merge \"Revert \"stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\"\""
    },
    {
      "commit": "de80105c3f2db0eabd47640c49387ea3b44d4782",
      "tree": "9775c7bbe30ef1ab13a888def8531cb0f87b1756",
      "parents": [
        "079e121934106860af5ff5491bd3884453d1fdb3"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:10:14 2015 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Tue Apr 14 19:20:20 2015 -0700"
      },
      "message": "AudioPolicyManager: notification of dynamic policy mix activity\n\nImplement non-stream type specific ref counting in output\n  descriptors to keep track of mix activity.\nNotify audio policy client of mix activity changes.\n\nBug 20226914\n\nChange-Id: Iec939cb640c58056f88947b611d23b4bb6d8a11b\n"
    },
    {
      "commit": "7233234a32d22d2ffb63ed4e92df339458047887",
      "tree": "807509f7cba92cf490d3c82da300a9d686eea02d",
      "parents": [
        "be39e102a64f48fb3afe6ca412231f17df3c3c87",
        "67e7f543c7f1c4fe4ee1989ceb0aebe44a63b49e"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Apr 15 01:41:58 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 01:41:58 2015 +0000"
      },
      "message": "Merge \"media: use ResourceManagerService with MediaCodec\""
    },
    {
      "commit": "be39e102a64f48fb3afe6ca412231f17df3c3c87",
      "tree": "cdcef473819021571445f55fb2059c71f2fe147e",
      "parents": [
        "948dbbbe0d75f1975a80eafd53d6b8daa8f92223",
        "a0d0ba51ad60a68117a0ee78e37ab78715b8a069"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Wed Apr 15 01:32:25 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 15 01:32:25 2015 +0000"
      },
      "message": "Merge \"HLS: parse stream resolution and set maxWidth/maxHeight\""
    },
    {
      "commit": "948dbbbe0d75f1975a80eafd53d6b8daa8f92223",
      "tree": "1394f250b7657a7d39ee2b270c7a51281c30c692",
      "parents": [
        "4123d6db0642cd13e69230705b12d6b6fee6f73f",
        "8cfad968d5ec429b033caff9743f1ef15090be61"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 14 22:28:26 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 22:28:27 2015 +0000"
      },
      "message": "Merge \"stagefright: metadata retriever changes for capture fps\""
    },
    {
      "commit": "67e7f543c7f1c4fe4ee1989ceb0aebe44a63b49e",
      "tree": "7de894fc9626b36de6eed70812962380ca217f22",
      "parents": [
        "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Mar 13 10:47:08 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 14:16:12 2015 -0700"
      },
      "message": "media: use ResourceManagerService with MediaCodec\n\nBug: 19620911\nChange-Id: I235a97e5195b28645b7834dda0dd77307d93f4a8\n"
    },
    {
      "commit": "99acce4526db0f14be6e516ecb3920d5ed66877b",
      "tree": "d97838f1d697448b4b55c3485761518b3037ac7a",
      "parents": [
        "ea20d117ef9b4e867ec3982c7d070e719617ba2f"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 21:12:53 2015 +0000"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 21:12:53 2015 +0000"
      },
      "message": "Revert \"stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\"\n\nThis reverts commit ea20d117ef9b4e867ec3982c7d070e719617ba2f.\n\nChange-Id: Ia77448a81429814e6915eca9c1cd854ca0e623cc\n"
    },
    {
      "commit": "a0d0ba51ad60a68117a0ee78e37ab78715b8a069",
      "tree": "8d7555285a426fd3b77b93fcfd550dc5c1e9f0c2",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 10 22:41:56 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 14 11:39:16 2015 -0700"
      },
      "message": "HLS: parse stream resolution and set maxWidth/maxHeight\n\nbug: 20160436\n\nChange-Id: Ic3adb84d3c65cc65f62fc509a99d09602db862a1\n"
    },
    {
      "commit": "b23cabdb71b98dc5e852f5d06be271696fea92c7",
      "tree": "5fd928f892970e2d905fdfcc502a0204d62a149d",
      "parents": [
        "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0",
        "551b5355d34aa42890811fc3606d3b63429296cd"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Apr 14 15:02:11 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 15:02:12 2015 +0000"
      },
      "message": "Merge \"AudioRecord::obtainBuffer() can return nonContig like AudioTrack\""
    },
    {
      "commit": "8cfad968d5ec429b033caff9743f1ef15090be61",
      "tree": "10780dace38525633eb6c55f5ecf2d1713980eba",
      "parents": [
        "db93079daf06a94e50622d0383b9ed8e767e2f92"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Tue Apr 07 17:53:11 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Mon Apr 13 22:26:33 2015 -0700"
      },
      "message": "stagefright: metadata retriever changes for capture fps\n\nbug: 19460202\nChange-Id: I20afded0b7eec45b2f25b51cf59d9f48eada74d8\n"
    },
    {
      "commit": "551b5355d34aa42890811fc3606d3b63429296cd",
      "tree": "a55a6f457f11025f653241a58d475fe6a8269be5",
      "parents": [
        "7d669b3551c20109f5544455ca1555499693e1e1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 11:30:28 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Apr 13 18:02:09 2015 -0700"
      },
      "message": "AudioRecord::obtainBuffer() can return nonContig like AudioTrack\n\nAnd fix error handling in both AudioRecord and AudioTrack.\n\nChange-Id: I4853d736cc6d2c05de5b18b0eac62716edfa62ec\n"
    },
    {
      "commit": "9e6955a19bf77ebf27b770e910efbe1ebf1ceac0",
      "tree": "04fbb621d9f9262bdec827d80f9df998a48f90ff",
      "parents": [
        "5795cb168634680fd5c835849c8fcf48dd6f532b"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Mar 26 13:52:57 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 13 18:01:51 2015 -0700"
      },
      "message": "media: handle overrides and measure max codec instance.\n\nBug: 19620911\nChange-Id: I68d5919284700f37ccc6c6b9f96cd87ccdd40e6a\n"
    },
    {
      "commit": "5795cb168634680fd5c835849c8fcf48dd6f532b",
      "tree": "b57d8881970ec7f29ceaf20bcbd604991f6a1444",
      "parents": [
        "4264bbd7af97aeae87f1907b96f62e4025c989d0",
        "c1f5cb4b11d0c9f52f69aec4fe2d36da2f8139c9"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 14 00:57:56 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 14 00:57:57 2015 +0000"
      },
      "message": "Merge \"libstagefright: parse global settings from codec xml file.\""
    },
    {
      "commit": "c1f5cb4b11d0c9f52f69aec4fe2d36da2f8139c9",
      "tree": "7e5049d6725c4a6c1947a743659598c391cf0665",
      "parents": [
        "52e88b2986536e83a7a6da63461556b8734a85f3"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Mar 25 16:19:58 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 13 17:51:14 2015 -0700"
      },
      "message": "libstagefright: parse global settings from codec xml file.\n\nAlso parse a new codec limit \"max-supported-instances\".\n\nBug: 19620911\nChange-Id: I6574c168b0c2b1aa649883958d3073edc01a4a03\n"
    },
    {
      "commit": "e6109e2f10b43c2cc2561c6fd6633b5f988bd7a9",
      "tree": "3b8f9bd7d8caab7cdd2e58ad5a918619938db9a3",
      "parents": [
        "421f47ca9c2dcc78584b2bb609c3755483b55155"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 10 17:18:22 2015 -0700"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Fri Apr 10 17:48:56 2015 -0700"
      },
      "message": "mediaplayer: support async mode for widevine legacy mode\n\nBug: 14679336\nChange-Id: Id224eb8c31ec148ca9a144758cc56ddbf5465f5c\n"
    },
    {
      "commit": "ed5554fb1c837f6b1008d3910018c979c57da502",
      "tree": "65ebd5ffd8e905b4756f01a508974464e2b4e5f0",
      "parents": [
        "52e88b2986536e83a7a6da63461556b8734a85f3"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Apr 06 14:17:24 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Fri Apr 10 14:49:44 2015 -0700"
      },
      "message": "libstagefright: handle MediaFormat \"operating-rate\" key.\n\nBug: 19620911\nChange-Id: I846d3cc10308a13f2ed92bb82ba7e8236d9c67d1\n"
    },
    {
      "commit": "4c1efbc76f1dfeb9427617e451042a12bfb59ad3",
      "tree": "43c39c7172b3cfbbc26678a5233702a011ef27b3",
      "parents": [
        "c255757c795e5db87bafa6609c4ae052cf38b45b",
        "1849570240443d1f75775c205fa658f7070849c6"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 21:03:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 21:03:24 2015 +0000"
      },
      "message": "Merge \"Add a method to associate MediaDrm session with MediaCrypto\""
    },
    {
      "commit": "1849570240443d1f75775c205fa658f7070849c6",
      "tree": "86ad28892b0e8b49c8666ad39e340234c610e709",
      "parents": [
        "2fb25c873e1a7f346bd8c7c072a85ca6a74b0e95"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 04:10:59 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Fri Apr 10 04:10:59 2015 -0700"
      },
      "message": "Add a method to associate MediaDrm session with MediaCrypto\n\nPreviously, to associate a MediaDrm session with MediaCrypto,\nthe MediaDrm sessionId was passed as initData to the MediaCrypto\nconstructor.  This is not ideal for two reasons: it\u0027s pretty\nobscure and you can\u0027t change the association without tearing\ndown the MediaCodec/MediaCrypto and starting all over.  Use\ncases like key rotation require being able to update the\nMediaDrm session post-construction.  This CL addresses both of\nthese issues.\n\nbug: 19570317\nChange-Id: Ieb32d04d61742fc1dee2105dd904690d44c46c7b\n"
    },
    {
      "commit": "7d014e50b3acd60e73ed7d7a74dc58485c7a413c",
      "tree": "d2d5a07889b721c5d775c9da8c9dbc0531d19173",
      "parents": [
        "e62e16371b6c2f33072b3345e1d1853673b9a3d8",
        "8edb8dc44b8a2f81bdb5db645b6b708548771a31"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 10 03:28:12 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 03:28:12 2015 +0000"
      },
      "message": "Merge \"Add playback rate to AudioTrack\""
    },
    {
      "commit": "e62e16371b6c2f33072b3345e1d1853673b9a3d8",
      "tree": "7b771118f2df495918ce679dbd62f42b30392603",
      "parents": [
        "1c2dc0643141483cb7f90ee032845a1c38fe093a",
        "c5656cc900aeb4a705e27508dd82c70030a97709"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Fri Apr 10 03:27:59 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 10 03:28:00 2015 +0000"
      },
      "message": "Merge \"Add playback rate to AudioMixer\""
    },
    {
      "commit": "8edb8dc44b8a2f81bdb5db645b6b708548771a31",
      "tree": "663bda0f8a3d43894fa6d3d3f4283ed0df427f03",
      "parents": [
        "c5656cc900aeb4a705e27508dd82c70030a97709"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:13:55 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 18:49:15 2015 -0700"
      },
      "message": "Add playback rate to AudioTrack\n\nBug: 19196501\nChange-Id: I6411e1d3ce652b711a71a6d9df020cb5f60d4714\n"
    },
    {
      "commit": "541c1721e517a44127f0086f77b4e679849bb8cc",
      "tree": "18d35f7ffc8bdd7dc5d006c548b20af554a7f42a",
      "parents": [
        "2fb25c873e1a7f346bd8c7c072a85ca6a74b0e95",
        "fa6a06765e7b92b7ba265482bd4cf3074f9ff6cc"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 09 23:59:06 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 23:59:06 2015 +0000"
      },
      "message": "Merge \"MediaClock: allow user to query playback rate.\""
    },
    {
      "commit": "079e121934106860af5ff5491bd3884453d1fdb3",
      "tree": "9e632f4ac530466a4d98ddde47b8f44f8378679c",
      "parents": [
        "bd903e363faeacaeae98252bfc753d5cac9de602",
        "ea20d117ef9b4e867ec3982c7d070e719617ba2f"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 09 22:28:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 22:28:54 2015 +0000"
      },
      "message": "Merge \"stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\""
    },
    {
      "commit": "ea20d117ef9b4e867ec3982c7d070e719617ba2f",
      "tree": "3a573f404a1fdbc793aa659ea2cfe63403f4adb4",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 09 13:54:27 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Apr 09 14:56:47 2015 -0700"
      },
      "message": "stagefright: define CB_CODEC_RELEASED and ReleaseReason enum.\n\nBug: 19620911\nChange-Id: I95e257c8aea2ef218f27ffaa2e62a8f12554d824\n"
    },
    {
      "commit": "fa6a06765e7b92b7ba265482bd4cf3074f9ff6cc",
      "tree": "745f872831d337fb97d6130765b1078ae74607b0",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 09 14:56:25 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Thu Apr 09 14:56:25 2015 -0700"
      },
      "message": "MediaClock: allow user to query playback rate.\n\nBug: 19666434\nChange-Id: I306579e481cfcf923422d50d3d5cfae045ef2227\n"
    },
    {
      "commit": "c5656cc900aeb4a705e27508dd82c70030a97709",
      "tree": "930d4266db7b4d93eb7ade5629812a722dc7920f",
      "parents": [
        "857d5a20a956ef61b64ae07b018ecc2f1eb0a503"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Mar 26 19:04:33 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Thu Apr 09 12:37:01 2015 -0700"
      },
      "message": "Add playback rate to AudioMixer\n\nBug: 19196501\nChange-Id: I42d1f90e6297cf3f1304860d1691a5dfedd4c37d\n"
    },
    {
      "commit": "03763a9573fcfdd0f85dd9ac0203e7da525a6c98",
      "tree": "cf48ab8ce281938ef7440a3ad67664cbbd628a39",
      "parents": [
        "31ffe45a22b72ee5d25bb4932d0525e90dbc19fe",
        "c481b5012a5f6cf72e5e93b36f1ed4c9169916f2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Thu Apr 09 17:47:46 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Thu Apr 09 17:47:47 2015 +0000"
      },
      "message": "Merge \"Pass crypto source data using a shared buffer\""
    },
    {
      "commit": "c481b5012a5f6cf72e5e93b36f1ed4c9169916f2",
      "tree": "bbb7920204199b43cd24075d48b8fa387a43059f",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Apr 06 18:21:05 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Wed Apr 08 18:33:59 2015 -0700"
      },
      "message": "Pass crypto source data using a shared buffer\n\nMediaCodec was using a binder transaction buffer\nto pass encryption source data for protected content.\nOn some 4K content, the max binder transaction buffer\nsize was being exceeded.  This change uses a shared\nbuffer for the encryption source data instead of a\nbinder transaction buffer, which avoids the problem and\nmay be more efficient.\n\nbug: 20027687\nChange-Id: I36a24ebf600d7e1064b78e48b167fdc29b2c65e9\n"
    },
    {
      "commit": "6770c6faa3467c92eabc5ec9b23d60eb556a0d03",
      "tree": "45470127b227dbda5a346bb1902f92f8998c25bb",
      "parents": [
        "73c02e4277b399c2ec1555d32b6ad5df23bb83dc"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Tue Apr 07 13:43:36 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Apr 08 15:58:56 2015 -0700"
      },
      "message": "Enable 8 bit and float pcm record formats for AudioFlinger\n\nUpdate sampling rate handling as well.\n\nBug: 19570772\nChange-Id: I872248e64c0578b2e48869a68fee0d51bd0640c3\n"
    },
    {
      "commit": "6dc4dc4ad23dc82eca9af3112292f3e6d5b17b15",
      "tree": "2ebe8fb3630e8e33baa66be39305df86eab83c7d",
      "parents": [
        "e41b5f31148f9cfb7316295c900c7d3c695510b2",
        "aa9811945f575614b3482d09e4d969792701cebb"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Apr 08 17:08:01 2015 +0000"
      },
      "message": "Merge \"Adding explicit routing API to AudioTrack\""
    },
    {
      "commit": "aa9811945f575614b3482d09e4d969792701cebb",
      "tree": "1744aa567efe78c3062ec80da19277d96def0725",
      "parents": [
        "41efeb2b477066d96ad34a048f34fb6fb34213ec"
      ],
      "author": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Sat Mar 21 09:55:15 2015 -0700"
      },
      "committer": {
        "name": "Paul McLean",
        "email": "pmclean@google.com",
        "time": "Wed Apr 08 09:51:07 2015 -0700"
      },
      "message": "Adding explicit routing API to AudioTrack\n\nChange-Id: I40c048c7644c46f4e4f7103875206c0785c4b1dc\n"
    },
    {
      "commit": "e58e2a168e4a8bbd55e31bf12bd03ffc437c8226",
      "tree": "b05e698168e6b616b058193cb425491e84b62575",
      "parents": [
        "594eddf21facc3e84a4de912a0e2d45c880fd1ab",
        "3b8798ae4b3e27c7f7bee9794995b78a12adc4f8"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Apr 07 19:14:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Apr 07 19:14:52 2015 +0000"
      },
      "message": "Merge \"stagefright: add new MediaCodec callback CB_RESOURCE_RECLAIMED.\""
    },
    {
      "commit": "002135d149d8604e972d1b353d768f293fbce15f",
      "tree": "2b574bf6a084149bb75975e372b2f0516bf2276c",
      "parents": [
        "aa80951a578c1843708227b63456474f99e5e868",
        "d47dfcb5a2e5901c96fc92662cec7aa30f7f8843"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Apr 03 18:48:27 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Apr 03 18:48:28 2015 +0000"
      },
      "message": "Merge \"HLS: misc bug fixes\""
    },
    {
      "commit": "d47dfcb5a2e5901c96fc92662cec7aa30f7f8843",
      "tree": "ac077cfad563e38bf91e4b2c95e7e28056bf7439",
      "parents": [
        "ac41a6f253a69671f6e018fcc84daf0030615ca9"
      ],
      "author": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Fri Mar 27 15:53:45 2015 -0700"
      },
      "committer": {
        "name": "Chong Zhang",
        "email": "chz@google.com",
        "time": "Thu Apr 02 16:31:09 2015 -0700"
      },
      "message": "HLS: misc bug fixes\n\n- fix no target-duration case\n\n- fix for audio-only \u003c\u003d\u003e audio/video switching\n\n- disable audio-only variants if there is at least\n  one variant with video\n\n- fix mpeg2ts PTS wraparound when bandwidth adapting\n\n- tweak up/down switch marks\n\nbug: 19567254\n\nChange-Id: Ib46144203c56dfc96eccd6ddaa3867e8a4f2c6a9\n"
    },
    {
      "commit": "b28753e19550e5051cd02e6af72ab06e4eff04e0",
      "tree": "5c9b7dabb3d4abe6aa20bf512ec025eb23d1ca04",
      "parents": [
        "d4d55cdf31a3faa619bfa043f5b0f170f6ffd139"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 01 13:06:28 2015 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 01 16:53:33 2015 -0700"
      },
      "message": "audio port: support multiple clients\n\nAdd support for more than one audio port callback client per process.\n\nChange-Id: I657c4fc28d5d2d993307551e3e69567dc60196cb\n"
    },
    {
      "commit": "0f5d69123490bb3c4fe26129dfd23e21ce184c88",
      "tree": "0226e70e4bd45d61b940f60e24efc846c5af8244",
      "parents": [
        "3e414355fbed266916b446eaabbb3f9c153635b2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 11:30:00 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 25 09:27:09 2015 -0700"
      },
      "message": "Remove deprecation FIXMEs for TRANSFER_OBTAIN mode\n\nChange-Id: I7f43aabdb092e1465d79cd0eea5944fff18b93db\n"
    },
    {
      "commit": "957af4cef721c1eec1606850e77ad2ef1fd0eb0a",
      "tree": "3c05978c8a584181355db31052116afcda8db5f4",
      "parents": [
        "343dad3c1ffdd780bbf247ceebb1f2fd344a5d51",
        "3622cdff65f34a99d2f55936a895387ad41510ce"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 20:41:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 20:41:38 2015 +0000"
      },
      "message": "Merge \"AudioRecord::read() can be non-blocking to match AudioTrack\""
    },
    {
      "commit": "82ceac025459b5b8887441d709081ec29c6b9416",
      "tree": "6400948366e9d51774601a03d149a4ba7b33e2cb",
      "parents": [
        "21b51b61ee52e6aa74d98b138d3dd4f0e17b1441",
        "bfd318402924414fbde4d31c9d23cc423f10b630"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 19:42:30 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:42:31 2015 +0000"
      },
      "message": "Merge \"set() in AudioRecord and AudioTracks needs no lock\""
    },
    {
      "commit": "21b51b61ee52e6aa74d98b138d3dd4f0e17b1441",
      "tree": "ed8a111abfa1da3548ddd46d6db8c94d9a4ceb0c",
      "parents": [
        "3fac40b9e80e7d27fa613afe22048872f2ff6d9e",
        "1d8b3b684f469f346c2e0d4420e25a23aa1dda55"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 24 19:16:53 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 19:16:54 2015 +0000"
      },
      "message": "Merge \"Remove AudioRecord::notificationFrames()\""
    },
    {
      "commit": "ebb80468d8e31e22b867744d86b57bd4bc3186fd",
      "tree": "1871edf0c2c023d86ed394a66a0e63afb2a49fd5",
      "parents": [
        "6ce2ed7e9d003c4580e2813d657660ef18865df6",
        "231c3d169ad029689f9d688b68179af7e96b8d78"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Tue Mar 24 16:47:09 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 16:47:10 2015 +0000"
      },
      "message": "Merge \"media: add ResourceManagerService\""
    },
    {
      "commit": "6ce2ed7e9d003c4580e2813d657660ef18865df6",
      "tree": "18b29c59043564dfd0ca9f27c219749e3da908f2",
      "parents": [
        "ec648447b7dcab701c436a54bd38a1abd8037be1",
        "c8db9712d9abe9b0d74193ea7d7cff428e32e62c"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Mar 24 16:29:21 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 16:29:22 2015 +0000"
      },
      "message": "Merge \"MediaSync: support MediaSync in native code.\""
    },
    {
      "commit": "ec648447b7dcab701c436a54bd38a1abd8037be1",
      "tree": "a83bc7a008f5671316e18095b15f9fb7b746fd81",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2",
        "d072c909d87f8150433860f6de4c11df6e09e2f9"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Tue Mar 24 00:05:43 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 24 00:05:44 2015 +0000"
      },
      "message": "Merge \"Report key request message type for unprefixed EME\""
    },
    {
      "commit": "231c3d169ad029689f9d688b68179af7e96b8d78",
      "tree": "09dbf8d4dc47f5698c08190f498357b455a396c7",
      "parents": [
        "84b784dd4f340331d36b1be3de05a6c814d9795c"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Wed Mar 11 15:10:32 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 23 17:02:28 2015 -0700"
      },
      "message": "media: add ResourceManagerService\n\nBug: 19620911\nChange-Id: Iea173d310d31781bc50effe3d9bd6553cb5139eb\n"
    },
    {
      "commit": "3622cdff65f34a99d2f55936a895387ad41510ce",
      "tree": "c6af21a8fb7d4252d0ac78e542bb1baa5ae29f17",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 10:58:21 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:53:01 2015 -0700"
      },
      "message": "AudioRecord::read() can be non-blocking to match AudioTrack\n\nChange-Id: I23b9466b81ab6037d0bccd5e6f5974b7bd4aeacb\n"
    },
    {
      "commit": "bfd318402924414fbde4d31c9d23cc423f10b630",
      "tree": "35662fc06a14886bfcb74cfc6dbdf274a3497ee7",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 09:01:44 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:52:03 2015 -0700"
      },
      "message": "set() in AudioRecord and AudioTracks needs no lock\n\nChange-Id: I9d61b3d117e9b21fbbfad772d8981a5abb8fafae\n"
    },
    {
      "commit": "1d8b3b684f469f346c2e0d4420e25a23aa1dda55",
      "tree": "a14ee945d4f796d05fa4fac6fe621a057705e1c5",
      "parents": [
        "4c36d6f48f4eecacc148317f775f65961a4f03d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 08:55:02 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 14:51:28 2015 -0700"
      },
      "message": "Remove AudioRecord::notificationFrames()\n\nThis API was unused, and is not present in AudioTrack\n\nChange-Id: I66a1eedc149af085269c0f438c3c8d4e226a0e5b\n"
    },
    {
      "commit": "d1e85c354bf08cbf7fb7619f91bda1c416b40627",
      "tree": "6ba9419f727ac171f956120f225cad153c1245f5",
      "parents": [
        "17fe26e5b500671ca0773b57b77fa63b113aadae",
        "d8772b24079b61018b455e602f3030284c30c7f5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 18:29:32 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 18:29:33 2015 +0000"
      },
      "message": "Merge \"Update AudioRecord comments to match AudioTrack\""
    },
    {
      "commit": "17fe26e5b500671ca0773b57b77fa63b113aadae",
      "tree": "521d1db72da5e9dbfd198f9302d095863a29e917",
      "parents": [
        "7be5db4925258f113aa228e7212d66243adcaf6f",
        "a5017872000a938667c76d760a866547c3719d09"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 18:29:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 18:29:20 2015 +0000"
      },
      "message": "Merge \"Update AudioTrack constructor and set() comments\""
    },
    {
      "commit": "0c5260cea542fdf8aa5f36b4f8de37f3b1331398",
      "tree": "5e748e8ea1985ab15e4e321aca6f89b24255ac3d",
      "parents": [
        "c19dc82b6198d06b37018d649bdff3a16d871598",
        "b882e936ead71ee407a5d6f1e7194115fc13c410"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 17:59:04 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:59:05 2015 +0000"
      },
      "message": "Merge \"Update AudioTrack comments to match AudioRecord\""
    },
    {
      "commit": "c19dc82b6198d06b37018d649bdff3a16d871598",
      "tree": "faafcc9625c23979bc966ec3e5df849f44266356",
      "parents": [
        "f85e854158cbed22a68625d2fafea50b86ca791f",
        "85fc799d4cde549c7cc82d9e5c84f21e161ecfbe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 17:29:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:29:24 2015 +0000"
      },
      "message": "Merge \"AudioTrack::dump() comment\""
    },
    {
      "commit": "f85e854158cbed22a68625d2fafea50b86ca791f",
      "tree": "563485ca195f3919ba1835cfa1f3c1c57094dcfd",
      "parents": [
        "b6caa81602880670299393de833fc1d69043d581",
        "5014c94c1bbac4a4284576b0015ba75145237593"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 17:21:03 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 17:21:03 2015 +0000"
      },
      "message": "Merge \"AudioRecord::releaseBuffer() buffer is const *, like AudioTrack\""
    },
    {
      "commit": "b6caa81602880670299393de833fc1d69043d581",
      "tree": "8ae7eddaab58da9b9b7ceb2c4888ddd2c63b9663",
      "parents": [
        "8681bd84965606a4540226b76ea1db1a2198809d",
        "05163541326f51cefda91df5127d378c20b5a73f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 16:57:00 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 16:57:00 2015 +0000"
      },
      "message": "Merge \"Remove dead AudioTrack::setAttributesFromStreamType()\""
    },
    {
      "commit": "8681bd84965606a4540226b76ea1db1a2198809d",
      "tree": "1e3705a0de3de367bafe6a5854bf31f167227057",
      "parents": [
        "32db812d43fc17a8c24f3ff5ac81e5002f3ce126",
        "32860f77787f41abac08afdfc2592272ccc31bcb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 16:36:52 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 16:36:53 2015 +0000"
      },
      "message": "Merge \"Deprecate AudioRecord::getInput() and AudioTrack::getOutput()\""
    },
    {
      "commit": "5c242217a809e13a1704100fb991e03ce4985e6c",
      "tree": "c8bc3a7c49f687c2afed67329ef0d531bb1d6b3c",
      "parents": [
        "e063c308aaeaf85c9c41fda5df083a8aa90bdb24",
        "a9757af8a140a1d5ae261c22f9d7eebef99cbe96"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 16:05:18 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 16:05:19 2015 +0000"
      },
      "message": "Merge \"Move AudioTrack::isOffloaded() and isDirect() variants\""
    },
    {
      "commit": "e063c308aaeaf85c9c41fda5df083a8aa90bdb24",
      "tree": "f4ec5b1176ca063f48644f4abe1c86eb9e7327e9",
      "parents": [
        "0fe431544e5320a58508fb0533063d36dad1a473",
        "d2027336b45f524a196403d351ec317782793792"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:56:19 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:56:20 2015 +0000"
      },
      "message": "Merge \"Whitespace\""
    },
    {
      "commit": "0fe431544e5320a58508fb0533063d36dad1a473",
      "tree": "3fba1e4666b6778fa720db5963c304b91d2823f4",
      "parents": [
        "999c894e18a64e0ded860a1bb51e14822ed31e86",
        "6991ed25d8b5c2f75325ccd7cc522762da6f2b09"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:47:44 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:47:44 2015 +0000"
      },
      "message": "Merge \"Add FIXME to deprecate AudioTrack::getMinFrameCount()\""
    },
    {
      "commit": "999c894e18a64e0ded860a1bb51e14822ed31e86",
      "tree": "3845b691d1afcf45592bd707748fa19954abb9bd",
      "parents": [
        "ad7345c0d3c4e3562a70ad89d797f7473c7be57a",
        "17ea1351633d4f5e4f9eafd0778eb8b59fa30f10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:39:37 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:39:38 2015 +0000"
      },
      "message": "Merge \"Update AudioRecord comments to match AudioTrack\""
    },
    {
      "commit": "ad7345c0d3c4e3562a70ad89d797f7473c7be57a",
      "tree": "f52441979e6aebf9b1b618bc7f7b7c665f78a5b7",
      "parents": [
        "d34ed0f51697623456ddbca10ef9ccf5367ce952",
        "d198b85a163330b03e7507c9e8bfeb5f4d958a6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 15:30:42 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 23 15:30:42 2015 +0000"
      },
      "message": "Merge \"Fix typos\""
    },
    {
      "commit": "d8772b24079b61018b455e602f3030284c30c7f5",
      "tree": "1f945a16c3338faf2741325d8e08b4266df0e1c7",
      "parents": [
        "a5017872000a938667c76d760a866547c3719d09"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 10:59:40 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:03:35 2015 -0700"
      },
      "message": "Update AudioRecord comments to match AudioTrack\n\nChange-Id: I02cb51af058277991ad0b1b5dce45744b8e8c129\n"
    },
    {
      "commit": "a5017872000a938667c76d760a866547c3719d09",
      "tree": "63f7de068471f1ddd4f78e2098152bde804199c1",
      "parents": [
        "138d6f9b0b77d94773a8a29d3c5bdb78f38ee142"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 10:56:35 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:03:21 2015 -0700"
      },
      "message": "Update AudioTrack constructor and set() comments\n\nComments were missing for recently added parameters.\n\nChange-Id: I414594fed56317112be5f3b415871d77e7f7e282\n"
    },
    {
      "commit": "b882e936ead71ee407a5d6f1e7194115fc13c410",
      "tree": "1ff0080bc4acc812ee387291a3fb4d1860516e9f",
      "parents": [
        "85fc799d4cde549c7cc82d9e5c84f21e161ecfbe"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 10:54:24 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:03:09 2015 -0700"
      },
      "message": "Update AudioTrack comments to match AudioRecord\n\nChange-Id: I176a4830513a0b37c38f86815fe637093b9ad52f\n"
    },
    {
      "commit": "85fc799d4cde549c7cc82d9e5c84f21e161ecfbe",
      "tree": "aae5cf8be8bddb68cbad17a9e8186c0f5f4d981b",
      "parents": [
        "5014c94c1bbac4a4284576b0015ba75145237593"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 10:04:25 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:03:05 2015 -0700"
      },
      "message": "AudioTrack::dump() comment\n\nChange-Id: Id3b5210293a77404189555a0c797fb099e3c6c04\n"
    },
    {
      "commit": "5014c94c1bbac4a4284576b0015ba75145237593",
      "tree": "c097348f29dcaf33b3fbd56c330ca9b7ab53b48a",
      "parents": [
        "05163541326f51cefda91df5127d378c20b5a73f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 10:06:37 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:03:03 2015 -0700"
      },
      "message": "AudioRecord::releaseBuffer() buffer is const *, like AudioTrack\n\nChange-Id: If09689a8411392281ad06fcf781f3198941c642d\n"
    },
    {
      "commit": "05163541326f51cefda91df5127d378c20b5a73f",
      "tree": "f02dfa9e3d2560d2513c1f36eff20dbd498d1654",
      "parents": [
        "32860f77787f41abac08afdfc2592272ccc31bcb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 09:55:57 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:03:01 2015 -0700"
      },
      "message": "Remove dead AudioTrack::setAttributesFromStreamType()\n\nChange-Id: I34feb3f9df49458f8a81ddcced4dd769fdaca945\n"
    },
    {
      "commit": "32860f77787f41abac08afdfc2592272ccc31bcb",
      "tree": "330b65ddca5dd7b541565b67944e739f5dc0fc8e",
      "parents": [
        "40bc906252974d0b389ae4a147232d0c9a97193f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 08:55:18 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:59 2015 -0700"
      },
      "message": "Deprecate AudioRecord::getInput() and AudioTrack::getOutput()\n\nDoes not completely fix the bug, but is a step in the right direction.\n\nBug: 12593118\nChange-Id: Id591cd700ab58fd927ae44c71c81dac55b5cac2d\n"
    },
    {
      "commit": "a9757af8a140a1d5ae261c22f9d7eebef99cbe96",
      "tree": "4d1a70aa415a7006018bcd5b84c6d28ba9ee0722",
      "parents": [
        "d2027336b45f524a196403d351ec317782793792"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 09:00:14 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:52 2015 -0700"
      },
      "message": "Move AudioTrack::isOffloaded() and isDirect() variants\n\nto be near each other.\n\nChange-Id: Ic26681716ea48886f0bfed23803240466db5d8fa\n"
    },
    {
      "commit": "d2027336b45f524a196403d351ec317782793792",
      "tree": "88b2d938d53d20c4caa1cd82a69d52dbcdbdaefd",
      "parents": [
        "6991ed25d8b5c2f75325ccd7cc522762da6f2b09"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 08:59:18 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:50 2015 -0700"
      },
      "message": "Whitespace\n\nChange-Id: I4640be948ad3caff0eb7525991398a1353e4bfe6\n"
    },
    {
      "commit": "6991ed25d8b5c2f75325ccd7cc522762da6f2b09",
      "tree": "07d7d20b4f8230d83ab43d71955e0ff1a954cc2b",
      "parents": [
        "17ea1351633d4f5e4f9eafd0778eb8b59fa30f10"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 08:57:24 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:47 2015 -0700"
      },
      "message": "Add FIXME to deprecate AudioTrack::getMinFrameCount()\n\nContinuation of previous change, for all APIs that assume a route\n\nChange-Id: Ia1315032cf6366f428db342b16b2e1c3b574f407\n"
    },
    {
      "commit": "17ea1351633d4f5e4f9eafd0778eb8b59fa30f10",
      "tree": "98815310f51d9c40356f8ab8ef44bd1bfe010bb2",
      "parents": [
        "d198b85a163330b03e7507c9e8bfeb5f4d958a6c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 20 08:54:17 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:45 2015 -0700"
      },
      "message": "Update AudioRecord comments to match AudioTrack\n\nChange-Id: I6c3620c60c0ba159e4688b42de4ec8b91920e048\n"
    },
    {
      "commit": "d198b85a163330b03e7507c9e8bfeb5f4d958a6c",
      "tree": "0c682560d50acec9efeca2a1d706b3a09c6ecdc5",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 16 14:55:53 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 23 08:02:41 2015 -0700"
      },
      "message": "Fix typos\n\nFix typos in comments\nAdd formal parameter name to declaration where it was missing\nFix out of order comments\n\nChange-Id: I1de81ae82af5ca507864e4c7b959111bac898b98\n"
    },
    {
      "commit": "76fa9ec3e831ce97aeb2f1aa688972f5b85d9c30",
      "tree": "ccd88ef9f0cd1fe4d1e3516c77caf448e1cc1a5e",
      "parents": [
        "9efdf956cc2eef63fef609375901d6c8df6351b6",
        "f1300d31fe80c8e14cf2bbca6c7b6768110cd5ba"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Sun Mar 22 00:40:42 2015 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Sun Mar 22 00:40:42 2015 +0000"
      },
      "message": "am f1300d31: am cdf96ffa: Merge \"ulaw and alaw aren\\\u0027t limited to 8kHz\"\n\n* commit \u0027f1300d31fe80c8e14cf2bbca6c7b6768110cd5ba\u0027:\n  ulaw and alaw aren\u0027t limited to 8kHz\n"
    },
    {
      "commit": "c8db9712d9abe9b0d74193ea7d7cff428e32e62c",
      "tree": "184bc7777bce86c268348ca946e5009612c0e0fd",
      "parents": [
        "0e4421286b92a81e952f53210227adbf05d97c25"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Mar 09 16:31:48 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Fri Mar 20 11:10:33 2015 -0700"
      },
      "message": "MediaSync: support MediaSync in native code.\n\nBug: 19666434\nChange-Id: Ib6678153f43f5063bdaaf53dd8ad5e8d26434e1e\n"
    },
    {
      "commit": "17c39e708ed657b8fa66f8acce5128e51696915c",
      "tree": "ec0f96c66e44c39e83800bb7a02792ab57781e99",
      "parents": [
        "340cebdaa2875ba2ab9725b81218ebc59d84164b"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 20 09:15:11 2015 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Fri Mar 20 09:15:11 2015 -0700"
      },
      "message": "ulaw and alaw aren\u0027t limited to 8kHz\n\nBug: https://code.google.com/p/android/issues/detail?id\u003d158490\nChange-Id: Ib30e156c99a997db861bb85e17244a5effdd55cf\n"
    },
    {
      "commit": "3b8798ae4b3e27c7f7bee9794995b78a12adc4f8",
      "tree": "dc2648d35fbb8ee114802d37d5c7542253330ed4",
      "parents": [
        "8952c68ecea34cd58245577636b51a5124706893"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Mar 19 11:16:12 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Mar 19 11:16:12 2015 -0700"
      },
      "message": "stagefright: add new MediaCodec callback CB_RESOURCE_RECLAIMED.\n\nBug: 19620911\nChange-Id: I8db19cdbb1b93a7a6401e158f91285e7c395b719\n"
    },
    {
      "commit": "803b3e558022c6d0eb069308339dc84e6e8035dc",
      "tree": "ffae05f0ba870ac1f7b704a7309542444db623a4",
      "parents": [
        "377165c24968b044faccaf366a2377fa32143e2f"
      ],
      "author": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 18 23:26:55 2015 -0700"
      },
      "committer": {
        "name": "Andy Hung",
        "email": "hunga@google.com",
        "time": "Wed Mar 18 23:33:44 2015 -0700"
      },
      "message": "Event driven wake for AudioRecordThread notification changes\n\nUsed for setMarkerPosition and setPositionUpdatePeriod.\n\nChange-Id: Iedd1be8725dea32bdba6908b78c5166780a66fec\n"
    },
    {
      "commit": "d072c909d87f8150433860f6de4c11df6e09e2f9",
      "tree": "57ddf1e47d3ce322e10214991e01b509aeeb1155",
      "parents": [
        "eb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89"
      ],
      "author": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Mar 16 13:39:29 2015 -0700"
      },
      "committer": {
        "name": "Jeff Tinker",
        "email": "jtinker@google.com",
        "time": "Mon Mar 16 15:39:03 2015 -0700"
      },
      "message": "Report key request message type for unprefixed EME\n\nbug: 19771299\nChange-Id: I02f0a4532b5ea8a7e680d71f45ac0da06879f3d6\n"
    },
    {
      "commit": "fdfce553a8ea19af59ecc95d8395fc50e2b5bf35",
      "tree": "e5727b283ba76cd6a31651e6f277e01866d6ded7",
      "parents": [
        "74bebe401dd966308f29b0c4f42cf6946dc64582",
        "f5e837e3c7d4b1cee3b18d740bf7d07f4d1ddc1c"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 16 20:42:08 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 20:42:25 2015 +0000"
      },
      "message": "Merge \"Add FIXME to deprecate all APIs that assume a route\""
    },
    {
      "commit": "74bebe401dd966308f29b0c4f42cf6946dc64582",
      "tree": "cc6666875298f58e252864f303c1736eea44f4e3",
      "parents": [
        "8952c68ecea34cd58245577636b51a5124706893",
        "f59497bd3c190e087202043de5450ef06e92b27d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 16 20:42:14 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 20:42:24 2015 +0000"
      },
      "message": "Merge \"Update comments\""
    },
    {
      "commit": "14bcacaed718a506f59e8f3af66e9e0137789da6",
      "tree": "94a2350667b013b388b5862870c670bac5a7f8d9",
      "parents": [
        "ac48c28215798e4135396f09d583b22302636735"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 16 11:24:30 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 16 11:26:32 2015 -0700"
      },
      "message": "libstagefright: add ProcessInfo to get process priority.\n\nBug: 19620911\nChange-Id: I240b814b8925b1d6266e6f998a7debd654a2145a\n"
    },
    {
      "commit": "eb0ee0e842d3b8294aa6c0b797eaf7aff3fd2f89",
      "tree": "3a9991c2d7409caac8fca5747ea8cd1b6be83265",
      "parents": [
        "bd321b6ed912c492331216180b8677ee58c1eebd",
        "8b806ea894ca098366629458bfdd1df4866afcdf"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 16 16:37:29 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 16 16:37:30 2015 +0000"
      },
      "message": "Merge \"libstagefright: handle MediaFormat \"priority\" key.\""
    },
    {
      "commit": "f5e837e3c7d4b1cee3b18d740bf7d07f4d1ddc1c",
      "tree": "dfc142f5ac173cb8b168cb6e31115c3be23e3a98",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Jul 03 10:17:10 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 16:44:25 2015 -0700"
      },
      "message": "Add FIXME to deprecate all APIs that assume a route\n\nChange-Id: I84e160e3945004338c808edd86b5dbbca1e12874\n"
    },
    {
      "commit": "f59497bd3c190e087202043de5450ef06e92b27d",
      "tree": "52ff88a5a4bd358358850e0ca16d0f9527fded4e",
      "parents": [
        "802a568f77b9a372537e4216b2a7cbb203958a87"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jan 26 16:35:47 2015 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 16:22:16 2015 -0700"
      },
      "message": "Update comments\n\nChange-Id: I37d3c4ce22b74fe8581a886fe5a7f9fef8266dad\n"
    },
    {
      "commit": "802a568f77b9a372537e4216b2a7cbb203958a87",
      "tree": "a31c7160aef56063ee1769fe271432580e6bc3d2",
      "parents": [
        "c84eb736fd051c37e1d7e8585d14612713388a58",
        "ec8930f218fa0c1acde631543b40b5a0b28bfe1f"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 13 15:38:23 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 13 15:38:35 2015 +0000"
      },
      "message": "Merge \"Fix warning while building mediaserver\""
    },
    {
      "commit": "8b806ea894ca098366629458bfdd1df4866afcdf",
      "tree": "b5816f654ec122ac699cefe481c36bfc2db6e125",
      "parents": [
        "2129895bac582be50d3fe067bd5cf5a088863b3a"
      ],
      "author": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Mon Mar 09 16:26:30 2015 -0700"
      },
      "committer": {
        "name": "Ronghua Wu",
        "email": "ronghuawu@google.com",
        "time": "Thu Mar 12 11:37:39 2015 -0700"
      },
      "message": "libstagefright: handle MediaFormat \"priority\" key.\n\nBug: 19620911\nChange-Id: I73675c7cc3d742b9a1a98d6c0f48dcf17557e2ad\n"
    },
    {
      "commit": "3f27436a9346f043f52265da1e6a74cde2bffd4d",
      "tree": "a7404d2ba96071bea1f02f93f6782214fc1e4cc1",
      "parents": [
        "0655386a0dc15fc31883d2e38917ff0e9db89ae7"
      ],
      "author": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Thu Mar 05 14:35:41 2015 -0800"
      },
      "committer": {
        "name": "Lajos Molnar",
        "email": "lajos@google.com",
        "time": "Tue Mar 10 10:36:09 2015 -0700"
      },
      "message": "stagefright: don\u0027t use ALooperRoster mutex for reply handling\n\nChange replyID-s from uint32_t to an object\nMove reply handling into the loopers (to reuse a common mutex)\n\nBug: 19607784\nChange-Id: Iaa035b846c424c5687ed17ce1079b325e86c54be\n"
    },
    {
      "commit": "1c2a7a6391a5465cb5b059bb004fbbc884ce1a29",
      "tree": "ad4c1d401c2b63d328d7b047fe1cf51ffe2ce364",
      "parents": [
        "0ad38cd9674f2f7180d3310820d7dd2820159320",
        "5833b6aad2c46ba516bdc8262f4fc4667e8018ed"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Tue Mar 10 00:47:31 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 10 00:47:31 2015 +0000"
      },
      "message": "Merge \"mediaplayer: move MediaClock from NuPlayer to libstagefright.\""
    },
    {
      "commit": "5833b6aad2c46ba516bdc8262f4fc4667e8018ed",
      "tree": "ff4014a0c9a409d1849bf9d2c7583a361ff9637b",
      "parents": [
        "e8c9a8f78a9f9213060e5d54a15cde364df3e0d0"
      ],
      "author": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Mar 09 17:01:47 2015 -0700"
      },
      "committer": {
        "name": "Wei Jia",
        "email": "wjia@google.com",
        "time": "Mon Mar 09 17:01:47 2015 -0700"
      },
      "message": "mediaplayer: move MediaClock from NuPlayer to libstagefright.\n\nBug: 19666434\nChange-Id: I86865e594226419bbbbee217098f96434e43afbe\n"
    },
    {
      "commit": "ec8930f218fa0c1acde631543b40b5a0b28bfe1f",
      "tree": "0e81f9b456530eb8a745681726e4720e131bef77",
      "parents": [
        "f9d19514b3e620b6339c98a442da833a702915ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 15:56:22 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 15:56:22 2015 -0700"
      },
      "message": "Fix warning while building mediaserver\n\nIn file included from frameworks/av/services/audiopolicy/managerdefault/AudioPolicyManager.h:31:0,\n                 from frameworks/av/services/audiopolicy/service/AudioPolicyService.h:38,\n                 from frameworks/av/media/mediaserver/main_mediaserver.cpp:36:\nframeworks/av/services/audiopolicy/managerdefault/ConfigParsingUtils.h:29:0: warning: \"ARRAY_SIZE\" redefined\n #define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))\n ^\nIn file included from frameworks/av/media/libmediaplayerservice/MediaPlayerService.h:31:0,\n                 from frameworks/av/media/mediaserver/main_mediaserver.cpp:35:\nframeworks/av/include/media/stagefright/foundation/ABase.h:21:0: note: this is the location of the previous definition\n #define ARRAY_SIZE(a) (sizeof(a) / sizeof(*(a)))\n ^\n\nChange-Id: I4b80f783c592a78aa88b3dad297278353740466e\n"
    },
    {
      "commit": "b46f394a85d704dd05287cf9bb77cf86e3c02a38",
      "tree": "b6f8c4c2d413ca71ef3b2ca0c5a32c97d7959979",
      "parents": [
        "54a8a456c2b4b382b3ffe3d99e40703df79c0717"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 12:00:30 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 14:17:25 2015 -0700"
      },
      "message": "AudioTrack::obtainBuffer() now returns number of non-contiguous frames\n\nChange-Id: I1f61d7e3d057c3254babe456b4aa0f6a1809da55\n"
    },
    {
      "commit": "54a8a456c2b4b382b3ffe3d99e40703df79c0717",
      "tree": "3ddae33bf1e144cfa93b9c6ee43bcc7d97ba80b3",
      "parents": [
        "3f02be2ceeaa4b67dc0b1a81aebcfa049276fad8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 12:03:00 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 14:13:15 2015 -0700"
      },
      "message": "AudioTrack::releaseBuffer parameter is const *\n\nChange-Id: I31ac20863107de05b83cd7f8cd7dd61bed98e456\n"
    },
    {
      "commit": "3f02be2ceeaa4b67dc0b1a81aebcfa049276fad8",
      "tree": "185789eccf36d1b1bd892755ada9471258267a48",
      "parents": [
        "f9d19514b3e620b6339c98a442da833a702915ed"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 11:59:04 2015 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Mar 09 14:13:10 2015 -0700"
      },
      "message": "AudioTrack obtain/release buffer comments\n\nChange-Id: I0eb178d1ab4eea7f72f4c55852c19b216ca55f5f\n"
    },
    {
      "commit": "f9d19514b3e620b6339c98a442da833a702915ed",
      "tree": "9b7815dc186d937c8f6753d714472391b227d2c1",
      "parents": [
        "c4fb3345f114b47c8893ab0482ad850f99f65b7c",
        "f22e0d8849dd8bd0581297288c2597d0666382aa"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Mar 06 21:18:48 2015 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Fri Mar 06 21:18:49 2015 +0000"
      },
      "message": "Merge \"Include ABase.h to get definition of DISALLOW_EVIL_CONSTRUCTORS.\""
    },
    {
      "commit": "f22e0d8849dd8bd0581297288c2597d0666382aa",
      "tree": "a5727bdfd99a6cb8ba43a154197d840a14381bf5",
      "parents": [
        "1a86a8adbf4ab43a6aed2c3c8aa0830c001adb77"
      ],
      "author": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Feb 27 15:19:09 2015 -0800"
      },
      "committer": {
        "name": "Chih-Hung Hsieh",
        "email": "chh@google.com",
        "time": "Fri Mar 06 11:08:48 2015 -0800"
      },
      "message": "Include ABase.h to get definition of DISALLOW_EVIL_CONSTRUCTORS.\n\nChange-Id: I13e375e67f20203c542b5350a55f42e925205b11\n"
    }
  ],
  "next": "fa8b4792228083a4c95e8bd1c28690d44bb48bd6"
}
