)]}'
{
  "log": [
    {
      "commit": "2301acc6a9c7a3af4ad01f3d1d0f76f13eca7350",
      "tree": "6dde0cdf76066b31d3e0c0c96ea8e36990266fce",
      "parents": [
        "ecdca392ed40e89a6ef14b86446e952c35497ac4"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Jan 17 10:21:00 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 26 14:49:23 2014 -0700"
      },
      "message": "Update comments\n\nChange-Id: I5776313b9b49072cd666d28880f0d07cc73f827b\n"
    },
    {
      "commit": "91cea7023fdfde5432d5bc128b8c3a9b09dc0e72",
      "tree": "ff1e9512f313efa81e5ad1fe9b4f9d99d3721490",
      "parents": [
        "b28f7445376442c64973c0193b374f919781f105",
        "08298357a2fb8fe9574a32187c68f34ec356e3a8"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 19 20:46:50 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Mar 19 20:46:50 2014 +0000"
      },
      "message": "am 08298357: am bd7bde79: Merge \"Use libaudioresampler instead of libaudioflinger\"\n\n* commit \u002708298357a2fb8fe9574a32187c68f34ec356e3a8\u0027:\n  Use libaudioresampler instead of libaudioflinger\n"
    },
    {
      "commit": "4269fc8068d10fc95780e8a7e1e4d4eb43483883",
      "tree": "756052e8b34fe18b5b90f7cb53f03409de37ccb6",
      "parents": [
        "ddf887c08b58382920effb7f0b2049e471960b4a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 19 09:05:59 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 19 10:55:00 2014 -0700"
      },
      "message": "Use libaudioresampler instead of libaudioflinger\n\nin order to be able to build libvideoeditor as 64-bit also.\n\nlibaudioresampler is available in both 32-bit and 64-bit,\nunlike libaudioflinger which is currently 32-bit only.\n\nChange-Id: Id63857da877b1e45b7c1f8e35f18dca6600be3f7\n"
    },
    {
      "commit": "402cf17a14331f731686413ab088c628bfb2cc7a",
      "tree": "8e6e7fc07766bb79a85c45286c3970346215f000",
      "parents": [
        "ebf562f4c91f5fcbb5a7f1b79060c1e9d2f76892",
        "26d647c7aaf1f61a2a1d756bd094ce8d191bd27f"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Tue Mar 18 16:52:04 2014 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Tue Mar 18 16:52:04 2014 +0000"
      },
      "message": "Merge \"Remove deprecated BufferQueue constructor\""
    },
    {
      "commit": "758799cef41fc5495f59eeb6249d02ce9154cde8",
      "tree": "5cbfa825fd668d81c6fe6a8ec485dd8ebb2fd151",
      "parents": [
        "beb57a5a08207af80180b93dd80d611a85997c43",
        "3c7801882bbb6d5f3cc641525a54cb8a6c4aca34"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Fri Mar 14 14:22:08 2014 -0700"
      },
      "message": "resolved conflicts for merge of 3c780188 to master\n\nChange-Id: Ic579d346c27ff05ea6444faaa60fa6caaec86fbf\n"
    },
    {
      "commit": "26d647c7aaf1f61a2a1d756bd094ce8d191bd27f",
      "tree": "33dfc6de6115af4f2d6c833def6e828e2d61b7c8",
      "parents": [
        "fca092d953e04c7169242200f0ddb914a9f54ea4"
      ],
      "author": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Wed Mar 12 14:51:29 2014 -0700"
      },
      "committer": {
        "name": "Dan Stoza",
        "email": "stoza@google.com",
        "time": "Wed Mar 12 14:51:29 2014 -0700"
      },
      "message": "Remove deprecated BufferQueue constructor\n\nBug: 13415624\nChange-Id: If194d12c7ce9b0ac6ea98aeb7d3d7ee53e1574c4\n"
    },
    {
      "commit": "af783aa91f7a279153fb8bab8d0d6b9f737996e9",
      "tree": "25c5b54bf884f220cce4ee21a9cbaf6583820f91",
      "parents": [
        "19afb3869eb6a3e3733dc1f7420e1d4c3c03d376"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Sun Mar 02 19:48:19 2014 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Wed Mar 12 11:24:53 2014 -0700"
      },
      "message": "mediaserver and associated services are 32-bit only\n\nalso 32-bit only command-line apps\n\nChange-Id: I9ac557a8d02bbf6986a9b5c3cdce23d400b306a3\n"
    },
    {
      "commit": "feac1a43c8b674c4b526214fa8061452fd6e4846",
      "tree": "712af37a4366959972a42533f79cb4d43e408231",
      "parents": [
        "788207057ed4b8df4719ed8089f376ef52de9ca1",
        "62a897c6c44d82fc19207fd95692a9c93ded458f"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Mon Mar 03 11:18:28 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Mar 03 11:18:28 2014 +0000"
      },
      "message": "am 62a897c6: am 525b099a: Merge \"Fix ALOGVs for 64bit\"\n\n* commit \u002762a897c6c44d82fc19207fd95692a9c93ded458f\u0027:\n  Fix ALOGVs for 64bit\n"
    },
    {
      "commit": "2b4e26aae2ecd6337add3f20974afa784371e386",
      "tree": "95adeeb9d2378974ef70a64b6d85af413f7cacdf",
      "parents": [
        "096d72a32824a0a8c86a716ba44d589183b2b0b3"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Fri Feb 28 10:48:38 2014 +0000"
      },
      "committer": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Fri Feb 28 11:02:16 2014 +0000"
      },
      "message": "Fix ALOGVs for 64bit\n\nChange-Id: I556f90f9e6ace1a897d24326e5c14e7bf1e9fe29\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\n"
    },
    {
      "commit": "e27e2d9bcabc1a367cb56b4599665c931a1d22ec",
      "tree": "5ec47116fa737797ad8fd1d737ce27d4161103f2",
      "parents": [
        "3d2e09f0221693de08129edd02adf340a44e7a38"
      ],
      "author": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 14:29:56 2014 -0500"
      },
      "committer": {
        "name": "Derek Sollenberger",
        "email": "djsollen@google.com",
        "time": "Thu Feb 27 14:29:56 2014 -0500"
      },
      "message": "Fix includes to no longer pull in Skia includes directories.\n\nbug:13225538\nChange-Id: I4fccc414923f7e62cd46d691c67cb44b9692c225\n"
    },
    {
      "commit": "1d6fa7af1288b550faabe4ec2cf98684236723db",
      "tree": "a8801ca9a0925ba1faccf17acea4aa78d71a9d29",
      "parents": [
        "b82a9f105f89d6b3684c9f626918042bd8977912",
        "566be7c33fc56ae4c34168ecbee5316374f7e3c5"
      ],
      "author": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:47:53 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 13:53:20 2014 +0000"
      },
      "message": "resolved conflicts for merge of 566be7c3 to master\n\nChange-Id: I7b1cc71057b2bd4f771e7bcf508a8c3abd6017ce\n"
    },
    {
      "commit": "377b2ec9a2885f9b6405b07ba900a9e3f4349c38",
      "tree": "b938e1d75a1beefae86244f287ca22f4a277740d",
      "parents": [
        "cdda7bf4d3ca9cad6979374a18dd5be79ea83d80"
      ],
      "author": {
        "name": "Kévin PETIT",
        "email": "kevin.petit@arm.com",
        "time": "Mon Feb 03 12:35:36 2014 +0000"
      },
      "committer": {
        "name": "Narayan Kamath",
        "email": "narayan@google.com",
        "time": "Tue Feb 11 11:40:06 2014 +0000"
      },
      "message": "Make frameworks/av 64-bit compatible\n\nContains the necessary changes to make frameworks/av build and work\non a 64-bit machine.\n\nSigned-off-by: Craig Barber \u003ccraig.barber@arm.com\u003e\nSigned-off-by: Kévin PETIT \u003ckevin.petit@arm.com\u003e\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\nSigned-off-by: Marcus Oakland \u003cmarcus.oakland@arm.com\u003e\n\nChange-Id: I725feaae50ed8eee25ca2c947cf15aee1f395c43\n"
    },
    {
      "commit": "b82a9f105f89d6b3684c9f626918042bd8977912",
      "tree": "c665aadc914901a995c2de519b7beca4841d3957",
      "parents": [
        "b1f5b0dd237c2767ad7bc0b081d03aafc87589ea",
        "66e05682e4e5d52673b11e7950c0559532f4b6cb"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 10 22:45:37 2014 +0000"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Mon Feb 10 22:45:37 2014 +0000"
      },
      "message": "am 66e05682: am cdda7bf4: Merge \"frameworks/av: fix errors inside ALOGV\"\n\n* commit \u002766e05682e4e5d52673b11e7950c0559532f4b6cb\u0027:\n  frameworks/av: fix errors inside ALOGV\n"
    },
    {
      "commit": "26a995d192b5e8d41c70f189b585b36a29721362",
      "tree": "40c32fde2f2cd2702933fe3d2f3d3c795221452f",
      "parents": [
        "e2307ccbab9c32a7806f15c2572cfe6ec428f2f5"
      ],
      "author": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Thu Feb 06 20:29:44 2014 -0800"
      },
      "committer": {
        "name": "Colin Cross",
        "email": "ccross@android.com",
        "time": "Mon Feb 10 14:33:33 2014 -0800"
      },
      "message": "frameworks/av: fix errors inside ALOGV\n\nFix errors exposed by adding compile-time checking to disabled ALOGVs.\n\nChange-Id: Ie06db81d422bb4eee7dfc10abb8d03001627af4c\n"
    },
    {
      "commit": "1b86fe063badb5f28c467ade39be0f4008688947",
      "tree": "d88660112d407540184ad8e1292ed8aa98fae317",
      "parents": [
        "5ce88270eb2d41462de8c4155673b802b2ca48cb"
      ],
      "author": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Wed Jan 29 11:13:26 2014 -0800"
      },
      "committer": {
        "name": "Andreas Huber",
        "email": "andih@google.com",
        "time": "Tue Feb 04 15:11:53 2014 -0800"
      },
      "message": "FINAL ATTEMPT: HTTP services are now provided from JAVA and made available to media code\n\nChange-Id: I9f74a86e70422187c9cf0ca1318a29019700192d\n"
    },
    {
      "commit": "e311b15cf821f65f68af2cdfe01e864cbc9a86ce",
      "tree": "442e530b17dc541fbff5b00427859f5c50bccd16",
      "parents": [
        "61540b5fe82cad1c6baa018f02bd2554e62e4364",
        "3b546caeb0a576c4d7d7f1e8d2fdfed2bb8bdeed"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Sat Jan 11 04:20:10 2014 +0000"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Sat Jan 11 04:20:11 2014 +0000"
      },
      "message": "Merge \"Fix c++11 narrowing\""
    },
    {
      "commit": "22d5dc89e77c88821bfa5894fe20ae792d36ddc5",
      "tree": "af2bb3e8b2ecbd0b859e57800a25fbe5bfbc715e",
      "parents": [
        "8115f4b206dbd04c620f062feb3c7785e2732ab3"
      ],
      "author": {
        "name": "Ashok Bhat",
        "email": "ashok.bhat@arm.com",
        "time": "Thu Jan 02 14:54:57 2014 +0000"
      },
      "committer": {
        "name": "David Butcher",
        "email": "david.butcher@arm.com",
        "time": "Thu Jan 02 17:10:14 2014 +0000"
      },
      "message": "Change M4OSA_ERR_CREATE to return unsigned integer.\n\nWhile M4OSA_ERR is defined as M4OSA_UInt32, MOSA_ERR_CREATE\nis defined to return M4OSA_Int32. This leads to signed/unsigned\ncomparison warnings. M4OSA_ERR_CREATE has been changed to return\nM4OSA_UInt32 to fix this issue.\n\nChange-Id: I71a5c50a95c7f296469604b486a1d3969d302a3f\nSigned-off-by: Ashok Bhat \u003cashok.bhat@arm.com\u003e\n"
    },
    {
      "commit": "5e49afd05566820517747b9a8071c99ec0918328",
      "tree": "0dd9697822c0bd70f03bb776bc78e2da60f28991",
      "parents": [
        "a67c76538fff102cd44b2f38dd073df5f2a33605"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 17:16:50 2013 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Tue Dec 17 13:41:37 2013 -0800"
      },
      "message": "update offloaded audio track sampling rate\n\nAudioPlayer must read the sampling rate from offloaded audio sinks\nwhenever a new time position is computed as the decoder can update\nthe sampling rate on the fly.\n\nChange-Id: I997e5248cfd4017aeceb4e11689324ded2a5bc88\n"
    },
    {
      "commit": "576e89b523d7705545032edc67d98d9ab1dedbd2",
      "tree": "114583cf06506be2698df0284d4b57c96e976df0",
      "parents": [
        "0f1ecc2e2ff84144d5293f7f79ba895538d27f9b",
        "7dae71d606ded1dbc2aa9733c3d98ffac57988f2"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Nov 15 08:25:13 2013 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Nov 15 08:25:13 2013 -0800"
      },
      "message": "am 7dae71d6: Merge \"AwesomePlayer: correct stream type for offload\" into klp-dev\n\n* commit \u00277dae71d606ded1dbc2aa9733c3d98ffac57988f2\u0027:\n  AwesomePlayer: correct stream type for offload\n"
    },
    {
      "commit": "22612345ae97648d5b6db43cc1aa30aad77f7bba",
      "tree": "73b47a621118d0fa56d27929a9447e90ca27c97d",
      "parents": [
        "4215e6166fca9f87a6e9e848b3dfd4ab0d25c954"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 17:28:47 2013 -0800"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Nov 14 17:36:42 2013 -0800"
      },
      "message": "AwesomePlayer: correct stream type for offload\n\ncanOffloadStream() function in stagefright utils forces the\nstream type to AUDIO_STREAM_MUSIC when querying the audio policy\nmanager if a particular track is offloadable or not.\nThis causes MP3 ringtones to be offloaded which is not a validated use case.\n\nThe fix consists in using the actual stream type read from the AudioSink.\n\nBug: 11410937.\nChange-Id: I44b8e033a8e785a79cdc291b142f80b5580bdc4d\n"
    },
    {
      "commit": "3b546caeb0a576c4d7d7f1e8d2fdfed2bb8bdeed",
      "tree": "06f5ff682b7809091f39ca7c2beae8f435d741a0",
      "parents": [
        "d5255d1de125d15afae6cfc35701a5255b5e2933"
      ],
      "author": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Fri Oct 25 12:36:28 2013 -0700"
      },
      "committer": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Fri Oct 25 12:38:30 2013 -0700"
      },
      "message": "Fix c++11 narrowing\n\nThe best fix for these narrowing\nviolations is to use static casting\n\nAs an example, this change would the following for libnaio:\nerror: non-constant-expression cannot be narrowed from\ntype \u0027uint32_t\u0027 (aka \u0027unsigned int\u0027) to \u0027long\u0027 in initializer list\n\nconst struct timespec req \u003d {0, ns};\n                                ^~\n\nChange-Id: I04ed1de4497dc19772194afef3ebf8fe0c8b82bc\n"
    },
    {
      "commit": "3f93c8f8dbfb8b7cfed2cd21210f875497cbb39c",
      "tree": "63d52345740434a0e4765ad408f2d5279eb7b4f2",
      "parents": [
        "77177fa20773d02b4f9c4147ecb98107f019fa7d",
        "998c4e88f962336472c5e1c3afbf0ed8d6d3a971"
      ],
      "author": {
        "name": "Nick Kralevich",
        "email": "nnk@google.com",
        "time": "Fri Oct 18 19:32:44 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Oct 18 19:32:44 2013 -0700"
      },
      "message": "am 998c4e88: am 0219856e: Merge \"libvideoeditor: fix M4OSA_Clock header guard\"\n\n* commit \u0027998c4e88f962336472c5e1c3afbf0ed8d6d3a971\u0027:\n  libvideoeditor: fix M4OSA_Clock header guard\n"
    },
    {
      "commit": "6e2884495babd1163c0eed1b9233c81c2dae1fb8",
      "tree": "3791d970dc0420e6a6d89177af1fc25bf103c321",
      "parents": [
        "ab70649e2b0ea3d917242814417ec5711f4cb811"
      ],
      "author": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Fri Oct 18 19:20:59 2013 -0700"
      },
      "committer": {
        "name": "synergydev",
        "email": "synergye@codefi.re",
        "time": "Fri Oct 18 19:22:18 2013 -0700"
      },
      "message": "libvideoeditor: fix M4OSA_Clock header guard\n\nCLOCK was mispelled as CLOCH\n\nChange-Id: Ie7163fc8723d7a5b9df113f55a4a550e5465d9b5\n"
    },
    {
      "commit": "deeef54487a34034dc0cfaab20b20d557224c07c",
      "tree": "cc0aa13d8349df8a57e82374cfd2df9095cf2cbe",
      "parents": [
        "230c5bde2779c618b26edc73443280b2d9371c70"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Aug 02 01:50:59 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Tue Aug 06 20:05:40 2013 +0000"
      },
      "message": "separte producer and consumer interfaces\n\nBug: 9265647\nChange-Id: Iefabc11e4bd2e2e8ffd31160476c450affe6629c\n"
    },
    {
      "commit": "94ea60f975c3eb7ce6d2a4430538a42a5fc3babd",
      "tree": "b16c8a2a59ab68cf0564eefea6c9e68baba56860",
      "parents": [
        "d89532e133b881c7e0dac089333ad7642fc510f1"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.wolfsonmicro.com",
        "time": "Tue May 14 15:52:03 2013 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 10:12:33 2013 -0700"
      },
      "message": "stagefright: offload playback support\n\nOffloading of compressed audio decoding to audio DSP\nis implemented for audio only, non streamed content.\nwhen the datasource is\n\nAudioPlayer:\n- Create an offloaded sink when playing a compressed\nsource\n- Send metadata to audio HAL\n- Return sink start error to AwesomePlayer so that a\nnew player for PCM audio can be created in case of problem.\n- Forward stream end and tear down callback events to AwesomePlayer\n- Stop the sink and wait for stream end callback when EOS is reached.\n- Pause and restart the sink if needed before flushing when seeking\n(otherwise flush is a no op).\n- For current media time, directly query the render position from the\nsink and offset by the start position (seek to time)\n\nAwesomePlayer:\n\n- When initializing the audio decoder, check with audio policy manager\nif offloading is supported. If yes, create the software decoder in\ncase a reconfiguration is needed but connect the audio track directly\nto the AudioPlayer.\n- In case of error when starting the AudioPlayer, reconnect the software\ndecoder (OMXSource) and recreate a PCM AudioPlayer.\n- Handle AudioPlayer tear down event by detroying and recreating the\nAudioPlayer to allow transitions between situations were offloading\nis supported or not.\n- Force tear down of offloaded AudioPlayer when paused for a certain time:\nThis will close the sink and allow the DSP to power down.\n\nUtils:\n- Added helper methods:\n    - send meta data to audio ia sink setParameters\n    - query audio policy manager if offloading is supported for a\ngiven audio content\n\nChange-Id: I115842ce424f947b966d45e253a74d3fd5df9aae\nSigned-off-by: Eric Laurent \u003celaurent@google.com\u003e\n"
    },
    {
      "commit": "d89532e133b881c7e0dac089333ad7642fc510f1",
      "tree": "ba12a120aaf59226926f7a585f8a0cbe2e25aba8",
      "parents": [
        "b1a270d1e926fb9a01b4265a7675ed0c2c8f4868"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.wolfsonmicro.com",
        "time": "Tue May 14 13:18:21 2013 +0100"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Jul 26 09:30:34 2013 -0700"
      },
      "message": "libmediaplayerservice: offload playback support\n\nMain change is to how recycled tracks are used for gapless\nplayback. If we are playing offloaded tracks that can\u0027t be\nrecycled we don\u0027t open a new offloaded output until we have\nclosed the previous one. This is because offloaded tracks\nare a limited resource so we don\u0027t want to spuriously create\nunnecessary instances. If the tracks cannot be recycled\nthis means that the formats are incompatible and so the\nhardware most likely will also be unable to use the existing\noutput channel for the new track. If we already have the\nmaximum number of hardware offload channels open (which could\nbe only one) then creation of the next output would fail if\nwe attempted it while the previous output was still open.\n\nChange-Id: I4f5958074e7ffd2e17108157fee86329506730ea\nSigned-off-by: Eric Laurent \u003celaurent@google.com\u003e\n"
    },
    {
      "commit": "8d764bfc74c40641f018a0aa87d6f484aec92eae",
      "tree": "1418445850d4b3d44ab521722639494b33df27f5",
      "parents": [
        "ce177bb31493d3cd4450f9d4760fa1fd32ec6bf4"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 12 22:06:20 2013 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Jul 12 22:06:20 2013 -0700"
      },
      "message": "always pass the BufferQueue explicitely to consumers\n\nChange-Id: Ic2d9a9cf184a482b3c78a481ed693ee32df5ca13\n"
    },
    {
      "commit": "ad3af3305f024bcbbd55c894a4995e449498e1ba",
      "tree": "2e242d4c49cce9faefc28665c6ee63a2a5da170c",
      "parents": [
        "7919fa2c33b1fa7f5e49b2188d671bfe519c231e"
      ],
      "author": {
        "name": "Richard Fitzgerald",
        "email": "rf@opensource.wolfsonmicro.com",
        "time": "Mon Mar 25 16:54:37 2013 +0000"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Thu Jun 27 17:16:24 2013 -0700"
      },
      "message": "Public API changes for audio offload support.\n\nNOTE: this does _not_ include all private member variables added\nto classes as part of offload support. Only public/protected functions\nand stubs functions/variables needed to make the changes buildable.\n\n- isOffloadSupported() added to audio policy service\n    A stub implementation is required to build, this always returns false\n- setParameters() added to IAudioTrack\n    A stub implementation is required to build, this always returns\n    INVALID_OPERATION\n\n- CBlk flag for stream end\n\n- Change AudioSystem::getRenderPosition() to take an audio_output_t\n    so caller can specify which output to query\n\n- Add AudioSystem::isOffloadSupported()\n    This is fully implemented down to the AudioFlinger function\n    AudioPolicyServer::isOffloadSupported() which is just a stub\n    that always returns false.\n\n- Add EVENT_STREAM_END to AudioTrack interface.\n    STREAM_END is used to signal when the hardware has actually finished\n    playing all the data it was sent.\n\n- Add event type enumeration to media player interface AudioSink callbacks\n    so that the same callback can be used to handle multiple types of\n    event. For offloaded tracks we also have to handle STREAM_END and\n    TEAR_DOWN events\n\n- Pass audio_offload_info_t to various functions used for opening outputs,\n    tracks and audio players. This passes additional information about the\n    compressed stream down to the HAL when using offload.\n    For publicly-available APIs this is an optional parameter (for some of\n    the internal and low-level APIs around the HAL interface it is mandatory)\n\n- Add getParameters() and setParameters() API to AudioTrack\n    Currently dummy implementations.\n\n- Change AudioPlayer contructor so that it takes a set of bitflags defining what\n    options are required. This replaces the original bool which only specified\n    whether to use deep buffering.\n\n- Changes to StageFright class definition related to handling tearing-down of\n    an offloaded track when we need to switch back to software decode\n\n- Define new StageFright utility functions used for offloaded tracks\n    Currently dummy implementations.\n\n- AudioFlinger changes to use extended audio_config_t.\n    Fills in audio_offload_info_t member if this info is passed in when\n    opening an output.\n\n- libvideoeditor changes required to add the new event type parameter\n    to AudioSink callback functions\n\n- libmediaplayerservice changes required to add the new event type parameter\n    to AudioSink callback functions\n\nChange-Id: I3ab41138aa1083d81fe83b886a9b1021ec7320f1\nSigned-off-by: Richard Fitzgerald \u003crf@opensource.wolfsonmicro.com\u003e\nSigned-off-by: Eric Laurent \u003celaurent@google.com\u003e\n"
    },
    {
      "commit": "2799d743ee2ae5a25fe869a7f9c052acc029559f",
      "tree": "5cab5ff06f7cae0025b93fdcd549cfb2ec72b755",
      "parents": [
        "7c684c622110af460025eff85082030947278430"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu May 30 14:33:29 2013 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Jun 03 11:28:36 2013 -0700"
      },
      "message": "Use sp\u003cAudioTrack\u003e instead of raw AudioTrack *\n\nThis change prepares for the new implementation of AudioTrack client, which\nwill require clients to use only sp\u003cAudioTrack\u003e, not raw AudioTrack *.\nA raw delete will cause a race condition during AudioTrack destruction.\n\nAudioTrack was made a RefBase by commit b68a91a70bc8d0d18e7404e14443d4e4020b3635\non 2011/11/15, when it was needed by OpenSL ES (for the callback protector).\nAt that time, the only other client that was also converted from\nAudioTrack * to sp\u003cAudioTrack\u003e was android.media.AudioTrack JNI in\nproject frameworks/base (file android_media_AudioTrack.cpp).\n\nDetails:\n * Use .clear() instead of delete followed by \u003d NULL.\n * ALOG %p need .get().\n * sp\u003c\u003e don\u0027t need to be listed in constructor initializer, if initially 0.\n * Use \u003d\u003d 0 for sp\u003c\u003e vs \u003d\u003d NULL for raw pointers.\n * Use if (sp !\u003d 0) instead of if (raw).\n\nChange-Id: Ic7cad25795d6e862e112abdc227b6d33afdfce17\n"
    },
    {
      "commit": "cb7032acc963e447adbffcf95ee297643d64e0d7",
      "tree": "6730cb92f1e131486be08516488b3caff5ff4f99",
      "parents": [
        "474c6539e3592aece37616d0b39ef008b61260a0",
        "e756d9753c7cffe2e9731a31fa98a3e8f37151c9"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 15 18:36:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 18:36:01 2013 +0000"
      },
      "message": "Merge \"MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.\" into jb-mr2-dev"
    },
    {
      "commit": "8f1efee1c17e997af5ea3c46c62b3ae106b18264",
      "tree": "18392c33567980ddbb6fc193817113489027f335",
      "parents": [
        "5ce9c299a64a1568165fc66adb2cf68d89198a90",
        "de05c8eab188e98798f2b9c3dfac53dbc18ef584"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 15 18:36:01 2013 +0000"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Apr 15 18:36:01 2013 +0000"
      },
      "message": "Merge \"MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.\" into jb-mr2-dev"
    },
    {
      "commit": "e756d9753c7cffe2e9731a31fa98a3e8f37151c9",
      "tree": "d8d6d13587b902e574690740b850eaf1166e7759",
      "parents": [
        "e574eecea416c813d539a0977d5393c3ed291a1c"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Apr 12 13:50:38 2013 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 15 10:48:33 2013 -0700"
      },
      "message": "MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.\n\nBy default, MPEG4Write will keep running in real time recording mode.\n\nbug:8598944\n\nChange-Id: Idf7fbd4e0feb7763660a74279ba8817b79098aaf\n"
    },
    {
      "commit": "de05c8eab188e98798f2b9c3dfac53dbc18ef584",
      "tree": "5f1023f6cf5770bc3cdbbda03af68a62ff2eebcf",
      "parents": [
        "848621d519636e2abdb8575ba0f964efc53da0d5"
      ],
      "author": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Fri Apr 12 13:50:38 2013 -0700"
      },
      "committer": {
        "name": "ztenghui",
        "email": "ztenghui@google.com",
        "time": "Mon Apr 15 10:48:33 2013 -0700"
      },
      "message": "MediaMuxer prefer not to use the MPEG4Writer in real time recording mode.\n\nBy default, MPEG4Write will keep running in real time recording mode.\n\nbug:8598944\n\nChange-Id: Idf7fbd4e0feb7763660a74279ba8817b79098aaf\n"
    },
    {
      "commit": "ecba7488c5cceaacef95836b1b476433451e7761",
      "tree": "83245c19c2dda5c557531edb19478056034b5db5",
      "parents": [
        "5544c66ba0aa789a997b376df503a5ffae425dc7"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "da0dc0af0effe9fbfb3ce3187c8472fca2baf3c6",
      "tree": "67aa5a912048834766759d1842f7e54a20f74481",
      "parents": [
        "ec77122351b4e78c1fe5b60a208f76baf8c67591"
      ],
      "author": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "committer": {
        "name": "Ying Wang",
        "email": "wangying@google.com",
        "time": "Tue Apr 09 21:53:49 2013 -0700"
      },
      "message": "Add liblog\n\nBug: 8580410\nChange-Id: If493d87d60d71be664ad75b140c62acadb75b0d0\n"
    },
    {
      "commit": "b379c219a8d29c2dfa8778e5fb3da80856c30f7e",
      "tree": "dea991093f6ff3744515592c89f9c6818da28657",
      "parents": [
        "b7be24f055426f00fd1ae1af07d5dd40dbcedfe7",
        "3550ebddf61e00a5b328b4fe5709c16a8b74b273"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Mar 15 08:59:38 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 15 08:59:38 2013 -0700"
      },
      "message": "am c44a3ae2: am f0cea9f8: Merge \"Prevent invalid frame durations\"\n\n* commit \u0027c44a3ae2704af52c0f4ea006b5b02a53b6df6c46\u0027:\n  Prevent invalid frame durations\n"
    },
    {
      "commit": "888498ec8f3c01e39bf0b202fbd926725d9d54a1",
      "tree": "daf97dee9867a4fb37edde3a2f507c12eb7798e7",
      "parents": [
        "7d02488e0af9f21f5f15abcbd8dd8746606a124c",
        "c44a3ae2704af52c0f4ea006b5b02a53b6df6c46"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@android.com",
        "time": "Fri Mar 15 08:59:38 2013 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Mar 15 08:59:38 2013 -0700"
      },
      "message": "am c44a3ae2: am f0cea9f8: Merge \"Prevent invalid frame durations\"\n\n* commit \u0027c44a3ae2704af52c0f4ea006b5b02a53b6df6c46\u0027:\n  Prevent invalid frame durations\n"
    },
    {
      "commit": "7c25b029dc9b195fe0c57f3d26ce58f2f83d6867",
      "tree": "281f28d30061d682158ef08185aff3e6ecad924a",
      "parents": [
        "1a76084dd8918533b00d76fbef15888742f752df"
      ],
      "author": {
        "name": "Ola Andersson",
        "email": "ola3.andersson@sonymobile.com",
        "time": "Wed Dec 05 13:07:58 2012 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Tue Mar 12 20:16:35 2013 +0900"
      },
      "message": "Prevent invalid frame durations\n\nPrevent frame duration from being negative when\nexporting movie studio project\n\nChange-Id: I459fb243650c777c2b59d1094acc88c3a944bd81\n"
    },
    {
      "commit": "f7c18cf13354ac33b14de0af31c687f5e7d3a207",
      "tree": "1daebe8f5b39109f8e862c0c5ec3dea3eba1204a",
      "parents": [
        "c0048178a1d312e7e05557ba99becd6a89b9e97a"
      ],
      "author": {
        "name": "Ola Andersson",
        "email": "ola3.andersson@sonymobile.com",
        "time": "Wed Dec 05 13:07:58 2012 +0100"
      },
      "committer": {
        "name": "Takeshi Aimi",
        "email": "takeshi.aimi@sonymobile.com",
        "time": "Tue Mar 12 20:16:35 2013 +0900"
      },
      "message": "Prevent invalid frame durations\n\nPrevent frame duration from being negative when\nexporting movie studio project\n\nChange-Id: I459fb243650c777c2b59d1094acc88c3a944bd81\n"
    },
    {
      "commit": "b1e7cd156ca3e1747374e0d20cdd1ce467210453",
      "tree": "557f25ff5a0477f0cf0f89d4c21b0291371f09a2",
      "parents": [
        "62ad9071cd61fc56355d3c2d25895382003ea362"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 14 17:11:27 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 15 12:47:35 2013 -0800"
      },
      "message": "Refactoring: Rename SurfaceTextureClient to Surface\n\nChange-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830\n"
    },
    {
      "commit": "1a2952aee048ca7b1765e2bc09ebe9aeddaeafa3",
      "tree": "8e63f996a20f020e0af736eab89d632204c2c631",
      "parents": [
        "05f625c46b992ab66b8d1527a366fe2746b4e3c7"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Thu Feb 14 17:11:27 2013 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 15 12:47:35 2013 -0800"
      },
      "message": "Refactoring: Rename SurfaceTextureClient to Surface\n\nChange-Id: I4e8a8b20914cb64edc37abe68233fbc9f2b5d830\n"
    },
    {
      "commit": "4f6c4590f2064c289b33b2b3978a17f57f75590d",
      "tree": "1932a3d2ebb0425576a857bd6379f94c6d0af02f",
      "parents": [
        "41aa725aa6c03b4ed814d0e2fcd30c7b6d2ad429",
        "7f73aa0a0a043764b3ed387765ae794aecae9ab8"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 28 09:47:37 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 28 09:47:37 2012 -0800"
      },
      "message": "am 3e55b3e4: am 12834fe2: Merge \"libvideoeditor: fix code bugs when enabling all-level debugging macros\"\n\n* commit \u00273e55b3e4cdebd47a2e5b5df99107954fb4b1ab64\u0027:\n  libvideoeditor: fix code bugs when enabling all-level debugging macros\n"
    },
    {
      "commit": "f78f2629f5f6f5fc37a2089a85107fed97f12192",
      "tree": "091ea213899d07a7ec8847b0fa2e88faf0b46b7d",
      "parents": [
        "6f90c2b99cc6ec90c0e9a175d795edaf22f9d5bd",
        "3e55b3e4cdebd47a2e5b5df99107954fb4b1ab64"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 28 09:47:37 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Fri Dec 28 09:47:37 2012 -0800"
      },
      "message": "am 3e55b3e4: am 12834fe2: Merge \"libvideoeditor: fix code bugs when enabling all-level debugging macros\"\n\n* commit \u00273e55b3e4cdebd47a2e5b5df99107954fb4b1ab64\u0027:\n  libvideoeditor: fix code bugs when enabling all-level debugging macros\n"
    },
    {
      "commit": "2cd9cc25f07a9270a932fdf9c7b52c398e07bce5",
      "tree": "80a9f81946ac2f413920e8400cb29c48c0a19f40",
      "parents": [
        "cc4e6091bd24f84e69d4baf4fce6ceae67676ee5",
        "437ced8a14944bf5450df50c5e7e7a6dfe20ea40"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 21 14:09:14 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 21 14:09:14 2012 -0800"
      },
      "message": "Merge \"libvideoeditor: fix code bugs when enabling all-level debugging macros\""
    },
    {
      "commit": "12834fe289e8173e94f31603fa6d313abe56ad70",
      "tree": "63289554db6ac52fdd4cc49975bd7b335cedc9a8",
      "parents": [
        "b54cedabdf0261211241e2f3af09c75cffd911ed",
        "437ced8a14944bf5450df50c5e7e7a6dfe20ea40"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Dec 21 14:09:14 2012 -0800"
      },
      "committer": {
        "name": "Gerrit Code Review",
        "email": "noreply-gerritcodereview@google.com",
        "time": "Fri Dec 21 14:09:14 2012 -0800"
      },
      "message": "Merge \"libvideoeditor: fix code bugs when enabling all-level debugging macros\""
    },
    {
      "commit": "00169223fb04a14ddb542146223540e3695c8d27",
      "tree": "fc573ac753d1a046c0a1300464a0fe2c0a631072",
      "parents": [
        "5533367bee43819e72f66506df752d465154cb57",
        "0b39e8c4dd563b59af4c78c86f735c8d9ef5e481"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 20 14:10:26 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 20 14:10:26 2012 -0800"
      },
      "message": "am 9c891ca3: am 2a55b596: Merge \"libvideoeditor: fix cannot show some thumbnails in storyboard or no frame display in PreviewRenderer surface after importing video\"\n\n* commit \u00279c891ca36a7f2acecd70d41ff39a2025048bb0b1\u0027:\n  libvideoeditor: fix cannot show some thumbnails in storyboard or no frame display in PreviewRenderer surface after importing video\n"
    },
    {
      "commit": "df84d70d1da102995a5f1591c4af7c1807e4acd8",
      "tree": "f080e9fc4cce89cbf755ff68efdcc3dc5479df4f",
      "parents": [
        "e21c339f8aea46f6d406ccff61828e26b1689435",
        "9c891ca36a7f2acecd70d41ff39a2025048bb0b1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Dec 20 14:10:26 2012 -0800"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Thu Dec 20 14:10:26 2012 -0800"
      },
      "message": "am 9c891ca3: am 2a55b596: Merge \"libvideoeditor: fix cannot show some thumbnails in storyboard or no frame display in PreviewRenderer surface after importing video\"\n\n* commit \u00279c891ca36a7f2acecd70d41ff39a2025048bb0b1\u0027:\n  libvideoeditor: fix cannot show some thumbnails in storyboard or no frame display in PreviewRenderer surface after importing video\n"
    },
    {
      "commit": "484566c410afdfbc4b6bc5aa1732aef37428a5b8",
      "tree": "5ce1fc6a755c32f0b6ff362fe1fc5bf0d9ee2b14",
      "parents": [
        "34d7db5dd43000cac7e8e156d79e9f97ccbb8990"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 09:46:54 2012 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 13:31:57 2012 -0800"
      },
      "message": "Rename ISurfaceTexture and SurfaceTexture\n\nThe C++ class names don\u0027t match what the classes do, so rename\nISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to\nGLConsumer.\n\nBug 7736700\n\nChange-Id: I64520a55f8c09fe6215382ea361c539a9940cba5\n"
    },
    {
      "commit": "8ba01021b573889802e67e029225a96f0dfa471a",
      "tree": "110eca2effc73dcb2f46da71e9a0584e4af6e71e",
      "parents": [
        "53bc0a2fc54330534330118edd5c393f39eff8ab"
      ],
      "author": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 09:46:54 2012 -0800"
      },
      "committer": {
        "name": "Andy McFadden",
        "email": "fadden@android.com",
        "time": "Tue Dec 18 13:31:57 2012 -0800"
      },
      "message": "Rename ISurfaceTexture and SurfaceTexture\n\nThe C++ class names don\u0027t match what the classes do, so rename\nISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to\nGLConsumer.\n\nBug 7736700\n\nChange-Id: I64520a55f8c09fe6215382ea361c539a9940cba5\n"
    },
    {
      "commit": "cc492bd388898f90cec4faae3c7fde561dd52239",
      "tree": "9cae82cd79e671b5f9515778be5cebc3ddb87706",
      "parents": [
        "17cf30ef5b2464db562786e88b5c8daf33283091"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Dec 12 12:15:23 2012 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Dec 12 12:15:23 2012 -0800"
      },
      "message": "stop using a deprecated SurfaceTextureClient ctor\"\n"
    },
    {
      "commit": "84b6440fa1d1274267deabe0bd8dc626b5548e4c",
      "tree": "b5284479445f82ecf482fe09c1638b2db2e962da",
      "parents": [
        "dbd405dae1e2d2f88e529cc0d1fbdb0a676c4d7a"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Dec 12 12:15:23 2012 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Dec 12 12:15:23 2012 -0800"
      },
      "message": "stop using a deprecated SurfaceTextureClient ctor\"\n"
    },
    {
      "commit": "1bca151a35ecbf9d6b32b296a7f8642d8feb13fd",
      "tree": "8851291ff68fc422d0e76bfeec00c37d2293a8c3",
      "parents": [
        "ffa92311fa6a80890aa0326012f4c48abc6ef119"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Dec 12 12:08:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 12:08:51 2012 -0800"
      },
      "message": "Revert \"stop using a deprecated SurfaceTextureClient ctor\"\n\nThis reverts commit aef79b0676d8f0ee8ef637ec8be5ba73225b038d\n\nChange-Id: I5f6cf4d6d5dc895a9426f212dfc8a25b4bf2d23a\n"
    },
    {
      "commit": "af0351f930459098d98792d569b1436c43c536d8",
      "tree": "23916ae7df8025a16a1d7e5b26a0e699e0236fb6",
      "parents": [
        "aef79b0676d8f0ee8ef637ec8be5ba73225b038d"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Dec 12 12:08:51 2012 -0800"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Wed Dec 12 12:08:51 2012 -0800"
      },
      "message": "Revert \"stop using a deprecated SurfaceTextureClient ctor\"\n\nThis reverts commit aef79b0676d8f0ee8ef637ec8be5ba73225b038d\n\nChange-Id: I5f6cf4d6d5dc895a9426f212dfc8a25b4bf2d23a\n"
    },
    {
      "commit": "ffa92311fa6a80890aa0326012f4c48abc6ef119",
      "tree": "46427696185180a82c725fae898d8171f76beb29",
      "parents": [
        "e1cf3c41bd27b5ab7d8e70ef8dd6fcd0f5453568"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Dec 11 17:03:12 2012 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Dec 11 17:03:12 2012 -0800"
      },
      "message": "stop using a deprecated SurfaceTextureClient ctor\n\nChange-Id: I792277b0d711da22f6b2abb7f1d837450d6af8e2\n"
    },
    {
      "commit": "aef79b0676d8f0ee8ef637ec8be5ba73225b038d",
      "tree": "e0c9b69d4dcaf6fa7709d3f1f2cac8d4b9ab77e7",
      "parents": [
        "ae162976dda428671af09a8fbc3f03173a7e6f3e"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Dec 11 17:03:12 2012 -0800"
      },
      "committer": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Tue Dec 11 17:03:12 2012 -0800"
      },
      "message": "stop using a deprecated SurfaceTextureClient ctor\n\nChange-Id: I792277b0d711da22f6b2abb7f1d837450d6af8e2\n"
    },
    {
      "commit": "5350066763a35bbaf5b5f15f3f1680ec73852961",
      "tree": "ad1ffaf1086f0180148936458748dc0885014e06",
      "parents": [
        "f0e3acd06af00c07bfb541090b5349618fa67507"
      ],
      "author": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Fri Nov 16 13:47:50 2012 +0800"
      },
      "committer": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Fri Nov 16 13:47:50 2012 +0800"
      },
      "message": "libvideoeditor: fix cannot show some thumbnails in storyboard or no frame display in PreviewRenderer surface after importing video\n\n1. this is caused mFrameIntervalMs isn\u0027t assigned for use-software-codec case\n2. without the assingment, some decoded frames will not be copied to the buffer queue of VideoEditorVideoDecoder\n\nChange-Id: I578954e38958ebac8f258300e60b8ddf60e50521\nSigned-off-by: beanz \u003cbeanz@marvell.com\u003e\n"
    },
    {
      "commit": "e41446b59f52d88eca57d4255ea7b07c528c3eee",
      "tree": "857e083d71c3468da2c824c4f1d6b07301870f5e",
      "parents": [
        "33cf49b168a88a88167c46b01787a57b49cd875f"
      ],
      "author": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Fri Nov 16 13:47:50 2012 +0800"
      },
      "committer": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Fri Nov 16 13:47:50 2012 +0800"
      },
      "message": "libvideoeditor: fix cannot show some thumbnails in storyboard or no frame display in PreviewRenderer surface after importing video\n\n1. this is caused mFrameIntervalMs isn\u0027t assigned for use-software-codec case\n2. without the assingment, some decoded frames will not be copied to the buffer queue of VideoEditorVideoDecoder\n\nChange-Id: I578954e38958ebac8f258300e60b8ddf60e50521\nSigned-off-by: beanz \u003cbeanz@marvell.com\u003e\n"
    },
    {
      "commit": "7da35f231725aa6e0b2ac8714a7d66471368df77",
      "tree": "43c0c280293fce41ffe26176177f1cdec4e1831d",
      "parents": [
        "de5191e8b02f727756eb9d6e812af415d6cd0768"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 14 12:54:39 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 15 16:43:40 2012 -0800"
      },
      "message": "Use size_t for frame counts\n\nAlso fix typo: bufferCount should be frameCount.\n\nChange-Id: Ibed539504db75ef99dc21c8ff1bf2987122063a5\n"
    },
    {
      "commit": "e33054eb968cbf8ccaee1b0ff0301403902deed6",
      "tree": "b91f7abd2927e25a4cb7c50a8ef197c643ca9db6",
      "parents": [
        "7d9c126be8dfe3016683eeb2b7a2d88ba5b24c0b"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 14 12:54:39 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Nov 15 16:43:40 2012 -0800"
      },
      "message": "Use size_t for frame counts\n\nAlso fix typo: bufferCount should be frameCount.\n\nChange-Id: Ibed539504db75ef99dc21c8ff1bf2987122063a5\n"
    },
    {
      "commit": "1127d65d536ebbe447ee17ce0926a7ce4a2a3c08",
      "tree": "5babfd3aecd195c92b12847592f415c6bad513e4",
      "parents": [
        "1513ad2d2de0962cc3b3121e6fae73d8ee1a4639"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 14 08:44:39 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 14 16:19:23 2012 -0800"
      },
      "message": "Use uint32_t for sample rate\n\nChange-Id: Ie240b48fb54b08359f69ecd4e5f8bda3d15cbe80\n"
    },
    {
      "commit": "3b16c766d1ae2cfd8487e8ffb2b23936fc0a8e17",
      "tree": "56e1f373606202e5d5277f9645158d91b1a0a80c",
      "parents": [
        "b4a17e834b718eff1ba2eac4232de6e73a4bf9f5"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 14 08:44:39 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Nov 14 16:19:23 2012 -0800"
      },
      "message": "Use uint32_t for sample rate\n\nChange-Id: Ie240b48fb54b08359f69ecd4e5f8bda3d15cbe80\n"
    },
    {
      "commit": "437ced8a14944bf5450df50c5e7e7a6dfe20ea40",
      "tree": "fdb0bc0057a20c75b9102cdb45b7151ef1e30ce1",
      "parents": [
        "1baa01a52f24566c134313fade8b19a582654638"
      ],
      "author": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Wed Nov 07 10:58:59 2012 +0800"
      },
      "committer": {
        "name": "beanz",
        "email": "beanz@marvell.com",
        "time": "Wed Nov 07 10:58:59 2012 +0800"
      },
      "message": "libvideoeditor: fix code bugs when enabling all-level debugging macros\n\nChange-Id: Ic8aedfa821d79698d31cf7ee3bf382aae85981f6\nSigned-off-by: beanz \u003cbeanz@marvell.com\u003e\n"
    },
    {
      "commit": "faa4420344216ccbad15a49aa7c1cd6141532fcb",
      "tree": "7ccb42a315e7c90e4eb124f0b87945c842f600da",
      "parents": [
        "f84d5761c5f12bb75af492de27d9bc5491e5667d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 30 10:51:39 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 30 10:51:39 2012 -0700"
      },
      "message": "Remove obsolete references to libmedia_native\n\nBug: 6654403\nChange-Id: I3993d62987cf0dd85db10bf002a5cce53d4f01bd\n"
    },
    {
      "commit": "c41590251aa84c078c942d258e838aad814b73a5",
      "tree": "1db58d721d614ebd28f52b7a1dc632d943d6506d",
      "parents": [
        "db3a20ea484514f7f23d4ef3c30fe4780ab940d2"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 30 10:51:39 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Oct 30 10:51:39 2012 -0700"
      },
      "message": "Remove obsolete references to libmedia_native\n\nBug: 6654403\nChange-Id: I3993d62987cf0dd85db10bf002a5cce53d4f01bd\n"
    },
    {
      "commit": "a6d41334d25ffde12484eb28301352560a063ef6",
      "tree": "4d8df3822f93824ada324d5038ab0b4cd27ce77b",
      "parents": [
        "95f24dacbde69295fd21bbf683281b277e097bb1"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 01 14:04:31 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 04 09:44:04 2012 -0700"
      },
      "message": "Integrate improved coefficient sinc resampler: VHQ\n\nSummary:\nVery high quality is enabled only for 44.1 -\u003e 48 or 48 -\u003e 44.1,\n  and uses low quality for all other use cases.\nTrack estimated CPU load and throttles the quality based on load;\n  as currently configured it should allow up to 2 instances of very high quality.\nMedium quality and high quality are currently disabled unless explicitly requested.\n\nDetails:\nOnly load .so the first time it is needed.\nCleanup code style: formatting, indentation, whitespace.\nRestore medium quality resampler, but it is not used (see next line).\nFix memory leak for sinc resampler.\nCheck sample rate in resampler constructor.\nAdd logs for debugging.\nRename DEFAULT to DEFAULT_QUALITY for consistency with other quality levels.\nRenumber VERY_HIGH_QUALITY from 255 to 4.\nUse enum src_quality consistently.\nImprove parsing of property af.resampler.quality.\nFix reentrancy bug - allow an instance of high quality and an instance\n  of very high quality to both be active concurrently.\n\nBug: 7229644\nChange-Id: I0ce6b913b05038889f50462a38830b61a602a9f7\n"
    },
    {
      "commit": "ac6020508acedd316391dee42329040bf45f8d90",
      "tree": "034a8ac9c453dfce993c8d2568121a9b6d042bd0",
      "parents": [
        "d69fd4d2567f9fce02252ce10d7ae3a28fc79e04"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Mon Oct 01 14:04:31 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Oct 04 09:44:04 2012 -0700"
      },
      "message": "Integrate improved coefficient sinc resampler: VHQ\n\nSummary:\nVery high quality is enabled only for 44.1 -\u003e 48 or 48 -\u003e 44.1,\n  and uses low quality for all other use cases.\nTrack estimated CPU load and throttles the quality based on load;\n  as currently configured it should allow up to 2 instances of very high quality.\nMedium quality and high quality are currently disabled unless explicitly requested.\n\nDetails:\nOnly load .so the first time it is needed.\nCleanup code style: formatting, indentation, whitespace.\nRestore medium quality resampler, but it is not used (see next line).\nFix memory leak for sinc resampler.\nCheck sample rate in resampler constructor.\nAdd logs for debugging.\nRename DEFAULT to DEFAULT_QUALITY for consistency with other quality levels.\nRenumber VERY_HIGH_QUALITY from 255 to 4.\nUse enum src_quality consistently.\nImprove parsing of property af.resampler.quality.\nFix reentrancy bug - allow an instance of high quality and an instance\n  of very high quality to both be active concurrently.\n\nBug: 7229644\nChange-Id: I0ce6b913b05038889f50462a38830b61a602a9f7\n"
    },
    {
      "commit": "fc7992bd8220824f1404c0c54ac516d9e28b58c2",
      "tree": "972da8ca10068930ebb465a72c76be69a0ca6a79",
      "parents": [
        "6db33a9272da8f011be1c51675220b81655fd470"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 29 11:10:32 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 30 10:53:37 2012 -0700"
      },
      "message": "Move libnbaio out of AudioFlinger\n\nlibnbaio is now a separate shared library from AudioFlinger, rather\nthan a static library used only by AudioFlinger.\n\nAudioBufferProvider interface is now also independent of AudioFlinger,\nmoved to include/media/\n\nChange-Id: I9bb62ffbc38d42a38b0af76e66da5e9ab1e0e21b\n"
    },
    {
      "commit": "2dd4bdd715f586d4d30cf90cc6fc2bbfbce60fe0",
      "tree": "d0f594b402b6d2a4de89386c30c3db4adab89894",
      "parents": [
        "0a24726a64ba1c50aa6ee1610de2d80602d49fe6"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Aug 29 11:10:32 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Aug 30 10:53:37 2012 -0700"
      },
      "message": "Move libnbaio out of AudioFlinger\n\nlibnbaio is now a separate shared library from AudioFlinger, rather\nthan a static library used only by AudioFlinger.\n\nAudioBufferProvider interface is now also independent of AudioFlinger,\nmoved to include/media/\n\nChange-Id: I9bb62ffbc38d42a38b0af76e66da5e9ab1e0e21b\n"
    },
    {
      "commit": "76d46c5a3637d6ac9e664c449839befbbd09c0a0",
      "tree": "1f7b6cda17f89f50f1447fd50f0a23c3264543c7",
      "parents": [
        "93f902d58cd287e8dd046621824b7de7aa985d36",
        "4348cbcec6c3aec02af722d633ebda24f94dfcc8"
      ],
      "author": {
        "name": "Jean-Baptiste Queru",
        "email": "jbq@google.com",
        "time": "Wed Aug 08 13:11:16 2012 -0700"
      },
      "committer": {
        "name": "Android Git Automerger",
        "email": "android-git-automerger@android.com",
        "time": "Wed Aug 08 13:11:16 2012 -0700"
      },
      "message": "am 4348cbce: am 67f694d6: Merge \"Initialize pool\\\u0027s buffer pointers to null.\"\n\n* commit \u00274348cbcec6c3aec02af722d633ebda24f94dfcc8\u0027:\n  Initialize pool\u0027s buffer pointers to null.\n"
    },
    {
      "commit": "28b76b334f92a15a2be3cc9e2f7d229a3275d1ac",
      "tree": "c605d3e995f4b6be55dd4b10e1c998b059990d0d",
      "parents": [
        "fd4e20c226eca185fc789de761beae64855bfbbb"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 03 17:24:41 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Jul 17 11:31:59 2012 -0700"
      },
      "message": "Use audio_channel_mask_t for channel mask\n\nChange-Id: I1c1896da48983aa9f1462a4b471f910498816f60\n"
    },
    {
      "commit": "9d8e55cd2705a6ab43ea4aca6f94feb7bef87938",
      "tree": "7bcf2086691994b08fab4f62597b60ab26491cb1",
      "parents": [
        "ffb829430ff20ccd6c13e6ed894f2373b2d93939"
      ],
      "author": {
        "name": "Truls Bengtsson",
        "email": "truls.bengtsson@sonymobile.com",
        "time": "Wed Jul 11 15:50:44 2012 +0200"
      },
      "committer": {
        "name": "Henrik Baard",
        "email": "henrik.baard@sonymobile.com",
        "time": "Wed Jul 11 15:51:31 2012 +0200"
      },
      "message": "Initialize pool\u0027s buffer pointers to null.\n\nIf these pointers are not properly initialized to null and\nallocation of one of the buffers subsequently fail, the freePool\nmechanism might erroneously free uninitialized pointers.\n\nChange-Id: I2101bdb2cc576e5f50b5a1440e6fc0c54dc4e81b\n"
    },
    {
      "commit": "53f69c194d7ae8105b4c6d0c9901eb96281c7bf9",
      "tree": "2292ebb04e8aa5f4851a37122c090373c9a75788",
      "parents": [
        "a0108697f86d8625eb7ad3f13e422427fe7573ca"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 29 18:39:46 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Fri Jun 29 18:40:10 2012 -0700"
      },
      "message": "Fixed a video editor crash due to \"divided by 0\"\n\nThe crash was because the video sample was too short and has 0 duration (or a single frame video).\nThis patch is just simply not to support 0 duration video for editing.\n\nChange-Id: I2c7ff78b1e884a4d3a5051f87cdbeeb5dc3078a6\nrelated-to-bug: 6670656\n"
    },
    {
      "commit": "1e5b2b3361ddd07259bf4b29820ca4aa5f3a861b",
      "tree": "75bbec756f6a14bdcbd0d8100a2af5ca25d95074",
      "parents": [
        "95e6e6efcac831874b3d08947d1751d8f65503f9"
      ],
      "author": {
        "name": "Jamie Gennis",
        "email": "jgennis@google.com",
        "time": "Wed Jun 13 16:29:51 2012 -0700"
      },
      "committer": {
        "name": "Jesse Hall",
        "email": "jessehall@google.com",
        "time": "Thu Jun 21 16:54:43 2012 -0700"
      },
      "message": "Update ANativeWindow client code for sync\n\nThis change updates all the uses of ANativeWindow to use the new ANW functions\nthat accept and return Sync HAL fence file descriptors.\n\nChange-Id: Id7db42d8d6380f8b440d88476ce9211c6225fb16\n"
    },
    {
      "commit": "4832fedbfe2c18c469ab198d9ac3c349cb797527",
      "tree": "b599363d93d7bb3dee989318a4e1f19786d1950e",
      "parents": [
        "58c8db6b7667db7a3bdb9b4bdd973091a5b0202f"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 12 13:51:12 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Jun 12 14:10:12 2012 -0700"
      },
      "message": "Add NOTICE and MODULE_LICENSE_APATCH2 to libvideoeditor\n\nChange-Id: I19308c5fb0f39f8e696092186f4386e3dad06894\nrelated-to-bug: 6647465\n"
    },
    {
      "commit": "3e1e78ccd5936111f31a709592f11aa7c677c42d",
      "tree": "caccac9e707c1df4d1f2c18a53635c43c24d2bdc",
      "parents": [
        "67c0a58e05f4c19d4a6f01fe6f06267d57b49305"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Jun 04 19:07:28 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Jun 07 19:18:07 2012 -0700"
      },
      "message": "Fix green or corrupted video frames in the exported movies\n\nAt least two use cases are affected: trimming and transition clip generation.\n\nIf the starting time of the transition or the trimming position is not the same as\nthat of any existing video frame, the video frame right before the transition\nstarting position or the trimming position must be encoded as the the first video\nframe for the transtion or the trimmed video, and it is encoded as a key frame.\nThis frame was not saved without the patch.\n\nIn the transcoding phrase, since we could not find such a frame, the existing\ncode did not return an error, and incorrectly used some other frame to serve\nas the reference key frame for the remaining video frames of the transition or\nthe trimmed video. As a result, we may see corrupted or green video frames in\nthe exported movies.\n\nThe fix is to always save the frame right before the trimming position or\nthe transition starting time, so that a key frame will always be encoded, and\nthe right reference frame is used for remaining video frames. In addition,\nchecks are added to prevent from future mistakes to use incorrect reference frames.\n\nPatch was originally contributed by teng.hong@nxp.com\n\nChange-Id: I182784d4c1786224445224634edab3338bf2278f\nrelated-to-bug: 5713461\n"
    },
    {
      "commit": "cafc53c0ac77c2aa7564cea26120da6bc0c589f2",
      "tree": "4ea43af46b70d18c4a7d6b827579888555b363a0",
      "parents": [
        "83410a85993ad6f5f0c122036ff0bda42bf1d4f7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 31 13:06:53 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu May 31 17:13:39 2012 -0700"
      },
      "message": "Fix another buffer overflow issue\n\nUsing hard-coded length value easily leads to buffer overflow.\nRefactor the code a bit to make it more readable, and more\nextensible, and less subject to the buffer overflow coding error.\n\nPatch originally contributed by teng.hong@nxp.com\n\nChange-Id: Id262915302ccea8ae3b0121bf39890ab463aeeb7\nrelated-to-bug: 6328360\n"
    },
    {
      "commit": "83410a85993ad6f5f0c122036ff0bda42bf1d4f7",
      "tree": "6dd782ab059a9013ad1b1be957e6a3f19d8fc331",
      "parents": [
        "3bdb4fbfc6730b6edc0b1ee980141574ed54ed8d"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 30 17:34:24 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 30 19:07:45 2012 -0700"
      },
      "message": "Avoid prematurely terminating parsing when some track only has a single access unit\n\nPatch was contributed by teng.hong@nxp.com\n\nChange-Id: I0f56361d839f18627e512d18e86f51b58b9b0e05\nrelated-to-bug: 6240789\n"
    },
    {
      "commit": "a86c809bff463ae1d782dcaa1c45d1acea5f34d3",
      "tree": "b67c548b15268ca9cbb6c242d98f012d2f487914",
      "parents": [
        "62999949c58ae18784a6061d83e4f2b78dbc3465"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 00:27:46 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed May 16 01:03:45 2012 -0700"
      },
      "message": "Remove libvideoeditor_jni.so\u0027s dependency on static libs in video editor engine\n\nrelated-to-bug: 6502980\n\nChange-Id: I9cbbf44eb53c406263df4003cc3de2af4d239180\n"
    },
    {
      "commit": "18793d77792e12f5f63e67f721bc238b6dc497a1",
      "tree": "fd2a5c336e51be8e2516a27b9d6a9236e9b8b34d",
      "parents": [
        "859c897b87593386d7c37ab844d4890aaa19bceb"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 14:50:45 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 14:50:45 2012 -0700"
      },
      "message": "Revert \"Remove libvideoeditor_jni.so\u0027s dependency on static libs in video editor engine\"\n\nThis reverts commit 1af1f6a60b9fa217b6809e767babf1ce8a2e95c9.\n"
    },
    {
      "commit": "1af1f6a60b9fa217b6809e767babf1ce8a2e95c9",
      "tree": "97330ed9dff522b58ad5322f2696a1bc62bce434",
      "parents": [
        "2986460984580833161bdaabc7f17da1005a8961"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 00:27:46 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue May 15 02:33:34 2012 -0700"
      },
      "message": "Remove libvideoeditor_jni.so\u0027s dependency on static libs in video editor engine\n\nrelated-to-bug: 6328360\n\nChange-Id: I36324820c7e72fedd8c4caf1b03443a4f7cec37f\n"
    },
    {
      "commit": "6f9add864e3513917fd35302b766e26aa40e6818",
      "tree": "fe2297763ed3de40ffb9c83c42c458c401144ac0",
      "parents": [
        "36513e357dfc6c53898d4b4f768c9fd4822f4653"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 23 13:56:43 2012 -0700"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Mon Apr 23 14:22:07 2012 -0700"
      },
      "message": "remove dependency on SurfaceTexture::connect()\n\nChange-Id: I97ce29ecfde4df171120a3570db9575b32c8d362\n"
    },
    {
      "commit": "1948eb3ea6eee336e8cdab9b0c693f93f5f19993",
      "tree": "448eed49a4ba18fb1ab4f2fb1b2c0d5cef6d242f",
      "parents": [
        "21e8c50bd13ebe44f3088e26c9c6df0e163c469c"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 13 16:50:19 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Fri Apr 20 14:17:02 2012 -0700"
      },
      "message": "Add support for deep audio buffers\n\nAllow AudioSink to use deep audio buffering when the\nsource is audio only and its duration is more than\na certain threshold.\nThis helps improve battery life but implies higher\naudio latency.\n\nChange-Id: Ie79915b61c370292f05aabda9779356570e03cbb\n"
    },
    {
      "commit": "0ca3cf94c0dfc173ad7886ae162c4b67067539f6",
      "tree": "bc156e7822e663626b78ec2ad09ef3970fbb48c5",
      "parents": [
        "ee685f6d19a6cc3b0bf02e69eb5dea11a2aeb601"
      ],
      "author": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 18 09:24:29 2012 -0700"
      },
      "committer": {
        "name": "Eric Laurent",
        "email": "elaurent@google.com",
        "time": "Wed Apr 18 15:04:46 2012 -0700"
      },
      "message": "rename audio policy output flags\n\nChange-Id: I27c46bd1d1b2b5f96b87af7d05b951fef18a1312\n"
    },
    {
      "commit": "4110c101c3d0dd8dbc44c8d2d0edd3e2e7d6652f",
      "tree": "7bb39d31afac7348bb91093cc0e1c2d9aa49cba2",
      "parents": [
        "a1472d9883e35edd280201c8be3191695007dfd4"
      ],
      "author": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Thu Mar 29 09:31:28 2012 -0700"
      },
      "committer": {
        "name": "Marco Nelissen",
        "email": "marcone@google.com",
        "time": "Mon Apr 02 09:19:03 2012 -0700"
      },
      "message": "Add gapless playback support for NuPlayer\n\nThis makes NuPlayer use a SkipCutBuffer when needed, and adds a new\nAudioSink method to retrieve the number of frames written so far, so\nNuPlayerRenderer can calculate how much data it can write without blocking.\nAlso make some more methods const.\n\nChange-Id: Id7d253ad8a7b85e9a84ca2baafbe32817b16c744\n"
    },
    {
      "commit": "559bf2836f5da25b75bfb229fec0d20d540ee426",
      "tree": "d7dd708b17eeca96a3e5d8bcc25a51ff3d1b5d0d",
      "parents": [
        "b0b2b4d890cf3bfb274797a759642b4e733343d7"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Wed Mar 28 10:29:14 2012 -0700"
      },
      "committer": {
        "name": "Anatol Pomozov",
        "email": "anatol.pomozov@gmail.com",
        "time": "Wed Mar 28 12:07:41 2012 -0700"
      },
      "message": "AV Android make files changes\n\no plus a few file relocation: ActivityManager.cpp/h, SoundPool.h, etc\no remove some runtime dependencies to libandroid, libandroid_runtime, etc\n\nChange-Id: I047a47c5fb361dd5cf85cd98798c39f629a75d10\n"
    },
    {
      "commit": "51f8eec23a2bcc2cc190373cdd1195972d9b8804",
      "tree": "5768bb608614310a624198023b07956e9f634cee",
      "parents": [
        "ecb3110adc6db7334ca4be6d5b3c130f38f5fa51"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Mar 24 09:39:57 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Sat Mar 24 09:42:20 2012 -0700"
      },
      "message": "Resolve undesirable dependency of /frameworks/av/libvideoeditor on /frameworks/base/media/jni\n\no move VideoEditorMain.h to /frameworks/av/libvideoeditor\no removed JNI related C_INCLUDE in some Android.mk files\n\no related-to-bug: 6214141\n\nChange-Id: Iadd01eef701deb728fbac1a3f524ea1db72f6b48\n"
    },
    {
      "commit": "ecb3110adc6db7334ca4be6d5b3c130f38f5fa51",
      "tree": "474dc37a54b329705f91450c0405f72e004f4817",
      "parents": [
        "19ba8b4a85842a8aeaa9e785e5d4558bc4e8e32e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 22 19:36:39 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Thu Mar 22 21:26:17 2012 -0700"
      },
      "message": "Make file change because libvideoeditor source files moved\n\no related-to-bug: 6214141\n\nChange-Id: I3ef60ca7670df37d7e43546e244cfe6a33093ba9\n"
    },
    {
      "commit": "16252eb65e873420d47bd2e0fb6a2a7877342224",
      "tree": "1c4b82f1f4882b54f3d9cd95c95af68af6e8f893",
      "parents": [
        "c1e3ed15d86337361c11fc4bb425ae252eceb946"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 15:12:33 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 20 17:05:18 2012 -0700"
      },
      "message": "Add libmedia_native\n\nChange-Id: I4bff781a26d01023d23d5285a8aa83dbce46c629\n"
    },
    {
      "commit": "c1e3ed15d86337361c11fc4bb425ae252eceb946",
      "tree": "44c62cc1a5366383a16c149cbe8f6d07f3bb538b",
      "parents": [
        "39485a9071b06ab8bb390844ae39f783d6c0ed25"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 15:22:11 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 15:39:50 2012 -0700"
      },
      "message": "Fix LOCAL_C_INCLUDES and correct #include syntax\n\nChange-Id: I522861043cc2ee905258a2ae409bf9dddbe452dc\n"
    },
    {
      "commit": "39485a9071b06ab8bb390844ae39f783d6c0ed25",
      "tree": "2a8684013a488cc98193f27e443262d570bb6695",
      "parents": [
        "b240013c30a8be4dffc678a350c80205b5f4696d"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 13 15:12:49 2012 -0700"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Wed Mar 14 13:51:45 2012 -0700"
      },
      "message": "Prepare frameworks/native/services/audioflinger\n\nPart of this change will be reverted after the move is complete.\n\np.s. this dependency on AudioFlinger should be removed\n\nChange-Id: Ib29d413b74a6dc1babe7a33471128be11304ce56\n"
    },
    {
      "commit": "b240013c30a8be4dffc678a350c80205b5f4696d",
      "tree": "8e8edb9c8b088387a35ae8a3c6360047d5141fa8",
      "parents": [
        "022484535d60499e7429ac8fcf52d8278405704e"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 14:51:50 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 18:08:23 2012 -0700"
      },
      "message": "Switched to use header files in /frameworks/native\n\no related-to-bug: 6044887\n\nChange-Id: I3a1143b09560a6b8fd67d23bbb375c83442a12e9\n"
    },
    {
      "commit": "022484535d60499e7429ac8fcf52d8278405704e",
      "tree": "7df2465ed56a1f7cad772b6571912326f3ab5999",
      "parents": [
        "75dd1750a3b7b1b4a519c33fc055e9d09dd7031c"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 11:34:40 2012 -0700"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 11:40:45 2012 -0700"
      },
      "message": "Swtched to use header file in /frameworks/native\n\no related-to-bug: 6044894\n\nChange-Id: I192f0436572d240fd2fb88446f6fa63ba0128d7e\n"
    },
    {
      "commit": "75dd1750a3b7b1b4a519c33fc055e9d09dd7031c",
      "tree": "7dec40bbb51455d8280ea21b7227842bd631b9df",
      "parents": [
        "18f1ff3f42aa6de3b8a5311c8886ef48980fa65f",
        "427e38084a16ec063983346347decf3ec461eed1"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Mon Mar 12 10:24:41 2012 -0700"
      },
      "committer": {
        "name": "Android (Google) Code Review",
        "email": "android-gerrit@google.com",
        "time": "Mon Mar 12 10:24:41 2012 -0700"
      },
      "message": "Merge \"Refactored MediaBufferPuller class from VideoEditorVideoEncoder class\""
    },
    {
      "commit": "18f1ff3f42aa6de3b8a5311c8886ef48980fa65f",
      "tree": "9844717470d96183734964c1570b8ba11cc1db84",
      "parents": [
        "09e1ef282e7b2df400a9f35feb47b48b67af0f3b"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Mar 11 15:47:55 2012 -0700"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Sun Mar 11 15:47:55 2012 -0700"
      },
      "message": "Update build dependency on AudioMixer header\n\nVideoEditorSRC doesn\u0027t need to include AudioMixer.h.\n\nVideoEditorResampler includes AudioMixer.h, which requires\n system/media/audio_effects/include in the include path.\n\nChange-Id: Ibf6194831aeb91e788ce0a3b1282a0d930ee6e48\n"
    },
    {
      "commit": "09e1ef282e7b2df400a9f35feb47b48b67af0f3b",
      "tree": "8039cabafa340daa6a47c3ea564e0258f03025c9",
      "parents": [
        "8162c1a9f4df4bf4733e78f5b03398b2991ba79a"
      ],
      "author": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Tue Mar 06 18:55:35 2012 -0800"
      },
      "committer": {
        "name": "Glenn Kasten",
        "email": "gkasten@google.com",
        "time": "Thu Mar 08 17:22:56 2012 -0800"
      },
      "message": "Use audio_policy_output_flags_t consistently\n\nChange-Id: I425cfd442257560dcf141d3d8599ddc7d21c1d13\n"
    },
    {
      "commit": "427e38084a16ec063983346347decf3ec461eed1",
      "tree": "03a71f9a3028c731804cb393c68aaa8129603ab8",
      "parents": [
        "8162c1a9f4df4bf4733e78f5b03398b2991ba79a"
      ],
      "author": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 06 10:59:23 2012 -0800"
      },
      "committer": {
        "name": "James Dong",
        "email": "jdong@google.com",
        "time": "Tue Mar 06 12:05:33 2012 -0800"
      },
      "message": "Refactored MediaBufferPuller class from VideoEditorVideoEncoder class\n\no MediaBufferPull class will be useful for the audio encoder also once we switch\n  to use OMX-based audio encoder.\no This is the part one for fixing bug 5947347\n\nChange-Id: Icddfeb636f7a59ad766220ef0d3155abace73ad3\n"
    },
    {
      "commit": "8162c1a9f4df4bf4733e78f5b03398b2991ba79a",
      "tree": "e6381a284850cab09068411ae8570fd784775b5a",
      "parents": [
        "90b6191067990a7a3ee947d7ce08c64f780f0de7"
      ],
      "author": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Fri Mar 02 14:34:10 2012 -0800"
      },
      "committer": {
        "name": "Jean-Michel Trivi",
        "email": "jmtrivi@google.com",
        "time": "Mon Mar 05 10:59:38 2012 -0800"
      },
      "message": "Set channel mask when opening audio sink\n\nUpdate the code to use the AudioSink::open() interface that\n takes a channel mask as an additional parameter. The code\n is only stereo, and returns an error when attempting to create\n a video editor audio sink with more than two channels.\n\nChange-Id: Ib9bba067da0b286c08656976b89fba7c8b42f99f\n"
    },
    {
      "commit": "90b6191067990a7a3ee947d7ce08c64f780f0de7",
      "tree": "24b43234802560783e9c7426784f83c15db87caa",
      "parents": [
        "ff63ae394b51682f5d36f3413c8f9d7367b8412e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Feb 26 00:40:08 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Sun Feb 26 00:40:08 2012 -0800"
      },
      "message": "fix location of libgui headers\n\nChange-Id: I0d203f4e7aa83e0449f7ebb9f3cafe021e38fc2f\n"
    },
    {
      "commit": "ff63ae394b51682f5d36f3413c8f9d7367b8412e",
      "tree": "6a18b42f02c1c8e5da58c9bb0de732c0fdaa0081",
      "parents": [
        "7719f633bd8747b2f56c7be0f102ff131c074c2e"
      ],
      "author": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 17:21:43 2012 -0800"
      },
      "committer": {
        "name": "Mathias Agopian",
        "email": "mathias@google.com",
        "time": "Fri Feb 24 17:21:43 2012 -0800"
      },
      "message": "remove dependency on android_native_buffer.h\n\nChange-Id: I720d5e6ac7e4455d7ab59eab7e9c2478b911228a\n"
    },
    {
      "commit": "7719f633bd8747b2f56c7be0f102ff131c074c2e",
      "tree": "69bafd0561f9a048c960236d18646bdeb9e5de7c",
      "parents": [
        "49f000409c48afd40366baef2e8fc8ea838b782f"
      ],
      "author": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Feb 10 13:46:24 2012 -0800"
      },
      "committer": {
        "name": "John Grossman",
        "email": "johngro@google.com",
        "time": "Fri Feb 10 13:46:24 2012 -0800"
      },
      "message": "Update method sigs.\n\nUpdate the getNextBuffer signatures to have an additional (but\nignorable) parameter used to implement timed audio output.\n\nChange-Id: Icb98e4af4d136c234ae8c5cbb4a5de4350b436bb\n"
    }
  ],
  "next": "49f000409c48afd40366baef2e8fc8ea838b782f"
}
